Bookmarks

ブックマーク バー

Watch-1

受信トレイ - suigun1000@gmail.com - Gmail
メール - Ichikawa Shin'ichi - Outlook
ウォッチリスト - Wikipedia
NHK NEWS WEB|NHKのニュースサイト
Yahoo! JAPAN
Slack | 進捗報告するところ | プログラミング言語処理系が好きな人の集まり
Slack | random | search-tech-jp
@tenpoku1000/WatchさんはTwitterを利用しています / Twitter
@tenpoku1000/etc-1 / Twitter
Twitter / 通知
tenpoku1000に関するツイートアクティビティアナリティクス
GIGAZINE(ソフトウェア)
GIGAZINE(セキュリティ)
GIGAZINE(ハードウェア)

Watch-2

Coelacanth's Dream
北森瓦版
自作PCユーザーがゲーム用PCの解説をします - 自作ユーザーが解説するゲーミングPCガイド
自作PCニュース|自作.com
ソフトウェア/アプリ - PC Watch
半導体/周辺機器 - PC Watch
市場 - PC Watch
ソフトウェア開発の最新ニュース、ビデオ、ブック
Publickey - Enterprise IT × Cloud Computing × Web Technology / Blog
ADMINISTRATOR STAGE|gihyo.jp … 技術評論社
LIFESTYLE STAGE|gihyo.jp … 技術評論社
iOS | CoRRiENTE.top
Technical Documentation for Software Security
Best Practices for Software Security

Watch-3

プログラミング プログラミング - 窓の杜
システム・ファイル デスクトップ - 窓の杜
システム・ファイル システム - 窓の杜
システム・ファイル ファイル - 窓の杜
システム・ファイル ランタイム - 窓の杜
オフィス・ドキュメント フォント - 窓の杜
WindowsUpdate | ニッチなPCゲーマーの環境構築Z
Windows Weekly Reportのニュースまとめ 1ページ | マイナビニュース
ASCII.jp:Windows Info
Category : Visual Studio
C++ Team Blog

blog-1

記事一覧 - FPGA開発日記
Archive - 豪鬼メモ
C カテゴリーの記事一覧 - yohhoyの日記
記事一覧 - ASnoKaze blog
記事一覧 - in neuro
記事一覧 - Tociyuki::Diary
記事一覧 - w_o’s diary
記事一覧 - 借り初めのひみつきち
記事一覧 - uchan note
記事一覧 - 千里霧中
記事一覧 - little hands' lab
記事一覧 - モナドとわたしとコモナド
記事一覧 - nayuta-yanagisawa's blog
記事一覧 - Kampersanda's Blog

blog-2

記事一覧 - Jicchoの箱
記事一覧 - hidekatsu-izuno 日々の記録
記事一覧 - suzuzusu日記
記事一覧 - ローファイ日記
記事一覧 - 未完成な論を綴るブログ
記事一覧 - shallowな暮らし
記事一覧 - それが僕には楽しかったんです。
ブログ | SendGrid
f/x [エフエックス] ITメディア・タンク
技術情報 | IIJ Engineers Blog
Wireless・のおと|サイレックス・テクノロジー株式会社
赤帽エンジニアブログ
GMOグローバルサインブログ - SSL・電子証明書・認証などのセキュリティナレッジサイト
Project Zero

blog-3

記事一覧 - Fire Engine
blog.jxck.io
どてやの戯れ言
Lispエイリアンの狂想曲 | κeenのHappy Hacκing Blog
GitHub 出張所 – プログラム関係のブログはここに
本の虫@GitHub
Akaki I/O - Akaki I/O
won't fix
Satoshi's note
https://seiya.me/blog
J’s Lab | PC廃人の実験レポート
yubrot.github.io
HanpenBlog

Spec

The Unicode Blog
PE Format - Windows applications | Microsoft Docs
WebAssembly Specification — WebAssembly 1.1
Specifications | Unified Extensible Firmware Interface Forum
Download DWARF Standards
ISO/IEC JTC1/SC22/WG14 - C
Wayland
Desktop Entry Specification
Blog - Open Container Initiative
Hardware Specification - PRMs | 01.org
NVMe Specification – NVM Express
INCITS: INCITS 558 - Information technology - ATA Command Set - 5 (ACS-5)
Specifications - OpenMP
Khronos SPIR-V Registry - The Khronos Group Inc

Rail

旅行総合研究所タビリス
鉄道ニュースの最新記事一覧 - Traicy
鉄道ダイヤ改正ニュース
JR東日本(1)|会社別の鉄道ニュース・イベントなど|鉄道ファン・railf.jp
関東エリアの運行情報・運休情報:JR東日本
ニュースリリース:JR東日本
ニュースリリース | JR北海道 - Hokkaido Railway Company
jr北海道 - Google 検索
jr 減便 - Google 検索
jr 廃止 - Google 検索

Market

田中宇の国際ニュース解説
Secured Overnight Financing Rate - Federal Reserve Bank of New York
スイングトレード ★ 日記. - livedoor Blog(ブログ)
2021年 (データを読む) : 東京商工リサーチ
不景気.com - 不況を乗り切る不景気ニュースブログ | 倒産・リストラ
サービス終了 -ゲーム - Google 検索
デビット 銀行 - Google 検索
銀行 商号変更 - Google 検索
BDIY 銘柄 - バルチック海運指数 名称 - Bloomberg Markets
バルチック海運指数 - Google 検索
金先物 過去の価格推移-Investing.com
ダウ平均 - Google 検索
日経平均 - Google 検索
元円 - Google 検索

Money

Google カレンダー
西暦和暦年齢一覧表
縦割り110番 回答 - Google 検索

気象

停電情報|東京電力パワーグリッド株式会社
天気 - Google 検索
東京アメッシュ
環境省熱中症予防情報サイト 暑さ指数(WBGT)ランキング
気象庁 | 台風情報
気象庁 | 天気図
気象庁|地震情報
運行案内|ほくほく線|北越急行株式会社
トピックス | えちごトキめき鉄道株式会社
しなの鉄道株式会社
北陸エリア 運行情報:JR西日本列車運行情報
列車運行情報 - JR四国
運行情報 | JR九州
災害に伴う運行のご案内 | 駅・きっぷ・列車予約 | JR九州

Watch

価格.com - USB PDのノートパソコン 価格の安い順 (USB Type-C,ビデオチップ:Intel 系,開発コード:Tiger Lake,表面処理:ノングレア(非光沢))
IdeaPad Slim 550i 14型 | スタイリッシュでパワフルな14型ノートPC | レノボジャパン
インテル® Core™ i5-1135G7 プロセッサー (8M キャッシュ、最大 4.20GHz) 製品仕様
e-zoa.com|[その他 (そのほか)] ミドルタワーPCケース  [(2406705)]
インクジェットプリンター - プリンター | ブラザー
プリンター | ブラザー
Amazon.co.jp : thunderbolt 4 ssd ケース
thunderbolt 4 ssd ケース - Google 検索
Amazon.co.jp : usb 3.2 gen2x2 hub
usb 3.2 gen2x2 hub - Google 検索
Amazon.co.jp : USB Audio Class 3.0
USB Audio Class 3.0 - Google 検索

Wikipedia

その他

大糸線 - Wikipedia
両毛線 - Wikipedia
米坂線 - Wikipedia
磐越東線 - Wikipedia
磐越西線 - Wikipedia
東武鬼怒川線 - Wikipedia
陸羽東線 - Wikipedia
陸羽西線 - Wikipedia
北上線 - Wikipedia
花輪線 - Wikipedia
奥羽本線 - Wikipedia
秋田内陸縦貫鉄道秋田内陸線 - Wikipedia
常願寺川 - Wikipedia
早月川 - Wikipedia
List of websites founded before 1995 - Wikipedia
阿南町 - Wikipedia
那覇市歴史博物館

四国

松山高知急行線 - Wikipedia
久万高原町営バス - Wikipedia
久万高原町 - Wikipedia
仁淀川町 - Wikipedia
越知町 - Wikipedia
佐川駅 - Wikipedia
伊野駅 - Wikipedia
どーらくさんはTwitterを使っています 「大歩危駅周辺。険しい山の頂上付近に人家が多いのは、まだ鉄道や道路がなかった頃、人々は山の尾根伝いに移動していた時の名残り。 現代ではそれが逆に不便になってしまった。 https://t.co/V5iEH5ljkY」 / Twitter
「うえまち駅」がオープンしました! | さかわのしおり[オフィシャル]さかわ観光協会
佐川文庫庫舎(旧青山文庫) | さかわのしおり[オフィシャル]さかわ観光協会

Wikipedia

Help:早見表 - Wikipedia
Wikipedia:拡張半保護の方針 - Wikipedia
Skin:Vector-DarkCSS - MediaWiki
Category:井戸端の話題 - Wikipedia
Wikipedia:井戸端 - Wikipedia
Toshiyasu ObaさんはTwitterを使っています 「SNSだけではなく、ウィキペディアも政治的プロパガンダの舞台に、という問題の指摘と、対応策の検討。ユーザ参加型コンテンツに共通の問題でもあるが、日本語による知識基盤に与える影響の大きさは格別かと。/ 日本語版ウィキペディアで「歴史修正主義」が広がる理由と解決策 https://t.co/xucg5bdSfs」 / Twitter
日本語版ウィキペディアで「歴史修正主義」が広がる理由と解決策   | 佐藤由美子の音楽療法日記
Toshiyasu ObaさんはTwitterを使っています 「コメントでのやり取りも興味深い。投入するリソース(主に常にコンテンツの変更状況を監視できるだけの手段と人手)を確保すれば、ユーザ参加型のコンテンツをプロパガンダで汚染するのは容易、という問題でもあるかも。」 / Twitter

現状のまとめ - JR東日本車両更新予想スレッド 倉庫Wiki
バス待合所mini
公共交通 | 稲敷市公式ホームページ
一般路線バス運行情報 | ジェイアールバス関東
一般路線バス時刻表・路線図 | ジェイアールバス関東
利用可能エリア|Suica:JR東日本
お値段 | タッチでGo!新幹線:JR東日本
IC入場サービス「タッチでエキナカ」の利用|利用方法|Suica:JR東日本
Suicaが駅の入場券になるサービス、今までなかった理由は? JR東に聞く - ITmedia NEWS
入場券:JR東日本
入場券にもある定期券、誰がどんな目的で使っている? 背景にある駅の「構造」 | 乗りものニュース
デビットカード - Wikipedia
ツインクルプラザ - Wikipedia
列車集中制御装置 - Wikipedia
2020年代のJRダイヤ改正 - Wikipedia
JR東日本の車両形式 - Wikipedia
東京圏におけるホームドアの整備促進について - 20180305.pdf
2021年度のホームドア整備について - 20210406_ho01.pdf
すし三崎港 柏高島屋 - 店舗検索 - 株式会社京樽公式サイト
すし三崎港 ビーンズ亀有 - 店舗検索 - 株式会社京樽公式サイト
お店を探す | To Go JR我孫子駅店 (テイクアウト専門店) | 回転寿司 スシロー
お店を探す | To Go JR亀有駅店 (テイクアウト専門店) | 回転寿司 スシロー

Money

その他

東京大学基金
ログイン/マネックス証券 取引サイト
ログイン | VALUE-DOMAIN(バリュードメイン)
【ゴダイゴ】銀河鉄道999をピアノで弾いてみました - YouTube
Justin Bieber, Mariah Carey - All I Want For Christmas Is You (SuperFestive!) (Shazam Version) - YouTube
日経平均採用銘柄の株価一覧 :株式 :マーケット :日経電子版
インディカティブNAV・PCF情報 | 日本取引所グループ
営業時間・休業日一覧 | 日本取引所グループ
先物・オプション関連 | 日本取引所グループ
取引最終日 | 日本取引所グループ
大阪取引所障害時メール | 日本取引所グループ
取引参加者別取引高(手口上位一覧) | 日本取引所グループ
株価指数先物 - Investing.com 日本
テクニカル分析カスタム相場- Investing.com
信用評価損益率 信用残 日経平均比較チャート
投資家が注目する「信用評価損益率」とは? | 東証マネ部!
株価移動平均線の見方・使い方(1)~移動平均線の基礎 | テクニカル分析指標 | 指標の見方・使い方 | 投資のノウハウ | 株の達人
移動平均線を使いこなす | みんなの株式
指数平滑法 - Google 検索
株探 | 【株式の銘柄探検】サイト - 株式投資の銘柄発掘をサポート | かぶたん
株探 | 株価注意報 - 本日のゴールデンクロス銘柄(5日と25日移動平均線)
株探 | 株価注意報 - 本日のデッドデンクロス銘柄(5日と25日移動平均線)
インバースはなぜ減価するのか - room5110
コンタンゴはなぜ減価するのか VXX(1552)が下がる理由 - room5110
【JR】関連が株式テーマの銘柄一覧 | 株探
NAKAMURA Minoru's Diary (2012年7月)
UnionPay デビットカード 本日6月29日(火)より、中国建設銀行東京支店で発行開始|UnionPay(銀聯国際)のプレスリリース
じぶん銀行スマホデビット | auじぶん銀行

総合 - NHKプラス
Donate to the Internet Archive!
Chocolatey Software | Pricing
DeepL Pro:テキストの他、Wordなどの文書をセキュアに翻訳
SBI証券|株・FX・投資信託・確定拠出年金・NISA
楽天ウォレット会員ログイン|暗号資産 (仮想通貨)の取引ならRakuten Wallet | 楽天ウォレット
Blockchain Wallet - Exchange Cryptocurrency
JIS&TのiDeCo<イデコ>(個人型確定拠出年金)ポータル
日本インベスター・ソリューション・アンド・テクノロジー株式会社
【国認定】パソコンの無料回収(処分・廃棄)サービス「リネットジャパン」
主な取扱不可製品
郵便局 | 日本郵便株式会社
94円普通切手・スミレ: 切手・はがきストア|郵便局のネットショップ
レターパックライト(370円)(20部セット): 切手・はがきストア|郵便局のネットショップ
楽天モバイル メンバーズステーション
通信・エリア | 楽天モバイル
楽天ブロードバンド: プロバイダ・インターネット接続
個人向けSIM・インターネットサービスのIIJmio
IIJmio:DS-Liteについて
IPv6接続「v6プラス」のご案内:BIGLOBE会員サポート
格安SIMならBIGLOBE SIM
サービス情報サイト
フレッツのIPv6パケットフィルタが筒抜けだった件(ひかり電話あり/なしで異なる結果に) – アキバではたらくプログラマのBlog
本の虫: CloudflareのDNSからArchive.isが解決できない問題について
1.1.1.1 — the Internet’s Fastest, Privacy-First DNS Resolver
What Is My IP Address - See Your Public Address - IPv4 & IPv6
スピードテスト - Google 検索
SBIポイント ログイン|SBIポイント・SBI iD
VCTRADE
ログイン画面/auカブコム証券

決算短信

その他

IR情報 | ステラケミファ株式会社
2020年度決算短信・説明会資料|楽天グループ株式会社
財務状況 | ディスクロージャー | 楽天銀行について | 楽天銀行
決算情報 | 開示情報 | 楽天証券
2021年3月期 | 決算説明会 | 双日株式会社
決算短信 | IR資料室 | 住友化学株式会社
財務情報 日本基準|三菱UFJフィナンシャル・グループ

決算短信 | クリヤマホールディングス株式会社
IRライブラリ : 決算短信 | 株式会社フェローテックホールディングス
決算短信:株主・投資家情報:FREUND フロイント産業
決算短信 | 平河ヒューテック
決算短信 | IRライブラリー | 明電舎
決算短信|IR情報|小野建株式会社
決算短信 | 住友大阪セメント
決算短信 | 国際石油開発帝石[INPEX]
決算短信 | 株主・投資家情報 | レンゴー株式会社
決算情報|株主・投資家情報|営業紹介|株式会社関電工 | 株式会社関電工
財務情報 | IR情報 | トーモクグループ
決算短信|イノテック株式会社
決算短信 | 株主・投資家情報 | 日本精線株式会社
物流の山九株式会社|IR資料 | 山九株式会社
決算短信 | プリント基板設計・製造・実装|5G基板ならキョウデン
IR情報 | 日本パレットプール株式会社
決算短信 | IR情報 | 化学メーカー、石原産業
投資家の皆様へ - IRライブラリー - 決算短信 | 暮らし、いきいき ジュンテンドー
決算関連情報|株主・投資家情報|株式会社ナカノフドー建設
決算短信・補足説明資料 | 東和薬品
決算短信|カルビー
決算概況 - IR - カワチ薬品

公的機関等

その他

警視庁の業務に対する苦情・ご要望・ご意見
証券・金融商品あっせん相談センター
事故物件の売却なら【お困り不動産解決本舗】へ|事故物件はお任せください
海外から注文していない植物が郵送された場合は、植物防疫所にご相談ください:植物防疫所
「研究開発型スタートアップと事業会社のオープンイノベーション促進のためのモデル契約書ver1.0」を取りまとめました (METI/経済産業省)
アルトア | スモールビジネスの新しい選択肢となるオンライン融資
支援情報検索サイト
PowerPoint プレゼンテーション - 009_04_02.pdf
「まち」と読む町、「ちょう」と読む町(市区町村雑学)
「地震保険は損だ」という考えが危ない理由 | 家計・貯金 | 東洋経済オンライン | 経済ニュースの新基準
解約できない!マンション「サブリース」の罠 | 不動産 | 東洋経済オンライン | 経済ニュースの新基準
政府 復興庁を2031年まで10年間延長 新たな骨子案 | NHKニュース

社会保障

住まいに困っている 東京都福祉保健局
「水害にあったら、どうすればいい?」 このチラシが、とてもわかりやすい
労働者健康安全機構 トップページ
中小企業庁:セーフティネット保証制度 概要
がん相談支援センターにご相談ください|がんになったら手にとるガイド [国立がん研究センター がん情報サービス]
生活費等の助成や給付など:[国立がん研究センター がん情報サービス 一般の方へ]
がん相談ホットライン | 日本対がん協会
がんの「余命宣告」の正しい意味を知っていますか?(大須賀 覚) | ブルーバックス | 講談社(1/4)
お金が無くても保険証が無くても病院受診する方法!(藤田孝典) - 個人 - Yahoo!ニュース
国や自治体からお金を借りられる、公的融資制度&給付金まとめ。キャッシングでお金を借りる前に、これらの貸付制度が使えないかの確認を! - クレジットカードの読みもの
一般社団法人 個人版私的整理ガイドライン運営委員会
トップページ|全国社会福祉協議会
NPO法人POSSE
法務省:「更生保護」とは
日本内科学会雑誌:新型コロナウイルス感染症特集の公開について | 日本内科学会の取り組みについて | 日本内科学会
生活保護を申請したい方へ
新型コロナワクチンについて | 首相官邸ホームページ
新システム、懸念払拭に躍起 旗振り役の河野・平井氏―ワクチン情報を一元管理:時事ドットコム
オンライン資格確認等システムの導入に関する医療機関・薬局システムベンダ向け説明会_投影資料一式 - 000597524.pdf
保険料の6割増も それでも進む国保改革 その狙いは:朝日新聞デジタル
フリーのITエンジニアやWebデザイナーも国の労災保険へ加入が可能に。業務や通勤での疾病、負傷、死亡など補償。国の労働政策審議会が了承。9月から - Publickey

日銀

国際収支統計(IMF国際収支マニュアル第6版ベース<2014年1月取引分~>) : 日本銀行 Bank of Japan
需給ギャップと潜在成長率 : 日本銀行 Bank of Japan
実効為替レート : 日本銀行 Bank of Japan
「支払又は支払の受領に関する報告書」の報告概要 : 日本銀行 Bank of Japan

縦割り110番

受け付けた提案及び所管省庁からの回答:「規制改革ホットライン」 : 規制改革 - 内閣府
内閣府共通意見等登録システム - 内閣府
縦割り110番、内閣府HPでも一時停止 河野規制改革相: 日本経済新聞
「縦割り110番」、受け付けの一時停止を検討 要望6000件超え 河野氏「霞が関の処理に限界」 - ITmedia NEWS
「縦割り110番」の裏側初潜入!どんなメンバーがどんな部屋で?明かされる“チーム河野太郎” のリアル
EBPMの推進 - 統計等データの提供等に関する要望・提案募集
統計等データの提供等に関するユーザーからの要望・提案募集 応募フォーム|首相官邸ホームページ
分析AI「YOSHINA」で縦割り110番のデータ分析をしてみました - Retrieva OFFICIAL BLOG
デジタル改革アイデアボックス

政府の情報処理システム

何故お役所ってオワコンIEが大好きなの?|楠 正憲(国際大学GLOCOM 客員研究員)
Shiro KawaiさんはTwitterを使っています 「楠さんによるCOCOAの経緯の総括。後知恵で批判するのは簡単だけど、予算確保から契約まで関係各所を継ぎながら変化する状況にも対応するとなると、結局そういう開発プロセスがわかってる人が至るところにいる、という社会になってないと難しそう https://t.co/b6njHTfjmw」 / Twitter
接触確認アプリCOCOAからの教訓|情報処理学会・学会誌「情報処理」|note
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「最初はバーコードを読むつもりだったのですが、仕様がカッチリ決められておらず、自治体によってバーコードがあったりなかったり、埋め込まれている値もバラバラなので、仕方なく全団体共通のOCRラインを読むようにしたのです。接種券仕様をちゃんと決められていたら」 / Twitter
木曽崇@国際カジノ研究所:「飯テロ」注意報発令中さんはTwitterを使っています 「すげえなあ。隣りにバーコードがあるのに、わざわざOCRでその脇の数字を読み取らせるというミラクル仕様。」 / Twitter
神庭亮介さんはTwitterを使っています 「ワクチン接種記録システム(VRS)をめぐり「接種券のバーコードが読みとれない」「ピントが合わない」など自治体から苦情。 実は読み込むのはバーコードではなく数字。平井デジタル相は「誤解があった」と説明。 IT総合戦略室は段ボールや専用スタンドの活用を提案している。https://t.co/cjj0JAbN5r https://t.co/G1c5gBonDd」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「これはねー、時期によってコロコロ変わってるんですよ。APIリファレンスの改版履歴を追うとかなりトリッキーで、途中からAPIリファレンスがPDFからWebに変わって保全が面倒になり、更に秋から別の大きな仕様変更があり / “Android版COCOAがバグった理由 - DEVGRU” https://t.co/Ac18AUi34J」 / Twitter
Android版COCOAがバグった理由 - DEVGRU
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「Cocoaに限らずクラウドもスマホもころころAPIが変わる時代、入札やって契約を結んだのだからちゃんとやってくれではなく、前提が変わったら予算を取り直して契約変更するから、くれぐれも品質第一に運用してくれとお願いできる制度・運用体制を組めるようにならないと厳しい。デジタル庁へ向けた課題」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ベンダーロックイン排除、技術中立性のためには構成技術は指定せず要件で縛るのが美しい調達仕様書とされてきたけど、民間企業と同様に、十分な技術者を確保できるか、組み合わせの掛け算で母数が小さくなってないか、スタック構成をもっと丁寧に見て落とし穴を避ける努力も必要」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ここ数年で「とりあえずやってみる」「数週間でシステムを立ち上げる」ところまではできるようになった。これからは「適切なKPIを設定してモニタリング」「継続的な改善」「Whyを問い直し止めるべき時に止める」を組織的に回せる体制が必要に。今はQAもSREもおらず全てを事務官がベンダーにやらせてる」 / Twitter
zipperpullさんはTwitterを使っています 「@masanork 継続的な改善の一部かもしれませんが、とくに一般ユーザ向けのものなんかでは、不具合や改善点を見つけてくることをベンダーにまかせても最適解は黙って何もしないことに着地してしまうので、QAやサポート・運用データ調査などを開発保守のベンダーから分離して組織化するようなことが必要かと思います」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「@zipperpull 確かにその分割発注はアリですね。今は原課が気付くまでダンマリが最適解なので。参考になります」 / Twitter

放送・通信

地デジ高度化実験受信対策センター トップページ
チャンネル一覧 | 一般社団法人放送サービス高度化推進協会(A-PAB)
一般財団法人 日本電話リレーサービス
総務省|東海総合通信局|電波の人体に対する影響
急増する世界の「データ」流通量 | 地域・分析レポート - 海外ビジネス情報 - ジェトロ

官報決算データベース
資料8-2 - siryo8-2-2.pdf
月例経済報告 - 内閣府
今週の指標 - 内閣府
統計表一覧(本邦対外資産負債残高) : 財務省
本邦対外資産負債残高 : 財務省
政府統計の総合窓口
e-Gov法令検索
登記情報提供サービス
登記・供託オンライン申請システム 登記ねっと 供託ねっと
政府の事業が検索できるサイトJUDGIT!(ジャジット)
会派名及び会派別所属議員数
会派別所属議員数:参議院
生命保険契約照会制度の創設(2021年7月1日開始)~確実な保険金請求のためのセーフティネット~ | 2021 | ニュースリリース | 生命保険協会

税金

住民税

千葉市:市税過誤納金等の還付・充当
還付(住民税)について|東京都北区
市税の領収証書は何年保存したらよいのか。 | 市税の納付(口座振替) | 市税 | くらしの手続き | 西宮市ホームページ
上場株式等の譲渡損失の繰越控除や損益通算をしたら住民税の申告も検討しよう
株式等の譲渡益や配当に対する税金:練馬区公式ホームページ
現役税理士が所得税と住民税の控除額の計算方法の違いをわかりやすく解説 - 経営ハッカー | 「経営 × テクノロジー」の最先端を切り拓くメディア
<税金の種類><個人住民税> | 東京都主税局
所得税と住民税の計算方法
住民税 税額シミュレーション
名古屋市:税額の計算方法(暮らしの情報)
名古屋市:市民税・県民税の計算例(暮らしの情報)
住民税はどうやって決まる? その計算方法とは  - INTERNET Watch
サラリーマンと個人事業主の税金の話まとめ:源泉徴収票の見方・年末調整の書き方から住民税の計算方法まで - INTERNET Watch
地方税申告の合理化 | 衆議院議員 河野太郎公式サイト

所得税

国税庁

No.1300 所得の区分のあらまし|国税庁
No.1199 基礎控除|国税庁
No.1240 外国税額控除|国税庁
No.2240 申告分離課税制度|所得税|国税庁
No.2260 所得税の税率|所得税|国税庁
No.1250 配当所得があるとき(配当控除)|国税庁
No.1330 配当金を受け取ったとき(配当所得)|国税庁
No.1331 上場株式等の配当所得等に係る申告分離課税制度|国税庁
No.1474 上場株式等に係る譲渡損失の損益通算及び繰越控除|国税庁
No.1521 外国為替証拠金取引(FX)の課税関係|国税庁
No.1522 先物取引に係る雑所得等の課税の特例|国税庁
No.1523 先物取引の差金等決済に係る損失の繰越控除|国税庁
No.1524 ビットコインを使用することにより利益が生じた場合の課税関係|国税庁
01.pdf
[手続名]所得税及び復興特別所得税の更正の請求手続|国税庁
No.2026 確定申告を間違えたとき|国税庁
新型コロナウイルス感染症に関連する税務上の取扱い関係
No.1150 一定の寄附金を支払ったとき(寄附金控除)|国税庁
マイナポータル連携可能な控除証明書等発行主体一覧|国税庁

ビットコインの譲渡における消費税との税務関係について税理士が解説 - エキサイトニュース(1/2)
ビットコイン・仮想通貨の「雑所得課税」に有利な材料? 副業の所得や年金などと通算 | ZUU online
遺産としての仮想通貨、鍵が不明で引き出せなくても相続税がかかる | 日経 xTECH(クロステック)
青色申告、電子なら控除10万円増 20年1月から  :日本経済新聞
配当所得は所得税では総合課税で、住民税では申告不要にすれば有利になるケースとは? - やまばた税理士事務所
みずほ証券:証券税制早わかり 株式の税金
松浦晋也さんのツイート: "これ、もっと前があるのだ(財務省ページからは消されているが、以前は載っていた)。1970年代初頭はもっと厳しい累進課税だったのである。その税制で、日本は高度経済成長を達成している。「意地悪ばあさん」で「昭和元禄浪花節」と歌った時代である。… https://t.co/3UDrmnNSGY"
貧富格差を拡大する方向に進んできた日本の税制 - WirelessWire News(ワイヤレスワイヤーニュース)
松浦晋也さんのツイート: "財務省は消しても国会図書館ウェブアーカイブには残っている、というわけで、このページである。 https://t.co/6xFPj5r5yY"
所得税の税率構造の推移 : 財務省
外貨預金の損失で「節税」できる? | ビジネスジャーナル
還付申告は1月から可能。還付でない確定申告も2月15日以前にできる? | 川越市【関田和弘税理士事務所】相続税申告・クラウド会計
含み益の課税検討で「積立NISA逝く」SNSで拡散 金融庁「関係ないので解約しないで」 - 税理士ドットコム

年金

日本年金機構
国民年金保険料|日本年金機構
国民年金前納割引制度(現金払い 前納)|日本年金機構
国民年金保険料の「2年前納」制度|日本年金機構
企業年金連合会(Pension Fund Association)
年金13万円、生活苦に悩む高齢者たちの実情 | 家計・貯金 | 東洋経済オンライン | 経済ニュースの新基準
悠々自適な老後は夢のまた夢。「70歳まで就業」案に失意の声 - まぐまぐニュース!
「年金積立金の減少」を騒ぎ立てる人が陥っているひどい勘違いとは | 自分だけは損したくない人のための投資心理学 | ダイヤモンド・オンライン

信用情報

信用情報 - Wikipedia
日本信用情報機構 - Wikipedia
JICC 日本信用情報機構(指定信用情報機関)| HOME
全国銀行個人信用情報センター - 全国銀行協会
指定信用情報機関のCIC

マイナンバー

国税庁法人番号公表サイト
総務省
社会保障・税番号制度 - 内閣府
マイナンバー社会保障・税番号制度
地方公共団体情報システム機構 地方公共団体情報システム機構
マイキープラットフォーム
サービストップ | マイナポータル
マイナンバーカード総合サイト/トップページ
事前の準備 : 公的個人認証サービス ポータルサイト
証券会社へのマイナンバー登録・通知の義務化。通知しないとどうなる? | Money Lifehack
銀行の口座開設や既存口座でのマイナンバー(個人番号)の登録・通知の義務化のタイミングはいつ? | Money Lifehack
CSS2017キャンドルスターセッション
マイナンバー制度について-ゆうちょ銀行
スイングトレード ★ 日記.:【悲報】マイナンバー提出期限3年延長が決定!提出するだけ無駄だった - livedoor Blog(ブログ)

【確定申告書等作成コーナー】-TOP-画面
確定申告期に多いお問合せ事項Q&A|国税庁
【税金の還付】|国税庁
振替納税の領収証書送付取りやめのお知らせ|国税庁
クレジット販売の場合の領収書|国税庁
No.7105 金銭又は有価証券の受取書、領収書|国税庁
国税クレジットお支払サイト
一般会計税収の推移 : 財務省
税収に関する資料 : 財務省
負担率に関する資料 : 財務省
財政に関する資料 : 財務省
予算 : 財務省
平成31年度財務省所管予算概算が決まりました : 財務省
日本銀行が国債の引受けを行わないのはなぜですか? : 日本銀行 Bank of Japan
GDPとGNI(GNP)の違いについて - 内閣府

SBI証券(旧SBIイー・トレード証券)-オンライントレードで株式・投資信託・債券を-
ログイン|住信SBIネット銀行
楽天証券 | ネット証券(株・FX・投資信託・確定拠出年金・NISA)
楽天銀行(旧イーバンク銀行)|ネットバンク
【楽天市場】Shopping is Entertainment! : インターネット最大級の通信販売、通販オンラインショッピングコミュニティ
ゆうちょダイレクト ログイン(お客さま番号入力)
Amazon.co.jp: 過去90日 - コンピュータ・IT: 本
Amazon.co.jp: 過去90日 - 科学・テクノロジー: 本
Amazon.co.jp : JTB時刻表
『鉄道ファン』情報|鉄道ファン・railf.jp
お気に⼊り一覧|PC専門店【TSUKUMO】公式通販サイト
モニターおよびモニター周辺機器 | Dell 日本
崎陽軒 通信販売
商品検索 - お弁当・駅弁・おせちの株式会社ウェルネス伯養軒-通販ショップ
吉田屋の駅弁
ますのすし | 源 オンラインショップ|西の横綱 源のますのすし
【お弁当の淡路屋】全国配送 ONLINE SHOP
通販商品 | 株式会社アベ鳥取堂

Doc

大紀元時報 | グローバルニュース
From the Desk of Donald J. Trump | Donald J. Trump
Bing
Google Scholar
Internet Archive: Digital Library of Free Books, Movies, Music & Wayback Machine
DeepL翻訳
小原圭司さんはTwitterを使っています 「PDFの英語論文をDeepLを使って日本語に訳して読んでいる方へ。Shaperという便利なサイトが改良され、PDFをコピペした際に自動で邪魔な改行記号を削除してくれるだけでなく、ワンクリックでDeepLのサイトに貼り付けることが可能になりました。素晴らしいサービスに感謝です!https://t.co/9WhVG7zqiu」 / Twitter
Shaper
【無料】PDFをWordに変換 - Adobe 公式 | Adobe Acrobat
LibreOffice Writer のショートカットキー - LibreOffice Help
Libreoffice Writer ページ移動:ubuntu & LibreOffice:So-netブログ
Text to Speech | Microsoft Azure
ビジネスインテリジェンスおよび分析ソフトウェア
Overleaf, オンラインLaTeXエディター

その他

(0)市川 真一にマシュマロを投げる | マシュマロ
docin.com豆丁网-分享文档 发现价值
Unified fj NetNews archive
ancientfj Japanese USENET archive : Free Download, Borrow, and Streaming : Internet Archive
全国道路構造物マップシリーズについて(概要、利用上の注意点) | 全国Q地図(旧・九州Q地図)

その他

その他

「飲食店の制限だけでは1ヶ月で感染者は減らない」 8割おじさんが厚労省“非公開”のシミュレーションを公開
緊急事態宣言が効果を上げるか鍵を握る2つの変化 8割おじさんを悩ませる変数
小池都知事のアラビア語力をどう評価したらいいのかわからない方へ|jaber|note
「スペースコブラ」1話~10話
ダム Advent Calendar 2020 - Adventar
足尾砂防堰堤 | ponkotuy-blog
AIやロボットを導入した企業はむしろ雇用が増えるという研究結果 - GIGAZINE
学会の役割:難しい評価をすること
科研費の話
伊津野 英克さんはTwitterを使っています 「普通に面白い。ビッグバンが点じゃないとか、ビッグバンと宇宙の始まりは違うとか、結構知らないことが出てくる https://t.co/D1oB15LzHt」 / Twitter
宇宙は物理法則に従っている Our universe is dictated by the laws of physics | UTokyo OpenCourseWare
技術的負債とステークホルダと説明責任と / The Debt - Speaker Deck
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「伊達や酔狂に即時的利益を求めたらそりゃ無粋ってもんだよ。伊達も酔狂も一生かけて味わうもんだ。」 / Twitter
ドリヤス工場さんはTwitterを使っています 「映画版に対してテレビ版を「アニメ」と呼ぶ人が増えたのと似たようで似てない話ではあるが、最近は「世界線」という言葉の使われ方が気になる。昔の作品の家電話や公衆電話が出てくるシーンに対し「携帯電話のない世界線」という言い方を見かけて、いやそれは単に過去なだけやんと思うのだが。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「期待値」みたいだよね。「期待」に「値」を付けただけ、みたいに「世界」に「線」を付けただけ、みたいな。本当はそれぞれ意味が違うのに >RT」 / Twitter
no100
過去20年間のテクノロジーの進歩を分析して得られた8つの教訓とは? - GIGAZINE
何人いれば適切なの?:学術知と政策とテクノクラート - Take a Risk:林岳彦の研究メモ

過剰な変更労力

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「便利な rc.local をパージとか、潔癖 or 原理主義による大きなお世話な変更のたぐい、ロートルな私は閉口すること多いなぁ。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「めんどくさくて、なんでも rc.local に書いちゃうクラスタです」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この件に限らず、潔癖/原理主義者は変更労力を惜しまないが、使えれば良い多数派は「消極的反対だけど、抵抗するのもダルい」という立場。 その非対称性によって、前者が現状を侵食する構造は多くの社会事象に見られる気がする。」 / Twitter

間違った情報の拡散

LillianさんはTwitterを使っています 「分かっている人間が悪意で嘘をつくより、間違った理解をした不勉強な人間が情報を拡散しようとするのが、結果としては最も広範囲に害を及ぼすと思ってます。 本人は誠実な態度で、有益な情報を広めたいと思っているので、聞いた人が間違っていることを見抜けずに信じてしまう可能性が高いんですよね。」 / Twitter
mumumuさんはTwitterを使っています 「うぅ…すみません…」 / Twitter
mumumuさんはTwitterを使っています 「自分のことを棚上げすると、若者向けイベントとかで「アウトプットが大事」って主張するときに、同時にこれも説明すべきだと思う」 / Twitter
mumumuさんはTwitterを使っています 「お前は間違った情報をアウトプットしとらんのか?→すみません…」 / Twitter
mumumuさんはTwitterを使っています 「Qiitaのクソ記事を許さない会」 / Twitter

老害

7594591200220899443さんはTwitterを使っています 「たとえばgitを捨てられない人はgitにしがみつくしかなくなるし、そうなったらもはや老害に片足突っ込んだも同じである。今、我々が当たり前のように使っているgithub、newrelic、heroku、それらより良いものに明日、乗り換えられるか?常に新しいものを取り込んでいるか?」 / Twitter
7594591200220899443さんはTwitterを使っています 「若者の足を引っ張る老害がいるのは事実だし対策も必要だが、過去の経験から言うと別にそれは老害自身が手遅れだからかどうかとはあまり関係ないと感じる。立派に成功した人や教育者にも老害はいた。手遅れだけ分断すれば万事解決という立場には与しがたい。」 / Twitter
nishio hirokazuさんはTwitterを使っています 「@shyouhei 「Xした方が良い」は、それですべての問題が解決するという主張ではありません。「Xすれば万事解決」とは主張していないので、与しがたいという意見には同意します。」 / Twitter
7594591200220899443さんはTwitterを使っています 「@nishio はい。まあ若者に近付こうとする大人がそもそも全員ダメという可能性も自分としては感じるので、そういう方向性の主張の一部としてであれば割と納得できます。」 / Twitter
nishio hirokazuさんはTwitterを使っています 「そういう人は若者が成功しそうになると嫉妬して足を引っ張って「俺が助けなければこいつはダメなんだ」という構図を作ろうとするから、若者のことを最優先で考えるならそういう人を近づけてはいけない」 / Twitter
7594591200220899443さんはTwitterを使っています 「環境が違えば俺だってもっといい人生を送れたはずみたいに思ってる人はどうせお前らの人生なんかもう手遅れなんだからそれよりまだ今救えば間に合う若者の人生をどう救っていくかの方を真剣に考えなよ。」 / Twitter
7594591200220899443さんはTwitterを使っています 「むしろ我々だよ。若者が真に警戒すべきなのはさ。過去に他人に足を引っ張られてきた自覚がある我々。そういう経験が目を曇らせるんだ。「自分の経験が他人にも通用すると勘違いする」ってのが老害の構造なわけじゃん。そこ自分でも最近怖いよ。やっちまってないかな?っていうの。」 / Twitter

時代遅れ

7594591200220899443さんはTwitterを使っています 「「まったく同じシステムをPerlやらRubyやらで作るとJavaで作った時の10分の1とかの工数でも余裕で作れる」はさすがに十年前にはすでに鼻で笑われてたような主張で、今更言う人がいる事にそもそも衝撃を受けましたね。」 / Twitter
7594591200220899443さんはTwitterを使っています 「Bruce TateのFrom Java to Rubyが原著2006年とかだもんねえ。まあ十年前にはもう賞味期限切れてたよね。」 / Twitter
7594591200220899443さんはTwitterを使っています 「プログラマーは業務の他にずっと勉強していないと時代に取り残される、のだとしても、別に時代遅れだったからといって即死するわけではないのだなあ。なるほどなあ。」 / Twitter

テレビ

岡田龍太郎/クーロンさんはTwitterを使っています 「チコちゃんに叱られる、で出てくる知識が不正確かどうかは正直あんまり気にならなくて、「知識がないと叱られる」という精神性がものすごく嫌い。」 / Twitter
岡田龍太郎/クーロンさんはTwitterを使っています 「番組のためににわか仕込みで大して重要でもない知識を一つ身につけては、それを知らない人にマウントを取る、という構図、醜すぎるだろと思いますね。」 / Twitter
岡田龍太郎/クーロンさんはTwitterを使っています 「まあでも個人的には「モニタリング」に比べると全然見られる。」 / Twitter

表現者のために、抽象的なことを|山口尚|note
ドキュメントを書くときの「メンタルモデルの原則」 - クックパッド開発者ブログ
【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256 今読んだこの記事良いです。この記事で言う「ブラックボックス化」というのを意識すると,オリジナルのコンセプトにフォーカスできます。 https://t.co/8ZCiSB9QGW」 / Twitter
才能ない人を観察してどうやったらできるようになるか考えてみた|牛尾 剛|note
Shiro KawaiさんはTwitterを使っています 「初期の恐れを乗り越える、Paulが挙げてない手法のひとつがあって、それは「ノルマを自分で決めてしまう」、例えば1日ひとつづつ何か作る、というのをしばらく続けるのは一定の効果があると思う。うまくできなくてもとにかく今日の分を上げないとならない、と言い訳できる。 https://t.co/AB5mfvCc4N」 / Twitter
Early Work
Shiro KawaiさんはTwitterを使っています 「注意点は、ある程度慣れると惰性で量産できる段階に達して、そうなってくると効果が薄れるから、ゴールを設定しなおさないとならない。」 / Twitter
Vさんのツイート: "そういえばこの間「インターネットで作り上げた自分」と「実際の自分」の技術力の差がすごいあって色々辛い人が存在するという話を聞いた。"
Shinya KatoさんはTwitterを使っています: 「最近思うんだけど「目標を達成するためのロードマップを描くために必要な情報を集める」ってだけで十分な成果だよなぁって」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「手順は言語化しやすく検索もしやすい。インターネットで公開されていう記事にコンピューターの分野が多いのは、コンピューターを扱っている人が書き手として多いからだけでなく、コンピューターに関する課題には「手順が分かればなんとかなる」ようなものが多いからかもしれない。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「検索エンジンからの流入という「読み手が能動的に情報を取りに行く世界における記事」の話なので、SNSのような世界における書き手には適用できないか。SNSで多いのは何と言っても時事を含むネタだしな…。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「前々職時代、「このコードなんでこうなってるんだろう意味わからん」と思ってgit blameしたら「なんとかを追加」みたいなコメントしかない超でかビッグバンコミットだったんでよく前任者を恨んだけど、ここ数年、新しいものを作るのが主になった今は気持ちがとてもわかる😰」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「幸いその「ここ数年」に私が書いたコードの大半は私しか触っていないので大きな問題はない😅」 / Twitter
首相官邸さんはTwitterを使っています 「2050年カーボンニュートラルへの挑戦は、日本の新たな成長戦略です。この挑戦を産業構造や経済社会の発展につなげ、経済と環境の好循環を生み出していきたいと思います。 温暖化対策推進本部を開催し、全閣僚に対し、「地球温暖化対策計画」などの見直しを加速するよう指示しました。 https://t.co/YdH3a31Vwt」 / Twitter
Rui UeyamaさんはTwitterを使っています 「ソフトウェアエンジニアリングといっても分野が広いので、僕は検索チームとかではあんまり活躍できなかったわ。小気味よく動くものをチョロっと作るみたいなのは得意だけど、データサイエンスっぽいのはいまいちだし。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「世の中実際、銀の弾丸で勝つんじゃなくて、ほとんどは、やるべきことを全部着実にこなして失敗しなかった人が勝つイメージ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「たまたまだけど CPU にせよ何らかのシステム設計に関してもそうなんじゃないの、というか、コンピュータエンジニアってだいたいアムダールの法則なんてだいっきらいだーーーーー わーーーーーんん」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「機械(データ処理)による判断は画一的で結果に偏りが生じて外れ値となった人間の尊厳が阻害されるというのが1970年代の懸念で、データ保護法につながった。 奥平康弘・戸松秀典「国連事務総長報告書(抄)人権と科学技術の開発」ジュリスト 589号(有斐閣, 1975.6.15)105頁 https://t.co/oTXNOfJ7eM」 / Twitter
Atsushi Oshio / 小塩真司さんはTwitterを使っています 「推薦試験の面接も同じで,受け答えを人間が判断しているだけですよね。その回答と退学に本当に関連があって,そのデータを人間が学習するか機械が学習すれば予測に使えます。人間の場合「こういう受け答えをする受験生は退学するんだよね」みたいな曖昧な直感になり,機械に学習させると確率を出す。」 / Twitter

blog サービス

Crieit - プログラマー、クリエイターが何でも気軽に書けるコミュニティ
Zenn|プログラマーのための情報共有コミュニティ
note ――つくる、つながる、とどける。
DEV Community 👩‍💻👨‍💻
Hashnode: A one-stop platform to start blogging as a developer.
Medium – Get smarter about what matters to you.

企業

JR

やわたじさんはTwitterを使っています 「流石に見に来たわ https://t.co/16Y9asS3gO」 / Twitter
やわたじさんはTwitterを使っています 「WEST EXPRESS銀河一番列車 京都31番入線 https://t.co/nUhJoCxGZG」 / Twitter

人事

Tsuyoshi Ide (井手 剛)さんはTwitterを使っています 「伝統的日本企業で、なぜ博士より、無知で無垢な若者の方が好まれるのか。それは年功序列の社内身分制度を前提にしているから。新入り<先輩、という不等式が成り立たないと秩序が乱れる。この不等式は、ビジネス上の市場価値とは無関係で、会社の村社会の秩序だけから来ている。それが問題。」 / Twitter
Tsuyoshi Ide (井手 剛)さんはTwitterを使っています 「なぜ問題なのか。市場価値より村社会の秩序が優先されるような会社は(国は)、長期的に見て、必ず市場競争に負け、淘汰されるから。それこそ現に日本で起こりつつあること。死にたくなければ、既得権益死守勢力には退場願うしかない。企業はもちろん大学でもそうだよ。」 / Twitter

企業文化

Shinji KonoさんはTwitterを使っています 「この「これも自動化できるのではないか」ってのはTeal的な自律組織の特徴なんだよな。昔の日本な中小企業には普通にあった。破壊した人たちがいるんだよな。 https://t.co/wvJCNarQXe」 / Twitter
業務ハックしてクビにならないために|ふらふら|note
エンジニアに独学を期待するのはもう時代遅れだと思う。 - ヨーロッパで働くIT土方社長のブログ
Shinji KonoさんはTwitterを使っています 「経済止めてまでっていうけど、特に生活必需品には困ってないじゃん。 今までの消費競争とか無意味な仕事や通勤 がおかしかったってことでしょ。」 / Twitter
ところてんさんはTwitterを使っています 「結局のところ、DXがわけわからん概念になっているのは、 経産省が2025年の崖レポートで、日本固有の問題をDXの一部だとしてしまったがために、グローバルにおけるDXの定義と、日本のDXの定義がズレてしまっていることにある なので、これを紐解いてあげると簡単な概念になる https://t.co/LyrKVA70bN https://t.co/MJfEGFN8J3」 / Twitter
きしもとさんはTwitterを使っています 「ここから導き出される結論は、「IT業界」とはソフトウェア科学的な判断とは遊離した謎の予言だけをしてその予言の後始末さえしていないらしい、どこかにあるらしい謎の業界のことを指すらしい、ってことですよね」 / Twitter
備玉(36.7℃)さんはTwitterを使っています 「15年前にIT業界で言われてたこと ・開発はGUIベースになりコードは無くなりプログラマは不要になる 10年前にIT業界で言われてたこと ・ITはアジアにオフショアされ国内のプログラマは不要になる 5年前にIT業界で言われてたこと ・AIがコードを書くのでプログラマは不要になる」 / Twitter
成瀬さんはTwitterを使っています 「「プログラマ不要!」ってのをひっくり返すと「プログラマは不足してない!」になるわけですが、そう捉えるとΣプロジェクトの「1990年代にはプログラマが60万人不足する!」を思い出しますね」 / Twitter

CTO

Keiji ARIYAMAさんはTwitterを使っています 「日本CTO協会の件、業界として政治に関わろうとする姿勢はとても良いと思うので、ぼくは今回の取り組みを応援しています。 また、この業界は、誰かの初手がイマイチだった時に厳しく当たりすぎるきらいがあるのは本当に改善した方がいい(Remember COCOA)と思っている。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「話題の提言をなんとなく読み始めたんだけど、「ITサービスで最初から完璧は不可能だからまずは最低限のベータ版を素早く利用者に届ける」という前提と、「技術的負債を生み出さぬようにしなければならない」とう話は、最近になった再発見された「技術的負債」という語の本来の含意にあっていないのでは」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「最初から全部はできないけどまずはリリースするために後で返せるところは負債にしておいて後でちゃんと返せばいい、というのが技術的負債だったはず。それを可能にするのは失敗を許容できる態度であり、透明性が必要なのもそれを可能にするため。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「次の「ソフトウェアファーストな法整備」の項目にある「要求仕様のリファクタリング」という表現も地味に引っかかりがある。法令を要求仕様としたら、これにはテストが書けないので、リファクタリングではなく単なる見直しであるはず。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「このへんのふわっとした用語は、かっちりした文書ではかっちりと使ったほうがいいです。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「少なくとも技術的負債とリファクタリングという専門用語の使い方が間違っているのでは、という指摘は置いておいて、おそらくCTO協会からの提言としてユニークな点は「デジタル庁長官にCTO人材を」にあると読みました。でもこれむしろ「CTO的な役割を置け」なんじゃないかなあ。https://t.co/aEPf70ubNw」 / Twitter
デジタル庁の創設に向けた提言 | 一般社団法人 日本CTO協会

独禁法訴訟

イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「Googleは独禁法に違反しているのか?という問題の本質を詳細に解説するとこうなる https://t.co/9BgKVa3TG7」 / Twitter
Googleは独禁法に違反しているのか?という問題の本質を詳細に解説するとこうなる - GIGAZINE
イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「"Googleは検索エンジンとしてデフォルトの位置を守り、取引先が競業他社と契約することを防ぐために、毎年、Apple、LG、Motorola、Samsungなどの人気のあるデバイスメーカーを含むディストリビューターや、(略)そしてMozilla、Opera、UCWebなどのブラウザ開発者に数十億ドル(数千億円)を支払います"」 / Twitter
イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「この訴訟、意図に反してMozillaを潰しそう…という気がしてきた」 / Twitter
一ノ瀬 いろはさんはTwitterを使っています 「@syuu1228 未だに大きな収入源ですしねぇ。」 / Twitter

買収その後

デジタルライブラリーのScribd、SlideShareをLinkedInから買収 - ZDNet Japan
Welcome SlideShare to the Scribd community — Scribd Blog
Microsoftが延命したYammerの今後は(上) - Microsoftが延命したYammerの今後は:CIO Magazine
Microsoftが延命したYammerの今後は(下) - Microsoftが延命したYammerの今後は:CIO Magazine
【2018年6月版】プレゼンテーション共有サービス『Speaker Deck』の使い方 - 八雲文庫ブログ
Fewer and Faster - Measure, Improve and Repeat

伊津野 英克さんはTwitterを使っています 「アジャイルソフトウェア宣言にはすごく同意するんだけど、結局、要件や仕様を決めるというソフトウェア開発の外部性が無視されている、あるいはそこに情熱がある人がいるという前提が抜けてんだろうね。」 / Twitter
伊津野 英克さんはTwitterを使っています 「大規模業務システムのPMだとプロジェクト終わるまで実際の画面を触ってみたことない人もいるし、それは客側も同様。」 / Twitter

教育・学習・スキル

体系化するスキル

nishio hirokazuさんはTwitterを使っています 「これ重要なポイントで「体系的に学びたい」って言う人「誰かが体系化したものを鵜呑みにしたい」って言ってるも同然で、それで学んだ気になっても新しいものを体系化するスキルはまったく身についてない」 / Twitter
徳丸 浩さんはTwitterを使っています 「…一方、かつて上野宣(@sen_u)から、「なぜ徳丸は徳丸本が書けたのか」と質問されたことがあったのだけど、その時は答えられなかったけど、たぶん「徳丸が効率の悪い勉強法をし続けたので、自力で体系化する力が備わったから」ではないかと思う。当時ウェブセキュリティは体系化されていなかった…」 / Twitter
徳丸 浩さんはTwitterを使っています 「…なので、「効率の良い学習法」を聞かれたら、「それは大学のしかるべき学科に行って勉強してください。それ以上の方法はない」と答えます。いろいろな事情でそれができない場合は、たぶんの一つの答えはなくて、目標やら使える資源ならで変わりますね。漠然と質問されても答えられない。」 / Twitter
nishio hirokazuさんはTwitterを使っています 「短期的に見ると効率が良く見えるが、それは「体系化するスキル」を習得するためのコストを支払ってないから支払いコストが安く見えるだけである」 / Twitter

プログラミング教育

S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「プログラミング教育は数学に含めたほうが良い,は少なくとも数十年前からよくある意見で,実際に日本の高校数学教科書や,確かセンター試験数学にも含まれていた時期がありますが,日本の教育現場では残念ながらほぼ絶滅(?)したような.」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「絶滅」(?)した原因はいろいろあるかもしれませんが,やっぱり「数学とCS・プログラミングは共通部分も空ではないけど包含関係にはない」で,その包含されない部分の中核が「手続き」という理解.「計算」量とか,「計算手続き」の記述たる「プログラミング言語」とか.」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/JTdGG3lCfy」 / Twitter
高等学校共通教科情報科の大学入学共通テストでの実施に関する意見-情報処理学会
大学入学共通テストへの「情報」の出題について-情報処理学会
大学入学共通テストにおける教科「情報」の出題について | JSET NEWS | 日本教育工学会(JSET)
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@awellbottom https://t.co/bPYg7qbZmz とか https://t.co/IgLtwhathh とか https://t.co/i3p7Vr6kun とか声明が出ていますよね.」 / Twitter
原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii 僕はプログラミングの数学以外の部分こそがコンピュータの大衆化のキモだと思ってます.たとえば,HTMLを守らないで解像度固定でWebを作ったり,神EXCELだったり.こっちをCS側はもっと真面目にとりくむべきで,それがviscuitの立場です.」 / Twitter
原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii なので「プログラミング的思考」だとその側面が欠けているので,僕は「表現としてのプログラミング」も大事だと言ってます.それがいま小学校でビスケットがいろんな授業で使われている理由です.」 / Twitter
原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii 表現の立場から見たときに,うちの渡辺さんは,いま執筆中の学位論文で,先生方の「手になじむ」という言い方をしています. https://t.co/N5vczA1Fyq」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@viscuit ありがとうございます.そういう部分も「プログラミング的思考」(≠「数学」)から排除されているものではないと思いますが,芸術表現等としての側面も確かに重要ですね!」 / Twitter
Genichi KataokaさんはTwitterを使っています 「ITリテラシーって、「今知っている」ことより、見たこともないものも忌避せず使ってみるとか、知らないこともとりあえず調べてわかった範囲でやってみるとか、そういう姿勢のほうがずっと大切なんだな、ということを最近実感している。」 / Twitter

教育

ジロウさんはTwitterを使っています 「性にしても姓にしても、「自分の信じる価値観以外の価値観もOKになる」こと自体が耐えがたいストレスになる人がわりと多くて、自由や多様性そのものが人間にとってストレスをかける(不安にする)ということをスルーしていると、なかなかこれ以上前には進まないんじゃないかという気もしている。」 / Twitter
勝川 俊雄さんはTwitterを使っています 「リスクはゼロでも無限大でもないということや、様々なリスクが存在し、それらは往々にしてトレードオフの関係にあるということを理解できない人が多いですね。これは教育の失敗なので、リスク管理の考え方を学ぶ機会を作るべきと思います。」 / Twitter
ytbさんはTwitterを使っています 「よく「学校で論理学を教えないから学生は論理的思考ができない」と言う人がいますが、論理学は人に論理的思考法を教える学問ではありません。論理的思考法そのものは論理学以外でも身につきます。 何をすれば「論理的思考」と言われるものをしたことになるのか、その条件を問うところです。」 / Twitter
koji_nijikoさんはTwitterを使っています 「@ytb_at_twt @TigerSophia61 クリティカルシンキングってひと頃流行りましたが、何のことか説明できるひとは?と。」 / Twitter
HBさんはTwitterを使っています 「@ytb_at_twt 教えるんやったらコンサルが使ってるような「思考のフレームワーク」使った方がいいやろな。」 / Twitter

IPA

hsjoihsさんはTwitterを使っています 「あー、そういう経緯で問題発生時に解決を図るための仕組みが2020年度は増えていたのですね。納得です」 / Twitter
hsjoihsさんはTwitterを使っています 「2020年度に参加したとき「2018年度には影も形も存在しなかったやたら気合い入ったハラスメント通報システムが構築されてるな。問題発生時に解決を図る仕組みが整備されているのはとても素晴らしいことだけど、わざわざここまでしっかりやるということは何らかの前例あったのでは」とは実際少々思ってた」 / Twitter
hikaliumさんはTwitterを使っています 「この件、正確に書いておくと、昨年の話ではなく、2019年の話です。(従って、昨年からシステムソフトウエア自作トラックのプロデューサーを担当されている @uchan_nos 氏は本件とは関係ありませんし、現在はこのような問題が発生した際にスムーズに対応できるよう仕組みが整備されています。念の為。)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「某キャンでCコンパイラゼミがなくなったのは、講師の上下関係(というほどのものは本来ないはずだが)でひどいイジメというか精神的追い込みがあったからですね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「子供(大学生含む)にはニコニコしてるとか、自分を師と仰ぐひとたちには慕われているみたいなのと、自分の下の人間(みたいな階層はないはずだけど)が少しでも気に食わないことをすると、ブラック企業の理不尽上司かというレベルで執拗に追い込むみたいな二面性って両立するんですねぇ・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「全員にとってあまりにも意外だったので対処がグダグダで、結局運営の方々には真剣に対処してもらえたとは思うけど、成り行き上さすがに続けるのが無理なのは仕方がないと思うのでご理解ください。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「この時期の某キャンの自分の周辺では「自分は応募倍率しか評価しません。中身は関係ありません。とにかく応募者を集めてください」と、営業マンの成績表みたいなものが掲示板に貼られて、繰り返し発破をかけられた講師がダービーさせられてたんだよな。ここらへんでやばさに気づくべきであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「応募してくれるひとのこともバカにしている話である(が、そういうことをいった人がめちゃくちゃ反撃されているのとかを見ると、まあ何か言うのは難しい)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「そもそも応募者集めは講師の仕事ではないし、広報にはそりゃ協力するけど、「倍率が低いですよ! 来年から首にするかもしれませんよ! 真剣にやってください!!」みたいに詰められたりするのはほんと何って感じだし・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「他にもひたすら個人攻撃をして、私はあなたのためを思って、私が言っていることをあなたがやるまでまで私は叩き続けます、みたいなことをやったり・・って、なんというか今から思うとほんと意味不明で、これを読んでる人もこのスレの意味よくわからんな・・となっているんでしょうけど・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「念の為に言っておくと、そういうハラスメントをする人はごく一部で、管理体制の穴になっていたみたいですが、その後体制も改善されたようですので、今は理不尽な扱いを受けたときにはちゃんと対処してもらえると思います。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「ちゃんと対処してもらえない場合は、理不尽さには勝てないので、正そうとせずにさっさと逃げたほうがいいですね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「某キャンではないな、セキュリティ・キャンプですね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「「授業の内容も応募の内容も私は一切評価しません、応募倍率のみを評価します」と言われて、さすがにそれは本末転倒ではと言うと面罵される、みたいな意味不明なことをされていた。やっぱり改めて考えてみても完全におかしいよな・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「セキュキャンの話は2019年の話で、現役で教えている方(特に内田さん)は無関係(単に問題の人のツリーに属していない)か、むしろ被害を被ったほうですので、誤解なきよう・・(普通に内田さんは人格者です)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なぜ2年前のことを書いているかと言うと、また募集の時期がきて、何回も人格否定されていたのがフラッシュバックしたのと、なぜ悪意を持って人を攻撃する人が放置されてみんなが叩かれ続けなければならなかったのかという気持ちがこみ上げてきたからですね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「こういうことはあんまり書かないようにしていたのだけど、まあついに書いてしまったな。しかしその後運営も改善されたようですし、あんまり生産的でもないと思いますので、これくらいにします。」 / Twitter
セキュリティ・キャンプ全国大会2018 プログラム:IPA 独立行政法人 情報処理推進機構
セキュリティ・キャンプ全国大会2019 プログラム:IPA 独立行政法人 情報処理推進機構
セキュリティ・キャンプ全国大会2020オンライン プログラム:IPA 独立行政法人 情報処理推進機構
セキュリティ・キャンプ全国大会2021 オンライン プログラム:IPA 独立行政法人 情報処理推進機構
Miura HidekiさんはTwitterを使っています 「いわゆる外面がいいって奴ですよね。凄くいっぱいいますよ(うちの親父もそうだった)」 / Twitter
Miura HidekiさんはTwitterを使っています 「身近に外面がいい人物がいたため、いくら社会的に評価が高くても、それだけでは完全な善人だとは思えなくなった。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 そもそもの「善人」「悪人」って基準は主観ですからね。「万人に対して善人」という行為自体も客観的には定義できない可能性すらあったり。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki 私の親父は大体誰に言わせてもいい人だったという評価を聞きます。相当ストレスがたまっていたんでしょうね。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 DV方面で話に聞くようなパターンですね...。うちの父はたぶん敵は作っているので外面が良いタイプではないです。商業的サービスの客として横柄だったりしますので :)」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki DVとかは無かったですけどね。店とかでもよい客でした」 / Twitter
hikaliumさんはTwitterを使っています 「セキュキャンのハラスメント防止宣言とCode of Conductが協議会のページで公開されたみたい。きちんと仕組みが整備されて、さらに外部に向けてもその内容が公開されたのは素直に良いことだと思う。(もちろん、これを実際にちゃんと回していく必要はあるけれどね。) #seccamp https://t.co/jBiQh7u9ko」 / Twitter
セキュリティ・キャンプ協議会

評価基準

Miura HidekiさんはTwitterを使っています 「学校って多様性とか個性とか言いつつ、きっちり全順序の評価基準を設定しているよね。社会もそうだけど」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 シリアライズしないと処理しきれないだけかと。ベストチームを編成する、みたいな場合にはシリアライズでうまくいかないってのは予想はつくけど組み合わせは爆発するから...」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki シリアライズして順位を付けてその順位で態度を変えるのは 処理しきれないに入りますか?」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 態度を変えるってのはまた別の問題で、そういう人は明確な順位つけなくとも理由をつけて態度変えるんじゃないでしょうか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki たしかにそんな気がする」 / Twitter

裾野の涵養

おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「ドローンにしても半導体にしても、その他の技術的な諸々ほとんど全ての「日本製」にロクなものがないんだよ。 それは、「裾野の涵養」を怠った結果だ。「○○については××研究所がやってる」じゃねーんだよ。それでは足りないんだよ。全てのことに「裾野の涵養」が足りてないんだよ。」 / Twitter
おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「技術なんてのは、「世界的先端的研究所が1つある」ことより「その辺のガキが遊戯として遊んでる」ことの方が「未来」があるんだよ。「毎年××の大会があってママ達の目の色が変わってる」とかさ。 そーゆーのが「裾野の涵養」だよ。」 / Twitter
おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「ガキの興味を育み、そのための環境を整える。 これがおっさんどもの責務だと思う。 そして、女の子にも「女だてらに」とか否定しないこと。やりたい子にはやらせる。 日本の未来を心配するなら、こういったことを意識すべし。」 / Twitter
Chuck TimberさんはTwitterを使っています 「半導体は,このあいだ経産省のなんとか課の課長が来て話してたけど,いまやってる研究所のアイテムを拾ってカタログにしてるだけだった.お金も2000億円つけるとかいってたけど,桁違いで足りない. まず先に,初ラ や ラ製 や EL が普通にある世の中に戻さないと.」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「目に浮かぶ…orz」 / Twitter
もなかさんはTwitterを使っています 「「死に体の半導体業界ニッポン2021」とくに「ハンパにスジが悪い施策しか投入できず業界を凋落に導いた経産省」に 「裾野が大事!」 とかいうとなぁ…。 \国産 Raspberry Pi を GIGA スクールの目玉に/ とか言い出しかねないのでなぁ…。」 / Twitter
もなかさんはTwitterを使っています 「そしてそれに乗ってくる国産半導体業界の姿も見えるのでなぁ…。圧倒的に出遅れた Arduino 互換ボードとかな…。(実名は挙げない)」 / Twitter

競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - chokudaiのブログ
songmuさんはTwitterを使っています 「基本情報、MTTRとMTBF、RDBの正規化、OSI参照モデル、計算量、2進法とビット演算、などが網羅されてるので、何気にお得なのでは?」 / Twitter
monaqaさんはTwitterを使っています 「これはいつも思ってるんですけど、科学的なリテラシーってのは「与えられた記事の真偽をすぐ見抜ける」ことじゃないんですよね。「与えられた記事が科学的に価値ある情報を含んでいるか判断できる」ことなんです。前者を目指そうとしてる人がいたらそれは筋が悪くて、本当に目指すべきは後者なんですよ」 / Twitter
出来るプログラマーやエンジニアの方でも「何をやっているか分からない」「何が分からないか分からない」状態に陥りますか?その時は、どの様にして対処・解決しますか?に対するYuki Sonodaさんの回答 - Quora

研究・論文

科学の発展

Shinji KonoさんはTwitterを使っています 「間違いを正していくのが科学なのに間違ってる論文を撤回してしまったらダングリングポインタになると思うんだが。解法よりも問題提議の方が発展性があり重要なので、間違ってるというより問題提議した論文というのが良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「科学ってのは正しいものの積み重ねて単調増加していくようなものとは違う。互いに相容れない理論が同時に進んでいく。」 / Twitter
Shinji KonoさんはTwitterを使っています 「矛盾からはなんでも出るのだが、矛盾を含む理論でも、矛盾のない部分を切り出すことができる。それを見つけるのは難しい。集合論でも矛盾を突きつけたカントルに対する風当たりはかなり強かった。ラッセルはうまく立ち回ったのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「科学は疑うからこそ科学なのであって、信じてる科学者は科学者じゃない。否定を信じるのもあり得ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「科学技術系では再発見ってのがあるので、昔あるってだけで研究をやめるのは良くない。今と昔ではパラメーターが違う。そういう風に昔の論文から今のが研究のアイデアを探すのも可。」 / Twitter
jicchoさんはTwitterを使っています 「「でもテストとは違って、研究には正解がない。 失敗を積み重ねて、少しでも良い答えを見つけていくしかない。 だからうまくいかなかったとしても、そのぶん研究は進むから良いのだ。」 試行錯誤の結果、うまくいかなくても、そのぶん研究は進んでいるんだよね。 最近やっと分かってきたような気がする」 / Twitter
森野キートスさんはTwitterを使っています 「研究で失敗するのが怖い - いつか博士になる人へ https://t.co/bdhQlW7oQu」 / Twitter
研究で失敗するのが怖い - いつか博士になる人へ
Tsuyoshi MiyakawaさんはTwitterを使っています 「知らなかったのですが、電気が発見(?)される前まで、ロウソクの改良のための改善に多額の投資がなされていたそうです。日本の科学への投資の現状というのは、まさに「ロウソクの改良」を目指している感じではないかと。 「ロウソクの改良」 使えるフレーズですね。」 / Twitter
Tsuyoshi MiyakawaさんはTwitterを使っています 「「科学の歴史をいろいろと詳しく調べてみると、実は、私たちの生活を本当に変えた大発見の大部分は、その問題を解決しようとしている人たちによって成し遂げられたものではない、ということがわかります。」」 / Twitter

誰もやっていないところをやる

須山敦志 Suyama AtsushiさんはTwitterを使っています 「大隅先生「みんながやっていると怖くない,というのが科学にも入ってきている」 #役に立たない科学が役に立つ」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「誰もやっていないところをやる」ではなく「価値が認められるとわかっている部分を誰よりも先にやる」の傾向が強かったのは何となく学生時代にも感じていた... 僕は科学者じゃないですが,「自分がやらなくてもどうせ成熟するだろう」と思う仕事には手を出さないようにしよう.」 / Twitter

バンディットの理論

加藤さんはTwitterを使っています 「そこに指導教官らしき人物の「正直であるならば,我々の手法よりももっと簡単に実装できて,性能も良いアルゴリズムがあることを言うべきだが」的なコメントもあって,さらに闇を感じた. https://t.co/xeqR6piSbL」 / Twitter
加藤さんはTwitterを使っています 「バンディットの理論でもっとも重視されている論文のとある一本(2016年から300引用されている),arXivからそのlatexコードを落としてみたら,コメントアウトされた実験結果があって,その結果を見ると提案手法がむちゃくちゃ悪くて,闇を感じた.」 / Twitter
加藤さんはTwitterを使っています 「その論文の手法を拡張した研究も,ICMLやNeurIPSに何本も通っているのだけれど,全て実験が怪しいことになるかもしれない.」 / Twitter

Shinji KonoさんはTwitterを使っています 「少しでも新しい問題が出ると手も足も出ない。そうならないような授業をしてるつもりだが、そこを突破できるのは1/10くらいな感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「授業中でも、わざと自分の知らない部分に突っ込んでいくのが好きなのはそういう狙いもあるけど、自分が面白がってやってるだけでもある。そこで行き詰まったりしてるのを心良く思わない学生もいるだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「基礎からやるってのが間違ってる。それでは目標がない。最初にボスに当たって、それから必要な基礎をやるんだよ。基礎は無限にあるから優先順位がないと死ぬ。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 新規性は,闇雲に追求しても着想できるものではありません。先行研究を踏まえて,それで出来ていないことをあげていきます。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 新しく作るのはコンセプトやテーマが決まってからですね。」 / Twitter
Sho YokoiさんはTwitterを使っています 「専門に近い話題ほど、普通の人よりずっと正確な知識を持っているはずなのに「迂闊なことは言えないぞ」感が増し、公の場で書けなくなる。一方で専門から離れた話題では経験と直観に任せて「俺の思い」を綴れてしまう(教育とか心理とかね)。…そしてインターネットには今日も床屋政談が溢れる。」 / Twitter
Sho YokoiさんはTwitterを使っています 「病状が一歩進むと、ただの雑談であっても「この単語はどこかの世界ではテクニカル・タームなのでは?用法は問題ないだろうか?」などと疑いはじめ、ツイートの負荷はぐんぐん増加し、ついには駄洒落を言うか「にゃーん」とつぶやくだけのアカウントが爆誕する。」 / Twitter
なんで論文なんか書くのか - いつか博士になる人へ
森野キートスさんはTwitterを使っています 「研究の進捗報告で意識するといいこと ・やったことを説明する前に、何が知りたくてやったのか言う ・方法の説明は、有名な方法との違いを言うとわかりやすいし勉強になる ・結果を説明する前に、どんな結果になると予想してたか言う ・データを見せたら、その解釈を言う」 / Twitter
森野キートスさんはTwitterを使っています 「研究をどこまででまとめるか、最後は自分で決めるしかない。10年後また読んだときに、自分で恥ずかしくない論文が書けたらそれでいいと思う。学生のうちにいろんな人の論文を読むといい。ここが好きとか嫌いとか思うのがいい。自分の判断基準を作るのが大事だと思う」 / Twitter
jicchoさんはTwitterを使っています 「論文投稿した直後に論文整理するの結構いいかもしれないな」 / Twitter
森野キートスさんはTwitterを使っています 「卒業研究は不安になるのが普通だと思う。初めてやるわけだし。うまくいかないのも普通。簡単にうまくいくなら研究する意味があまりない。自分は何もわかってないとか、もっと勉強しないと、とか思ったら、卒研はほぼ成功してると思う。自分が知らないことや知るべきことがわかるほど学んだということ」 / Twitter
文化勲章を受章した私が、83歳になっても研究を楽しめる理由(甘利 俊一) | ブルーバックス | 講談社(1/2)
岩田健太郎 Kentaro IwataさんはTwitterを使っています 「独学には独学の価値があります。が、独学には陥穽が多いのもまた事実。それは知識の多寡の問題ではありません。例外はありますが、独学者は意欲に優れ、自信家で(自信がなければ独学なんてしません)、勤勉で勉強熱心だったりします。問題は「知っていること」ではなく「知らないことを知らないこと」」 / Twitter
競争的研究費における各種事務手続き等に係る統一ルールについて - toitsu_rule_r30305.pdf
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そしてその製薬メーカーさんの技術力の凄さは、そんな有象無象の論文から重要な知見を取り出して実際に製薬に応用することができるところ。研究のビジネス応用は、論文を書く研究者だけの問題ではないということ。 https://t.co/d9JN80tFz1」 / Twitter
理系の人が研究室や実験、といいますが、そこらの学生がやる意味があるんですか?二流三流大学の研究とは、すでに発表されていることの単なる確認やトレースではないのですか?に対する藤巻 充 (Mitsuru Fujimaki)さんの回答 - Quora
るくすさんはTwitterを使っています 「大学院時代、イノベーションの研究って何(笑)つってクソ馬鹿にしてたけど今になって割とまともな講義してたんだなって思い始めました ごめんな()」 / Twitter
CLINAMEN @cosmologyさんはTwitterを使っています 「研究,脊髄反射的な思いつき程度でこうなりそうって思ったことって,とっくの昔に誰かがやり終えてるか,そもそも思い違いのどっちかだな.ここをどう乗り越えていくかが第一のハードルっぽい.あまり焦らずじっくりいくか.ここさえ越えられれば自力で成果出せるようになるのだしな.」 / Twitter
ここ最近の計算社会科学の動向 - Sansan Builders Blog
おしぼりさんはTwitterを使っています 「論文を読んでいるとググるだけじゃ見つけにくい情報がかなり見つかるのだけど、なぜこれをまとめたりする人がいないのだろう。著作権とかの問題があるのかな。」 / Twitter
mumumuさんはTwitterを使っています 「@oshiborii モチベーションの問題ではないですかね?論文は出版物として評価されるし,ある程度信頼できる著作物として扱われますが,個人ブログは仮に有益であっても,業績にはカウントされにくいので... 個人のメモはともかく,時間をかけて調べたなら,せっかくなら業績にしたいという気持ちも理解できます.」 / Twitter
Hideshi KagawaさんはTwitterを使っています 「「基礎研究は役に立たない」というのがよくわかんないのですが、我々応用研究開発しかしてないので、なにかあると基礎研究者のところへ教えを請いに行くわけで、聞きに行くところがあって良かった。日本って凄いな。と毎回思います。基礎研究は宇宙に役に立っていると積極的な発言が重要です。」 / Twitter
norioさんはTwitterを使っています 「そもそも、論文書いてなくても、大学とか出て無くても 立派な研究をしてる人は一杯いる。 それを分かってない人が、あまりにも多過ぎなんですよ 肩書しか信用してない。 本当は言いたくないけど、 つまり肩書でしか判断出来ないアホしかいない」 / Twitter
【悲報】尾身会長をディスった茂木健一郎、「Google scholar」で論文を検索され実績がバレる | まとめまとめ
Akinori ItoさんはTwitterを使っています 「その昔は夜中まで教授が激詰めゼミをやったりすることがままあったが、どうしてそんなに暇だったのか いまは半日もゼミやってる暇ないよ」 / Twitter
Miura HidekiさんはTwitterを使っています 「深夜12時から始まるゼミは激詰めゼミなんだろうか?JAISTで結構あった記憶がある」 / Twitter

OSS

Code of Conduct

Kazuho OkuさんはTwitterを使っています 「えっそうなのかな。今のやつはだいたい 2014 年頃からのカンファレンスでの問題に由来する系のものだと思ってた cf. https://t.co/5PG6H3a4iQ」 / Twitter
The New Normal: Codes of Conduct in 2015 and Beyond by Coraline Ada Ehmke | Model View Culture
Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「今では割とみかけるCode of Conductってのは、オープンソースの世界ではUbuntuが元祖なのだろうと思う。まあ、他にもあったのかもしれないが、2006年あたりの当時、Debianという世界でのフレームがあまりにひどい状態になって、そこへ救世主のようにやってきたので一気に受け入れられたのだろう。」 / Twitter

Shuji SadoさんはTwitterを使っています 「俺オープンソースの話題が出ると思うことだが、単に定義があるので正しく使おう、ということではなく、当時の有力開発者、著名人(RMS除く)が揃って今後はオープンソースという新語を使っていくと宣言したプロセスを踏まえてほしいなと思う。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「オープンソースという概念が最初にあってOSIが出来たのではなくて、ソースコードの共有文化が最初にあり、それを開発者ごとロックインしたプロプライエタリソフトウェアが発生し、これに対抗するためのフリーソフトウェア活動が生まれ、」 / Twitter
https://twitter.com/mhiramat/status/1301686434382766080
History of the OSI | Open Source Initiative
https://twitter.com/mhiramat/status/1301690040855089152
Free and open-source software - Wikipedia
ママレモンサワーさんはTwitterを使っています 「オープンソースの定義がどうこうの話時々聞くけどあれでどうにかなるのは著作権の話で、それとは別にパテントの問題が出てくるよね?」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「あの商標登録は「誰かがオープンソースという名称で登録して、この言葉を独占的に使おうとするアクションを起こされないように」という予防的な目的のみで行われているはずで、「オープンソース」という言葉の定義に権威を与える目的ではないはずだし、そもそもそんな機能は商標にはない。」 / Twitter
https://twitter.com/kazuho/status/1302547623803379712
https://twitter.com/kazuho/status/1302548910095777794
https://twitter.com/kazuho/status/1302550762078105600
https://twitter.com/kazuho/status/1302551524971696129
https://twitter.com/kazuho/status/1302556326078234630
https://twitter.com/kazuho/status/1302556975658487809
https://twitter.com/n_soda/status/1302558887002873856
Open Source Certification:Press Releases | Open Source Initiative
私とOSSの25年
Kazuho OkuさんはTwitterを使っています 「そうそう。改変の自由であって、改変をレビューしてもらう権利でもマージしてもらう権利でもないという」 / Twitter
徳永広夢さんはTwitterを使っています 「OSS は fork どんどんできるのが醍醐味なのに~」 / Twitter

IT

セキュリティ

ドコモ口座問題 - OAuth.jp
MiyahanさんはTwitterを使っています 「大企業でありがちな「面倒になるだけで効果がほぼ無い(どころかむしろ悪化する」セキュリティ施策を海外では "security theater" (劇場型セキュリティ)と呼ぶと知りセンスあるなぁと関心している。 日本語の "セキュリティごっこ" も極めて的を射ているが毒が強すぎて当事者への説得に使えないのが難」 / Twitter

システム障害

「絶対落ちないシステムを作れ」という要件に、開発者たちはどう対応したのか。東証arrowheadの当事者が語る - Publickey
東証、障害の原因を特定 設定値に不備、切り替え失敗 - ITmedia ビジネスオンライン
品川 高廣さんはTwitterを使っています 「東証のシステム障害の原因が設定ミスと聞いて、ああよくあることだねとしか言えない。https://t.co/sKKKoWe2ro」 / Twitter
An empirical study on configuration errors in commercial and open source systems | Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles
hrk先生さんはTwitterを使っています 「@utshina2 問題は、各パーツは品質が良いので多様な故障発生状況をあらかじめテストすることができないことと思います。故障解析で、通ってないパスが沢山あるのじゃないかな? 故障率が10000倍高いメモリとかストレージとかプロセッサチップが出来れば貢献するのかな?」 / Twitter
品川 高廣さんはTwitterを使っています 「@Prof_hrk 最近は software fault injection でソフトウェア的に擬似的な故障を発生させてエラー処理を検証する研究も幾つかなされていますね。手前味噌ながら、我々も BitVisor で実ハードウェア環境で疑似故障を挿入する研究をやっていました。https://t.co/yEaP5w4OXW https://t.co/u2AycsJCkf」 / Twitter
Testing device drivers against hardware failures in real environments | Proceedings of the 31st Annual ACM Symposium on Applied Computing
FaultVisor2: Testing Hypervisor Device Drivers Against Real Hardware Failures - IEEE Conference Publication
hrk先生さんはTwitterを使っています 「@utshina2 それは知っているのですが、ソフトウェアは知っている壊れ方しか再現・擬似実現しないというところに限界があると思っています。 プロセッサ設計でも、ここが危ないと思ったところには普通バグが入らないです。」 / Twitter
品川 高廣さんはTwitterを使っています 「@Prof_hrk メモリの壊れ方を調べた empirical study はあるようですが(https://t.co/fwGYHNBfW8 等)、プロセッサの壊れ方を調べた論文はざっと見た限りはあまり見つからないですね。普通はあまり壊れなさそうな気がしますが、どんな壊れ方をするんでしょうか?」 / Twitter
dsn07.dvi - hotdep2007.pdf
(1) hrk先生さんはTwitterを使っています 「@utshina2 一番あるのは浮動小数点が温度や電圧の都合で値化けすること。次はPCIE等のI/Fかな?マザーボードによっては同じく温度・電圧でご機嫌がでそう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味深い。 同じCPU内で、整数演算系に比べて、浮動小数点が選択的に弱いとしたら、理由は何だろう?? (答えまでのパスが長くて、エラー検査間隔が長いとか?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、科学技術計算(スパコンとAI?)とそれ以外(Web、金融、DB、業務系)では、前者が浮動小数点演算メイン、後者は整数演算メインという違いあると予想。 それが割当トランジスタ数と、実行時の処理割合にも反映して、確率的に前者なら浮動小数点エラー増え気味、とかはありそう?」 / Twitter
東京証券取引所様の株式売買システム「arrowhead」で発生した障害の原因と対策について : 富士通
Shinji KonoさんはTwitterを使っています 「切り替えというけど、切り替わる条件は無数にあるので全部をテストするには、モデル検査するしかない。本番環境でのモデル検査は普通は不可能。この規模だと二系統は用意しないだろうし。」 / Twitter
10月1日に株式売買システムで発生した障害について | 日本取引所グループ

システムは自然と壊れる

ところてんさんはTwitterを使っています 「企業の幹部向け研修用に、「ITシステムはなぜ『自然と壊れる』のか」というのを書かねばならん気がしてきたが、なんかいい資料ないかな…… - 外部環境の変化 - 脆弱性対応 - DBの肥大化、ディスク・メモリ容量不足 - 新規のコードの追加 - ハードウェア本体の故障 - ネットワークの故障 etc...」 / Twitter
ところてんさんはTwitterを使っています 「2000年問題、2038年問題は分かりやすいので入れるとして、あとどーすっかなぁ OSのサポート切れ、開発言語のサポート切れ、あたりは入れるとして」 / Twitter
靴屋のスミスさんはTwitterを使っています 「@tokoroten 「サポートが切れるから」使えない、使ってはいけない、というのは、システムが自然崩壊する現象への対策が行えなくなるという、謂わば二次的な理由なので、システムが自然崩壊するのはなぜか、の理由の一覧に並列で記載しないよう、お願い申し上げたくござります。」 / Twitter

進捗・インクリメンタルな開発

Yasunori GotoさんはTwitterを使っています 「あー… なんか似てるかも…。 テレワークになってから特に…。」 / Twitter
ymmtさんはTwitterを使っています 「@satoru_takeuchi 1. こまめにアウトプットする。 2. 集中しないのがデフォルトだと割り切って焦らない。 なにがしかやってればそのうち興がのるタイミングがあって、そのとき大きく進捗します。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「私も,小さく試す,本格的に作る前にプロトタイピングするということをしょっちゅうしています。幼少の頃,レゴブロックで色々試行錯誤していたのと,小学校・中学校でプログラミングにて散々ハマりまくったので,自然とその習慣が身についたんだと思います。 https://t.co/O0okFVJ2gy」 / Twitter
ついに達人がハマらない原因を見つけたかもしれない話|牛尾 剛|note
7594591200220899443さんはTwitterを使っています 「これだけは言っておかねばと思うのだけれど、右と左は別に品質面で差が出るような違いではない。ウォーターフォールが失敗した時には低品質の物が期限通りに出てくると思うべからず。そうなった時には期限日には何も出てこないのが実情である。」 / Twitter
jMatsuzaki🔥さんはTwitterを使っています 「←期限ギリギリで低品質な物を作り上げる人のスケジュール  →期限内に高品質な物を余裕を持って仕上げる人のスケジュール https://t.co/PUucITCacM」 / Twitter
7594591200220899443さんはTwitterを使っています 「最後にジャーンと出来上がった物を比べた時にウォーターフォールが特段に低品質ということはないはずと理解している。ただ納期は破綻する。」 / Twitter
7594591200220899443さんはTwitterを使っています 「むしろ逆に低品質だろうが何だろうがともかく納期に何かが動いているというのが反復プロセスの特徴とも言える。」 / Twitter

クラウド == メインフレーム

Shinji KonoさんはTwitterを使っています 「Cloudとか言ってるが、結局は課金制大型計算機センタなんだよな。JCLの代わりにLmbdaで戦ってるだけでさ。そこから抜け出したくて、マイコンミニコン、Unixだったのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「インターネット上のスケールする分散アプリの代わりにCDNってのは退化だと感じる。メインフレームの第n次オンライン的な。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Cloudのダウンは、httpsとCDNで囲い込んだ報い。本来は蜘蛛の巣的なキャッシュあるいは自律サーバネットワークで止まらないはず。ただし、updateはリアルタイムではないがな。リアルタイムを求めるなら、そこに行かなくては。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Playstationの予約でサーバダウンとかやってた頃を繰り返してる」 / Twitter

意味のある技術

Hiromitsu TakagiさんはTwitterを使っています 「思い出すのは、大学で研究室に配属になった1988年頃の話。当時の一つのブームは「データフローコンピュータ」だった。指導教授がその道で名を上げかけた方(米国で見てきたものを国内で再現的な)で、当時の第五世代コンピュータのテーマの一つでもあった(教授は枠外)ので研究室のテーマはそれ。で…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…で、データフロー型の謳い文句は「ノイマン型コンピュータには限界がある。データのフローを直接処理することで問題が持つ並列性をそのまま並列実行できるのだ、と言うのだけども、コスト度外視なのね。連想メモリ(content addressable memory、データを入力するとアドレスが出る)の回路を使って…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…使って作るというのだけど、規模はどうするよとか、条件分岐は?とかいろいろ問題あり。M1の頃にはすでにおかしいと気づいており、fjに書くなどしていたら、学会の懇親会で偉い先輩(今の大ボス)に「君さあ」的なことを言われたwのであった。自分の研究は教授から与えられたネタで、それ自体は…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…それ自体は、なんというか、思いつきの一つの設計例にすぎず、その有用性を語るなんてできないわなと思って、学部の卒論の時点で、どうにか意味のある内容に変更(データフローコンピュータはトークン(データ)をキューに流すのだけども、データはメモリにおいてキューのカウンタだけ使う)して…」 / Twitter
Hiromitsu TakagiさんはTwitterを使っています 「…して凌いだ。その後、Mではその方式を一般化して概念を確立させ研究会デビュー、ちょうど国際的にも似てるけどちょっと違う方式が出てきていたので、それらと比較して一つの小分野を構築することができ、どうにかD論に持って行けたのは、幸いだった。ちょっとした違いで人生大幅に違っていただろう。」 / Twitter
富岳てるみさんはTwitterを使っています 「「スパコンでなければならないのか?グリッドでいいのではないのか?」というのは、ある意味真だし、ある意味偽でもある。まぁ原理的にはグリッドですべて賄えるといえば賄えるけど。明日の天気予報に一か月とかかけていいなら」 / Twitter
宇賀智之さんはTwitterを使っています 「日本のスパコンにかける情熱は素晴らしい。 しかし、どれほど有効活用されているのだろう。 そして僕は常々思うことに、家庭のPCをつなぎ合わせて、一つのコンピューターとして見なすことで凄まじい情報処理ができるのではないだろうか。」 / Twitter
Masakazu SekijimaさんはTwitterを使っています 「@telmin_orca @sacred_fox SETI@homeやFolding@homeとスパコンが計算している“ならでは”のものの区別がついていないというか後者を知らないだけかもしれません。」 / Twitter
富岳てるみさんはTwitterを使っています 「xxはどれほど有効に使われているのか?(xxには結構な高値のあれこれを入れよう) というのは、結局ポジショントークでしかないのでやめたほうがいいですよ。世の中には、自分は知らないけど活用されているものって山ほどあるわけで」 / Twitter
富岳てるみさんはTwitterを使っています 「まぁどこかの世界には、1Exaの計算を実現するのに1PFlopsの計算機を1000倍長く稼働させればいいとかいうことを言っていたヤツもいるので、みなさんはそういうアホにならないように気をつけてください。今必要な計算を1000倍の時間かけてやっても意味はないです」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「テクノロジーとは物を作る能力ではなく価値を具現化することだという結論に至った」 / Twitter

「早くリリースして、早く改善しよう」の落とし穴―― 開発畑のプロダクトマネージャーの失敗から学べ (1/4):ProductZine(プロダクトジン)

チェックデジット

上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「これがチェックデジットあると1人1分が10秒以下になるんですよ…目視点検と読み合わせしなくても良くなるから。チェックデジットは正しく設計すると、入力誤りを極めて高率に捉えるのです。誤り混入率が1/10になるだけと思ってる人がいるようですが違います。人の入力誤りって奥深いんです(研究中)。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「単一桁誤りと、隣り合う数字の入れ替わりを確実に検出できるチェックデジットあるの知らなかった https://t.co/lKAhjNAxjZ」 / Twitter
Verhoeff algorithm - Wikipedia

広く使ってもらうための戦略

uint256_tさんはTwitterを使っています 「誰かに使ってもらえるものを作るにはどうすればいいんだろうね」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t ポイントは「巨人の肩」と「応用事例も作ること」そして「世界に向けて発信すること」だと思います。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「巨人の肩」というのは,既存のインフラとの親和性を良くすること,差別化点をはっきりすることが重要になってきます。既存のものに対する調査と,階層構造を踏まえることが大事になってきます。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「応用事例を作ること」は,自分が発信したいプログラムを活用した事例を作り,それも含めて発信することが大事なポイントです。そうすると,もともとのプログラムをどう改良していけばいいかの指針も得られます。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「世界に向けて発信すること」は,単にGitHubに公開し,Twitterでつぶやいているだけでは,誰かの目に止まることは難しいということです。もっと広く情報を発信しないと,注目を集めません。」 / Twitter

情報発信の利益・不利益

Rui UeyamaさんはTwitterを使っています 「自分が何年も苦労して獲得した技術的ノウハウを誰でも簡単に学べる親切なオンラインブック(無料)を書くみたいなの、何も得してないみたいだけど、ここだけの話すごく得なんですよ。今は得になってないけど。どう得になるのかもわからないけど、損得でいうと相当プラスになる気がする(根拠なし)。」 / Twitter
ogiwaraさんはTwitterを使っています 「例えば「OSの基礎がわからない」って言われてOS自作入門をすすめるの、正直なところにわかだと思う OSのコンセプトとか、もっと適した教材が他にもたくさんある」 / Twitter
いわんこ(小学生)さんはTwitterを使っています 「@designpatterngf これは本当にそう。 OS自作入門とかそのへんは、OSを作ってCPUとかメモリを理解しましょう、って感じですよね。 OSの勉強するならタスクの管理とか権限とか、仕組み的な感じのものを期待してる人が多そう。」 / Twitter
ogiwaraさんはTwitterを使っています 「適切な教科書って作るのめっちゃくちゃ大変なんですね…」 / Twitter
ogiwaraさんはTwitterを使っています 「楽しく読め、かつとてつもなく効率的にキャッチアップできるので、本当に感謝しかないです… いつか自分も書く側になりたい…」 / Twitter
ロボ太さんはTwitterを使っています 「任意の分野Xで僕よりずっと詳しい人がたくさんいるんで、「僕がXについて解説書いたりしていいんだろうか」といつも思うんだけど、その「僕より詳しい人」がみんな解説書いてくれるわけではないので……」 / Twitter
ロボ太さんはTwitterを使っています 「まぁ、情報発信なんていいことないよね……」 / Twitter
杉本啓さんはTwitterを使っています 「自転車の乗り方を本に書いたら、それは単に情報だ。実際にどうやれば自転車に乗れるのかは、それぞれがやってみて習得するしかないし、得た tacit knowing はその人だけのもの。我々が何かを出来るかは全面的に tacit knowing に依拠している。形式知=情報は、むしろそれを生成するためのよすがだ。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「プログラミング技術も同様で、習得する本人が自分の意思と試行から再発明するしかない。いくら教科書的なものを用意しても、それは練習メニューに過ぎない。練習する気がない人に練習メニューを見せても、うまくはならないんだよ。でも、世の中には、それで終っちゃってる「教育」が多い気がする。」 / Twitter
ネオ高等遊民@哲学youtuberさんはTwitterを使っています 「YouTuberはいいですよ。 解説や研究を読んで知った面白い解釈を紹介すると 「受け売りしてすごいと言われて楽しいの?」などと言ってもらえますし、 自分で考えて面白いと思った解釈を話すと 「根拠のない思い付きより、最新研究分かりやすくかみ砕けよ」などと言ってもらえます。」 / Twitter

伝達・理解・認識

MasaTamさんはTwitterを使っています 「英語圏の人達が主張が強いという印象は、主張が強いと言うより、情報が100%伝わるわけじゃないという前提で話してるということな気がする。伝わってないと思ったらI meanで噛み砕くし、paraphraseで違う表現したり。例も挙げるし、一つかそうでないかも明確にする。」 / Twitter
チェシャ猫さんはTwitterを使っています 「ちなみに実装コスト以前の問題として、「ロジックに誤りがないとはどういうことか」を人間が認識するところがボトルネックになりがち。訓練されていない人間は本人が思っている以上に、頭の中にある仕様を検証可能な形で表現することができない。」 / Twitter
satさんはTwitterを使っています 「丁寧に書くと「冗長」、簡潔に書くと「説明不足」、詳細に書くと「難しすぎる」、わかりやすく書くと「わかった気になるだけ」と誰かしらは言うので個々の評で一喜一憂してたら身が持たない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「東証会見について、記者の質が低いって怒ってるエンジニアの人たちの気持ちが正直わからない。だって非専門家だよ? わからないことを確認するのは、記事を書く上で記者の義務だよ。社内でも、営業とか新米の人が理解しようと質問してきたら、そうやって怒ってるの?って思う」 / Twitter
古川英光(やわらか3Dプリンターサイエンティスト)(Hidemitsu Furukawa)さんはTwitterを使っています 「「なぜかが分からないと先に進めない人」と「役立つことが分からないと先に進めない人」。 私は理学部と工学部の両方の経験がありますが、前者が理学部型、後者が工学部型、みたいに思います。 良し悪しではなく「思考回路」の違いですね。 https://t.co/6SQiW7INl1」 / Twitter
若者の「それ、何の役に立つんですか?」に隠された驚きの事実(幻冬舎ゴールドオンライン) - Yahoo!ニュース
nishio hirokazuさんはTwitterを使っています 「「正解が書かれたものがどこかにある」という思い込みを持ってる人はそれを得ようとするが、経験者は「しばしば世の中のどこにも正解が書かれたものが存在しない」と思ってるため自分で正解を導く方法を教えようとする。魚を得たい人に釣りの仕方を教えるので、魚を得たい人が不満に思うのは当然。」 / Twitter
Sho YokoiさんはTwitterを使っています 「知的誠実さは居直り根性でもないし自主的な勉強の放棄の免罪符でもないよね。 離乳食のようなイントロが尊ばれ、本文に数式が一行でも入ると「わからないからもっと簡単に説明してほしい」とか「わからないけど難しいことしていて凄そう」とか宣うパーソンが散見される領域に居るからなおそう思う。」 / Twitter
Sho YokoiさんはTwitterを使っています 「伝える側がその説明を分かりやすくするために工夫をこらすことが大切なのと同様、伝えられる側も新しいアイデアなり概念なりを理解するために脳を絞る必要があるに決まってるだろ。「私にも分かるように説明して」は分かるための努力をし続ける者だけに許される発話。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ノートは書き写すんじゃなくて、自分の再発明を書き下す。再発明しない限り理解に達してない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミングもそういうところがあって、ライブラリを使ってるだけで再発明しないようだと次の段階に進めない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「言語の(最新の)機能をちゃんと活用した書き方とか、何とか指向とか何とか原則にきちんと従った書き方とか、そういうのを意識しているせいで、コードが不必要に難しくなってしまっているのをよく見る気がする。いいコードというのは別にそういうものではないと思うんだけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「難しいことをわかりやすく説明している文章みたいに、いいコードというのは、普通に読んで「なるほどわかりやすい」となるものだと思う。何とか原則に従っているかどうかみたいなのはどうでもいいし、あんまり最新の馴染みのない書き方をしても読者を置いてけぼりにするのでよくない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「他の人が自分のコードを読んでわかりやすいと思うのかどうかが唯一の重要なポイントで、それ以外のことはそれを達成するためのヒントにすぎないと思うんだけど、なんか手段と目的が逆転しているのをよく見る気がする。」 / Twitter
質の高い技術文書を書く方法 - As a Futurist...
7594591200220899443さんはTwitterを使っています 「「これまでに体験した最も難しかったバグ」とは即ち「当人がバグと認識できる程度には簡単だったバグ」のことである。世の中には人類の精神ではどうにも理解できないことというものは数知れず存在する。問題が起こるというのと問題が認識できるというのには思っているよりも密接な関係がある。」 / Twitter

入門書

ぱそほし(kzm)さんはTwitterを使っています 「いやそういうことじゃなくて、シェルだったり、アプリのインストールの方法だったり、インストールしたアプリのコードの読み方だったり、あるいはOSの機能(TCP/IP、ドライバ、DLL、メモリ、プロセス管理)だったり、GUIアプリケーションだったり、サウンドだったり、そういうのなんですよね https://t.co/xuUTaw9MZ1」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「プログラミング入門書を読んでも、一般的に知られているソフトウェアの作り方みたいな事が書いてない」とありますが、プログラミング言語の処理系もまた「一般的に知られているソフトウェア」の一つなので、プログラミングの入門でプログラミング言語を作ればいいんですよ。 https://t.co/ompL0KjN6l」 / Twitter
プログラミングというかITが理解できない。

用語・訳

みんな大好き🐐ヤギのさくらちゃん(Kadzuya Okamoto)さんはTwitterを使っています 「IT界隈の人たちは楽屋ノリで「不正」って言葉をカジュアルに使いすぎ 世の中的にはほとんど「違法」と同義だから「不正な入力です」とか画面に表示しちゃダメだよ」 / Twitter
chikoskiさんはTwitterを使っています 「recursiveを帰納と訳すこともあるのか」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「サーバーレスの-lessっていうやつ、個人的には、countlessの-lessと同じ意味合いだと思うと、むしろ、クラウド感があってよい。ないっていう意味じゃない。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「そうそう、あと WikipediaをWikiと略すのとか、 無限スコープ、動的エクステント を 動的スコープと略すのとかも取り締まるべき」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「技術的負債って言葉がなんか好きではなくて、実際にはコードの老化が正しいと思うんだけど。X年でやりかたとして正しかったこと (ビジネスも含めて) がY年で正しくない(もっといい方法がある)ってことでしかないと感じるんだよね、みんな言ってること」 / Twitter
Ignacio Enriquez GさんはTwitterを使っています 「@makoto_kato @piro_or 老化は技術的負債の原因の一つだと思います。 最初から技術的負債はあると思います。メンターや経験者が近くにいなくて生まれる。または技術的な理由以外で(政治的なビジネス的な狭いビジョン的な理由)Y年数立たなくても直ぐに生まれると思います。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「それはさておき、プログラマかエンジニアか、というのは割と国内だけの話で、英語圏だとエンジニアという大カテゴリの中に開発者(デベロッパ)やSRE(サービスリライアビリティエンジニア)やCSE(カスタマーサポートエンジニア)といった様々なエンジニアが存在する、と理解するのが普通だと思う」 / Twitter
Watching_Big_BroさんはTwitterを使っています 「これは記事化する際の用語選択のためのすり合わせなんだよな。非専門家である読者に、記事では専門用語を使わず事象を説明するにあたり、不適切な言い換えになるリスクを避けるために当事者の言葉を求めている。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「「日本語で」の質問について。実際専門用語に頼った説明は問題を生みがちで、今回も「フェイルオーバ」をactive-standby構成の説明を参考にしたのか「予備機に切替」という表現を使っている報道がある。自分の言葉で再説明する、というのはそういう問題を潰す効果がある cf. https://t.co/0m1aWv3ja8」 / Twitter
Kazuho OkuさんはTwitterを使っています 「障害が発生した記憶装置を切り離したあと、なぜ再起動が必要になったかについて明確な回答(うまく動作しなかったタスクが既に発生し、それらを確認修正するより再起動のほうが早い)を引き出した質問が「横文字を使わないで説明して」だったのは面白い」 / Twitter
伊津野 英克さんはTwitterを使っています 「誤解を招くという意味で言えば、正規表現って誰が最初に訳したんだろ。もはや普及しすぎて変えられないけど、完全に誤訳だもんなぁ……」 / Twitter
uncorrelatedさんはTwitterを使っています 「正規分布と同じノリですね」 / Twitter

編集者が必要

keiichiro shikano λ♪さんはTwitterを使っています 「これはポジショントークですが、散文をGitHubなどで管理するうえで重要なのはPull Requestやtextlintといった仕組みの有無ではないということがまた明らかになってしまったな…」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「つまり編集者がいないと難しいのですよ(執筆者が編集者でもいいけれど)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「もうちょっと具体的な話はこのへんで。 https://t.co/YSkxsbWcBB」 / Twitter
k16's note: 執筆・編集のためのGit(GitHub)ワークフローを考えてみた
keiichiro shikano λ♪さんはTwitterを使っています 「「俯瞰的な修正の作業は、かなり大きな範囲全体でコミットとして意味を持つので、他でコミットされたりPull Requestされた局所的な文章の修正をこのコミットの内容と調整するのはけっこう厄介です。」」 / Twitter

校正

keiichiro shikano λ♪さんはTwitterを使っています 「これらの指摘をみた人がどう直すかが気になる。たとえばこの文の「思います」を断定にすればいいわけでないし、「サーバサイド」は文中で見えてる限りでは揺れてないし、「無い」が指摘されずに「例えば」が指摘されているのが気になるし(個人的には後者は許容できるが前者は許容しない)」 / Twitter
suin❄️ TypeScriptが好きさんはTwitterを使っています 「textlintという、日本語のMarkdownを校正できるツールがあるのですが、これをVS Codeと組み合わせると、めっちゃ便利でした✨ あまり意識してなかった深いところまで、いろいろ教えてくれます。 ブログや社内文書を書くときなどに、一回textlint通すとよさげ。 https://t.co/BKnoBYi4yR」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「別のルールを使えばいいという話ではないと理解している。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「ルールベースの文章校正ツールに対する考え方をそのうちまとめたいと思っているのだけど、うまく言えないんだよなあ」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「文意はシンタックスでだいたい決まる」としても、「書き手が意図している内容」と「シンタックスで決まってしまう文意」との溝を、当のシンタックスから取り出せるかどうかといったら、たぶん無理ではないか。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「一方、プログラミング言語のコードだと、「シンタックスで決まってしまう文意」はコンピューターで計算できる解釈であり、書き手の意図もまたコンピューターにおける動作として形式化されうるので、シンタックス自体を検査する意味が多分にある。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「たぶんこんな感じの断絶があると思っている」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「そんなわけで、プログラミング言語におけるlintのように使うこと(≃質の悪い文章のパターン発見に使うこと)にもやもやが残る、という感じなんだと思う。単なるシンタックスエラーの発見として使うぶんには、文章校正ツールは間違いなく武器になるんだけど。」 / Twitter

Knuth reward checks

Sophie AlpertさんはTwitterを使っています 「Knuth check https://t.co/am9fQjV57d」 / Twitter
クヌース賞金小切手 - Wikipedia
Knuth reward check - Wikipedia

何をやってきたか、これでいいのか

Kazuho OkuさんはTwitterを使っています: 「うらやましいなんて話じゃなくて、自分たちは何をやってきたんだ、これでいいのか、ってこと」 / Twitter
市川 真一さんはTwitterを使っています: 「. @kazuho さんが出張で使ってる航空機の運航を支えるシステムや、病院の運営に必要なシステムをやってきました。国のためになっているという自負はあります。私個人には、これで良いとしか言えないのです https://t.co/v3lGCi3CMX」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@tenpoku1000 社会を支える仕事をして「これで良い」と思えるのはすばらしいことだと思います。いろんな関わり方があると思うので」 / Twitter
航空:航空交通管制情報処理システム - 国土交通省
cab20181001-2.pdf
スライド 1
Wayback Machine

トレードオフ・動機

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そもそもトレードオフ(とモチベーション)を考えた結果ならどちらもアリだよなぁ。 単に「今時古い」的な思考停止で判定する人見るとオイオイと思うことも。」 / Twitter
Taisuke 'Jeff' Inoue #WFHさんはTwitterを使っています 「30年前、本業そっちのけでやったのが今になって役に立ってるから、むしろお勧めしたい。」 / Twitter
MiyahanさんはTwitterを使っています 「技術力がない人ほどDNSサーバーやメールサーバーを自前で立てたがる現象に誰か名前をつけてほしい。」 / Twitter

美意識

渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「B1から配属可能な研究室の制度でやってきて感じることは、研究室で研究問わずまずは好きな活動やってもらって、教員側がそれを観察して、その学生がこだわる部分や強そうな部分を発見し、テーマからこういうのやってみたら?っていうマッチング測るのが良さそう。というのが見えつつ。」 / Twitter
渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「まずはディープな自己紹介みたいなことも大事だなと。どういう環境で生きてきたか、どういう遊びをしているのかとか。」 / Twitter
渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「ちょっと何かつくると、人によってこだわる部分が違う、つまりそういうことが美意識なんだと思うん。で、それって自分だと気づきにくかったりするんだけど、教員側は多くの学生を見ているから、すぐわかったりする。」 / Twitter
渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「教員のエゴが強いと、その美意識は潰されてしまうけどね。だってそれってどうでもいいことって思うわけでしょう。だから逆に積極的に潰していくタイプの人もいるんでしょうけど。」 / Twitter

競争ではない・正解のない世界

yhara (Yutaka HARA)さんはTwitterを使っています 「一方で狂人たちがどう考えているかというと、彼らは別に競ってはないのですよね。プログラミングの世界には無限に「やること」があるので、みんなそれぞれ違うことをしている。競争ではない」 / Twitter
古都ことさんはTwitterを使っています 「プログラマ、無策に愚直に上目指そうとすると「仕事でプログラミングやってるし休憩時間は気分転換のプログラミングやってるし退勤後は息抜きのプログラミングやってるし休日は趣味のプログラミングに全ぶっぱ」みたいな狂人との電流金網デスマッチが始まるので、自分なりの目標と適度な割り切りが必要」 / Twitter
Miura HidekiさんはTwitterを使っています 「もうちょっと遅く生まれて未踏だセクキャンだ外資系IT企業だと選択肢のある世界が良かったなと思っていたが、「正解」のある世界は私には不利なのでまだ正解の定まっていない私の世代に生まれたのはよかったのだなと気づいた」 / Twitter
Miura HidekiさんはTwitterを使っています 「ただ、正解がある世界は安定するが革新的な進歩は無くなる。今後のITの世界の明日はどっちだ」 / Twitter

簡単に使えるようにする

7594591200220899443さんはTwitterを使っています 「プログラムを書くのに計算機科学の素養が必要かどうかで言うと現状必要なのは事実だが必要でなくしていくべきです。おばちゃんの作ったキッチュなアップリケとかが人類史に決定的なインパクトを与える事ができるようになるべく専門家以外をエンパワーしていくのが我々の仕事である。」 / Twitter
7594591200220899443さんはTwitterを使っています 「これ」 / Twitter
7594591200220899443さんはTwitterを使っています 「結局金突っ込んだやつが順当に勝つみたいなつまらない世界をやりたくてwebやってるんじゃなかったはずだろ。今よりももっと間口を広くすべきです。素人が適当に作ったもので相応に戦えるべき。」 / Twitter

圏論入門

七誌さんはTwitterを使っています 「話題の『圏論入門』を入手しました! https://t.co/fWei06kAEM」 / Twitter
https://twitter.com/7shi/status/1297189240531382272
https://twitter.com/7shi/status/1297474094892376065

統計学:認識論・主義

Ohkubo YusakuさんはTwitterを使っています 「前半は基本的に同意で、数学と論理に基づく理解を目指すのが健全な統計学かと考えます。 ところが、残念ながら「“科学的”に“常識”であるとはどのようなことか」という点が科学者の間でも合意されていないという深刻な事実が見過ごされている。これこそ科学哲学という領域で研究されていることです。」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#統計 私は * 数学的道具への理解 * 通常の論理的推論 * 科学的な常識 * 自分自身の専門分野固有の知識 を組み合わせて統計学を使える人が増えれば素晴らしいことだと思っています。要求が必要最小限で穏健な立場だと思う。 「主義」の重要性を語る人達は危険な過激派に見えて仕方がない。」 / Twitter
Dr. Dr. Ken McAlinnさんはTwitterを使っています 「統計学はそれ(数学)を通して世界を認識することだ、ということを忘れてしまうと「主義」の意味もわからなくなってしまう。大事なのは世界を認識することであって数学ではない。」 / Twitter
Jun OtsukaさんはTwitterを使っています 「これらの「主義」は数理統計学的学説ではなく、数学的理論が経験的事象の探求になり得るのかのはなぜなのか、というメタ的な関心についての学説だという理解です。だからベイズ/頻度「主義」の外延とベイズ/古典「統計」の外延は必ずしも一致しません(し、実際にしないと明記してる)。」 / Twitter
伊津野 英克さんはTwitterを使っています 「例の論争を見てると、学者 or 研究者と言えども内なる信念からは逃れられないんだなぁ、と。ボルツマンは原子の実在性を巡って論争の果て自殺に追い込まれたし、相対論、量子論、確率概念と専門家は自身の科学観が揺るがされる度、強く反発してきた。」 / Twitter
伊津野 英克さんはTwitterを使っています 「どっちが正しいと言うつもりはないけど、争点が数学や理論、実用性とかそういうところにないことを冷静になって認識した方がいいんじゃないかなぁ、と。主観ベイズの争点は単に主観や主義の存在を受け入れるか否かだけに思えるのよね。」 / Twitter
伊津野 英克さんはTwitterを使っています 「最近読んだ「外来種は本当に悪者か?」なんてまさにそうで「外来種は悪である」という信念によっていかに学術的議論が歪められてるのか、って話だもんね。」 / Twitter
伊津野 英克さんはTwitterを使っています 「現状を踏まえれば、すでに統計学は主義も主観性も受け入れているけど、「でも、あなたは受け入れないんですか」という状況だったりするわけだよね。」 / Twitter

世界中で利用される「D3.js」の開発者が10年間で学んだこととは? - GIGAZINE
情報ではなく経験をアウトプットすること - lacolaco

書籍

その他

BOOTH

登録禁止商品の追加に関するお知らせ - BOOTH
windhole booth - BOOTH
Hello uchan world - BOOTH
海洋軟件 - BOOTH
OtakuAssembly - BOOTH
fadis_press - BOOTH
galaxy-sixth-sensey - BOOTH
マークアップ言語愛好会 - BOOTH
すらりんラボ - BOOTH
ドメイン駆動設計 モデリング/実装ガイド - little-hands - BOOTH
GPSと仲良くなってNTPサーバを作ろう - 調布技研 - BOOTH
seiya - BOOTH
マイクロカーネルの設計と実装 - seiya - BOOTH
だめぽラボ
だめぽラボ - BOOTH
犬テトラ+
イヌでもわかるCSS Houdini - 犬テトラ+ 出版社 - BOOTH
低レイヤを知りたい人のためのCコンパイラ作成入門 - - BOOTH(同人誌通販・ダウンロード)
低レイヤを知りたい人のための Cコンパイラ作成入門
「低レイヤを知りたい人のためのCコンパイラ作成入門」フィードバックフォーム

ヘネパタ

Hennessy & Patterson Computer Architecture 第6版 原著の問題点 | Amano Lab

Wikipedia

出版取次 - Wikipedia
日本出版取次協会|取協概況|沿革と現状
フレデリック・ブルックス - Wikipedia
人月の神話 - Wikipedia
銀の弾などない - Wikipedia

Qiita

ラムダノートの技術 Advent Calendar 2019 - Qiita
自作OSとかLinuxカーネルについて役立った本 - Qiita
低レイヤーを学ぶための技術書をまとめてみる - Qiita

Twitter

ドッグさんのツイート: "おもちゃ実装の Git を自分でつくってみてオブジェクトなどの内部データ構造や merge, diff などのアルゴリズムの仕組みを理解できる書籍 Building Git が出るのか.使用言語は Ruby | 'Building Git' https://t.co/Ka8sIaDrno"
Building Git – shop.jcoglan.com
Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「我々は紙の本を安価に全国共通の値段で手に入れることができた最後の世代になるだろう。次の世代に本はない。」 / Twitter
mumumuさんはTwitterを使っています 「プログラミングHaskellを読んだ(というか斜め読みしつつ演習問題をつまんで最後のページにたどりついた) めっちゃ薄いわりに必要なことがまとまっていて良かったけど,モナドの周りだけはよくわからんかったな.ファンクタ->アプリカティブファンクタ経由で説明されたほうがわかりやすい希ガス」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「プログラミングHaskell、改訂版ではファンクタ→アプリカティブ→モナドで解説されるように改良されていて、実際わかりやすくなっています!」 / Twitter

日本の古本屋
寄付の方法 | つなぐ書店
就労継続支援B型 かみふくおか作業所さん (@2017kamisaku) / Twitter
かみふくおか作業所 | 運営施設 | 社会福祉法人 入間東部福祉会|入間東部福祉会 ふじみ野市、富士見市、三芳町にて障害者支援施設・障害福祉サービス事業所の運営を行う社会福祉法人
かみふくおか作業所の出張トトロ
国立国会図書館サーチ(NDL Search)
販売中の書籍一覧 – 技術書出版と販売のラムダノート
1月と7月
既刊(数学) | ニュートンプレス
既刊(工学) | ニュートンプレス
既刊(その他) | ニュートンプレス
大神 祐真 (Ohgami Yuma) (サークル名:へにゃぺんて)
BOOK TECH | トップ
BareMetalで遊ぶ Raspberry Pi - 達人出版会
p20190528a - K-kiwi
水晶雫
株式会社ロングゲート
なぜ研究者は学術書を翻訳すべきなのか?|Daichi G. Suzuki|note
Amazon | Handbook of Mathematical Functions: with Formulas, Graphs, and Mathematical Tables (Dover Books on Mathematics) | Abramowitz, Milton, Stegun, Irene A. | Pure Mathematics
自作OSとかLinuxカーネルについて役立った本 | Zenn
Webpage: BEKKI Daisuke
Amazon | Writing Compilers and Interpreters: A Software Engineering Approach (English Edition) [Kindle edition] by Mak, Ronald | Languages & Tools | Kindleストア
機関誌2019|公益社団法人 日本オペレーションズ・リサーチ学会
嘉田 勝 (Masaru Kada) - 出版関係 - researchmap
本を書ける人がなかなかいない:生涯現役のITエンジニアを目指して:エンジニアライフ

未入手

実践TLA+ | SEshop.com | 翔泳社の通販
O'Reilly Japan - Books :: New and Upcoming
O'Reilly Japan - 仕事ではじめる機械学習 第2版
プログラミングのための数学 | マイナビブックス
EMアルゴリズム / 黒田 正博 著 | 共立出版
関係データ学習 | 書籍情報 | 株式会社 講談社サイエンティフィク
数理モデルとシミュレーション - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
朝倉書店| 確率論
機械学習を解釈する技術〜予測力と説明力を両立する実践テクニック:書籍案内|技術評論社
データ分析のための数理モデル入門本質をとらえた分析のために(東京大学先端科学技術研究センター 江崎貴裕) | 書籍 本 | ソシム
分析者のためのデータ解釈学入門データの本質をとらえる技術(東京大学先端科学技術研究センター 江崎貴裕) | 書籍 本 | ソシム

Unicode

サポートページ:プログラマのための文字コード技術入門:|技術評論社
[改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
Unicode標準入門(Tony Graham 関口正裕 乾和志 海老塚徹)|翔泳社の本
文字符号の歴史:アジア編 正誤表
文字符号の歴史 アジア編 三上喜貴 著/2002.3
三省堂-世界の言語ガイドブック
世界のことば小事典 柴田 武(著/文)(大修館書店)| 版元ドットコム
国際化と日本語処理 : Javaプログラミング・ノート : Cafe Babe (アスキー): 2000|書誌詳細|国立国会図書館サーチ

アルゴリズム

その他

CiNii 図書 - 定本Cプログラマのためのアルゴリズムとデータ構造
省メモリプログラミング―メモリ制限のあるシステムのためのソフトウェアパターン集 (Software patterns series) | ジェイムズ ノーブル, チャールズ ウィアー, James Noble, Charles Weir, 安藤 慶一 |本 | 通販 | Amazon
情報科学セミナー 遺伝的プログラミング - 東京電機大学出版局 科学技術と教育を出版からサポートする
計算の理論 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
みんなのデータ構造(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
おすすめ書籍/プレアデス出版 Pleiades PUBLISHING
The Art of Computer Programming Volume 4A... - アスキードワンゴ
グラフ同型性判定問題 | あなたとともに100万人の仲間とともに
CiNii 図書 - 情報学のための離散数学
情報科学のための 離散数学 | コロナ社
電子機器設計に活かすディジタル代数学|科学情報出版
マグロウヒル大学演習 離散数学 コンピュータサイエンスの基礎数学 | 理工学専門書,理学,数学 | Ohmsha

エスアイビーアクセス

書店・アマゾン販売書一覧 | sibaccess公式ページ
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ジュニア, ヘンリー・S. ウォーレン, Jr., Henry S. Warren, 滝沢 徹, 鈴木 貢, 赤池 英夫, 葛 毅, 藤波 順久 |本 | 通販 | Amazon

シュプリンガー・フェアラーク

グレブナ基底と代数多様体入門 : イデアル・多様体・アルゴリズム (シュプリンガー・フェアラーク): 2000|書誌詳細|国立国会図書館サーチ
グレブナ基底と代数多様体入門 : イデアル・多様体・アルゴリズム (シュプリンガー・フェアラーク): 2000|書誌詳細|国立国会図書館サーチ

O'Reilly Japan

O'Reilly Japan - 並行コンピューティング技法
O'Reilly Japan - アルゴリズムクイックリファレンス 第2版
O'Reilly Japan - Hadoop MapReduce デザインパターン

技術評論社

サポートページ:正規表現技術入門 ――最新エンジン実装と理論的背景:|技術評論社
平成26年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室:書籍案内|技術評論社
[改訂新版]C言語による標準アルゴリズム事典:書籍案内|技術評論社

共立出版

アルゴリズムと計算量 / 野崎 昭弘 著 | 共立出版
グラフ理論とフレームワークの幾何 / 前原 濶 桑田 孝泰 著 | 共立出版
簡潔データ構造 / 杉原 厚吉 室田 一雄 山下 雅史 渡辺 治 編 定兼 邦彦 著 | 共立出版
近似アルゴリズムデザイン / David P.Williamson  David B.Shmoys  著 浅野 孝夫 訳 | 共立出版

講談社

新装版 集合とはなにか | ブルーバックス | 講談社
逆問題の考え方 | ブルーバックス | 講談社
『「複雑ネットワーク」とは何か』(増田 直紀,今野 紀雄):ブルーバックス|講談社BOOK倶楽部
離散数学「数え上げ理論」 : 「おみやげの配り方」から「Nクイーン問題」まで (講談社): 2008|書誌詳細|国立国会図書館サーチ

森北出版

超高速グラフ列挙アルゴリズム|森北出版株式会社
アルゴリズム理論の基礎 | 森北出版株式会社

岩波書店

「高速文字列解析の世界」サポートページ - daisuke.okanohara
高速文字列解析の世界 - 岩波書店
高速文字列解析の世界[読書メモ].rb
朱鷺の杜(IBIS)ブログ 高速文字列解析の世界
数値処理プログラミング (岩波書店): 1988|書誌詳細|国立国会図書館サーチ

コンパイラ

その他

その他

lint (UNIXユーティリティライブラリ) | イアン・F. ダーウィン, 菊池 彰 |本 | 通販 | Amazon
i386TMDXマイクロプロセッサプログラマーズ・リファレンス・マニュアル | |本 | 通販 | Amazon
Prolog処理系を作ろう | 笹川賢一 | 工学 | Kindleストア | Amazon
書店・アマゾン販売書一覧 | sibaccess公式ページ
S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル | 3世, サムエル・P. ハービソン, ジュニア, ガイ・L. スティール, 3, Samuel P. Harbison, Jr., Guy L. Steele, 玉井 浩 |本 | 通販 | Amazon
SQLパフォーマンス詳解 | Markus Winand, Markus Winand |本 | 通販 | Amazon
オブジェクト指向データベース入門―ポスト・リレーショナル・データベース (SRCハンドブック―STシリーズ) | 宇田川 佳久 |本 | 通販 | Amazon
Prolog処理系を作ろう | 笹川賢一 | 工学 | Kindleストア | Amazon

書籍情報―Linux技術者のためのC言語入門
CiNii 図書 - 論理プログラミングの基礎
1+2=3
Miura HidekiさんはTwitterを使っています 「1+1=2じゃないのは、全加算器を導入したいからだな。たぶん」 / Twitter
筑摩書房 公理と証明 ─証明論への招待 / 彌永 昌吉 著, 赤 攝也 著
論理学をつくる « 名古屋大学出版会
ゲーデルの世界 - 海鳴社
数理論理学の基礎・基本 (牧野書店): 2012|書誌詳細|国立国会図書館サーチ
内田老鶴圃/書籍詳細/数理論理学 使い方と考え方:超準解析の入口まで
形式論理探求 第1巻 古典論理のタブロー | やまなみ書房 Yamanami Books
CiNii 図書 - 時間の論理
NHK出版新書 394 数学的推論が世界を変える 金融・ゲーム・コンピューター | NHK出版
連続体仮説 (東京図書): 1990|書誌詳細|国立国会図書館サーチ
ゲーデルの定理 | みすず書房
ゲーデルは何を証明したか|白揚社 -Hakuyosha-
論理学への数学的手引き – 1月と7月
書籍詳細|株式会社 C&R研究所
筑摩書房 数とは何かそして何であるべきか / リヒャルト・デデキント 著, 渕野 昌 著, 渕野 昌 著
東京図書株式会社 math stories 計算とは何か
線型代数対話 第1巻圏論的集合論 集合圏とトポス | 株式会社 現代数学社
モナドロジー 形而上学叙説|全集・その他|中央公論新社

カタカナ社名の出版社

サイエンス社

コンパイラの理論と作成技法 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
コンパイラ入門 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
人工知能の基礎 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
計算モデル論入門 : チューリング機械からラムダ計算へ (サイエンス社): 2006|書誌詳細|国立国会図書館サーチ
プログラミング言語の意味論入門 (サイエンス社): 1993|書誌詳細|国立国会図書館サーチ
プログラミング言語の基礎概念 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
モデルの記述と検証のためのプログラミング入門 – CafeOBJ
プログラム意味論の基礎 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
リレーショナルデータベース入門[第3版] - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
離散数学 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社

コロナ社

コンピュータ数学シリーズ 超並列処理コンパイラ|コロナ社
コンピュータ数学シリーズ 3 数理論理学 | コロナ社
並列処理シリーズ 命令レベル並列処理 プロセッサアーキテクチャとコンパイラ|コロナ社
計算論理に基づく 推論ソフトウェア論 | コロナ社
数理論理学 - 合理的エージェントへの応用に向けて - | コロナ社
計測・制御テクノロジーシリーズ 16 知識基盤社会のための人工知能入門 | コロナ社
1から始める Juliaプログラミング | コロナ社

オーム社

GNU Autoconf/Automake/Libtool | コンピュータ・一般書,UNIX,UNIX | Ohmsha
新世代工学シリーズ システムソフトウェア | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
Linkers & Loaders | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
コンパイラ (情報系教科書シリーズ) | 湯浅 太一 |本 | 通販 | Amazon
IT Text コンパイラとバーチャルマシン | Ohmsha
IT Text プログラム仕様記述論 | Ohmsha
型システム入門 プログラミング言語と型の理論 | Ohmsha
Scheme手習い | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
コンパイラ 作りながら学ぶ | 理工学専門書,情報科学,ソフトウェア・情報システム | Ohmsha
関数プログラミングの楽しみ | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
計算できるもの、計算できないもの 実践的アプローチによる計算理論入門 | Ohmsha
すごいErlangゆかいに学ぼう! | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
並列コンピュータ 非定量的アプローチ | Ohmsha
関数プログラミング 珠玉のアルゴリズムデザイン | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha

アスキー

Amazon | エキスパートCプログラミング―知られざるCの深層 (Ascii books) | ピーター ヴァン・デ・リンデン, Peter van der Linden, 梅原 系 通販
デバッガの理論と実装 (ASCII SOFTWARE SCIENCE Language) | ジョナサン・B. ローゼンバーグ, Jonathan B. Rosenberg, 吉川 邦夫 |本 | 通販 | Amazon
Amazon | Panic!―UNIXシステムクラッシュの追求と対策 (サンソフトプレスシリーズ) | 福崎 俊博, Chris Drake, Kimberley Brown 通販
C/C++ セキュアコーディング 第2版
純粋関数型データ構造 - アスキードワンゴ
『純粋関数型データ構造』のためだけの超いい加減な Standard ML 入門 - cafelier@SRM - TopCoder部
じょんどろさんのツイート: "What's new in purely functional data structures since Okasaki? https://t.co/9xo0yqn1W0 純粋関数データ構造の原著が発売されて以降に生まれた純粋なデータ構造等のリスト"
reference request - What's new in purely functional data structures since Okasaki? - Theoretical Computer Science Stack Exchange
CiNii 図書 - Cプログラムブック
Lisp処理系の作成 (アスキー出版局): 1986|書誌詳細|国立国会図書館サーチ
アラン・ケイ (アスキー): 1992|書誌詳細|国立国会図書館サーチ
アラン・ケイ (Ascii books) | アラン・C. ケイ, Kay, Alan Curtis, 雄二, 鶴岡 |本 | 通販 | Amazon
Lisp処理系の作成 (Cプログラムブック) | 弘一, 小西, 剛, 清水 |本 | 通販 | Amazon
Haskellによる関数プログラミングの思考法 - アスキードワンゴ

マイナビ出版

Write Great Code〈Vol.1〉 プレミアムブックス版 | マイナビブックス
Write Great Code〈Vol.2〉 プレミアムブックス版 | マイナビブックス
入門Common Lisp : 関数型4つの特徴とλ計算 (毎日コミュニケーションズ): 2006|書誌詳細|国立国会図書館サーチ
基礎からわかる Elm|Tech Book Zone Manatee
自作エミュレータで学ぶx86アーキテクチャ | マイナビブックス

ナノオプト・メディア

モデル検査 (ナノオプト・メディア): 2010|書誌詳細|国立国会図書館サーチ
モデル検査 : 基礎から実践まで4日で学べる (ナノオプト・メディア): 2009|書誌詳細|国立国会図書館サーチ

幻冬舎ルネッサンス新社

論理がはじめてわかる 新・論理考究 - 自費出版の幻冬舎ルネッサンス新社
「ならば」騒乱 - 自費出版の幻冬舎ルネッサンス新社

デザインエッグ社

数理論理の手法 - 証明の発見と背理法の除去 (MyISBN - デザインエッグ社) | 安部 直人, 中西 泰雄 |本 | 通販 | Amazon
タブロー法による直接証明の発見 (MyISBN - デザインエッグ社) | 中西 泰雄 |本 | 通販 | Amazon

トッパン

注解C++リファレンス・マニュアル (トッパン): 1992|書誌詳細|国立国会図書館サーチ
A=B : 等式証明とコンピュータ (トッパン): 1997|書誌詳細|国立国会図書館サーチ
Concurrent Cプログラミング言語―並行プログラミング入門 | ゲハーニ, ナイレン, ルーム, ウィリアム・D., Gehani, Narain, Roome, William D., 正郎, 中村 |本 | 通販 | Amazon

ラムダノート

プログラミングHaskell 第2版(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
定理証明手習い(紙書籍+電子書籍) – 技術書出版と販売のラムダノート

秀和システム

デバッガによるx86プログラム解析入門【x64対応版】|書籍情報|秀和システム
Haskell 教養としての関数型プログラミング - 秀和システム あなたの学びをサポート!
実践Rustプログラミング入門 - 秀和システム あなたの学びをサポート!

リバースエンジニアリングバイブル ~コード再創造の美学~ - インプレスブックス
真理・証明・計算 - ミネルヴァ書房 ―人文・法経・教育・心理・福祉などを刊行する出版社
コンピュータ・サイエンス研究書シリーズ 17 : 関数型プログラミング (日本コンピュータ協会): 1985|書誌詳細|国立国会図書館サーチ
サンライズ出版 » 論理と集合
C++言語のカラクリ|SBクリエイティブ
リックテレコム 書籍情報
コネクションマシン : 65,536台のプロセッサから構成される超並列コンピュータ | 国立情報学研究所図書室 蔵書検索(OPAC)

O'Reilly Japan

O'Reilly Japan - make 改訂版
O'Reilly Japan - Hacking:美しき策謀 第2版
O'Reilly Japan - リバースエンジニアリング
O'Reilly Japan - Binary Hacks
O'Reilly Japan - アンダースタンディング コンピュテーション
O'Reilly Japan - Cクイックリファレンス 第2版
O'Reilly Japan - プログラミングGauche
O'Reilly Japan - Haskellによる並列・並行プログラミング
だめぽラボ@技術書典9さんはTwitterを使っています 「「Haskellによる並列・並行プログラミング」は原著が2013年、邦訳が2014年の本だけど、古くなってる部分とかあるのかな(配列ライブラリーとしてrepaが紹介されてるけど、最近はmassivというのも出てきているらしいので)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GPUプログラミングに関しては6章でaccelerateを扱っていて、その辺は2021年現在もそんなに変わらないと思う(accelerate自体のアップデートとかはあるだろうけど)」 / Twitter
O'Reilly Japan - グラフデータベース
O'Reilly Japan - インテル スレッディング・ビルディング・ブロック
O'Reilly Japan - ビューティフルアーキテクチャ
O'Reilly Japan - Go言語による並行処理
O'Reilly Japan - 詳解 システム・パフォーマンス
O'Reilly Japan - データ指向アプリケーションデザイン
O'Reilly Japan - 詳説 データベース
O'Reilly Japan - SQLアンチパターン

CUTT System

CUTT System:【改訂版】プロトコル構文規定言語ーASN.1
CUTT System:AVX命令入門
CUTT System:64ビットアセンブラ入門
CUTT System:構造化並列プログラミング

CQ出版

データベース技術教科書
数値演算入門―8086による浮動小数点演算の実際と8087の使い方 (パラダイム・ブックス) | 大貫 広幸 |本 | 通販 | Amazon
x86アセンブラ入門 : PC/ATなどで使われている80x86のアセンブラを習得 (CQ出版): 2006|書誌詳細|国立国会図書館サーチ
[絶版1999.4] 8086ファミリ・ハンドブック
[絶版2003.5.26] PostScript詳細解説
組み込みソフトへの数理的アプローチ

日経BP

LINQテクノロジ入門 | 日経クロステック(xTECH)
日経BP SHOP|XQuery+XMLデータベース入門
日経BP SHOP|プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識
日経BP SHOP|チューリングを読む
コンピュータの構成と設計 第5版 上|日経の本 日経BP
コンピュータの構成と設計 第5版 下|日経の本 日経BP

放送大学教育振興会

「コンピューティング-原理とその展開-」 - 理学の本棚 - 東京大学 大学院理学系研究科・理学部
コンピューティング-原理とその展開- - 放送大学教育振興会オンラインショップ

東京大学出版会

並列プログラミング入門 - 東京大学出版会
数理論理学 - 東京大学出版会

岩波書店

システムプログラム入門 - 岩波書店
論理と意味 - 岩波書店
アルゴリズムとプログラミング言語 - 岩波書店
論理とプログラム意味論 - 岩波書店
Introduction to Computer Science
プログラミング言語 (岩波書店): 1994-06|書誌詳細|国立国会図書館サーチ
プログラミング言語処理系 (岩波書店): 1989|書誌詳細|国立国会図書館サーチ
記号処理プログラミング (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
計算モデルの基礎理論 (岩波書店): 1991|書誌詳細|国立国会図書館サーチ
プログラムの基礎理論 (岩波書店): 1991|書誌詳細|国立国会図書館サーチ
モデルと表現 (岩波書店): 1992|書誌詳細|国立国会図書館サーチ
ゲーデル 不完全性定理 - 岩波書店
論理学超入門 - 岩波書店
論理と計算のしくみ - 岩波書店
新版 バナッハ-タルスキーのパラドックス - 岩波書店
抽象数学の手ざわり - 岩波書店

近代科学社

近代科学社
近代科学社
近代科学社
近代科学社
演習プログラムの証明 (近代科学社): 1980|書誌詳細|国立国会図書館サーチ
近代科学社
近代科学社
近代科学社
近代科学社
近代科学社
近代科学社
近代科学社
近代科学社
近代科学社

技術評論社

80x86 80x87―ファミリー・テクニカルハンドブック | RobertL. Hummel, 槌田 浩一 |本 | 通販 | Amazon
たのしいバイナリの歩き方:書籍案内|技術評論社
プロセッサを支える技術 ― 果てしなくスピードを追求する世界:書籍案内|技術評論社
コンピュータアーキテクチャ技術入門 ――高速化の追求×消費電力の壁:書籍案内|技術評論社
証明と論理に強くなる ~論理式の読み方から,ゲーデルの門前まで~:書籍案内|技術評論社
WEB+DB PRESS Vol.60|技術評論社
「言語設計の基礎知識」本日発売! - 西尾泰和のはてなダイアリー
プログラミング in OCaml 〜関数型プログラミングの基礎からGUI構築まで〜:書籍案内|技術評論社
プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで
WEB+DB PRESS総集編 [Vol.1~102]:書籍案内|技術評論社
JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技:書籍案内|技術評論社
はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる:書籍案内|技術評論社
コーディングを支える技術――成り立ちから学ぶプログラミング作法(WEB+DB PRESS plusシリーズ)|gihyo.jp … 技術評論社
「コーディングを支える技術」著者公式ページ
[増補改訂]関数プログラミング実践入門──簡潔で,正しいコードを書くために:書籍案内|技術評論社

翔泳社

ガベージコレクション(RichardJones AntonyHosking EliotMoss 前田敦司 鵜川始陽 小宮常康) | 翔泳社の本
ヘネシー&パターソン コンピュータアーキテクチャ 第5版 翻訳版ホームページ | Amano Lab
関数型リアクティブプログラミング 電子書籍(株式会社クイープ 株式会社クイープ AnthonyJones StephenBlackheath)|翔泳社の本
実用Common Lisp(Peter Norvig 杉本宣男)|翔泳社の本
Scala逆引きレシピ(竹添直樹 島本多可子)|翔泳社の本
独習コンピュータ科学基礎II 論理構造(神林靖 James L. Hein)|翔泳社の本
最新コンパイラ構成技法(神林 靖 神林 靖 Andrew W. Appel 滝本 宗宏 滝本 宗宏)|翔泳社の本
入門Haskellプログラミング(Will Kurt 株式会社クイープ 株式会社クイープ)|翔泳社の本
コンピュータプログラミングの概念・技法・モデル(Peter Van Roy Seif Haridi 羽永 洋 羽永 洋)|翔泳社の本

共立出版

情報理論のための数理論理学 / 板井 昌典 著 | 共立出版
スタックコンピュータ ―CISC/RISCとスタックアーキテクチャ― / Philip J.Koopman,Jr.  著 田中 清臣 監訳 藤井 敬雄 訳 | 共立出版
新しいプログラミング・パラダイム / 井田 哲雄 編 | 共立出版
続新しいプログラミング・パラダイム / 井田 哲雄 田中 二郎 編 | 共立出版
属性文法入門 | 今泉 貴史, 片山 卓也, 佐々 政孝, 篠田 陽一, 中田 育男, 西野 哲朗, 松田 裕幸, 情報処理学会 |本 | 通販 | Amazon
プログラムスライシング技術と応用 / 下村 隆夫 著 | 共立出版
並列論理型言語GHCとその応用 / 淵 一博 監修 古川 康一 溝口 文雄 共編 | 共立出版
プログラム変換 / 淵 一博 監修 古川 康一 溝口 文雄 共編 | 共立出版
制約論理プログラミング / 淵 一博 監修 溝口 文雄 古川 康一 J-L.Lassez  編 | 共立出版
応用論理 / 桔梗 宏孝 著 | 共立出版
プログラム検証論 / 林 晋 著 | 共立出版
プログラミング言語Standard ML入門 / 大堀 淳 著 | 共立出版
復刊 証明論入門 / 竹内 外史 八杉 満利子 共著 | 共立出版
プログラミング言語の新潮流 / 井田 哲雄 著 | 共立出版
情報代数 / 小野 寛晰 著 | 共立出版
情報検索の基礎 / Christopher D.Manning  Prabhakar Raghavan  Hinrich Schutze  著 岩野 和生 黒川 利明 濱田 誠司 村上 明子 訳 | 共立出版
新装版 プログラミング言語の基礎理論 / 大堀 淳 著 | 共立出版
計算機代数の基礎理論 / 長坂 耕作 岩根 秀直 編著 北本 卓也 讃岐 勝 照井 章 鍋島 克輔 著 | 共立出版
新世代プログラミング / 淵 一博 黒川 利明 編著 | 共立出版
数学における証明と真理 ―様相論理と数学基礎論― / 菊池 誠 編 佐野 勝彦 倉橋 太志 薄葉 季路 黒川 英徳 菊池 誠 著 | 共立出版
ヒルベルト数学の問題 ―ヒルベルトの問題― 増補版 / D.HILBERT  著 一松 信 訳・解説 正田 建次郎 吉田 洋一 監修 | 共立出版
ペアノ数の概念について / G.PEANO  著 小野 勝次 梅沢 敏郎 訳・解説 正田 建次郎 吉田 洋一 監修 | 共立出版
プログラム意味論 / 横内 寛文 著 | 共立出版
不完全性定理 / 菊池 誠 著 | 共立出版
計算科学のための並列計算 ―大規模計算への第一歩― / 金田 行雄 笹井 理生 監修 石井 克哉 編 | 共立出版
計算科学のための基本数理アルゴリズム / 金田 行雄 笹井 理生 監修 張 紹良 編 | 共立出版
数とは何か ―そしてまた何であったか― / 足立 恒雄 著 | 共立出版
計算で身につくトポロジー / 阿原 一志 著 | 共立出版
多変数関数論 / 若林 功 著 | 共立出版
Transputer/occamによる並列プログラミング入門 / Ronald S.Cok  著 梅尾 博司 監訳 松田 稔 丸山 公雄 山本 正樹 訳 | 共立出版

日本評論社

古森 雄一 のホームページ
圏論の歩き方|日本評論社
関数プログラミング|日本評論社
情報科学における論理|日本評論社

朝倉書店

朝倉書店| コンパイラの構成と最適化 (第2版)
朝倉書店| 数理論理学
数理情報学入門 : スコット・プログラム理論 (朝倉書店): 1982|書誌詳細|国立国会図書館サーチ
朝倉書店| パターンの発見 ―離散数学―
朝倉書店| パラドックスの不思議 ―論理と集合―
朝倉書店| コンピュータの思考法 ―計算モデル―
朝倉書店| コンピュータと数学

森北出版

形式的モデル化 離散事象/実時間/ハイブリッドシステムのモデル化と解析 | 森北出版株式会社
定理証明支援系とは何か、何ができるのか|森北出版|note
Coq/SSReflect/MathCompによる定理証明 フリーソフトではじめる数学の形式化 | 森北出版株式会社
計算モデルとプログラミング | 森北出版株式会社
数学パズル ものまね鳥をまねる 愉快なパズルと結合子論理の夢の鳥物語 | 森北出版株式会社
定理のつくりかた | 森北出版株式会社
よくわかるトポロジー | 森北出版株式会社

新潮社

ジョージ・G・スピーロ、青木薫/訳 『ケプラー予想―四百年の難問が解けるまで―』 | 新潮社
ロビン・ウィルソン、茂木健一郎/訳 『四色問題』 | 新潮社

遊星社

数学と新しい論理
述語論理・入門
構成的プログラミングの基礎
選択公理と数学

青土社

青土社 ||科学/数学/生物:コンピュータは数学者になれるのか?
青土社 ||科学/数学/生物:バナッハ=タルスキの逆説

裳華房

<書籍紹介> 証明論と計算量(竹内外史 著)【数学】
<書籍紹介> 本質から理解する 数学的手法(荒木 修・齋藤智彦 共著)【数学】
<書籍紹介> 数学基礎論序説(田中一之 著)【数学】
<書籍紹介> 手を動かしてまなぶ 集合と位相(藤岡 敦 著)【数学】

講談社

『数学にとって証明とはなにか ピタゴラスの定理からイプシロン・デルタ論法まで』(瀬山 士郎):ブルーバックス|講談社BOOK倶楽部
問題解決力を鍛える!アルゴリズムとデータ構造 | 書籍情報 | 株式会社 講談社サイエンティフィク
知の教科書 論理の哲学 (講談社選書メチエ) | 飯田 隆 |本 | 通販 | Amazon
イラストで学ぶ 人工知能概論 | 書籍情報 | 株式会社 講談社サイエンティフィク

現代数学社

広がりゆくトポロジーの世界 —言語としてのホモトピー論— | 株式会社 現代数学社
数学の研究をはじめよう(Ⅳ)完全数の新しい世界 | 株式会社 現代数学社

丸善出版

数理論理学とタイプ理論 : 証明による真理へ (丸善): 1987|書誌詳細|国立国会図書館サーチ
ベーシック圏論 - 丸善出版 理工・医学・人文社会科学の専門書出版社

GUI

その他

Kindle

Google Chrome ユーザーデータ自動軽量化Book | 柳井 政和 | 工学 | Kindleストア | Amazon
速習ECMAScript2018: 次世代の標準JavaScriptを今すぐマスター! 速習シリーズ | 山田祥寛 | 工学 | Kindleストア | Amazon

curses―UNIXユーティリティライブラリ | ジョン ストラング, 菊池 彰 |本 | 通販 | Amazon
The Craft of Text Editing―手作りのテキストエディタ | クレイグ・A. フィンゼス, Craig A. Finseth, 岩谷 宏 |本 | 通販 | Amazon
HTML+スタイルシート徹底活用ガイド (SOFTBANK BOOKS) | 宮坂 雅輝 |本 | 通販 | Amazon
朝倉書店| GUIライブラリの仕組み ―ソフトウェア設計のケーススタディ―
IBM PCビデオシステムプログラミング (ソフトバンク出版事業部): 1994|書誌詳細|国立国会図書館サーチ
秀和システム:フルスクラッチによるグラフィックスプログラミング入門
並列処理シリーズ 並列図形処理|コロナ社
Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法 - インプレスブックス

CQ出版

[絶版2008.9.4] JPEG2000詳細解説
[絶版2008.8.19] よくわかる動画・静止画の処理技術
No.6(2010・SUMMER) 目次|ディジタル・デザイン・テクノロジ

技術評論社

検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏:書籍案内|技術評論社
Androidを支える技術〈Ⅰ〉──60fpsを達成するモダンなGUIシステム:書籍案内|技術評論社
2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー:書籍案内|技術評論社
ブラウザのしくみ:書籍案内|技術評論社
Webフロントエンド ハイパフォーマンス チューニング:書籍案内|技術評論社
オンラインゲームを支える技術 ―壮大なプレイ空間の舞台裏:書籍案内|技術評論社
クラウドゲームをつくる技術 ―マルチプレイゲーム開発の新戦力:書籍案内|技術評論社

アスキー

プログラミングWideStudio―オープンソース、マルチプラットフォーム対応統合開発環境 (ASCII SOFTWARE SCIENCE Language) | 平林 俊一, 末竹 弘之, 白沢 克年, 玉木 徹, 重 俊博, 山崎 亮, 金 泰斗, 山本 清, おぐら ともふみ |本 | 通販 | Amazon
termcap&terminfo (NUTSHELL HANDBOOK) | ジョン ストラング, ティム オレイリー, リンダ ムイ, John Strang, Tim O’Reilly, Linda Mui, 鈴木 麗 |本 | 通販 | Amazon
グラフィックファイルフォーマット・ハンドブック | David C.Kay, John R.Levine, MbCD |本 | 通販 | Amazon

O'Reilly Japan

O'Reilly Japan - 初めてのJavaScript 第3版
O'Reilly Japan - SVGエッセンシャルズ 第2版
O'Reilly Japan - CSSシークレット
O'Reilly Japan - CSSクックブック
O'Reilly Japan - 実用Git
O'Reilly Japan - PDF構造解説
O'Reilly Japan - マイクロインタラクション

アンテナハウス

『PDFインフラストラクチャ解説 電子の紙PDFとその周辺技術を語り尽す』 | アンテナハウス PDF資料室
『タグ付きPDF 仕組と制作方法解説』Kindle版とプリントオンデマンド版発売になりました。 | 電子書籍、電子出版のCAS-UBブログ
目次:MathML 数式組版入門

マイナビ出版

マイナビ ブックス - 目次
未来をつくった人々 : ゼロックス・パロアルト研究所とコンピュータエイジの黎明 (毎日コミュニケーションズ): 2001|書誌詳細|国立国会図書館サーチ
未来をつくった人々 - Wikipedia
HTML&CSS―HTML4.01&CSS2対応 (速効!ポケットマニュアル) | 森 理浩 |本 | 通販 | Amazon

OS

その他

Kindle

Windows Installer技術 | 福間通人 | 工学 | Kindleストア | Amazon
Amazon.co.jp: ディベロッパー・エクスペリエンス Linux Ext2ファイルシステム eBook: Nina Petipa: Kindleストア

Bluetooth LE入門 スマホにつながる低消費電力無線センサの開発をはじめよう|書籍情報|秀和システム
オペレーティングシステム入門 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
[改訂版]コンピュータと素因子分解
はじめての数論 原著第3版[丸善出版]
Inside Windowsファイルフォーマット (カットシステム): 1995|書誌詳細|国立国会図書館サーチ
ソフトウェア実行/開発環境 (岩波書店): 1992|書誌詳細|国立国会図書館サーチ
分散オペレーティングシステム ―UNIXの次にくるもの― / 前川 守 所 真理雄 清水 謙多郎 編 | 共立出版
ゼロからのOS自作入門 | マイナビブックス
『ゼロからのOS自作入門』に込めた思い - uchan note

ピアソンエデュケーション

Solarisインターナル―カーネル構造のすべて | ジム モーロ, リチャード マクドゥーガル, Jim Maure, Richard McDougall, 福本 秀, 細川 一茂, 佐藤 敬, 兵頭 武文, 大嶺 朋之 |本 | 通販 | Amazon
Amazon | Win32システムサービスプログラミング―Windows NT/95システムAPIリファレンス (Windows programming technique) | マーシャル・ブレイン, 郡司 芳昭, 三田 典玄 | Web構築・管理

トムソン

プログラマーのためのDCE入門 | ワード ローゼンベリー, ゲリー フィッシャー, デビッド ケニー, Ward Rosenberry, Gerry Fisher, David Kenney, 中田 温朗 |本 | 通販 | Amazon
DCEプログラミングガイド | ジョン シャーリー, デビット マギッド, ウェイ フー, John Shirley, David Magid, Wei Hu, 中田 温朗 |本 | 通販 | Amazon
DCEとWindows NT―対応アプリケーションのプログラミング | ワード ローゼンベリー, ジム ティーグ, Ward Rosenberry, Jim Teague, 望月 康司 |本 | 通販 | Amazon

オーム社

USBオーディオデバイスクラスの教科書 | コンピュータ・一般書,ハードウェア・自作,その他 | Ohmsha
sonic1.biz/front_page.htm
マスタリングTCP/IP SNMP編 | コンピュータ・一般書,ネットワーク構築,プロトコル | Ohmsha
IT Text オペレーティングシステム(改訂2版) | Ohmsha

ラムダノート

プロフェッショナルSSL/TLS(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
書評:プロフェッショナルSSL/TLS - ぼちぼち日記
プロフェッショナルSSL/TLS 1.2章
OpenSSLクックブック(電子書籍のみ) – 技術書出版と販売のラムダノート

SBクリエイティブ

WinSock関連リンク集
WinSock2 プログラミング 改訂第2版
SBクリエイティブ:最新 Windows Vistaプログラミング徹底理解
『暗号技術入門 第3版 秘密の国のアリス』
SBクリエイティブ:動かして学ぶセキュリティ入門講座
UNIXカーネル内部解析―キャッシュとマルチプロセッサの管理 (プロフェッショナルコンピューティングシリーズ) | カート シメル, Curt Schimmel, 岩本 信一 |本 | 通販 | Amazon
DNSがよくわかる教科書 | SBクリエイティブ

アスキー

SOUND BLASTERオフィシャルブック (マルチメディアプログラミング―Disk book) | Richard Heimlich, Peter M. Ridge, David M. Golden, Ivan Luk |本 | 通販 | Amazon
Panic!―UNIXシステムクラッシュの追求と対策 (サンソフトプレスシリーズ) | 福崎 俊博, Chris Drake, Kimberley Brown |本 | 通販 | Amazon
Amazon | プログラミングWindows第5版〈上〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) | チャールズ ペゾルド, Charles Petzold, 長尾 高弘, ロングテール | Web構築・管理
プログラミングWindows第5版〈下〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) | チャールズ ペゾルド, Charles Petzold, 長尾 高弘, ロングテール |本 | 通販 | Amazon
Amazon | Inside OLE (マイクロソフトプレスシリーズ) | Kraig Brockschmidt, エー・ピー・ラボ, 長尾 高弘 | ソフトウェア開発・言語
Amazon | Inside COM―Microsoft’s Component Object Model (Microsoft programming series) | Dale Rogerson, バウングローバル株式会社 | ソフトウェア開発・言語
termcap&terminfo (NUTSHELL HANDBOOK) | ジョン ストラング, ティム オレイリー, リンダ ムイ, John Strang, Tim O’Reilly, Linda Mui, 鈴木 麗 |本 | 通販 | Amazon
UNIX Cプログラミング (NUTSSHELL HANDBOOKS) | デビッド・A. クリ, アスキー書籍編集部 |本 | 通販 | Amazon
Xinuオペレーティングシステムデザイン 改訂2版 - アスキードワンゴ

コロナ社

実践サイバーセキュリティモニタリング|コロナ社
暗号ハードウェアのセキュリティ | コロナ社

O'Reilly Japan

O'Reilly Japan - Bluetooth Low Energyをはじめよう
O'Reilly Japan - 詳解 Linuxカーネル 第3版
O'Reilly Japan - Real World HTTP

CQ出版

改訂新版 パソコン・インターフェース規格入門(SP No.94)
PCI Express設計の基礎と応用
FPGAでゼロから作るPCI Express
定番!超軽量マイコン用ファイル・システムFatFs
組み込み機器へのUSBホスト実装技法
USB 3.0設計のすべて
シリアルATAの基礎とFPGAへの実装
[品切れ重版未定2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
[絶版2011.9.8] リアルタイム/マルチタスクシステムの徹底研究
全部ネット接続!Ethernetマイコン・プログラミング
USB Type-Cのすべて

工学社

書籍情報―OpenCV3ではじめる Windowsアプリ開発
OpenCV3ではじめる Windowsアプリ開発
次世代OSアーキテクチャ―QNXオペレーティング・システムの世界 「マイクロカーネルOS」と「ネットワーク分散処理」 | 鈴木 治 |本 | 通販 | Amazon
書籍情報―「USB TypeC」の基礎知識
書籍情報―実践「USB TypeC」

翔泳社

Amazon | Windows 98 APIバイブル シェル・シェルユーティリティ・印刷・IME・追加関数編 (Programmer’s Selection) | ガリバー, 長谷川 勝規 | Windows
COM IDL&インターフェイスデザイン (Programmer’s SELECTION) | アル メジャー, 萩原 正義, Al Major, 夏目 大 |本 | 通販 | Amazon
ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ第5版(鈴木貢 中條拓伯 John L. Hennessy David A. Patterson 天野英晴 吉瀬謙二 佐藤寿倫)|翔泳社の本

日経BP社

プログラミングWindows Runtime|日経BPブックナビ【公式サイト】
日経BP書店|目次 -
Advanced Windows : Microsoft Visual Studio 2008 (日経BPソフトプレス): 2008|書誌詳細|国立国会図書館サーチ
APIで学ぶWindows徹底理解 (日経BPパソコンベストムック) | 安室 浩和, 日経ソフトウエア編 |本 | 通販 | Amazon
APIで学ぶWindowsプログラミング (日経BPパソコンベストムック) | 安室 浩和, 日経ソフトウエア |本 | 通販 | Amazon
日経ソフトウエア 2010年 04月号 [雑誌] | 日経ソフトウエア |本 | 通販 | Amazon
COM+テクノロジガイド (マイクロソフト公式解説書―最新テクノロジシリーズ) | デイビット プラット, David S. Platt, 豊田 孝 |本 | 通販 | Amazon

技術評論社

3分間HTTP &メールプロトコル基礎講座 : 世界一わかりやすいネットワークの授業 (技術評論社): 2010|書誌詳細|国立国会図書館サーチ
Firefox OS 【決定版】 開発ガイドブック:書籍案内|技術評論社
Androidを支える技術〈Ⅱ〉──真のマルチタスクに挑んだモバイルOSの心臓部:書籍案内|技術評論社
[Web開発者のための]大規模サービス技術入門 ―データ構造,メモリ,OS,DB,サーバ/インフラ(WEB+DB PRESS plusシリーズ)|gihyo.jp … 技術評論社
[増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
TCP技術入門 ――進化を続ける基本プロトコル:書籍案内|技術評論社

森北出版

情報セキュリティの理論と技術 暗号理論からICカードの耐タンパー技術まで | 森北出版株式会社
Javaで作って学ぶ暗号技術 RSA,AES,SHAの基礎からSSLまで | 森北出版株式会社

機械学習

その他

作品紹介:パターン認識と機械学習の学習普及版 :暗黒通信団
図解でわかる多変量解析 : データの山から本質を見抜く科学的分析ツール 涌井 良幸(著/文)…他1名(日本実業出版社)| 版元ドットコム
概念記憶システムの研究―概念記憶の意味ネットワークモデルと連想プロセッサによる実現法 (1982年) | 嶋津 好生 |本 | 通販 | Amazon
発語内行為の意味ネットワーク―言語行為論からの辞書的対話事例分析 (松山大学言語・情報研究センター叢書) | 久保 進, 越智 希美子, 向井 留実子, 阿部 桂子, 鈴木 光代 |本 | 通販 | Amazon
CiNii 図書 - C言語によるエキスパートシステム : シェルの実例と知識表現
CiNii 図書 - エキスパートシステムの設計と開発
O'Reilly Japan - word2vecによる自然言語処理
近代科学社
知識と推論 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
確率的言語モデル - 東京大学出版会
考えることの科学|新書|中央公論新社
ニューロ・ファジィ・遺伝的アルゴリズム (産業図書): 1994|書誌詳細|国立国会図書館サーチ
1次近似で視る多変数の微分積分 (学術図書出版社): 2013|書誌詳細|国立国会図書館サーチ
統計分布を知れば世界が分かる|新書|中央公論新社
ヒトの言葉 機械の言葉 「人工知能と話す」以前の言語学 川添 愛:一般書 | KADOKAWA
形式意味論入門 株式会社開拓社
書籍情報―ファジーで データを読む
アブダクション - 株式会社 勁草書房
<書籍紹介> 数理モデル入門(齋藤誠慈 著)【数学】

技術評論社

Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド―:書籍案内|技術評論社
Pythonクローリング&スクレイピング[増補改訂版] ―データ収集・解析のための実践開発ガイドー:書籍案内|技術評論社
サポートページ:日本語入力を支える技術 ―変わり続けるコンピュータと言葉の世界:|技術評論社

岩波書店

知識と推論 (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
自然言語処理 (岩波書店): 1996|書誌詳細|国立国会図書館サーチ
認識と学習 (岩波書店): 1989|書誌詳細|国立国会図書館サーチ
言語の獲得と喪失 (岩波書店): 1999|書誌詳細|国立国会図書館サーチ
キーポイント 多変数の微分積分 - 岩波書店
サンプリングって何だろう - 岩波書店

共立出版

確率的グラフィカルモデル / 鈴木 譲 植野 真臣 編著 黒木 学 清水 昌平 湊 真一 石畠 正和 樺島 祥介 田中 和之 本村 陽一 玉田 嘉紀 著 | 共立出版
微分積分学講義 / 野村 隆昭 著 | 共立出版
数値計算の常識 / 伊理 正夫 藤野 和建 著 | 共立出版
線形代数入門 : 理論と計算法徹底ガイド 松本 和一郎(著/文)(共立)| 版元ドットコム
言語を獲得するコンピュータ / 日本認知科学会  編 錦見 美貴子 著 | 共立出版
最小二乗法・交互最小二乗法 / 森 裕一 黒田 正博 足立 浩平 著 | 共立出版
知識の帰納的推論 / E.Y.Shapiro  著 淵 一博 監修 有川 節夫 訳 | 共立出版
定性推論 / 淵 一博 監修 溝口 文雄 古川 康一 安西 祐一郎 共編 | 共立出版
イプシロン‐デルタ / 田島 一郎 著 | 共立出版
線形代数セミナー ―射影,特異値分解,一般逆行列― / 金谷 健一 著 | 共立出版
欠測データ処理 ―Rによる単一代入法と多重代入法― / 高橋 将宜 渡辺 美智子 著 | 共立出版
点過程の時系列解析 / 近江 崇宏 野村 俊一 著 | 共立出版
ファジィ時系列解析 / 渡辺 則生 著 | 共立出版

内田老鶴圃

内田老鶴圃/書籍詳細/統計学への確率論,その先へ
Papers and Preprints
sonosakie.pdf

オーム社

続・わかりやすい パターン認識 -教師なし学習入門- | 理工学専門書,情報科学,知識科学・人工知能 | Ohmsha
【書評】続・わかりやすいパターン認識 -教師なし学習入門- - old school magic
知的連想メモリマシン (オーム社): 1989|書誌詳細|国立国会図書館サーチ
グッド・マス ギークのための数・論理・計算機科学 | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
IT Text データマイニングの基礎 | Ohmsha

森北出版

フリーソフトでつくる音声認識システム(第2版) パターン認識・機械学習の初歩から対話システムまで | 森北出版株式会社
はじめてのパターン認識 | 森北出版株式会社
はじめての数理論理学 証明を作りながら学ぶ記号論理の考え方 | 森北出版株式会社
待ち行列と確率分布 情報システム解析への応用 | 森北出版株式会社

丸善出版

keiichiro shikano λ♪さんのツイート: "PRML、無償ダウンロードだと。。 https://t.co/vXEwlTZLnr"
パターン認識と機械学習 上[丸善出版]
PRML演習問題 全問解答 | 機械学習の教科書の決定版【パターン認識と機械学習】の演習問題の全てを詳しく解答・解説
New Book: Knowledge Representation and Fast Inferences
情報学シリーズ2

CQ出版

RFワールドNo.30 - 目次
RFワールドNo.32 - 目次
改訂新版 データの符号化技術と誤り訂正の基礎

朝倉書店

朝倉書店| しくみがわかる深層学習
朝倉書店| サンプルサイズの決め方
朝倉書店| 機械学習 ─データを読み解くアルゴリズムの技法─
朝倉書店|入門 統計的因果推論

牧野書店

複雑系のための基礎数理 : べき乗則とツァリスエントロピーの数理 (牧野書店): 2010|書誌詳細|国立国会図書館サーチ
情報幾何学の基礎 = FOUNDATIONS OF INFORMATION GEOMETRY (牧野書店): 2015|書誌詳細|国立国会図書館サーチ
積分幾何学入門 (牧野書店): 2016|書誌詳細|国立国会図書館サーチ

講談社

『高次元空間を見る方法 次元が増えるとどんな不思議が起こるのか』(小笠 英志):ブルーバックス|講談社BOOK倶楽部
新しい微積分<上> | 書籍情報 | 株式会社 講談社サイエンティフィク
データ分析のためのデータ可視化入門 | 書籍情報 | 株式会社 講談社サイエンティフィク

海文堂出版

ソフトコンピューティング (海文堂出版): 1998|書誌詳細|国立国会図書館サーチ
海文堂出版株式会社

コロナ社

自然言語処理シリーズ 構文解析|コロナ社
自然言語処理シリーズ 10 文脈解析 - 述語項構造・照応・談話構造の解析 - | コロナ社

くろしお出版

基礎日本語文法・改訂版|くろしお出版WEB
日本語文法の形式理論|くろしお出版WEB

だめぽラボ@技術書典9さんはTwitterを使っています 「確率を数学的に扱った本は「全測度が1の空間がどーのこーの」みたいな記述(定義)から始まり、確率をお気持ちで扱う本はそうではない」 / Twitter
lotzさんはTwitterを使っています 「そんなあなたにゲーム論的確率論👀」 / Twitter

雑誌

Interface – CQ出版
Software Design バックナンバー|gihyo.jp … 技術評論社
WEB+DB PRESS バックナンバー|gihyo.jp … 技術評論社
検索結果|日本評論社
数理科学 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
SGCライブラリ - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社

翻訳

DeepL翻訳
Linguee | Dictionary for German, French, Spanish, and more
Google 翻訳
Google翻訳コミュニティの間違った使い方 - アラフォー女子大生キャリアカウンセラー日記
英語翻訳 - エキサイト翻訳
Grammarly: Free Writing Assistant
OmegaTのHTMLファイルフィルターを移行した話 - 水底の血
Firefoxにローカルで動作する自動翻訳機能が追加される - GIGAZINE
Software – Bergamot
chikoskiさんのツイート: "GitLocalize使ってみてるんですが、結構MLによる自動翻訳の精度が高くて驚いてる。https://t.co/GNzX93qosX ローカライズ前のファイル名とローカライズ後のファイル名の対応ルールを、もう少し柔軟にかけたら、もっといいのになー、って思いながら、1つずつファイルを追加してる。"
GitLocalize – Continuous Localization for GitHub Projects
chikoskiさんのツイート: "新規の翻訳は本当に楽でいい。更新された時の差分表示がわかりやすいといいなあ。MDNは差分の把握が本当に大変で、そのせいで原文の更新の反映作業をやろうって気になかなかなれずにいるし…"
chikoskiさんのツイート: "GitLocalizeでローカライズ→GitLocalize場でレビュー→GitHubへpull request送信→GitHubでマージ、とういう流れ。自分でやった翻訳と、MLによる翻訳は別のコミットとして扱われている点が興味深かった。よくできてるな。"
腾讯翻译君 - 在线翻译
オープンソースのコミュニティにNICT「みんなの自動翻訳」を提供 | NICT-情報通信研究機構
英語論文読みを爆速にする、超便利ツール集 - Qiita
PDFやWord、Excelファイルを読み込み、レイアウトなどはそのまま内容だけを翻訳。Google Translation APIに新機能 - Publickey

Wayback Machine

Internet Archive: Digital Library of Free Books, Movies, Music & Wayback Machine
Internet Archive: Search Engine
インターネット上のあらゆる情報を記録・保存する「インターネット・アーカイブ」はどのように運営されているのか? - GIGAZINE
ウェブ上の情報を記録・保存する「インターネット・アーカイブ」の存続をひっそりと脅かしているものとは? - GIGAZINE
「インターネット・アーカイブのウェイバックマシンが記録した過去のウェブサイトの情報」に証拠能力があると裁判所が認める - GIGAZINE
Cloudflareとインターネットアーカイブがウェブの信頼性をさらに高めるため提携 - GIGAZINE
新型コロナウイルスの影響で「インターネット・アーカイブ」の通信量が秒間60ギガビットに到達、月間通信量は20ペタバイト以上 - GIGAZINE
フェイクニュースと戦うインターネットアーカイブの取り組みと問題 - GIGAZINE
The University of Tokyo - General Library : Free Texts : Free Download, Borrow and Streaming : Internet Archive
General Library | University of Tokyo Library System

検索

その他

AndroidのEUにおけるデフォルト検索エンジン指定に批判多数 | TechCrunch Japan
Lumen
DuckDuckGo — Privacy, simplified.
HotBot - The Private Search Engine
ウェブを検索
Qwant - The search engine that respects your privacy
Yandex
GMX International - Search Engine
Seznam – najdu tam, co neznám
Givero - Search the web to raise money for good causes.
PrivacyWall
Ecosia - the search engine that plants trees
元Google幹部による広告ゼロの検索エンジン「Neeva」がスタート、検索エンジンとして異例のサブスク方式を採用 - GIGAZINE

Searchfox

Searchfox
bgrins/searchfox: Mozilla code search web site
Searchfox | Bill McCloskey's Blog

日本

国立国会図書館デジタルコレクション
国立国会図書館インターネット資料収集保存事業
サクラチェッカー | やらせ・サクラレビューを見抜けるレビューチェックシステム
特許情報プラットフォーム|J-PlatPat
全国法人リスト - 全国約500万件の法人企業を一覧で検索

Twitter

Twitterの高度な検索
Takashi OkumuraさんはTwitterを使っています 「有益な情報。弊アカウントの過去ツイセレクションはこちら。面白い。歴史も感じる。 RT 過去にどんな発言をしてきたアカウントなのかチェックしたい時は、"from:user min_retweets:100"とすると、過去に100以上RTされた発言がざっと読めて、だいたい把握できる https://t.co/cGFZer4K0G」 / Twitter
Twitter検索コマンド全まとめ。日付指定やアカウント内検索など23個 -Appliv TOPICS

GitHub · Where software is built
Stack Overflow - Where Developers Learn, Share, & Build Careers
everyRFC
【本日のできるネット】【これは便利!!】Googleで「ライセンスフリー画像」を検索できるの知ってる? - PC Watch
Google Scholar
Google 検索オプション
Masaki HaraさんはTwitterを使っています 「Google検索、日本語の内容を優先して表示してほしいときと英語の内容を優先して表示してほしいときがあるんだけど、ユーザー設定とかじゃなくて一時的に変えられないのかな」 / Twitter
くりんぺっとさんはTwitterを使っています 「@qnighy URLに&hl=enを付けるとかでできませんか」 / Twitter
Search Console - ホーム
Dataset Search
Bing
researchmap
Welcome | Computer History Museum
メインページ - ウィクショナリー日本語版
Mapbox
5star opendatamap
TIMEMAP
Microsoftが過去14年間・2億5000万件分のカスタマーサービスの記録をネット上に流出させてしまったことが判明 - GIGAZINE
BinaryEdge
Googleが機械学習用のデータセットをインターネット上から検索可能な「Dataset Search」を正式公開 - GIGAZINE
Dataset Search
AWS S3の膨大な公開データを検索できるQuilt Dataが脱ステルス、無料利用も可 | TechCrunch Japan
Quilt is a versioned data portal for AWS

図形

draw.io
VSCodeでDraw.ioが使えるようになったらしい! - Qiita
Free AWS, Azure, GCP, Kubernetes Architecture Diagram Tool | CloudSkew
クラウドのアーキテクチャ図作成ツール「CloudSkew」、Webブラウザから無料で利用可能。AWS/Azure/GCP/Kubernetes/Oracle Cloudなどマルチクラウド対応 - Publickey
AWS Perspective | Implementations | AWS Solutions
AWSがアーキテクチャ図を自動作成できるソリューション実装「AWS Perspective」を公開 - GIGAZINE
AWSがダイアグラムエディタの開発に便利なライブラリ「Diagram Maker」を公開 - GIGAZINE
最近のアイコンが似通ってきている問題 | デザイン会社 ビートラックス: ブログ freshtrax
最近のロゴが似通ってきている問題 - 第2弾 | デザイン会社 ビートラックス: ブログ freshtrax
無料&YAMLで豊富なアイコンからネットワーク構成図が書ける「drawthe.net」レビュー - GIGAZINE
Excalidraw | Hand-drawn look & feel • Collaborative • Secure

数式

数式用字体
Mathpedia
MathWills - 数式に特化した情報共有サービス

PDF 等

O'Reilly Japan

jr4qpv/GNU_Make_3rd_jp: The GNU Make 3rd edition PDF of Japanese.
O'Reilly Japan - GNU Make 第3版
O'Reilly Japan - Real World HTTP ミニ版
Real World HTTPミニ版 - Google スライド

CS50x

米ハーバード大学のプログラミング授業 日本語訳が無償公開 誰でも聴講可 | ツギノジダイ
CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。
LABOT Inc. | 株式会社LABOT
CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。

機械学習

000607858.pdf
KOBA789さんはTwitterを使っています 「この言葉がかなり好き。もちろんこれは、まずはちゃんと勉強するということが前提なんだけれども。 「多くの場合ですね、理論が教えてくれるのはですね、よく考えればわかる程度のことなので、あんまり期待すると裏切られるんで注意してください」 https://t.co/bFJcXc9pGY」 / Twitter
裏口からのカルマンフィルタ入門 - YouTube
日本統計学会75周年記念出版
2021-3-3Open(S).pdf
国友直人のホームページ
えるエルさんはTwitterを使っています 「東大の講義で使われている量子コンピューティングの入門教材が公開されています https://t.co/y2s46VJ8En 基礎となる数理的な部分の丁寧な解説に加え,「4兆通りの足し算を同時に行う」等の量子コンピューティングの課題をPythonで実装する部分など,無料で参照できる資料としては最も充実しているのでは https://t.co/B0ZTISDkVP」 / Twitter
量子コンピューティング・ワークブックへようこそ! — 量子コンピューティング・ワークブック
技術選定の際には絶対に知っておきたいウェブ開発・機械学習・科学計算に役立つ便利な技術を動画でサクッと学び始められる「Udemy」新生活応援セール【Julia・GraphQL・BERTなど】 - GIGAZINE
「数理科学」記事

セキュリティ

無料で読めるセキュリティ定期発行物のまとめ - 午前7時のしなもんぶろぐ
セキュリティ情報の集め方 ~しなもんの場合~ - 午前7時のしなもんぶろぐ
役に立つセキュリティ情報の宝庫! 「JPCERT/CC」発信の情報まとめ! - 午前7時のしなもんぶろぐ
脆弱性の情報収集! 「JVN」の見方を教えます! - 午前7時のしなもんぶろぐ
クラウドを支えるこれからの暗号技術
『OpenSSLクックブック』提供開始のお知らせ – 技術書出版と販売のラムダノート
セキュリティに関する情報源を整理してみた 2020年版 - トリコロールな猫/セキュリティ
2020年上半期に公開されたセキュリティ関連文書まとめ - トリコロールな猫/セキュリティ

Net

HTTP/3 explained - The book
「プロフェッショナルIPv6」- 窓の杜
LambdaNote/errata-professional-ipv6-1-1: 『プロフェッショナルIPv6』正誤情報
徹底解説 v6プラス | 日本ネットワークイネイブラー株式会社

GUI・組版

Ray Tracing in One Weekend Series
ロボ太さんはTwitterを使っています 「NVIDIAの研究者、Peter Shirleyが書いた「週末でレイトレーシングを(Ray Tracing in One Weekend)」という本がソース(C++)込みで完全無料公開されてる。すごい。続編「次の週(THE NEXT WEEK)」と、「残りの人生(THE REST OF YOUR LIFE)」もある。 https://t.co/eX2YJ1JHfl」 / Twitter
XML関連出版物トップ - AH Formatter V6
多言語組版について | 多言語フォント | モリサワのフォント | 株式会社モリサワ

Git・ファイルシステム

Git - Book
Amazon.co.jp: ディベロッパー・エクスペリエンス Linux Ext2ファイルシステム eBook: Nina Petipa: Kindleストア

論理・ソフトウェア

計算機プログラムの構造と解釈 第二版
SICP Web Site for the Japanese Edition
OpenDataStructures.jp
ソフトウェアの基礎
オンラインで入手できる数理論理学・数学基礎論のテキスト
導入 -
サークル詳細 | 海洋軟件 | 技術書典
free-programming-books/free-programming-books-ja.md at master · EbookFoundation/free-programming-books

Microsoft Japan Code Labs
JOSYORI|IPSJ情報処理カタログ|情報処理の用語をわかりやすく解説
Kazuho OkuさんはTwitterを使っています 「宣伝しとくと、ロングマン英英辞典は、約2000語の基礎語彙を使って全ての単語を説明していて、英語を英語のニュアンスで学ぶ際の決定版とも言われる英英辞典です。英和だと、どうしても単語の一対一対応になりがちで、文脈による言い回しに対応しづらいから、学習用として英英辞典が勧められる認識」 / Twitter
Longman Dictionary of Contemporary English | LDOCE
Online OXFORD Collocation Dictionary of English
Aho/Ullman Foundations of Computer Science
The Architecture of Open Source Applications
クォータニオンとは何ぞや?:基礎線形代数講座 - SEGA TECH Blog
基礎線形代数講座
2021年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

規格

JIS

ODF

ODF 1.3 approved as OASIS Committee Specification - The Document Foundation Blog
JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
JIS X 4157-3:2008 トピックマップ―第3部:XML構文 | 日本規格協会 JSA Group Webdesk
JIS X 4158:2005 XML名前空間 | 日本規格協会 JSA Group Webdesk
JIS X 4159:2005 拡張可能なマーク付け言語(XML)1.0 | 日本規格協会 JSA Group Webdesk
JIS X 4160:2007 XMLパス言語(XPath)1.0 | 日本規格協会 JSA Group Webdesk
JIS X 4166:2005 XML文書へのグリフ識別子の埋込み | 日本規格協会 JSA Group Webdesk
JIS X 4176:2005 XMLリンク付け言語(XLink)1.0 | 日本規格協会 JSA Group Webdesk
JIS X 5093:2008 XML署名利用電子署名(XAdES)の長期署名プロファイル | 日本規格協会 JSA Group Webdesk

長音符号

jicchoさんはTwitterを使っています 「コンパイラーとかインタープリターとか書いちゃってる企業ブログは信じない方が良い technical termすら知らないようなきちんと学んだことない人が書いてるから」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 最後を長音にするからですか?」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 もしそうなら,最近規格が変わったので,最後を長音にしても間違いではないです。 https://t.co/loq6Pdnvb6」 / Twitter
外来語やカタカナ用語末尾に長音(ハイフン)をつけて伸ばした方が良い?29歳、離婚しました。
jicchoさんはTwitterを使っています 「@zacky1972 間違いではないことは知っています。 長音は略しても略さなくても良いことになりましたが、依然として、「専門分野の標準」を用いることが推奨されています。 なので、コンパイラと表記する方がより正しいと思います。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 この場合の「専門分野の標準」とは具体的に何を指しますか?」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 これですか? https://t.co/Ah4sDEllsH」 / Twitter
カタカナ語末尾の長音符号に対する情報処理学会の対応について-情報処理学会
jicchoさんはTwitterを使っています 「@zacky1972 はい、情報処理学会もそういう流れですし、世界的名著であるドラゴンブックやタイガーブックは標準といっても差し支えないと考えています。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 ドラゴンブックやタイガーブックはもともと洋書なので,日本語表記をどう定めるというのは翻訳者の意向に依るものだと思います。翻訳の年を確認していませんが,おそらく規格が変わる前なのでは?とも思います。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 また情報処理学会の表記は「当面」「見直す」という言葉が使われていて,暫定的なものであることを臭わせています。したがって末尾の長音の使用を強く禁ずる立場ではないと推察できます。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 以上のような意図を汲んで「コンパイラー」というような表記をあえて使用するケースも想定されます。私自身あえて使用する場合もあります。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 「見直す」ではなくて「再検討する」でしたね。」 / Twitter
jicchoさんはTwitterを使っています 「@zacky1972 もちろん僕も情報処理学会も長音の使用を禁止してはいませんよ。 ドラゴンブックなどを翻訳したのは僕のボスとボスのボスなので、そこまでおっしゃるならもはや流派の問題なのでしょうか? コンパイラーと意図的に表記する場合は具体的にどのような場合なのでしょうか?」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 基本どちらでも良いのですが,あえて使い分けるのでしたら,末尾長音を取るのは経産省の流儀で,つけるのは文化庁やその上部組織である文科省の流儀です。また役所の都合かと言われそうですけど。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 私が言いたかったのは「コンパイラーとかインタープリターとか書いちゃってる企業ブログは信じない方が良い」という判別法は,今は使えないということです。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 同じことがNVIDIAとかARMにも言えて,本家自身が表記揺れを出している状況です。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 表記で判別するのではなく,中身を見ましょうということです。」 / Twitter
jicchoさんはTwitterを使っています 「@zacky1972 慣例でも学会でも主要な本や論文でも長音がなく、かつ、長音なしが推奨されているのにも関わらず敢えて使う理由が僕には見つかりませんね。 まぁ信じない方がいいというのは極論&ネタですが、慣例や推奨されているのを知った上で敢えて使い続けるのもどうかと思います。 読みづらいですしね。」 / Twitter
jicchoさんはTwitterを使っています 「みなさん色々な意見をお持ちのようですが、「コンパイラー」という表記は間違いではないです。 ただ、慣例では「コンパイラ」の表記であり、学会や主要な文献でも長音がなく、どっちでもいいとはいえ慣例に従うのが推奨されているので、「コンパイラ」の方がより適切だと言うのが僕の考えです。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 威勢が良くていいですね。 自分で書く分には好きな記法で書けば良いと思います。」 / Twitter

JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
JIS X 4156:2005 ハイパテキストマーク付け言語(HTML)
JIS X 4168:2004 段階スタイルシート 水準1(CSS1)
JIS X 5603:1990 開放型システム間相互接続の抽象構文記法1(ASN.1)仕様/Open Systems Interconnection -- Specification of Abstract Syntax Notation One (ASN.1) 日本規格協会 JSA Webdesk
JIS X 0606:1998 情報交換用CD-ROMのボリューム構造及びファイル構造/Volume and file structure of CD-ROM for information interchange 日本規格協会 JSA Webdesk
JIS X 0612:2015 ユニバーサルディスクフォーマット(UDF)1.50 | 日本規格協会 JSA Group Webdesk
JIS X 0611:2018 ユニバーサルディスクフォーマット(UDF)2.01 | 日本規格協会 JSA Group Webdesk
JIS X 6235:2015 DVD-レコーダブルディスク(DVD-R)のボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
JIS X 0301:2002 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記 | 日本規格協会 JSA Group Webdesk
JIS X 0301:2002/AMENDMENT 1:2019 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記(追補1) | 日本規格協会 JSA Group Webdesk
JIS X 3061:2021 JSONデータ交換フォーマット | 日本規格協会 JSA Group Webdesk
JIS X 0304:2021 国名コード | 日本規格協会 JSA Group Webdesk

ICN

IoT向けの新技術を既存のTCP/IPと共存、国内発の技術が国際規格に承認:IoTの大量導入で起こるネットの混雑を防止 - @IT
IPアドレスに縛られない新しい通信識別技術と既存のインターネットが共存するための国際規格が発行されました (METI/経済産業省)
電気電子工学科の横谷哲也教授が主導してきたIoTプラットフォームが国際標準として出版。IoTの普及促進に向けIoTプラットフォームを規定。大学院生も調査分析及び原理検証に貢献 | ニュース | KIT 金沢工業大学
ISO - ISO/IEC 30161:2020 - Internet of Things (IoT) — Requirements of IoT data exchange platform for various IoT services
研究会 - IoT関連技術の国際標準化動向とIoT DEPの提案

Publicly Available Standards
日本規格協会 - JSA Webdesk
JIS公示 | IPSJ/ITSCJ
JIS(日本工業標準)関係
MCPC-モバイルコンピューティング推進コンソーシアム
CIPA 一般社団法人カメラ映像機器工業会: ホーム
JEITA 電子情報技術産業協会
標準規格(放送分野)一覧表|一般社団法人 電波産業会
JIS法改正(産業標準化法)(METI/経済産業省)
工業標準化法 - Wikipedia
日本工業規格 - Wikipedia
総務省|標準化の推進|デジュール及びフォーラム標準に関する標準化活動の強化に資する調査
ISO - ISO/IEC 646:1991 - Information technology — ISO 7-bit coded character set for information interchange
ISO 80000-2:2019 量及び単位-第2部:数学 | 日本規格協会 JSA Group Webdesk

論文

その他

【プレスリリース】アンモニアをクリーンで画期的な燃料に変える新しい触媒を開発 | 日本の研究.com
プラスチックを「食べる」酵素、研究室で偶然作成 | ナショナルジオグラフィック日本版サイト
遠山 祐典さんのツイート: "Nature公式、論文要旨の書き方。 授業でこれを扱うと国籍問わず大半の大学院生が知らなかったと言うので簡易和訳版を作成。 もちろん、Nature以外の論文にも流用する事が可能。 注目は、[結果]に使える文の少なさ(2~3文。全体の20~25%)。 和訳の修正案、大歓迎です。 英語版:https://t.co/RQEbeOWoNX… https://t.co/zdu9I9J24b"
2c_Summary_para.pdf
F1000とビル&メリンダ・ゲイツ財団、オープンアクセス出版のためのプラットフォーム“Gates Open Research”を2017年の第3四半期に開始 | カレントアウェアネス・ポータル
Gates Open Research
松田 栄治 Eiji Matsudaさんのツイート: "Nature Researchの松田と申します。このアブストラクトの書き方について、Nature日本法人の方で作っているPDFもありますので、よろしければご自由にお使いください。下記URLのp11となります。 https://t.co/7ze0gbfpCW… "
Yasunori GotoさんはTwitterを使っています 「作り方でもあるけど、論文のサマリの読み取り方でもあるよね。」 / Twitter
遠山 祐典さんのツイート: "ありがとうございます。 既にNature日本法人公式の日本語版があるとは存じあげませんでした。 公式版の方が、はるかに分かりやすいですね。 皆さま、こちらの公式版をお使い下さい。 Nature投稿案内: https://t.co/Nr1VZzaLjG… https://t.co/8u0eAdgbnV"
gta-2017.pdf
SIGのスポンサーになって、プログラミングの英語論文を読みまくろう! - Fight the Future
OS & システムソフトウェアの一流国際会議 - 品川高廣(東京大学)のブログ
工学系大学4年生のための論文の読み方
小川雄太郎さんはTwitterを使っています 「PyTorch Hubで各種メジャー論文のモデルをPyTorchで実行するためのデモコードが掲載されました 例えばYOLO v5は以下のページ https://t.co/6IrgskhHpK 有名モデルを使用したい場合は、このPyTorch Hubで検索して、使用方法などを確認するのが早そうです。 (リンク) https://t.co/EeNhpgj41j」 / Twitter
For Researchers | PyTorch
小川雄太郎さんはTwitterを使っています 「Papers with Codeに「Reproducibility Reports」機能(再現性レポート機能)が追加されました その論文内容を別の人が実装してみて、きちんと結果が再現できるかなどが今後報告される(できる)ようになります 論文内容をうまく再実装できないときの調べ先として、重宝しそうな機能です」 / Twitter
Papers with CodeさんはTwitterを使っています 「🎉 Reproducibility Reports are LIVE! Papers now link to reproducibility reports. Alongside code, this is a new signal for how reproducible a paper's findings are. Thanks to RC2020 participants, reviewers and ACs for their hard work! Example: https://t.co/wdm89qswKc https://t.co/EE6CkYNd8C」 / Twitter
Training Binary Neural Networks using the Bayesian Learning Rule | Papers With Code
Papers with CodeさんはTwitterを使っています 「You can find all the reproducibility reports for RC2020 on Papers with Code: https://t.co/NlLpIrL5At and on ReScience: https://t.co/LQihKp3y7p」 / Twitter
RC 2020 | Papers With Code
ReScience C

ResearchGate

ResearchGate | Find and share research
ResearchGate News
ResearchGate - Wikipedia
ResearchGate - Wikipedia
ResearchGate (リサーチゲート) | お役立ち情報ページ | レタープレス株式会社
研究者向けSNS「ResearchGate」で研究者間のつながりや議論はどう変わるのか | 英文校正と論文翻訳の医学英語総合サービス
ResearchGate 170万本の閲覧制限から見える著作権問題ー学術英語アカデミー
第303号 ResearchGateをめぐる動き(2) |ユサコニュース詳細 | 学術情報・論文作成支援【ユサコ株式会社】
ResearchGateによる無許可掲載 | エディテージ・インサイト

システム系論文の情報収集方法 - 睡分不足
JAC複製利用許諾システム |
Kenichi Asai
FrontPage - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)
IEICE ソフトウェアサイエンス研究会 (SIGSS)
情報処理学会 プログラミング研究会
情報学広場:情報処理学会電子図書館
コンピュータ ソフトウェア
人工知能学会論文誌
情報通信学会誌
電子情報通信学会 基礎・境界ソサイエティ Fundamentals Review
電子情報通信学会 通信ソサイエティマガジン
情報学広場:情報処理学会電子図書館
無料で読める記事-情報処理学会
解説・論文等-コンピュータ博物館
JAIRO : Japanese Institutional Repositories Online
CiNii Articles - 日本の論文をさがす - 国立情報学研究所
J-GLOBAL 科学技術総合リンクセンター - 科学技術振興機構
J-STAGE トップ
arXiv.org e-Print archive
ACL Member Portal | The Association for Computational Linguistics Member Portal
AAAI Publications
トップページ|日本漢字学会(Jsccc)
日本の研究.com
Open Access to ACM Digital Library During Coronavirus Pandemic
ACM Digital Library
Home - Springer
Home | Microsoft Academic

素材

アイコン素材

IcoMoonの使い方・ライセンス一覧など!Webフォントで扱えるアイコン素材サイト | ホームページ大学
FLATICONの使い方・ライセンスなどをご紹介!無料でも利用できるフリーアイコン素材サイト | ホームページ大学
オリジナルのアイコンをWEBフォント化して使う【fontello.com】
Network Topology Icons - Doing Business With Cisco - Cisco
図面とともにあらんことを!:第二面 - ネットワークのゲンバ(2014) | Interop Tokyo 2014
Dia Shape Repository
Bootstrapにとって初めての独自アイコン集「Bootstrap Icons」バージョン1.0が初公開 - Publickey

Lorem ipsum - Wikipedia
NHKクリエイティブ・ライブラリー 素材をさがす
ニューヨーク・メトロポリタン美術館、パブリックドメインになった芸術作品のデジタル画像をオープンアクセス化 | スラド オープンソース
The Metropolitan Museum of Art makes 375,000 images of public domain art freely available under Creative Commons Zero – Wikimedia Blog
ポーズビューワ | デッサンポーズ
無料ダウンロード&商用利用もOKなクラシカルな装飾を集めた「Handbook of Ornament」作品集 - GIGAZINE
無料でゲーム・アプリの開発に使えるアイコンが2800種類以上ある「Game-icons.net」 - GIGAZINE
Googleが機械学習用データとして利用できる手書きイラスト5000万点をオープンに利用できる形で公開 | スラド オープンソース
Quick, Draw! The Data
googlecreativelab/quickdraw-dataset: Documentation on how to access and use the Quick, Draw! Dataset.
英BBC、個人および研究目的なら無料で使える約1万6000種類のサウンドライブラリーを公開中【やじうまWatch】 - INTERNET Watch
ご利用について | いらすとや
クラシック音楽mp3無料ダウンロード 著作権切れ、パブリックドメインの歴史的音源
今月から、スタジオジブリ作品の場面写真の提供を開始します - スタジオジブリ|STUDIO GHIBLI
WEB会議などで使える背景画像 - 古典に親しむ | 国文学研究資料館
「いらすとや」が1月で定期更新を停止 「今のペースで全てをやり続けるのは難しい」(1/2 ページ) - ねとらぼ
今後のサイトの更新について | かわいいフリー素材集 いらすとや
ELYZA, Inc.さんはTwitterを使っています 「深層学習で使われる関数や手法,アーキテクチャの画像フリー素材が200種類以上あるリポジトリ。ブログやプレゼンなどで活躍しそう。 https://t.co/2kNs7FdiIG https://t.co/hL0I6foznV」 / Twitter
dvgodoy/dl-visuals: Over 200 figures and diagrams of the most popular deep learning architectures and layers FREE TO USE in your blog posts, slides, presentations, or papers.
Sangmin @ChoimiraiSchoolさんはTwitterを使っています 「海外で流行っているフリー素材のサイトが、storyset(👉https://t.co/1EiYU5SlBU)。日本ではまだメジャーではないけど検索に加え、ブラウザ上で色を変えれるのが最高です👏。 https://t.co/slNCZbNGSN」 / Twitter
Storyset | Customize, animate and download illustration for free
Sangmin @ChoimiraiSchoolさんはTwitterを使っています 「フリー素材のツールとして他にもよく使っているのが、 @unDraw_co (👉https://t.co/JO5vk9nVhu)。自分の好みとしては storyset より unDraw の方が好き😇。 https://t.co/rer16AqTRD」 / Twitter
Illustrations | unDraw
今月から、スタジオジブリ作品の場面写真の提供を開始します - スタジオジブリ|STUDIO GHIBLI
新しく、スタジオジブリ5作品の場面写真を追加提供致します - スタジオジブリ|STUDIO GHIBLI
無償。明治時代の郡地図。Googleマップのマイマップ版も - PC Watch
郡地図 Ver 1.0 - 郡地図研究会 - BOOTH

予約済みドメイン等

Example Domain
Example Domain
Example Domain
Example Domain
予約済みドメイン (.example, .localhost, .test) について | blog.jxck.io
RFC 7042 - IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters
RFC 3849 - IPv6 Address Prefix Reserved for Documentation
RFC 5737 - IPv4 Address Blocks Reserved for Documentation

チェックリスト等

技術書、それも売れるやつを書きたい人へ、編集者からのアドバイス | ツチノコブログ
技術系ブログを書いてくれてる人に申し上げたいこと6つ
論文等、書き物を他人に見せる前のチェックリスト – 上田ブログ
ブログを書くときのアンチパターン集【Agent Grow Advent Calendar 2016:25日目】 | 自主的20%るぅる
第3回プロから学ぶ「わかりやすい文章の書き方」
PDCAと5W1Hと4S
k16's note: 執筆・編集のためのGit(GitHub)ワークフローを考えてみた
ドキュメントの構造化による,良いドキュメントの作成方法:新春特別企画|gihyo.jp … 技術評論社
読まれるテキストは読者へのおもてなしの構造を持っている - mizchi's blog
失敗を学びに変える「障害報告書」の書き方 ─ RettyのCTOがGoogleで学んだ「問題を隠さない文化」 - エンジニアHub|若手Webエンジニアのキャリアを考える!
本の虫: Bjarne Stroustrupのプログラミング入門書の査読の感想
わかりやすい文章の10大原則(第2回) | Web文章入門(全7回) | Web担当者Forum
sogitani / baigie inc.さんのツイート: "話が分かりにくい人の条件 ・前提の説明がない ・結論を先に言ってない ・質問に答えてない ・全体→部分という構造になってない ・抽象的な言葉が多い ・相手に合わせて使う言葉を選んでない ・言葉を省略しすぎてる ・事実と解釈がごちゃまぜ ・話が拡散したり脱線したりする"
sogitani / baigie inc.さんのツイート: "分かりやすい文章の条件 ・前提の説明を丁寧にする ・結論をなるべく先に書く ・読み手の疑問を想定しそれに答える ・全体→部分という構造にする ・抽象的な言葉を避けて具体的に書く ・読み手に合わせて使う言葉を選ぶ ・言葉を省略しすぎない ・事実と解釈を区別して書く ・話の拡散、脱線を避ける"
これだけ守れば見やすくなるデザインの基礎 - Speaker Deck
Kazuho Okuさんのツイート: "どんな仕事でもそうだと思うけど、ソフトウェア開発でも実装の「how」でなく設計の背後にある「why」を共有しちゃえば、PRを細かく見る必要がなくなって楽になるんだよなーと思ってる"
事業計画書の作り方、新規ビジネスの考え方

日本語

読み

【みんなの知識 ちょっと便利帳】記号/符号の種類・名称・読み方 =キーボードの記号=
等幅フォントは「とうふく」「とうはば」どっち? - しろもじメモランダム
括弧 - Wikipedia
混乱する括弧の呼び方(パーレン?ブラケット?ブレース?) - ポンコツWebエンジニアのかっこ悪く生きる日記
ハイアラーキー(はいあらーきー)とは - コトバンク
日本人が間違った覚え方をする「得意ではない」言葉について - GIGAZINE
ハッシュタグ記号は「シャープ」じゃない? | 毎日ことば
既存(キソン)とは - コトバンク
アキバで恥をかく禁句ワード Vol.5:アムド【あむど】 - ITmedia PC USER
不思議な読み方をするあの漢字 : KODOMO : 読売新聞(YOMIURI ONLINE) 1/2
なかのん&マジックさんのツイート: "Wikipediaはwikiという聞き慣れない単語を固有名詞内に含めた時点で、マーケティング的には「wikiと略すな」は、逆に何言ってんのという感じある(言ってるのは外野なんだと思うけど)。"
なかのん&マジックさんのツイート: "むしろ、wikiと言われてWikipediaが連想される状況って、Wikipediaにとっては誇らしい状況だと思うんだけど。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔からダイヤル、ワイヤレス、のように本来Yが発音にないのに「ヤ」と表記する由来は何かと思ったが、母音連続を避ける「介入子音」という概念があり、英語でも冠詞aがanとなったり、idea ofと発音する際、aとoの間にr音が発生するという話…面白い。 https://t.co/fZBTMBj0cF"
contentscinii_20180414235118.pdf
なかのん&マジックさんのツイート: "交野市私市って、大阪の人間でも読めない人多そうで、なんて地名だ。"
なかのん&マジックさんのツイート: "かたのし、きさいち"
大西科学さんのツイート: "同じ難読市名でも、「まいかたかな……?」と間違って読んでしまうものも難読と言えますが、そもそも読めない、どう読んでよいかわからない市が千葉にあります。そこを訪れて初めて出会ったので、まったく読めない字というのがまだあるのだな、私はまだまだだなと思いました。匝瑳市というのですが。"
suzakiさんのツイート: "「ちょうふく」と「じゅうふく」の読み方はMemory Deduplication (LinuxではKSM:kernel shared memory)を日本語で説明するのに苦労しました。 どちらを使っても大抵もう一方を指摘されました。… "
まさみさんは語りたいさんのツイート: "代替と代替の議論も(笑)… "
Shiro Kawaiさんのツイート: "「定数」はどっちがどっちだろう https://t.co/tYqmgeXybX"
「稟議=りんぎ」「消耗=しょうもう」ではない? 現代人には分からない“漢字の本来の読み方”(ねとらぼ) - Yahoo!ニュース
羊頭狗肉(ようとうくにく)の意味・使い方 - 四字熟語一覧 - goo辞書
三省堂 WORD-WISE WEB -Dictionaries & Beyond-

毎日ことば

辞書にはない「大宗」の意味 | 毎日ことば
「訳」と「わけ」 | 毎日ことば
「多いに」 | 毎日ことば
「ありがたい」と「有り難い」 | 毎日ことば
「よい」と「良い」 | 毎日ことば
「多数」と「大多数」 | 毎日ことば
「任期を迎える」 | 毎日ことば
「臨む」と「望む」 | 毎日ことば
「なぜ新聞は閉じカッコの前に句点を付けないのか。」 | 毎日ことば
「濃(こま)やか」と「細やか」 | 毎日ことば
「無実」と「罪のない」の違い | 毎日ことば
「司令」と「指令」 | 毎日ことば
「シャッターを押す」 | 毎日ことば
「ため」とよむ「為」 | 毎日ことば
「目線に立って」 | 毎日ことば
「固定概念」 | 毎日ことば
「排外」と「拝外」 | 毎日ことば
各上位2位までが | 毎日ことば
辞書を、言葉をなんだと思っているのか | 毎日ことば
なぜ新聞は「想う」を使わないか | 毎日ことば
約1万3249基 | 毎日ことば
「鋭い目線」を「鋭い視線」に直す理由 | 毎日ことば
「薄皮をはぐように」忘れる? | 毎日ことば
ネットの類語辞典は辞書といえるか | 毎日ことば
コトバ解説:「終息」と「収束」の違い - 毎日新聞

blog

医療法人申請における当用漢字 | yasuokaの日記 | スラド
恣意的の誤用
”たてつけ”??その使い方はあり?? : 生活・身近な話題 : 発言小町 : 大手小町 : YOMIURI ONLINE(読売新聞)
日本語は何故、どこが難しいのかー外国人から見る日本語のムズカシイ - 昭和考古学とブログエッセイの旅へ
シャベルとスコップの呼び方が東日本と西日本で逆だと話題に 「小さい方がシャベル」「え、スコップだろ?」 - ねとらぼ
ひとりふたりという数え方はなぜ三人めから「……り」とならないのか?→実は三人以上にも “り” はあるらしい「へぇ! 知らなかった」 - Togetter
k16's note: 日本語の編集をしていてよく直すパターン15選(増えるかも)
漢字研究ブログ: 「函数」が音訳というデマと、本当の語源
「させていただけないでしょうか」禁止令 | ウェブ電通報
「なう」は接尾辞だけなのか?|まつーらとしお|note
「なう」小考 - 誰がログ
日本語の乱れの話|astral|note

Wikipedia

誤謬 - Wikipedia
以上・以下 - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「() {} [] について。 ---- 世界的には {[()]} の順で用いられる方式が多数派。 JIS Z 8201-1981 においても「小括弧」「中括弧」「大括弧」という名称は廃止され、現在は「丸括弧」「角括弧」「波括弧」と表記。 https://t.co/vkCHgAkObS」 / Twitter
括弧 - Wikipedia

Twitter

ピンハネ

chokudai(高橋 直大)🍆さんはTwitterを使っています 「COCOAの件で多重請負を問題視する人が結構居るけど、「中抜きが問題だ!」って言ってる人は業界を全く知らないので無視して良いとおもう。 中抜きは中間業者をすっ飛ばすことを指すのであって、ピンハネのことではない。意味的には真逆なのよね。」 / Twitter
chokudai(高橋 直大)🍆さんはTwitterを使っています 「ピンハネがどれくらい発生してるかは論点として成立するとは思うけど、そこはお金の流れを見ないとなんとも。大きいプロジェクトを分割する時に多重請負構造は必要になるはずだし、構造自体が絶要らないと言えるものでは絶対に無い。」 / Twitter
kokiさんはTwitterを使っています 「@chokudai 中抜きててそういう意味だったんですね。。ピンハネの方の意味なんだと思ってました。」 / Twitter
野生の男 WILDMANさんはTwitterを使っています 「@chokudai 日本語的には「中身を抜くこと」としての中抜きが先に存在していてその後に「中間業者を抜くこと」を中抜きと呼ぶ用法が生まれた感じですね https://t.co/V0jljdZ009」 / Twitter
中抜き/中貫き(なかぬき)の意味 - goo国語辞書

Fumiaki Nishihara(西原史暁)さんのツイート: "これ、本当にそうで、なぜか「標本」のことを「母集団」と呼んでいる人、ネット上でも実社会でもよく見ます。たぶん、分母と混同しているんだと思うんですよね。 - 「母集団」の意味間違えてる奴多すぎ問題 https://t.co/0efNkMvOon"
「母集団」の意味間違えてる奴多すぎ問題
統計学における「母数」は"parameter"の訳語だってみんな知ってた?―訳語選択の失敗例
なかのん&マジックさんのツイート: "「無学」だと知らないレベルのものが「共通の」言語プロトコルなのかというところには同意しかねますなぁ。… "
棚旗 織さんのツイート: "正しい敬称での呼び方は、敬意だけでなくそれ以上に、共通の言語プロトコルで会話できる旨を示します。わざわざ変な呼び方をして、己を育ちの悪い無学だと他者に思わせて何がしたいのでしょう。聞いてもらえる話も聞いてもらえなくなります。… "
なかのん&マジックさんのツイート: "人それぞれ掘り下げたところ、掘り下げずに行ったところはあるわけで、「無学」という言葉自体、得意分野でマウントとりたい場合に使われるものと私は認識しています。"
なかのん&マジックさんのツイート: "極端に言えば、昨今Twitterで叩かれてる「マナー講師の作り出すマナー」と何の違いがあるんだろうかと。言葉は誰かが作り出して広まるものなので。"
Yusuke Teradaさんのツイート: "有名な「横書き句読点の謎」という文書https://t.co/8YjP40ma83 があるけれど,最新の調査結果として文化庁の「国語に関する世論調査」の資料 https://t.co/dOLJQfC4Wj が興味深い。うちの業界では「カンマ・マル」方式が主流だけれど,世間では「テン・マル」方式が主流になりつつある流れを感じる。… https://t.co/2wL2IsIPsG"
ten.dvi
r1393038_01.pdf
Yusuke Teradaさんのツイート: "理数系の専門書では「カンマ・ピリオド」方式が圧倒的に感じるけれど,この調査では2.3%しかない。むしろ2.7%もあることになっている「テン・ピリオド」方式は一度も見たことがない気がする……(「横書き句読点の謎」では「まずないでしょう」と切り捨てられている)。"
ショーンKY(ネット論客)さんはTwitterを使っています 「なまじ一般語と同じ言葉を使っているために勘違いされやすそうな言葉の例 医学「清潔・不潔」 数学「高々」 化学「雰囲気」 あと他に専門の方頼む」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「情報工学だと、低レベルとか。」 / Twitter
松野美穂💮さんはTwitterを使っています 「「そうゆう」を使う方は私は警戒してしまいます。お仕事の依頼のメールに使われていたらお引き受けしない可能性がグンと上がります…。言葉を扱う仕事の方には使ってほしくありません😢 この他に「延々と」を「永遠と」とされるのも嫌です… https://t.co/RkXhBeSPeT」 / Twitter
マカオさんはTwitterを使っています 「@matsunom @kotoyoshi_y 一応をいちようと言われるのが個人的には苦手ですね。 言葉でいちようと言われて文字でどう書くんだろうって思ったら「いちよう」で苦笑いしました。」 / Twitter
まこ🐁きめつ沼さんはTwitterを使っています 「@matsunom 『言わざるおえない』と書く人も結構多くて……どんなにいい文章を書かれるかただったとしても『ウッッ』ってなってしまいます。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ら抜き言葉みたいに、「間違い」(名詞)を「間違え」って言う/書くのもどっかの方言なんかな?」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「日本語の書き下しという問題をめぐっては、これまでに思考を何周も回してしまった結果、読み手に対して誤解がなさそうなら何でも正解でいいという心境にあり、あらゆる意味で「正解」の存在が怖い。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「いまのところの好みは、文部省がなんか昭和に出したやつを原則としつつ、副詞とか接尾辞はひらがなに倒して、ただし漢字による強い語感がほしい場合には漢字を使うことをいとわない、かなあ。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「これもどっかで文書化しておかないとなんだよな」 / Twitter
公文書の読点「,」から「、」に 半世紀以上前の通知変更へ | 共同通信
Sho YokoiさんはTwitterを使っています 「句読点に「,.」を使うのは欧米かぶれだとか “理系” の論文ではそれが普通だとかいう声が飛び交っているので、みなさん是非まずこちらを: 渡部 善隆「横書き句読点の謎」(PDF) https://t.co/N9DvYZA5gs」 / Twitter
ten.dvi - ten.pdf
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「英語だとboundになるのだがこの表現や律速の語源、どこからきたんだろう。 https://t.co/fatIw7nzhN」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「嫁(統計屋さん?)に「律速」が通じなかった。(電車の乗り換えを何回もするけど)「結局◯◯線律速だからここを急いでも着く時間変わらん」と言ったら「リッソク??」だった。 「律速」って理科系の方言なんか。普通に日常会話で使ってたわ。てか「りっそく」漢字変換で出ない。。。」 / Twitter
あきぽち@とくになしさんはTwitterを使っています 「@dr_vegepamyu 理系だけど律速はじめて聞きました! ニュアンスが分からない😅 よく使う理系方言は、さちる。です笑」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「@pochicoh 元は複数の化学反応が同時に起こる際の反応速度などに使う用語で、パンピー用語に直すと「ボトルネック」らしい。 個人的な印象だけの話ですが、例えば書類のスタンプラリーで部長があんまり席におらず判子がもらえない時「部長がボトルネック」というと「判子押しが一番遅いのは部長」という名詞?」 / Twitter
飯間浩明さんはTwitterを使っています 「「ことばの正誤を判定しないで、辞書が作れるのか」とよく聞かれます。私は、不確かな基準で正誤を認定するより、「この言い方は俗語的」「何年頃からの言い方」「文章では使わない」「すでに古い」などの情報を示したいと考えます。このほうが、ユーザーが主体的に使うかどうか判断できるからです。」 / Twitter

員数 - 国語 解決済 | 教えて!goo
若者ことばの「やばみ」や「うれしみ」の「み」はどこから来ているものですか | ことばの疑問 | ことば研究館
15.変換機能のイタズラ――間違われやすい「同音異義語」 - 間違えやすい日本語表現(澤田慎梧) - カクヨム
25.間違えるのには理由がある「にもかかわらず」の漢字表記 - 間違えやすい日本語表現(澤田慎梧) - カクヨム
「5人のなかでCの“次に”背が高い人は?」 解釈の分かれる質問にあなたならどう選ぶ? - ねとらぼ
敷衍 - ウィクショナリー日本語版
文章作成の基本を学ぶための記事・学習コンテンツのまとめ - Qiita

英語

Qiita

IT業界で横行する恥ずかしい英語発音 - Qiita
コードに頻出する語形変化が難しい英単語: register, success, fail, data, statusなど - Qiita
要注意な技術英語 - Qiita
英語の技術文書を早く読むには - Qiita
英語(1) プログラマが知っているとよい英単語の語源 - Qiita

Wikipedia

コンピュータ略語一覧 - Wikipedia
List of computing and IT abbreviations - Wikipedia
ISV - Wikipedia
OSV型 - Wikipedia
Numeronym - Wikipedia
ヌメロニム - Wikipedia
和製英語 - Wikipedia

フォニックス

ヒーホーくんさんのツイート: "英語でこれを教えないせいでどんだけ今まで無駄な時間を費やしてたのか… "
梓弓さんのツイート: "米国駐在中、娘がキンダーでフォニックスを叩きこまれてたのを見て目から鱗。 表音文字のくせにスペルと音が一致しない凶悪な英語でフォニックスを教えないのはアイウエオ表の読み方知らずに日本語(しかも旧仮名使い)習う様なモノ。てふてふでせうの読み方知らないんだから会話上手くなるはずない。… https://t.co/A7iF1p5teM"
梓弓さんのツイート: "小学生から英語を、で週一でハローとかやる全く時間の無駄。 文科省のアホ。 意味のない事を暗記出来るうちに九九の様に、フォニックスとサイトワードを関連付けて徹底的に暗記させるなら意味がある。 例えばcook, book, lookの塊、oil, off, openの塊でスペルの並び方と発音の法則を覚える。"
まさみさんは語りたいさんのツイート: "フォニックスっぽい言い方はなんとなく身に着いちゃったなあ。多分文科省の人とかもそういう非自覚的な学び方しかしてないから、自覚的な学び方を教えられないのだろう。"

”delete”と”remove”の使い分けについて | SDNA ローカライズチームブログ
mappedの意味 - 英和辞典 Weblio辞書
圧倒的腹落ち感!英語の発音と綴りが一致しない理由を専門家に聞きに行ったら、犯人は中世から近代にかけての「見栄」と「惰性」だった。 | DMM英会話ブログ
どうしても英語の綴りが覚えられない! 難しい「スペル」を覚えるための7つのヒント | DMM英会話ブログ
TBAとTBD、TBCの違いがどうしても覚えられないのでメモ - インターネットの備忘録
日本人が陥りがちな英文メールの罠 - 人生の難易度が高すぎるのですが
【英語論文の書き方】第24回 because, since, as など 理由を表す表現 論文翻訳・英文校正 研究者専門の翻訳会社 ワールド翻訳サービス
ゲタ子🇺🇸国際結婚ネバダ州🏜️ベガスじゃないよさんのツイート: "中高の英語、こういう英語教えてほしかったわ… "
英語では「0個の」もの(名詞)は複数形で表現する | Weblio英会話コラム(英語での言い方・英語表現)
Manabu Uenoさんのツイート: "18の時にアメリカに留学してまずESLのクラスに入った。そこで驚いたのは、日本の中高で習った発音は完全に間違いだったということ。そもそも母音の違いが分かってなかった。そこでアメリカ英語の母音16個を徹底的に練習した。そしたらどんな単語もだいたい通じるようになった。今も発音は褒められる。… https://t.co/icY1ZBPV5s"
Manabu Uenoさんのツイート: "外国語の発音についてはどうしても子音の違いに注目しがちだけど、日本人が英語についてまず注目すべきは、母音の数が3倍もあるという点だと思っている。この「音の多さ」に自覚的でなければ、第二言語としてうまく習得できないだろう。発音にしても、聞き取りにしても。"
Manabu Uenoさんのツイート: "英語の発音を練習する際は、自分が知っている全ての単語について、日本語の母音ベース=カタカナで覚えている音を一度全部「捨てる」こと。そして英語の母音を練習して、その母音ベースで全ての単語の音を一から知り直す。例えば bat とbut をはじめから違う音として覚える。"
gr4vit0nさんはTwitterを使っています: 「今回の海外遠征でヨーロッパの人達が発音していた専門用語で驚いた発音は 「Ghidra」->「ジーハイドラ」 「ioctl」->「アイオクタル」 がダントツでした。 全員微妙に発音違うのにちゃんと会話がすぐに通じてるのすごい」 / Twitter
pseudo とは 意味・読み方・表現 | Weblio英和辞書
mappedの意味・使い方 - 英和辞典 WEBLIO辞書
hikaliumさんはTwitterを使っています 「まじか、OOBEはうーびーなのか、文字は見たことがあったけど、発音したりそれを聞いたことがなかった…。(えいごむずかしい。)」 / Twitter
今更聞けない会社の英語表記「Co., Ltd.」「Inc.」「LLC」「Co.」を解説!【保存版】 | English Lab(イングリッシュラボ)┃レアジョブ英会話が発信する英語サイト
青子守歌さんはTwitterを使っています 「「キリル文字の」という意味の英単語Cyrillicはセリリックと発音することを覚えた(ずっとキリリックって読んでた)」 / Twitter
英語の発音について概説する - Amosapientiam
Anki - powerful, intelligent flashcards
ELSA - Speak English fluently, easily, confidently

Install

MS

Microsoft Docs
Windows 開発者向けドキュメント | Microsoft Docs
Windows 開発者向けドキュメント - Windows drivers | Microsoft Docs
Microsoft Learn | Microsoft Docs
Download Windows 10 Insider Preview ISO
Download Windows Insider Preview SDK
Visual Studio Preview
マイクロソフト脆弱性報告窓口 ガイド (日本語) – Microsoft Security Response Center
YurikaさんはTwitterを使っています 「英語の窓口は不安、という場合はMSの場合は英語の窓口に投げる時に「日本語対応希望」と一言書いていただだければコミュニケーション自体は日本語で対応します! 困ったこととか相談とかあればお気軽に https://t.co/y6tGB9UMf4」 / Twitter
日本語でマイクロソフトに脆弱性を報告する方法 – Microsoft Security Response Center
Yosuke HASEGAWAさんはTwitterを使っています 「経験的には、マイクロソフト製品の脆弱性は直接英語窓口に届けるのが楽。細かな記載事項の形式的な不備とか気にしなくても最低限の手順などが書かれていれば受け入れてくれる。直接的な脆弱性とまで言えない挙動でも(修正されるか否かは別として)「報告ありがとう」という姿勢なのでこちらも気持ちいい」 / Twitter
Download the Windows Driver Kit (WDK) | Microsoft Docs
Ubuntu 20.04 LTS を入手 - Microsoft Store ja-JP
Ubuntu を入手 - Microsoft Store ja-JP
Ubuntu on Windows Community Preview を入手 - Microsoft Store ja-JP
Windows 10 のダウンロード
Windows 10 仮想マシンをダウンロードする - Windows アプリ開発
Microsoft Edge Insider Channels をダウンロード
Windows のリリースの正常性 | Microsoft Docs
Windows release health | Microsoft Docs

Tools

その他

GIGAZINE

無料で自動文字起こししてくれるMicrosoft製アプリ「Group Transcribe」を使ってみた - GIGAZINE
PCのハードウェアの信頼性を確かめる負荷試験を行う「PassMark BurnInTest」レビュー - GIGAZINE
Chrome 89で音声からリアルタイムに字幕を生成する「自動字幕起こし」機能が追加されたので使ってみた - GIGAZINE
Windowsのパスワードを「chntpw」で強制リセットしてログインできなくなったPCを使えるようにする方法 - GIGAZINE
Windows 10でオーディオやグラフィックスアプリを含むLinuxのGUIアプリを使用可能にする「WSLg」機能が登場 - GIGAZINE
完璧にパスワードを設定するための4つの方法 - GIGAZINE
「次世代のWindows」をまもなく配信予定だとMicrosoftのCEOが発言 - GIGAZINE
見落とされがちなWindows 10の便利機能5選 - GIGAZINE
Microsoftは2025年までにWindows 10のサポートを終了する予定 - GIGAZINE

窓の杜

え、こんな機能が? Windows 10のマイナー機能を活用しよう! 2018年 記事一覧
「TCPView」がメジャーアップデート ~検索ボックスやダークモードに対応したv4.0が公開 - 窓の杜
Windows 10で[同期の設定]が機能しないケースについてMicrosoftが案内 - 窓の杜
Windows 10のセキュリティの質問って覚えてる?思い出せないなら「SecurityQuestionsView」【レビュー】 - 窓の杜
Windowsのドライバー検証が強化 ~2020年10月更新以降、導入時にエラーが発生することも - 窓の杜
“セーフガードホールド”ってなに? ~Microsoftがサポートページで詳細を案内 - やじうまの杜 - 窓の杜
ぇ、それだけでよかったの? Windowsのユーザーフォルダーを開く最速の技 - やじうまの杜 - 窓の杜
Windows 10の[スタート]画面が再編中? 確かにプログラムフォルダーはスッキリしたけど、あのツールはどこ行った! - やじうまの杜 - 窓の杜
Linux GUIアプリがWindowsで動作 ~Microsoft、新しいWSL 2機能「WSLg」を初期プレビュー - 窓の杜
AACに対応、Bluetoothオーディオの強化を図ったDev版Windows 10 Build 21370 - 窓の杜
システムフォント「Segoe UI」が可変フォントに生まれ変わる ~Dev版Windows 10 Build 21376に導入 - 窓の杜
「Python 3.10」のベータ版が登場、「Python 3.8」系は最後のメンテナンスリリース - 窓の杜
「sexe」が10年ぶりにバージョンアップ ~通常のアプリを無理やりWindowsサービス化するツール - 窓の杜
Web版「Excel」の新しいマクロ機能「Office スクリプト」が一般リリース - 窓の杜
「Python 3.9.6」が登場、「Python 3.8」系はセキュリティのみの修正へ移行 - 窓の杜

PC Watch

【レビュー】Windows 10に実装予定の新ライセンス認証機能を試す ~パーツ交換を行なっても、オンラインで再認証が可能に - PC Watch
【笠原一輝のユビキタス情報局】なぜ日本のMicrosoft 365 Personalは高いのか? 個人/法人で買うべきOfficeをアドバイス - PC Watch
Microsoft、Intel CPUの脆弱性を修正するWindows 10用マイクロコードを公開 - PC Watch
Windows 10プレビューでついにLinuxのGUIアプリが動作。オーディオやGPUも対応 - PC Watch
箱を開けた状態で“Windows史上最強の安全性”が実現されている「Secured-Core PC」をじっくり解説 ~大企業はもちろんIT専任者がいない中小企業でも手軽に安心して使える設計- PC Watch[Sponsored]
AACコーデック対応のWindows 10プレビュー版登場。BTヘッドセットの表示統合で使い勝手も改善 - PC Watch
サイバー犯罪からあなたと会社を守るための、いまさら人に聞けないパスワード管理術 ~ブラウザの新機能や2段階認証の活用法を丁寧に解説。Windows Hello対応機ならより便利に- PC Watch[Sponsored]
【ニュース・フラッシュ】Windows 10プレビュー版、Segoeフォントに視認性向上の新書体 - PC Watch
Web版Excel、業務自動化スクリプトに対応 - PC Watch
Windows 10は2025年にサポート終了? - PC Watch
「Windows Autopilot」で、PCもスマホのように手軽に“機種変”しよう ~買ったPCを箱から出してすぐに環境が再現可能- PC Watch[Sponsored]

マイナビニュース

プレビュー版「コンパクトモード」から見るエクスプローラーの進化 - 阿久津良和のWindows Weekly Report | マイナビニュース
アイコン変更とキーバインド修正から見る次期Windows 10への期待 - 阿久津良和のWindows Weekly Report | マイナビニュース
プロアクティブな設定「Customize your device」への期待 - 阿久津良和のWindows Weekly Report | マイナビニュース
Windows 10ミニTips(204) コマンドラインからWindows Updateを実行する | マイナビニュース
このタイミングでデバイスマネージャーに改良を加えるMicrosoftの狙い - 阿久津良和のWindows Weekly Report | マイナビニュース
また消えた「Windows」の文字 - 阿久津良和のWindows Weekly Report | マイナビニュース

ASCII.jp

ASCII.jp:Windows 10の標準アプリが動かなったときの対処法 (1/2)
ASCII.jp:Windowsキー絡みのショートカットは徐々に増えて、減って、また増えている (1/2)
ASCII.jp:Windowsでファイルやフォルダーに「使わない方がいい」文字 (1/2)
ASCII.jp:Windows 10におけるキーボードの秘密 (1/2)
ASCII.jp:Windows Updateを飼い慣らして、都合のいい時間に再起動させる方法 (1/2)
ASCII.jp:Windows 10のデバイスドライバーで見えた、今秋の大型アップデートの可能性 (1/2)
ASCII.jp:年2回のWindows 10のアップデートに要する時間に大きな差 フルアップデートとサービステクノロジーアップデート (1/2)
ASCII.jp:Windows 10は好きな文章を合成音声で簡単に喋らせることができる (1/2)
ASCII.jp:デスクトップアプリとしてのIEは終了するが、2029年までは完全に無くなるわけではない (1/2)
ASCII.jp:BOMなしUTF-8によってWindowsでもたらされる困惑 (1/2)

Publickey

[速報]マイクロソフト、無料でRPA機能「Power Automate Desktop」をWindows 10ユーザーに提供開始。Microsoft Ignite 2021 - Publickey
マイクロソフト、「Universal Print」正式リリースを発表。プリンタサーバをクラウド化し、プリンタドライバを不要に。Microsoft Ignite 2021 - Publickey
「Windows Server 2022」プレビュー版が登場、安全なブートなどセキュリティ強化。Microsoft Ignite 2021 - Publickey

山市良のえぬなんとかわーるど

山市良のえぬなんとかわーるど: "About your PC" を検索せよ
山市良のえぬなんとかわーるど: Windows Sysinternals 更新情報 (2021 年 4 月 22 日) - Procmon v3.70、Sysmon v13.10、Autoruns v13.99、TCPView v4.01、WinObj v3.03

@IT

Windows 10のエクスプローラを便利に使うTIPS 10本:Tech TIPS - @IT
面倒な“Windows 10の更新”をスクリプト化できる新たな選択肢(その1):企業ユーザーに贈るWindows 10への乗り換え案内(29) - @IT
面倒な“Windows 10の更新”をスクリプト化できる新たな選択肢(その2):企業ユーザーに贈るWindows 10への乗り換え案内(30) - @IT
SSE2非対応の古いプロセッサがWindowsに見捨てられたというウワサは本当? (1/2):その知識、ホントに正しい? Windowsにまつわる都市伝説(113) - @IT
Windows 10 バージョン2004の隠れた新機能、クライアントOSでもシリアルコンソール(SAC)が利用可能に:企業ユーザーに贈るWindows 10への乗り換え案内(77) - @IT
WindowsUpdateProviderモジュールとWindows Update WMIプロバイダーの廃止によるWindows Update自動化への影響:企業ユーザーに贈るWindows 10への乗り換え案内(78) - @IT
Windows 10の登場から6年で削除された機能、廃止予定機能のざっくりまとめ:企業ユーザーに贈るWindows 10への乗り換え案内(97) - @IT
刷新された「Windowsのリリースの正常性」サイトの歩き方:企業ユーザーに贈るWindows 10への乗り換え案内(99) - @IT
「Windows 10 バージョン21H1」が正式リリース、Windows Updateによる機能更新プログラム配布をコントロールする2つの方法とは:企業ユーザーに贈るWindows 10への乗り換え案内(100) - @IT

KB4589212: Intel microcode updates for Windows 10, version 2004 and 20H2, and Windows Server, version 2004 and 20H2
Makoto Kato ︎︎さんはTwitterを使っています 「嘘書いてなぁ。 "USBキーボードは、デバイスに関する情報を返すことが可能で、メーカー名やキーボード名を取得することが可能で、これを使ってレイアウトを判別することは可能なのだが" https://t.co/OqzdTpJJDy」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Windows 2000のリリース時はそういう意図でDesignされていたんだけど、実際世の中で発売されるキーボードはUSレイアウトと日本語レイアウトで同じIDを返すものがほとんどだった。だから不可能だったんだよ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「最終的にはHotfixを作って、自動に選択されないようにした (たしか*.infに入っている情報消すようなHotfixだった記憶) 。2000年くらいのお話ですね。」 / Twitter
入谷 優さんはTwitterを使っています 「因みに、スタート メニューの検索結果でも、Ctrl + Shift + Enter でアプリを管理者として起動できます。」 / Twitter
Windowsエクスプローラー特殊Tips【5選】 ― 開発者/クリエイターにおすすめ - Build Insider
文字の消滅から11年、Windowsの「スタートボタン」が最近のユーザーには通じないという指摘【やじうまWatch】 - INTERNET Watch
Windows 8 で ISO の「マウント」が出来くなってしまったら | The Simplest Essence
第661回 リモートデスクトップビューアー,Remminaを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Windowsのコマンドライン引数でのクォートの話 | Qrunch(クランチ)
Googleの2FAは2FAを必要とせずに無効にできる
Otter Voice Meeting Notes - Otter.ai
自称IT企業があまりにITを使わずに嫌になって野に下った俺が紹介するWindowsの自動化の方法 - Qiita
pipとpipenvとpoetryの技術的・歴史的背景とその展望 - Stimulator
とほほのSELinux入門 - とほほのWWW入門
Install Docker Desktop on Windows | Docker Documentation
Docker for Windows release notes | Docker Documentation
第590回 Windows/macOS/Linuxで使える仮想マシン管理ツール『multipass』:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
セキュリティ調査に役立つブラウザ拡張機能のまとめ - 午前7時のしなもんぶろぐ
CyberChef 超入門 (例題付き) - 午前7時のしなもんぶろぐ
怪しいファイル・サイトを検査! 「VirusTotal」の安全な使い方教えます! - 午前7時のしなもんぶろぐ
マイクロソフト、2025年までにWindows 10のサポートを終了する|自作.com
Windows Insiders gain new DNS over HTTPS controls - Microsoft Tech Community

Chocolatey

Packages

主要なソフトウェア

Chocolatey Gallery | 7-Zip 16.4.0.20170506
Chocolatey Software | Atom 1.50.0
Chocolatey Gallery | Beyond Compare 4.2.3.22587
Chocolatey Gallery | Everything 1.4.1877.20170915
Chocolatey Gallery | Git 2.15.1.2
Chocolatey Software | GitHub Desktop 2.5.3
Chocolatey Gallery | MSYS2 20161025.0.0
Chocolatey Gallery | NetWide Assembler 2.13.02
Chocolatey Gallery | Node.js LTS (Install) 8.9.4
Chocolatey Software | Python 3.8.5.20200721
Chocolatey Gallery | Tera Term 4.97
Chocolatey Software | VirtualBox 6.1.12

メディア関連

Chocolatey Software | Adobe Acrobat Reader DC 2020.012.20043
Chocolatey Gallery | Avidemux 2.7.0
Chocolatey Gallery | MediaInfo 17.12
Chocolatey Gallery | PowerISO 7.0
Chocolatey Gallery | Screen To Gif 2.10
Chocolatey Gallery | VLC media player 2.2.8
無料でオープンソースのメディアプレイヤー「VLC」で簡単にPCの画面を録画する方法 - GIGAZINE

Chocolatey Gallery | Packages

配布元

主要なソフトウェア

圧縮・解凍ソフト 7-Zip
Atom

Beyond Compare

Scooter Software: Home of Beyond Compare
Beyond Compare Technical Support
WindowsでgitのdiffとmergeのツールをBeyond Compareに設定するメモ (Git, GitHub for Windows, Beyond Compare 4, difftool, mergetool) - いろいろ備忘録日記
Beyond CompareでCSVのデータを比較する - プログラマーな日々

Everything

人気の高速ファイル検索ソフト「Everything」v1.4が正式版に ~“ReFS”をサポート - 窓の杜
Downloads - voidtools

Git - Downloads
GitHub Desktop | Simple collaboration from your desktop

MSYS2

MSYS2 homepage
Package: mingw-w64-x86_64-lld - MSYS2 Packages
MSYS2
MSYS2でclang(64bit版)
WindowsでClangを使うならmsys2が便利 - Qiita
Download LLVM releases
msys2とC++で特定のDLLに依存しないwindowsバイナリを作る - siunのメモ
zig/Findllvm.cmake at master · ziglang/zig

NASM

Node.js

RobotJS

RobotJS - Node.js Desktop Automation
octalmage/robotjs: Node.js Desktop Automation.

ダウンロード | Node.js
ドキュメント | Node.js
Node.js 日本ユーザーグループ
node.js npm - Google 検索
ドッグさんはTwitterを使っています 「LTS でないバージョンの node 使ってても npm install は気にせず LTS 向けの npm を入れてるっぽい.そういうもんか…」 / Twitter

Oracle VM VirtualBox

Downloads – Oracle VM VirtualBox
ストレージ設定 | VirtualBox Mania
共有フォルダ設定 | VirtualBox Mania
共有フォルダのマウント | VirtualBox Mania
Virtual Box 共有フォルダの権限 | Ubuntu初心者の集いブログ
Chapter 3. Configuring virtual machines
DSAS開発者の部屋:VirtualBoxのファイルシステムを10倍速くする ~ page cache編 ~
Ubuntu 16.04のVagrantでpublic Vagrant boxにアクセスできなくなった問題 - 覚書
2018年3月1日 Oracle,Linux 4.15をサポートした「VirtualBox 5.2.8」をリリース:Linux Daily Topics|gihyo.jp … 技術評論社
Chapter 12. Troubleshooting
VirtualBox VM debugger TIPS
保護種さんはTwitterを使っています 「VirtualBox の File->Export Appliance... から生成される *.ova (Open Virtualization) ファイルは tar 形式になっていたのか。しかも、iso イメージも含めることが出来るってのは面白い。ただ iso イメージ md5sum ファイル、それぞれの tar ヘッダを含めるので、その分サイズも増える」 / Twitter

Python

Download Python | Python.org
Python製のマルウェアが台頭してきているという指摘 - GIGAZINE
pipでパッケージの更新をしたらアンインストールエラーが出た話|ジャンク松本|note
ドッグさんはTwitterを使っています 「pip の,1つのパッケージは依存関係内に1つのバージョンしか存在できない制限がなかなかキツい」 / Twitter
小川雄太郎さんはTwitterを使っています 「Pythonで実装した処理ファイルを他人に渡したり、活用してもらう際に、Python環境を用意してもらうや、Google Colabなどは面倒なので、exe化したいです。 いくつか方法はあるのですが、その一つが紹介された記事になります。 https://t.co/TwydGZD8Fu」 / Twitter
How to Easily Convert a Python Script to an Executable File (.exe) | by Frank Andrade | May, 2021 | Towards Data Science
ぽんたさんはTwitterを使っています 「Pyinstaller で exe化したもの (onefile オプション付) って起動に数秒かかる印象があるんだけど、実際どうなんだろう」 / Twitter
〒みやらん🐶❄ゆきんこさんはTwitterを使っています 「色々と方法あるんやなぁ。 Windows であれば、 WinPython が全部固めて渡せる最強だと思っている(´・ω・`)」 / Twitter

Tera Term Open Source Project

メディア関連

PDFリーダー、PDFビューア | Adobe Acrobat Reader DC
Avidemux - Downloads
MediaInfo
PowerISO - Create, Burn, Mount, Edit, Compress, Encrypt, Split, Extract ISO file, ISO/BIN converter, Virtual Drive
Releases · NickeManarin/ScreenToGif
Official download of VLC media player, the best Open Source player - VideoLAN

Chocolatey
Installation
Pricing
ChocolateyFAQs
chocolatey/choco: Chocolatey CLI
Home · chocolatey/choco Wiki
久しぶりにWindowsの環境構築をした · 電子雪原ちほー
Chocolateyの自作パッケージ入門(1) · 電子雪原ちほー
Chocolatey にパッケージを公開する #1 全体手順 - Qiita
spp5: Chocolateyでカスタムパッケージを作成する
ChocolateyとSetting Syncで開発環境をサクっと整える | フロントエンドBlog | ミツエーリンクス

MS

廃止・非推奨

Windows 10 - Features that have been removed - Windows Deployment | Microsoft Docs
Windows 10 features we’re no longer developing - Windows Deployment | Microsoft Docs
Microsoft、OEM向けWindows 10は今後32bit版を提供せず - PC Watch
「Snipping Tool」は廃止へ ~「Windows 10 RS5」でスクショの取り方はこうなる! - やじうまの杜 - 窓の杜
次期Windows 10で非推奨となる「ペイント」アプリ、“ストア”で無償提供されることに - 窓の杜
「ディスク クリーンアップ」は非推奨に ~“ストレージ センサー”への移行を - 窓の杜
「Windows To Go」は終了へ ~「May 2019 Update」で削除・置き換え予定の機能が発表 - 窓の杜
「Windows 10 Fall Creators Update」で廃止・非推奨となる機能が明らかに - 窓の杜
Microsoft、「Windows 10 October 2018 Update」で削除・開発終了となる機能を案内 - 窓の杜
「Windows 10 November 2019 Update」で開発が終了する機能、削除される機能が発表 - 窓の杜
Silverlightは時間切れ
Microsoft、「October 2020 Update」で削除・開発終了となる機能を案内 - 窓の杜
旧「Edge」、「IE11」、wmicコマンド……「Windows 10 バージョン 21H1」で削除・非推奨となる機能たち - 窓の杜

Visual Studio

窓の杜

「Visual Studio 2019」はパフォーマンスが大きく向上 ~Microsoftが詳細を解説 - 窓の杜
Microsoft、「MSVC」のSTL実装をオープンソースとしてリリース - 窓の杜
「Visual Studio 2019」にタブを縦並びにする機能 ~プレビュー版でテスト中 - 窓の杜
Microsoft、「Visual Studio 2019」v16.4を正式公開 ~「.NET Core 3.1」を同梱 - 窓の杜
Microsoft、「Visual Studio 2019」v16.5を正式リリース - 窓の杜
「Git」連携を刷新、メインメニューにも追加 ~「Visual Studio 2019」v16.6.0が正式公開 - 窓の杜
「Visual Studio 2019」v16.7が正式公開 ~「Git」関連の機能を引き続き強化 - 窓の杜
Microsoft、「Visual Studio」の「Unity」解析ツールをオープンソースに - 窓の杜
「.NET 5.0」に対応した「Visual Studio 2019」v16.8.0が正式公開 ~新しいGit機能もプレビュー卒業 - 窓の杜
「Visual Studio 2019」v16.9が正式公開 ~4番目の長期サポートリリース - 窓の杜
待望の64bit化 ~Microsoft、「Visual Studio 2022」を発表 - 窓の杜
「Visual Studio 2019」の最新プレビュー版がC++20機能の実装を完了 - 窓の杜
「Visual Studio 2019」v16.10が正式公開 ~コンパイラーとSTLライブラリがC++20に対応 - 窓の杜
64bit化された「Visual Studio 2022」、初のプレビュー版がリリース - 窓の杜

infoQ

Microsoft、Bridge to Kubernetesをリリース
MicrosoftがVisual StudioでGit Experienceをリリース
Diablo IV:Visual StudioでLinuxのデバッグ
MicrosoftがVisual Studio 2019 v16.9をリリース
Microsoftが64ビットのVisual Studio 2022を発表

blog

Visual Studioで64bitコンパイラツールセットを使う方法。C1060への対処。 - 賢朽脳瘏
[C++]コンソール出力にchar8_t文字列を出力したい! - 地面を見下ろす少年の足蹴にされる私
山市良のえぬなんとかわーるど: Visual Studio 2022(の Preview 予定)
Visual Studio で UTF-8 でC++を書いたら心が折れそうになった件 - Hikware.Tech

Microsoft Visual Studio - Wikipedia
dotnet/cli-lab: A guided tool will be provided to enable the controlled clean up of a system such that only the desired versions of the Runtime and SDKs remain.
Releases · Microsoft/VisualStudioUninstaller
Visual Studio のロードマップ | Microsoft Docs
Visual Studio 2017 15.9 リリース ノート | Microsoft Docs
Visual Studio 2019 リリース ノート | Microsoft Docs
ダウンロード | IDE、Code、Team Foundation Server | Visual Studio
Microsoft C++ Build Tools - Visual Studio
Download the Windows Driver Kit (WDK) | Microsoft Docs
Download Debugging Tools for Windows - WinDbg - Windows drivers | Microsoft Docs
VsVim - Visual Studio Marketplace
EditorConfig - Visual Studio Marketplace
EditorConfig Language Service - Visual Studio Marketplace
Use Bridge to Kubernetes with Visual Studio | Microsoft Docs
ドッグさんはTwitterを使っています 「Visual Studio 2019 v16.9 で address sanitizer (asan) がフルサポートされた (/fsanitize=address).試験実装として元々入っていたのが安定版になった https://t.co/RbdxBIufev」 / Twitter
Address Sanitizer for MSVC Now Generally Available | C++ Team Blog
AddressSanitizer | Microsoft Docs
インストールに使用するコマンド ライン パラメーターの例 - Visual Studio | Microsoft Docs
コマンド ライン パラメーターを使用して Visual Studio をインストールする | Microsoft Docs
Visual Studio 2022 | Visual Studio Blog
/STACK (スタック割り当て) | Microsoft Docs
Microsoftが提供する統合開発環境「Visual Studio 2022」の詳細が発表 - GIGAZINE
Prevent automatically inserting of /IMPLIB - Visual Studio Feedback
Visual Studioでも最新のClangが使いたい! - Qiita

Visual Studio Code

VS_Code-Extensions

Publickey

Visual Studio Code 1.35安定版リリース。リモート開発を可能にする「Remote Development」拡張機能が利用可能に - Publickey
「Docker for Visual Studio Code」が正式版に、Visual Studio Codeの拡張機能。WSL 2環境のDockerコンテナに対応 - Publickey
VS Code内でブラウザ画面プレビューとDevTools表示、そのままコード編集もできるVS Code拡張「Microsoft Edge Tools for VS Code」正式版に - Publickey

窓の杜

「Visual Studio Code」で“Markdown”テーブルを扱う際は必携「Text Tables」【レビュー】 - 窓の杜
Visual Studio Code向け「PowerShell」拡張機能がメジャー更新、「ISE」互換モードを搭載 - 窓の杜
Microsoft、「Visual Studio Code」向け「Docker」拡張機能を正式リリース - 窓の杜
C/C++言語のVisual Studio Code拡張機能がv1.0に到達、初の一般リリース - 窓の杜
型ヒントでPython開発を加速 ~Microsoft、VS Code向けの拡張機能「Pylance」を発表 - 窓の杜
Microsoft、「Visual Studio Code」の新しい拡張機能「Jupyter」を発表 - 窓の杜
Pythonの新しい言語サーバー「Pylance」がプレビューを卒業 ~「Visual Studio Code」でリッチな開発支援を実現 - 窓の杜
「Visual Studio Code」に「TensorBoard」を統合 ~Python拡張機能の2021年2月リリース - 窓の杜
「Visual Studio Code」の拡張機能「PowerShell」がセマンティックハイライトに対応 - 窓の杜
GitHubリポジトリをVisual Studio Codeで「読む」のに便利な拡張機能が登場 - 窓の杜
「Visual Studio Code」上で直接“GitHub”のプルリクエストを作成可能に - 窓の杜

blog

たったの3ステップでライブリロードが可能になるVisual Studio Codeの拡張機能「Live Server」がすごい! | フロントエンドBlog | ミツエーリンクス
Visual Studio Code拡張機能「Polacode」でソースコードを手軽にキャプチャ | フロントエンドBlog | ミツエーリンクス
Visual Studio Code 入門~オススメ設定と拡張機能編~ - 雀巽の日記帳
Eclipse Open VSX: A Free Marketplace for VS Code Extensions | The Eclipse Foundation
Visual Studio Codeの設定をバックアップして同期する Settings Sync - -ろぐれこーど-
Rust IDE に化ける VSCode - OPTiM TECH BLOG

Qiita

VSCodeの拡張機能「GIST」が便利すぎてHackMDを使うのをやめた - Qiita
VSCodeで俺々言語モードを作る - Qiita
usm-takl/vscode-oreore-mode: a tiny sample of a programming language mode of VSCode
VS CodeのPython拡張がJupyterをネイティブサポートしたそうなので早速使ってみた。 - Qiita
Python 3.7とVisual Studio Codeで型チェックが捗る内作Pythonアプリケーション開発環境の構築 - Qiita
なぜ我々はいまだに文字列でコメントを書いているのか - Qiita

Twitter

ymmtさんはTwitterを使っています: 「VSCode の GitHub Pull Requests 拡張というのがあるんですが、大きな pull request のレビューに大変便利です。ブラウザと異なり、ファイルをひとつずつ差分確認できます。ファイルも全体が表示されるので差分周辺のコードも手間なく確認できます。控えめに言って神。 https://t.co/SY83r2XBK3」 / Twitter
microsoft/vscode-pull-request-github: GitHub Pull Requests for Visual Studio Code
Kohei SuenagaさんはTwitterを使っています 「Grammarly を VSCode から使うための extension が market place から消えていたのだが,どうも公式からのリクエストがあって unpublished 状態になっていたらしい. https://t.co/EbR3SD4v3V https://t.co/xsXLSrERiW から VSIX ファイルを使って入れられるそうな.」 / Twitter
Release Version 0.12.2 · znck/grammarly
七誌さんはTwitterを使っています 「ionide-fsharp(VS Codeの拡張機能)でパイプラインの途中の型が表示されるようになったのに気付いた。これは便利! (コメントの形で挿入されているが、自動表示されたもので入力したコードではない) https://t.co/VSK6YZe5c1」 / Twitter
入谷 優さんはTwitterを使っています 「#vscode 拡張機能のどれかが悪さをしているときに、二分探索で原因を簡単に探すことができることを知りました。拡張機能が多いと助かります。 https://t.co/LdConjDU6D」 / Twitter
Visual Studio Code extension bisect utility
ぬるぽへさんはTwitterを使っています 「デバッガの起動をめちゃめちゃ簡単にするツールを公開しました!デバッグ対象をCLIから起動すると、Tmuxでガッとgdbが起動したり、VSCodeからlaunch.jsonなしでアタッチできたりします あと、debuggeeが起動したときに自動でデバッガが立ち上がるようにする機能もあって便利 https://t.co/m2U7VjVDVT https://t.co/k3uf3ZDR8L」 / Twitter
nullpo-head/dbgee: The zero-configuration debuggee for debuggers. Handy utility that allows you to launch CLI debuggers and VSCode debuggers from the debuggee side.
ぬるぽへさんはTwitterを使っています 「あ、これなんか公開までに何度か言及してたこれのやつですね https://t.co/RfgnNQeTbY」 / Twitter
ぬるぽへさんはTwitterを使っています 「これめっちゃ便利じゃない?ゼロコンフィグでターミナルから普通に起動したプログラムをデバッガでデバッグできる 普通の開発フローと親和性が高くて、プログラム引数を頻繁に変えたり入出力をリダイレクトしても設定をいじったりする必要がない https://t.co/yNlP0vHbeQ」 / Twitter
ぬるぽへさんはTwitterを使っています 「どっちかっていうとこっちだった https://t.co/k2XYLQuIr9」 / Twitter
ぬるぽへさんはTwitterを使っています 「デバッガがいまいち誰もが使う選択肢になり切れてないのって、使うのが気軽じゃないからだと思うんですよね 例えば1. 引数渡しづらい 2. 何ならラッパースクリプトからバイナリが起動されるのでデバッガから起動できない 3. ビルドシステムが大きくてデバッグビルドがやりづらい とかはよくある」 / Twitter

Extensions for Visual Studio family of products | Visual Studio Marketplace
Code Outline - Visual Studio Marketplace
EditorConfig for VS Code - Visual Studio Marketplace
PrintCode - Visual Studio Marketplace
Settings Sync - Visual Studio Marketplace
Sort lines - Visual Studio Marketplace
Vim - Visual Studio Marketplace
vscode-clangd - Visual Studio Marketplace
Bracket Pair Colorizer - Visual Studio Marketplace
hexdump for VSCode - Visual Studio Marketplace
Windows Terminal Utility - Visual Studio Marketplace
Announcing Support for Native Editing of Jupyter Notebooks in VS Code | Python
Use Bridge to Kubernetes with Visual Studio | Microsoft Docs
VSCode rdbg Ruby Debugger - Visual Studio Marketplace
microsoft/pyright: Static type checker for Python
Microsoft、Bridge to Kubernetesをリリース

Terminal tabs

Takashi KawasakiさんはTwitterを使っています 「どこにあるのかわからん。今日の段階ではまだ出てこない?? No "terminal tabs" on the command palette... How to enable it?」 / Twitter
Daniel ImmsさんはTwitterを使っています 「Terminal tabs are available for testing in @code Insiders, we'd love to hear your feedback! Check out the screenshot put together by @sagebind which shows off the new feature 😍 https://t.co/Ipnn0mLRvY」 / Twitter
Daniel ImmsさんはTwitterを使っています 「@espresso3389 If you're on insiders you can drag your tabs into the editor or right click them and select "Move to Editor Group" https://t.co/bamqqSJ9n5」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「ここまでなってくると、割とWindows Terminalも要らなくなってくる感じではある。まぁ、まだ細かな制限はあるだろうけど。 https://t.co/aMvoA0m67X」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Windows TerminalにはSetting Syncがないのが問題なんだよなぁ。VSCodeは設定はSyncされるから、こっちでカスタマイズをするといろんなところで使えてうれしい。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「VSCodeの良いところはVSCodeの開発者はVSCodeを間違いなく使ってるというところだよな。かゆいところがよくわかる。」 / Twitter

窓の杜

「Visual Studio Code」が設定の同期に対応、Insider版でテスト中 - 窓の杜
「Visual Studio Code」の2020年1月更新が公開 ~リファクタリングリネームにプレビュー機能 - 窓の杜
グローバル検索を追加、列モード選択でさらに使いやすく~「Visual Studio Code」の2020年2月更新 - 窓の杜
「Visual Studio Code」の2020年3月更新、ファイルの変更履歴を表示する“タイムライン”を追加 - 窓の杜
シンタックスハイライトを最大で3倍高速化 ~「Visual Studio Code」の2020年4月更新 - 窓の杜
待望の設定同期機能が安定版に ~「Visual Studio Code」2020年7月更新 - 窓の杜
「Visual Studio Code」2020年8月更新、「Git」でのトラブルを防止する新オプションを追加 - 窓の杜
「Edge」の開発ツールを統合し「Visual Studio Code」でWebアプリの開発を完結 - 窓の杜
「Visual Studio Code」2020年10月更新、Python開発に必要な一式をセットアップする「Coding Pack for Python」も提供 - 窓の杜
トラブルの原因となる拡張機能を素早く特定 ~「Visual Studio Code」の2020年11月更新 - 窓の杜
無償コードエディター「Visual Studio Code」の2021年1月更新、v1.53が正式リリース - 窓の杜
GitHubのURLをちょろっと書き換えるだけでコードを「Visual Studio Code」で閲覧できる素敵なサービスが話題に - やじうまの杜 - 窓の杜
Microsoft、「Visual Studio Code」v1.54を公開 ~Apple Silicon(M1)に対応 - 窓の杜
Microsoft、「Visual Studio Code Installer for Java」をリリース - 窓の杜
無償コードエディター「Visual Studio Code」v1.55が公開 ~「Raspberry Pi OS」に正式対応 - 窓の杜
「Visual Studio Code」の4月更新 ~タブ切り替えのターミナルをプレビュー提供 - 窓の杜
「Visual Studio Code」に不審なリポジトリを安全に扱える「制限モード」 - 窓の杜
ターミナルをエディター領域へ作成・移動 ~「Visual Studio Code」2021年6月更新 - 窓の杜

blog

vscodeで重複行の削除 - 誰にも見えないブログ
パイプを使って標準出力をvscodeのウインドウに表示する - 誰にも見えないブログ
ほにゃさんはTwitterを使っています 「vscode, gnuplotが見れるのか https://t.co/jT52ja9c60」 / Twitter
ドッグさんはTwitterを使っています 「VS Code 内でデータを可視化してデバッグできる VSCode Debug Visualizer 便利そう | 'Visualize Data Structures in VSCode' https://t.co/ji7DCFPJyD」 / Twitter
AddyOsmani.com - Visualize Data Structures in VSCode
「Visual Studio Code」2020年3月版の新機能、時系列でファイルへの操作履歴「タイムラインビュー」、PC間で設定の同期、Undo/Redoがファイル再開後も有効など - Publickey
Visual Studio Codeが正式にRaspberry Piに対応。Notebook内のMarkdownレンダリングを強化、絵文字やKaTexによる複雑な数式など拡張可能に - Publickey
VS Code Remote - Containers を Docker Compose で使うのだー! - Mitsuyuki.Shiiba
VSCode Remote Containerで複数コンテナに接続する │ wonwon eater

Qiita

Visual Studio Code チートシート - Qiita
VS Code の便利なショートカットキー - Qiita
【Visual Studio Code】 日本語のメニュー画面で使う方法 - Qiita
VSCode devcontainerを使って面倒な開発環境を作る - Qiita
VSCode Remote Containerが良い - Qiita

Anaconda Python/R Distribution - Anaconda
Visual Studio Code – コード エディター | Microsoft Azure
Microsoft/vscode: Visual Studio Code
Visual Studio Code - Code Editing. Redefined
Documentation for Visual Studio Code
Visual Studio Live Share
Integrating Debuggers into Visual Studio Code
超融合!時空を越えた絆 Neo Vim(VSCode)を試してみた
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「docker desktop for win+vscode + devcontainerをどうにかしようとしたがどうにもならない(bind mountで失敗)するのでx11経由でnative vscode + devcontainerにしたらあっさり動いた。初めからそうすればよかったのか…」 / Twitter
VSCode devcontainerでローカルを汚さずに、快適なGo言語の開発環境を整える
戦国時代だったテキストエディタ界をVisual Studio Codeが天下統一しつつある - GIGAZINE

Edge

拡張

Create Link - Chrome ウェブストア
Google 翻訳 - Chrome ウェブストア
PDF Viewer - Chrome ウェブストア
Tracking Token Stripper - Chrome ウェブストア
Wayback Machine - Chrome ウェブストア
Google アナリティクス オプトアウト アドオンのダウンロード ページ
テキストエンコーディング - Chrome ウェブストア
ドキュネオさんはTwitterを使っています 「tenntennさんに収録のテクニック教えてもらいました 🙏 * 録画中に喋りをミスった場合、そのまま喋り直して、編集でカット * QuickTimeで録画して.movで保存 * Picture-in-Picture Extensionを使えばセルフィ埋め込みが可能 * カメラ横に人形を置いてそれに話かける * カメラ横にカンペを表示」 / Twitter
Picture-in-Picture Extension (by Google) - Chrome ウェブストア
Vimium - Chrome ウェブストア
ふりがな付与機能・サテライトオフィス - Chrome ウェブストア
Twitterで消せない「おすすめ」を消すChrome拡張
Chromeの操作を記録してPuppeteerやPlaywrightのコードに置き換えてくれる「Headless Recorder」レビュー - GIGAZINE
iCloudパスワード - Chrome ウェブストア
Microsoft Power Automate - Microsoft Edge Addons
GhostText: 好きなブラウザでの入力を好きなエディタで行う
URLについてくる不要なパラメーターを消してくれる拡張機能「ClearURLs」レビュー - GIGAZINE
PDF Translator - Chrome ウェブストア
PDF Translator 使い方 - pipbcmsi’s diary
yoshinobc/PDF-Translator: PDF Translator Chrome-extension
2000件以上のGoogle Chrome向け拡張機能がセキュリティを低下させているという指摘 - GIGAZINE
「Google Chrome」の「保護強化機能」を有効化して鉄壁のセキュリティに - 窓の杜
Webブラウザの拡張機能を標準化へ、Apple、Google、Mozilla、マイクロソフトらがW3C WebExtensions Community発足 - Publickey
Microsoft エディター、スペルと文法のチェック
無料で文章やコードを校正できる「textlint」にブラウザ拡張機能「textlint editor」が登場したので使ってみた - GIGAZINE
大量に開いたタブをURLに応じて自動的にグループ化してくれるChrome向け拡張機能「Acid Tabs」レビュー - GIGAZINE
Microsoft Edge アドオンストアの開発者ポリシー - Microsoft Edge Development | Microsoft Docs

早過ぎる新「Microsoft Edge」のリリースサイクルを緩和する「延長安定版チャネル」とは:企業ユーザーに贈るWindows 10への乗り換え案内(98) - @IT
IE11 サポート終了の歴史 | blog.jxck.io
Microsoft、「Internet Explorer 11」のサポート終了を発表、~猶予期間は約1年、2022年6月15日まで - 窓の杜
Internet Explorer 11のサポートが2022年6月で終了 - PC Watch
マイクロソフトは、2022年までにInternet Explorer 11を廃止します。|自作.com
文書作成など、Chromeのアドレスバーからコマンド呼び出し可能に - PC Watch
Edgeのタブ共有機能を1カ所に集約した「Desktop Sharing Hub」- 阿久津良和のWindows Weekly Report | マイナビニュース

Microsoft Store

Windows File Recovery を入手 - Microsoft Store ja-JP
HEIF 画像拡張機能 を入手 - Microsoft Store ja-JP
HEIC Image Converter を購入 - Microsoft Store ja-JP
HEVC ビデオ拡張機能 を購入 - Microsoft Store ja-JP
Raw Image Extension を入手 - Microsoft Store ja-JP
AV1 Video Extension を入手 - Microsoft Store ja-JP
ProcDump - Windows Sysinternals | Microsoft Docs
DebugView - Windows Sysinternals | Microsoft Docs
RAMMap - Windows Sysinternals | Microsoft Docs
A5:SQL Mk-2 (x64) を入手 - Microsoft Store ja-JP
Microsoftがアプリストア「Microsoft Store」の一新を図っている - GIGAZINE
Microsoft Store のポリシーの変更履歴 - UWP applications | Microsoft Docs
Microsoft Store ポリシー - UWP applications | Microsoft Docs
Microsoft Store ポリシー改訂、Chrome や Firefox の公開が可能に | スラド デベロッパー

WSL

その他

ifconfigコマンドとipコマンドの違いと比較 – エラーの向こうへ
linux debugfs - Google 検索
Darling | macOS translation layer for Linux
1Password for Linux beta is now open 🎊 🐧 🎊 | 1Password
X.Org Serverは見捨てられたソフトウェアなのか | スラド オープンソース
Linuxで発表動画を撮る | κeenのHappy Hacκing Blog
AppArmor - Ubuntu Wiki
Security - AppArmor | Server documentation | Ubuntu
Yubikey覚書 | teqblog
超入門USDT - ローファイ日記
Fedora/CentOS Stream/CentOS/RHELの関係性 - 赤帽エンジニアブログ
Linux カーネルでの Sphinx 利用法を見てみよう - Hack like a rolling stone
The Linux Kernel documentation — The Linux Kernel documentation
Enterキーが押されるのを待たずに、標準入力から文字をキャプチャします
if0604_60.pdf
Windowsマシンを使う - in neuro
Ubuntu 20.04 LTS : NVIDIA ドライバーインストール : Server World
remmina - Google 検索
zx - より良いスクリプトを書くためのツール
Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Ansible Collections を使ってみよう! - 赤帽エンジニアブログ
screen serial - Google 検索

ssh

NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「vs code remoteでhostがWindowsの時にssh + agent forwardってどうするのがいいんだろうな。そもそもwindowsでのssh-agentが魔境っぽい https://t.co/qpQrmejS2h」 / Twitter
混沌を極めるWindowsのssh-agent事情 - Qiita
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「https://t.co/8iPT8zgYvf そして今ならなんと標準サービスでssh-agentが動くことを知る」 / Twitter
わたなべごうさんはTwitterを使っています 「@knok こちらの stream-connector を使うと、Win標準の ssh-agent から、msys or cygwin/wsl1 or wsl2 いずれにも一発でソケットトンネルつくってくれるので集約できますね。https://t.co/g03ftElHB9 鍵管理系アプリだと KeePassXC とかが Win標準の ssh-agent への鍵登録に対応してたりします」 / Twitter
stream-connector - Programming Field
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「@wtnbgo KeePassXC使えるのはいいですね。情報ありがとうございます」 / Twitter
Kaz Nishimura, C++Unit​X (cppunitx) 作者さんはTwitterを使っています 「@knok WSL 上では ssh.exe を使うことにするといろいろ楽」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「@kazssym ssh_configのwildcardの扱いがちょっと面倒なんですよね… 当初git for winのssh.exeを使ってたのですが、利用可能なセッション数に上限があるようで、今はwin10標準にしています。wildcardはgit bash経由で処理させています」 / Twitter
[Windows] VSCode で使うssh-agentについて VSCode Remote Development - Boards - Crieit

tmux

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今更ながらの tmux、PuTTYが切れて再接続しても、tmux a で、バックログを含めたセッション再開できるのがとても良いね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「二つのターミナルから、tmux a とやると、相互ミラーリング的な表示になるのね…何の役に立つか判らないけど面白い。」 / Twitter
市川 真一さんはTwitterを使っています 「@shirouzu レッスンに使えそうですね」 / Twitter
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「TeraTerm愛用してるから普通に腹立つんだけど💢 以前、タブ式のターミナルを使った事あるんだけど、ありゃダメだった。 cscopeでソース見ながら、emacsで自前コードを書いて、シェルでゴニョゴニョする感じなので、いちいちタブを切り替えるワンステップ入るのがね。 https://t.co/N2AFuiX4zc」 / Twitter
時代遅れなソフトウェア達
海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「タブ式だの画面分割だので頑張るくらいなら、横長のウルトラワイド液晶ディスプレイ買えばいいじゃん(煽」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@kkaigai タブ式のターミナル、面倒なのよくわかります。参照しながら仕事するから、常に3つのターミナル画面立ち上げてますが、ブラウザと被ってしまって…。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「tmux の Ctrl+B は「他のショートカットに被らない」を優先と思うのだけど、多用する場合は使いづらい。 先人の定番とかあるのかな?」 / Twitter
鯉江さんはTwitterを使っています 「@shirouzu わたしはC-l(える)にしてます。tmux外の環境でおしてしまっても被害が少ないのが理由です。 一般的にはC-]が多いんじゃないかと(個人的想像です)。ほかとキーバインドがかぶりにくいので。わたしはviのタグジャンプでつかうので避けました。 https://t.co/u9LZFsR4Hd」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@koie なるほど、良いかもですね。 ありがとうございます。」 / Twitter
QGBCSさんはTwitterを使っています 「@shirouzu Ctrl+`」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とほほ氏は Ctrl-j かな? https://t.co/SsAqQuE8fL https://t.co/Ird5pasp0h」 / Twitter
tmux入門 - とほほのWWW入門
Using tmux for automating interactive reverse shells | by Ulisses Alves | Jul, 2021 | InfoSec Write-ups

シェル

zsh

.zshrcに書いておくべきこと - sanoto_nittc’s diary
SODA NoriyukiさんはTwitterを使っています 「@kazuho これは zsh の echo が、デフォルトだと System-V /bin/echo と同様な動作をするせいですね。 setopt bsdecho しておけば、echo が \ を解釈するのを止められると思います。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho zshのデフォルトって、他のBourne shell系シェルとの違いが結構大きいので、~/.zshenv に setopt bsdecho globsubst ksharrays nonomatch shwordsplit あたりを設定しておいた方がいいかもしれません。 (詳しいことは @satoh_fumiyasu さんの https://t.co/hGCN2f3Dmd 参照)」 / Twitter
zsh でシェルスクリプトを書くときの留意点 - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog
ふみやす@シェルまおう(自称でない) FGO:838,149,789さんはTwitterを使っています 「@n_soda @kazuho zsh を Bourne shell 互換設定にすると動かない zsh 拡張機能もあるので、それらを有効にして利用していると困ることあるかも。昔、いろいろカスタマイズしている自分の .zshrc で試したとき何かが動きませんでした。デフォルトなら影響ないと思うけど、たぶん。」 / Twitter
hkobaさんはTwitterを使っています 「.oO(…少数派の zsh 主義者からの意見ですが、せっかく zsh 使うのに setopt shwordsplit してしまうのは、 zsh の設計思想に逆行してる感があって残念と思ってますん…もちろん進歩より posix sh 互換性という優先順位もあるとは思いますが…)」 / Twitter
hkobaさんはTwitterを使っています 「せっかく配列をまともに使えるモードが用意されたのに、それを殺すなんて勿体ない、という考えです。 (正確に言えば、スカラー変数を配列代わりに使う機能をオフにするモード)」 / Twitter
hkobaさんはTwitterを使っています 「@n_soda やはりそこは使いますよね~ で、 "$file" を単に $file と書いても完全に安全なのが、 zsh の良いところかなと。 ファイル配列への追加も argv+=($newfile) 辺りで。」 / Twitter

シェルスクリプトを書くときにいつもやるやつを調べた - Please Sleep
あなたはps -ef派なのか、auxf派なのかをちょっとだけまとめてみた | ten-snapon.com
2020年5月20日 リモート接続でいつものシェルを! ssh越しでポータブルなシェル環境を実現する「xxh」:Linux Daily Topics|gihyo.jp … 技術評論社
satさんはTwitterを使っています 「shell(bashなどの特定のshellだけかも)で"$_"が「直前に実行したコマンドの最終引数」と言うことを知っていたかどうか。たとえば以下のようにすると一行目で作ったディレクトリに移動できる ``` $ mkdir -p path/to/dir $ cd $_ ```」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@satoru_takeuchi meta-.で直前の行の最後の引数が入力できるというのは。」 / Twitter
グロブ - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「bash でワイルドカード引数でコマンド実行すると、マッチしない場合は bash がエラーメッセージを出してコマンドは実行されないという挙動という認識だった。 最近気づいたのは、展開できないとワイルドカードをそのままコマンドに渡す、みたいな挙動になっているのね…危ない例とか無いのかしらん?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「すごいわかる。実行したコマンドの history は覚えてるんだし、結果も覚えておいてくれたらいいやん。どうせテキストだし、メモリ富豪な現代においては、常に覚えておいてほしい」 / Twitter
_ko1さんはTwitterを使っています 「shell よく知らないんですが、nantoka shell で、スクリーンに出てきた stderr/out の出力を、コマンド実行後に得る、みたいな方法ってありますかね。裏で勝手に stdout/err をいい感じにファイルとかメモリにのっけておく、でもいいんだけど。数千行、毎回 terminal からコピペしてるのがつらい。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「こういう用途には Emacs のシェルモードがおススメ! (CTRL-c CTRL-s で直前に実行したコマンドの出力だけをファイルへ書き出せます)」 / Twitter
ざぎん 𒎎𒍝𒆳さんはTwitterを使っています 「@shinji_kono axiom は古代ギリシャ語 at-幹名詞 ἀξίωμα axioma が、フランス語の axiome を経由して語尾が取れてしまった形なので、ラテン語やギリシャ語の o-幹名詞(例 datum, criterion)とは違いますね。 もし axioma のまま入ってきていたら、 lemma のように axioma, axiomata みたいになっていたはずです」 / Twitter
わたなべごうさんはTwitterを使っています 「tee とかで自前で記録とるのではなく、shell 側の機能としてほしいやつですね。Jupyter Notebook で bash カーネルがたぶんやりたいことに近いと思われる。参考記事 https://t.co/RFBvh5JwZ9  今だとnushell カーネルとかをためしてもいいかも」 / Twitter
シェル芸人のためのJupyter環境 - A painter and a black cat
SODA NoriyukiさんはTwitterを使っています 「Emacsのシェルモードでコマンドの出力を切り出す場合だと TAB や 制御文字の多くがそのまま保存されてるってのも地味に嬉しい。 xtermからのコピペだとダメ(TABはスペースに展開、制御文字は消える)だし、tmux show-buffer でもダメっぽい。 ただシェルモードでもESCシーケンスはダメ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@BsdHacker 直前のコマンドの出力だけを手軽に切り出したいってことなので、scriptだと切り出すのが不便じゃないかと。 ・macOS iTerm2 + shell integration: https://t.co/QfGzCbR4eB ・zsh preexec: https://t.co/pKjj3GWbiu ・Jupiter Notebook: https://t.co/5upu4eTh2o ・emacsシェルモード あたりですかね」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「これ、知人と話してたら https://t.co/8h0hxJIYhw を作ってくれたけど自分でやりたくなって https://t.co/Ytm1P64Ixw を作って使ってる。 screen が動いてる前提の作りで、 less /tmp/tanlog/make/P とかで前に使った make の出力が残ってる https://t.co/5tEBimWAJI」 / Twitter
omakoto/zenlog
test/tanlog.rb at master · shinh/test
shinichiro hamajiさんはTwitterを使っています 「端末レベルで記録すると ssh とかも残るから便利なんだよなあ。このへんは UNIX 哲学とか忘れて、端末+shell+screen は単一のアプリにした方が便利だしやれること増えるんじゃないかな、と思ってる。 ref: https://t.co/uTVKnmy9xj」 / Twitter
はじめてのにき(2020-06-30)
Miura HidekiさんはTwitterを使っています 「teeでリダイレクトするとかそのままリダイレクトするとかあるけど、逆にこういうことしたい時はファイルが巨大になり過ぎるきらいがあるから、何らかのリミッタが欲しい所」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「bash乃バージョン間の差異で悩まされた経験があるのであまり同意できない…」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「最近、bashが最強のプログラミング環境であると思い始めている。圧倒的なポータビリティとスケーリングを実現できる。」 / Twitter
fish の始め方 – GitHub 出張所 – プログラム関係のブログはここに

apt

第327回 aptコマンドを使ってみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
aptコマンドチートシート - Qiita
Ubuntu 16.04 / Debian 8: aptコマンドの使い方 - Narrow Escape
「apt-get」はもう古い?新しい「apt」コマンドを使ったUbuntuのパッケージ管理 | Linux Fan
WSLのUbuntu環境で「apt」コマンドを使ってパッケージを更新/管理する:Tech TIPS - @IT
KeN's GNU/Linux Diary(2018-07-28)
第675回 apt-keyはなぜ廃止予定となったのか:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

ASCII.jp

ASCII.jp:20H1の完成とともにWindows Subsystem for Linux 2が来る (1/2)
ASCII.jp:Windows 10のWSL2からGPUが使えるようになった (1/2)
ASCII.jp:WSL2にCUDA on WSLをインストールする (1/2)
ASCII.jp:WSL2で外部ストレージをマウントできるようになった (1/2)
ASCII.jp:Windows 10の最新ビルドを用い、WSL2で仮想マシン環境を使う (1/2)
ASCII.jp:LinuxのGUIアプリケーションに対応するWSL2 (1/2)
ASCII.jp:WSL2ではRDPでLinux GUIアプリのウィンドウを表示する (1/2)
ASCII.jp:WSL2の2つの設定ファイル「.wslconfig」と「wsl.conf」 (1/2)
ASCII.jp:WSL2でのGUIアプリ対応がプレビュー版で開始 実際に動かしてみた (1/2)
ASCII.jp:WSL2でのGUIアプリケーションを動かす「WSLg」の仕組み (1/2)

窓の杜

Canonical、「Ubuntu 20.10」の提供を開始 - 窓の杜
“wsl --install”で「WSL」を一発セットアップ ~Dev版「Windows 10」Build 20246 - 窓の杜
プレビュー版「Windows 10」のタスクバーにニュース機能 ~WSL起動時のコマンド実行にも対応 - 窓の杜
「Docker Desktop 3.0.0」が正式リリース ~差分更新によりアップデートが手軽に - 窓の杜
WSL 2 GPUをサポートした「Docker Desktop」が開発者向けにプレビュー - 窓の杜
「Docker Desktop 3.3」が公開 ~アップデート通知を行い、勝手に更新しないように - 窓の杜
「Docker Desktop 3.4」が公開 ~有償版でないと更新スキップできないと誤解を招くリマインダーを改善 - 窓の杜

GIGAZINE

MicrosoftがBuild 2020でWSL2のGUIアプリ動作やパッケージマネージャー「winget」などを発表 - GIGAZINE
Linuxを生み出したリーナス・トーバルズが考える「優れたコード」とは何か? - GIGAZINE

Publickey

Windows 10のファイルエクスプローラがWSL機能を統合。Linuxを示すペンギンアイコンが登場 - Publickey
個人開発者はRed Hat Enterprise Linuxを無料で最大16システムまで利用可能に、本番環境もOK。Red Hatが開発者向けプログラムの拡大を発表 - Publickey
Ubuntu 21.04正式リリース。Active Directoryとネイティブ統合、最適化されたSQL Server対応、Flutter用SDK搭載、Waylandがデフォルトに、など - Publickey
Kubernetes環境をWindows 10/macOSへ簡単にインストール。「Rancher Desktop」がオープンソースで公開 - Publickey
第671回 パッケージのアップデートとアップグレードを制御する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

技術評論社

第633回 字幕ファイルを作成し,動画に焼き込む:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第663回 Ubuntu 21.04の主な変更点:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第667回 Warpinatorでお手軽LAN内ファイル転送:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第669回 Ubuntuとデスクトップフォルダー機能:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

マイナビニュース

WSL 2に特化した「Ubuntu on Windows Community Preview」とは - 阿久津良和のWindows Weekly Report | マイナビニュース
WindowsとLinuxの融合をさらに進めたマウントオプション - 阿久津良和のWindows Weekly Report | マイナビニュース
Linux GUIアプリが動作する最新Windows 10 Insider Preview - 阿久津良和のWindows Weekly Report | マイナビニュース
Linuxとの統合を目指すWindows 10 - 阿久津良和のWindows Weekly Report | マイナビニュース

Qiita

WSL2によるホストのメモリ枯渇を防ぐための暫定対処 - Qiita
WSLでWindows側とLinux側のパイプの使い分けについて - Qiita
待ってました CUDA on WSL 2 - Qiita
WSL上でDocker Engineが動くようになっていたっぽいという話 - Qiita
WSLのディストリビューションの切り替えに関するメモ - Qiita

Twitter

すずかさんはTwitterを使っています 「\\wsl$ でWSLのfsに入れることを知っているだけで効率が100倍くらい変わる https://t.co/4Ar76maM3R」 / Twitter
高梨陣平さんはTwitterを使っています 「あまり話題になっていないですが、WSL1と異なりWSL2はNW通信がWindows Firewallを経由しません。 WSL2はHyper-V上でWindowsと同格のゲストOSです。WSL2上でfirewallの設定が必要なので注意しましょう。」 / Twitter
FadisさんはTwitterを使っています 「WSL2でGUIなアプリケーションを動かす為に、Microsoftが独自のWaylandコンポジタを実装している、という話。このコンポジタはWestonをベースに、ルートレスでリモートのウィンドウを表示するRDP-RAILを喋れるように拡張したものらしい https://t.co/MWNdc2GCWF」 / Twitter
Microsoft Is Writing Its Own Wayland Compositor As Part Of WSL2 GUI Efforts - Phoronix
FadisさんはTwitterを使っています 「マイクロソフトがWSLの新機能WSLgの解説を行なっている話。WSLgはWSL2で動くLinux環境にWaylandとXとPulseAudioを生やし、映像、音双方でWindowsネイティブなアプリケーションと同じ感覚でLinux向けGUIアプリケーションを動かせる。GPUによるアクセラレーションにも対応。 https://t.co/FjCoG2Puwo」 / Twitter
Microsoft Posts WSLg Preview - GUI App Support With Windows Subsystem For Linux - Phoronix
knj08aさんはTwitterを使っています 「CPU依存ぽいね https://t.co/4wko9X80ZE」 / Twitter
After most recent WSL update, WSL won't start · Issue #33 · microsoft/wslg
knj08aさんはTwitterを使っています 「問題が発生している環境は i7-3770K ivy bridgeか・・・古いな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「未だにSandy Bridge搭載マシンを使っているのがいけなかったか」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
Taku KudoさんはTwitterを使っています 「ホストIMFの動作をブリッジする疑似IMEをfcitx上に作ればいけるかな。Mozc限定なら、fcitx-mozc のプロセス間通信の接続先をホストOS上のソレにつなげれば動きそう。いずれにせよ UIは fcitx になるので、見た目的には現状と変わらない。 https://t.co/DWVs1rio7x」 / Twitter
Taku KudoさんはTwitterを使っています 「windows の商用 xserver は ximp とか kinput2 経由でブリッジしてた記憶がある。それでいけるのかな。あまりにも古い知識なのでよくわからん。」 / Twitter

WSL CUDA - Google 検索
DirectX ❤ Linux | DirectX Developer Blog
日記 (2020 年 7 月)
Linux との Windows の相互運用性 | Microsoft Docs
WSLg Architecture | Windows Command Line

PowerToys

「PowerToys」にMarkdown/SVGプレビューと画像リサイズ、検索ベースのタスク切り替えが追加 - 窓の杜
MS、Windows 10向け「キー割り当て変更ソフト」開発中。軽量なUIを約束 - Engadget 日本版
Releases · microsoft/PowerToys
PowerToys/KeyboardManager.md at feature/keyboardmanager · microsoft/PowerToys
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「むー。たぶんこれ、対応しないと今のGeckoではリマッピングに対応できないだろうな。Windows標準のショートカットキーハンドリングはVKに従うっぽいけど、Geckoは入力文字の方を見てるんだよね……」 / Twitter
ASCII.jp:Windows 10用ユーティリティ「PowerToys」がv0.16.1に 新機能をチェック (1/2)
キー割り当て変更ユーティリティを統合した「PowerToys v0.18.0」 - PC Watch
無料で使用可能なクイックランチャー機能「PowerToys Run」がMicrosoft公式のWindows 10拡張ソフト「PowerToys」に登場 - GIGAZINE
ASCII.jp:キーやショートカットキーの変更にも対応したWindows 10用ユーティリティ「PowerToys」の新バージョン (1/2)
【山田祥平のRe:config.sys】あらゆるアプリを同じ操作で - PC Watch
ASCII.jp:正式版は年内と延びるも、完成度は高まっているWindows 10向けPowerToys (1/2)
「PowerToys」を使いこなして効率UP! プレビュー版を一足先に体験 2020年 記事一覧
PowerToys、PCを起動しっぱなしにできる機能でCPU高負荷となる問題を修正 - PC Watch

Power Apps

自動化ツール「Power Automate Desktop」の無償化はMicrosoftの英断 - 阿久津良和のWindows Weekly Report | マイナビニュース
【Windows 10版でどこまでできるか】Power Automate Desktop のライセンスやできることや気になることまとめ【随時更新】 - Qiita
デバイスで Power Automate Desktop を設定する - Power Automate | Microsoft Docs
Set up Power Automate Desktop on your device - Power Automate | Microsoft Docs
ASCII.jp:Windows 10で無料で使える、デスクトップ操作の自動化ツール「Power Automate Desktop」を試す (1/2)
[速報]マイクロソフト、自然言語をプログラミング言語にAIで変換、新ノーコード機能をPower Appsに搭載。AI言語モデル「GPT-3」を採用。Microsoft Build 2021 - Publickey
Excelの数式をベースにしたプログラミング言語が登場、「Microsoft Power Fx」。オープンソースで公開予定。Microsoft Ignite 2021 - Publickey
Excelの新機能「Lambda関数」によって「Excelの数式がチューリング完全になった」とナデラCEO。プログラミング言語としてのExcel数式であらゆる計算が可能に - Publickey
Microsoftが文章生成AI「GPT-3」をビジネスアプリ作成ツールに統合すると発表、文章形式でアプリ作成が可能に - GIGAZINE
[速報]マイクロソフト、自然言語をプログラミング言語にAIで変換、新ノーコード機能をPower Appsに搭載。AI言語モデル「GPT-3」を採用。Microsoft Build 2021 - Publickey (1)
話し言葉でプログラミング Microsoft、ノーコード進化: 日本経済新聞
Dataverse のドキュメント - Power Apps | Microsoft Docs
「Power Automate Desktop」の6月更新 ~フローから別のフローを呼び出せるように - 窓の杜

Terminal

ASCII.jp

ASCII.jp:正式版が登場したWindows Terminalをカスタマイズする (1/2)
ASCII.jp:Windows Terminalのカスタマイズを研究【キーボード編】 (1/2)
ASCII.jp:プレビュー版で開発が進められているWindows Terminal (1/2)
ASCII.jp:Windows 10で標準で用意されるようになったcurlを使ってみる (1/2)
ASCII.jp:Windows 10の新コンソール、Windows Terminalが完成直前のv0.11に (1/2)
ASCII.jp:機能的にはほぼ完成されたWindows 10の新コンソール、Windows Terminal v0.9 (1/2)
ASCII.jp:Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?|Windows Info
ASCII.jp:Preview版でv1.5まで進化したWindows Terminalの新機能を確認 (1/2)
ASCII.jp:v1.6まで進化し、GUIでの設定ページも用意されたWindows Terminal (1/2)
ASCII.jp:コマンドラインからウィンドウの制御が可能になったWindows Terminal v1.7 (1/2)
ASCII.jp:あらためて「PowerShell」の現状と登場後の経緯を整理する (1/2)
ASCII.jp:Windows Terminalは安定版v1.8、Preview版v1.9が登場 v2.0に向け進化が続く (1/2)
ASCII.jp:Windows PowerShellからスクリプトの完了をトースト通知で知らせる (1/2)

窓の杜

「Visual Studio」に「Windows Terminal」を合体 ~Microsoft、「VS Terminal」を発表 - 窓の杜
ジャンプリスト対応の「Windows Terminal 1.4」が正式版に ~次期版は改良されたハイパーリンク機能を搭載 - 窓の杜
「Windows Terminal」に待望の設定GUI ~v1.6プレビュー版で先行導入 - 窓の杜
「Windows Terminal 1.7」プレビュー、GUI設定画面が既定に。JSONスニペットの共有でカスタマイズも簡単 - 窓の杜
「Windows Terminal 1.7」が正式リリース、設定GUIを安定版に - 窓の杜
「Quake」モードを追加した「Windows Terminal Preview 1.9」 ~既定のターミナルも「conhost」から「Windows Terminal」に切り替え可能 - 窓の杜
既定のターミナルを「Windows Terminal」に変更 ~プレビュー版Windows 10でテスト - 窓の杜
「PowerShell 7.2」は「Microsoft Update」経由でアップデート可能に - 窓の杜
「Quake」モードを追加した「Windows Terminal 1.9」が正式版に ~既定ターミナルの置き換えは搭載見送り - 窓の杜

Qiita

PowerShell 使い方メモ - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PuTTY から RLogin に移行…サーバ群の一括ログイン(復元)が出来て、ログイン時tmux起動と組み合わせでコンテキスト復元まで出来るのが良い。 (コンテキスト維持は大事。その意味で WindowsUpdateの邪悪さ…) https://t.co/UtVgljvR4V」 / Twitter
ログイン時にtmuxを自動起動したい! - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「RLoginって、設定変更中とか結構な頻度で落ちるのね。 (tmux上で作業する分には影響少ないけど)」 / Twitter

Twitter

ドッグさんはTwitterを使っています 「pip はもう古い.これからは python -m pip」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Windows Terminal Previewがconemu OSCというものでタイトルバーとタスクバー上のプログレスバーに対応しているということなので、うちの会社で作ってる変換君もそれに対応してみた。 https://t.co/KKrDDbK4oj https://t.co/6YDxsmaZSG」 / Twitter
ConEmu | ANSI X3.64 and Xterm-256 Support
入谷 優さんはTwitterを使っています 「PowerShell で関数の引数をそのまま別の関数に渡すにはどうしたら良いのかなと思って調べたら、$PSBoundParameters なる変数が使えることを学びました。 https://t.co/Y5me0pqH6l」 / Twitter
about_Splatting - PowerShell | Microsoft Docs
入谷 優さんはTwitterを使っています 「#PowerShell 7.2.0-preview.5 にしてから、cmd を呼ぶスクリプトがエラーを吐くようになってしまいました。どうやら二重引用符の扱いが変わっているようです。 https://t.co/63eduvIkL1」 / Twitter
Experimental feature PSNativeCommandArgumentPassing breaks cmd /c calls with embedded double quotes · Issue #15239 · PowerShell/PowerShell

Windows Terminal を入手 - Microsoft Store ja-JP
microsoft/terminal: The new Windows Terminal and the original Windows console host, all in the same place!
PowerShell/PowerShell: PowerShell for every system!
山市良のえぬなんとかわーるど: 新しくなった WUA_SearchDownloadInstall.vbs(自動化やオフラインスキャンに対応)
Searching, Downloading, and Installing Updates - Win32 apps | Microsoft Docs
パス名にスペースのある実行ファイルの指定方法
ファイル共有とシンボリックリンクの利用について – Ask the Network & AD Support Team
Windowsの「robocopy」コマンドでフォルダをバックアップ/同期させる:Tech TIPS - @IT
Windows Terminalの使い方
プロファイル、複数のペイン、Unicode文字をサポートするWindows Terminal 1.0がリリース
Microsoft、Windows Terminalプレビュー版。設定UIの標準化や読み取り専用モードを追加 - PC Watch
Windows のコマンド | Microsoft Docs
Windows で sudo なことをする。 | みむらの手記手帳

winget

microsoft/winget-cli: Windows Package Manager CLI (aka winget)
まちカドおるみんさんはTwitterを使っています 「パッケージの依存解決したり追跡・アンインストールするための機能がないしこいつは何も管理してないじゃんかという批判。ごもっとも。 >> Not a package manager · Issue #223 · microsoft/winget-cli https://t.co/Z4fyQ0jG1n」 / Twitter
Not a package manager · Issue #223 · microsoft/winget-cli
ASCII.jp:Windows 10のパッケージマネージャーであるwingetのプレビュー版を試す (1/2)
ASCII.jp:Windows用アプリのインストールがコマンドラインで可能なパッケージマネージャー「winget」はどうなった? (1/2)
Windows環境再構築をコマンドラインで自動化可能にするMicrosoft製ツール「winget」とは:Windows 10 The Latest(1/2 ページ) - @IT
“Microsoft Store”のアプリもコマンドラインで導入 ~Microsoft、「winget」を更新 - 窓の杜
「winget」の最新プレビュー版v0.3が公開 ~importコマンドとグループポリシーに対応 - 窓の杜
ASCII.jp:Windowsで開発中のパッケージマネージャー「winget」がv0.3に (1/2)
コマンド一発でアプリをセットアップ ~CUIのアプリ管理ツール「winget」がv1.0に - 窓の杜
アプリ インストーラー を入手 - Microsoft Store ja-JP
リポジトリにマニフェストを送信する | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MSさんによってFastCopyの winget用manifestが作られていて、wingetでインストールできるようになっていた…へぇ。 https://t.co/tXLsSZyl9r」 / Twitter
winget-pkgs/manifests/f/FastCopy/FastCopy/3.92 at master · microsoft/winget-pkgs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ちゃんと /SILENT という、(私が用意した)インストーラ・オプションが指定してある)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IP Messenger も winget できるよう、MS に pull request を送ってみた…何がしか進んでいるっぽい。 https://t.co/8II9HlIFCV」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「無事、マージされた様子。 インストールには winget install ipmsg で OK。 https://t.co/JvaoPvROYs https://t.co/nleokvHdC2」 / Twitter
Create FastCopy.IPMsg.yaml by shirouzu · Pull Request #19575 · microsoft/winget-pkgs

ライフサイクル

Search Product and Services Lifecycle Information - Microsoft Lifecycle | Microsoft Docs
Windows 10 Home and Pro | Microsoft Docs
Windows ライフサイクルのファクト シート - Windows ヘルプ
サービスとしての Windows のクイック ガイド (Windows 10) - Windows Deployment | Microsoft Docs
Windows 10 UWP アプリのライフサイクル - UWP app developer | Microsoft Docs
ライフサイクルに関する FAQ - Windows 製品 | Microsoft Docs
ライフサイクルに関する FAQ - Internet Explorer および Microsoft Edge | Microsoft Docs
ライフサイクルに関する FAQ - モダン ポリシー | Microsoft Docs
モダン ライフサイクル ポリシー | Microsoft Docs
Office と Windows のサービスとサポートの変更 - Windows Blog for JapanWindows Blog for Japan
Tech TIPS:一目で分かる、Visual Studioの各バージョンのサポート期限 - @IT

マルチブート

Tech TIPS:Windowsのbcdeditでブートメニューの項目を追加する - @IT
[Windows10]マルチブート(デュアルブート)起動時のオペレーティングシステム(OS)名称を変更する:初心者のためのHTMLとWindows(ウィンドウズ)、エクセル講座。HTML・CSSを使ったホームページ作成やWindows(ウィンドウズ)、エクセル(EXCEL)・メール(outlook)・フォトショップ(Photoshop)入門
(UEFI環境 編)Microsoft Windows10 と Ubuntu 14.04 LTS とのデュアルブート環境の構築 | えび天サーバ ( abten server )
FreeBSDのWindows8.1マシンでのデュアルブートのやりかた - Qiita
デュアル ブート PC でブート メニューを修復する - Windows 10 hardware dev
grub にWindows10起動メニューを追加する(Boot-Repairを利用する) - Qiita

Process Monitor

Process Monitor
Process Monitor – Japan WDK Support Blog
Process Monitor で OS 起動時のログを採取する手順 – Japan WDK Support Blog
「ProcMon」がダークモードに対応 ~Microsoft製のプロセスモニタリングツール - 窓の杜

Process Explorer

Process Explorer - Windows Sysinternals | Microsoft Docs
Process Explorer が Paging List 統計情報の表示に対応していた件 - NyaRuRuが地球にいたころ
Process Explorer で探る Windows Vista メモリ管理戦略 - NyaRuRuが地球にいたころ
3 分ぐらいでわかる,Process Explorer による Windows Vista メモリ使用状況の調べ方 - NyaRuRuが地球にいたころ
メモリ周りを見るときの Process Explorer の準備 - NyaRuRuが地球にいたころ
「Process Explorer」v16.4はプロセスのフィルタリングが可能に ~セキュリティ機能「CET」にも対応 - 窓の杜
Handle - Windows Sysinternals | Microsoft Docs

パフォーマンス診断

パフォーマンス診断コンソール - NyaRuRuが地球にいたころ
pfmon.exe - NyaRuRuが地球にいたころ
Perforator とは - NyaRuRuが地球にいたころ
Xperf : Event Tracing for Windows frontend - NyaRuRuが地球にいたころ
Download DTrace On Windows from Official Microsoft Download Center

Microsoft Learn | Microsoft Docs
Microsoft サービス規約
よく寄せられる質問
Microsoft アカウント | ホーム
アカウントの一時停止
Flight Hub | Microsoft Docs
Windows 10 IP
Windows Insider Program の結果 - マイクロソフト コミュニティ
tenpoku1000
Microsoft Insiders
Discussions - Microsoft Tech Community
Microsoft Edge issue tracker - Microsoft Edge Development
Process Hollowing/Herpaderping攻撃の検出に対応した「Sysmon」v13.00が公開 - 窓の杜
Androidアプリのコードを書き換えずにほぼそのままWindows 10で利用できるようにする「Project Latte」が進行中 - GIGAZINE
Windows 10がクラウド化する可能性 - 阿久津良和のWindows Weekly Report | マイナビニュース

LibreOffice

Home | LibreOffice - Free Office Suite - Fun Project - Fantastic People
Details for crash report: dad46271-da1e-4651-9069-8fa026a75616
Reports for signature: ScDocument::HasTable(short)
Crash reporting for the LibreOffice project
LibreOfficeのバグ報告方法 - The Document Foundation Wiki
How to get a backtrace with WinDbg - The Document Foundation Wiki
How to debug - The Document Foundation Wiki
Users - Calc でコピー・アンド・ペーストを繰り返すとハングアップする問題
Users - Windows 版 LibreOffice の更新インストール時に権限の問題で処理が完了しない事象
LibreOffice 日本語チームさんはTwitterを使っています: 「最近、不具合の話が目に付くので皆様にお願いです。 LibreOfficeの不具合はBugzilla(バグ管理システム)に登録されて問題として認識されます。逆に言うと登録されない限りは誰も気がつかないので、もし不具合を見つけたらBugzillaで検索もしくはバグ報告をお願いします https://t.co/dqFnj2kBsZ」 / Twitter
LibreOffice 日本語チームさんはTwitterを使っています: 「Twitterを見ていますが中の人も拾うには限界があって、先日のMacの不具合のような大きな問題でなければ動くことはできないので、Twitterでつぶやいた後は検索と報告もよろしくお願いします🙇‍♂️」 / Twitter
LibreOffice 日本語チームさんはTwitterを使っています: 「メーリングリストなので基本的にメールでやりとりですが、Webから掲示板のように書き込めるNabbleというシステムもあります。こちらもアカウントを作る必要はありますがメーラーを使わなくていいので楽に使えると思います https://t.co/w3RzbkOUxw」 / Twitter
Document Foundation Mail Archive - Users | Mailing List Archive
Bugzilla Main Page
メーリングリスト | LibreOffice - オフィススイートのルネサンス
Mail Index - The Document Foundation Mailing List Archives
Mail Index - The Document Foundation Mailing List Archives

GitHub Desktop

Qiita

GitHub Desktopの使い方 - Qiita
Github Desktopを使った開発の流れ(入門) - Qiita

desktop/desktop: Simple collaboration from your desktop
Sample reports | GitHub Desktop
Set Up Git - User Documentation
GitHub Desktop 1.5でマージコンフリクトの解決が容易に
よくあるうっかりミスを防止する機能が2つ導入された「GitHub Desktop 2.3」 - 窓の杜
プロキシを自動検出・設定、イシューの作成にも対応した「GitHub Desktop 2.4」がリリース - 窓の杜
待望の差分の分割表示をサポートした「GitHub Desktop 2.6」 - 窓の杜
「GitHub Desktop 2.7」でD&Dによるチェリーピッキング(git cherry-pick)が可能に - 窓の杜
差分表示にちょっとうれしいオプションを追加した「GitHub Desktop 2.8」 - 窓の杜

Atom

Atom-Packages

Atom
Packages
auto-encoding
clipboard-plus
document-outline
editorconfig
ex-mode
highlight-line
japanese-menu
japan-util

linter

linter
AtomLinter
linter-textlint
linter-ui-default
intentions
busy-signal

print-atom
project-manager
show-ideographic-space
simple-drag-drop-text
sort-lines
sublime-style-column-selection
vim-mode-clipboard-plus
vim-mode-plus

窓の杜

テキストエディター「Atom」v1.10.0、パッケージマネージャーやシェル統合を強化 - 窓の杜
ベンチマーク機能を搭載、オープンソースのテキストエディター「Atom」v1.13.0 - 窓の杜
64bit版インストーラーだけじゃない! 次期「Atom」にはWindows向けの改善が多数 - 窓の杜
“ドック”をサポートした「Atom」v1.17.0、次期バージョンでは「GitHub」を統合 - 窓の杜
「Git」と“GitHub”を統合した「Atom」v1.18が正式版に ~GitHub製の無償エディター - 窓の杜
GitHub、無償コードエディター「Atom」v1.19を正式公開 - 窓の杜
GitHub、「Atom」v1.21を正式リリース。“Language Server”プロトコルをサポート - 窓の杜
フリーのコードエディター「Atom 1.22」、パフォーマンスと使い勝手をさせる - 窓の杜
GitHub、「Atom 1.28」を正式公開 ~プロジェクト内検索の結果ビューを刷新 - 窓の杜
無償コードエディター「Atom 1.29」が正式公開 ~新しい構文解析の導入が最終段階に - 窓の杜
GitHub、フリーのコードエディター「Atom 1.44」をリリース - 窓の杜
GitHub、フリーのコードエディター「Atom 1.47」を公開 - 窓の杜

OSDN

GitHubがChromiumベースのテキストエディタ「ATOM」を発表 | OSDN Magazine
米GitHub、テキストエディタ「Atom」をオープンソース化 | OSDN Magazine
米Facebook、「Atom」エディタにリモート開発機能などを追加するパッケージ「Nuclide」を発表 | OSDN Magazine
米GitHub発のテキストエディタ「Atom 1.0」リリース | OSDN Magazine
操作性にフォーカスしたテキストエディタ「Atom 1.7」が公開 | OSDN Magazine
性能と安定性を強化した「Atom 1.11」がリリース | OSDN Magazine
「Atom 1.12」が公開 | OSDN Magazine
テキストエディタ「Atom 1.13」が公開、ベンチマーク機能を導入 | OSDN Magazine
「Atom 1.15」が公開、操作性を改善 | OSDN Magazine
オープンソースのテキストエディタ「Atom 1.16」リリース | OSDN Magazine
性能を強化した「Atom 1.19」リリース | OSDN Magazine

Qiita

ATOM Editor をそろそろ始めようか - Qiita
ATOM(windows版)と拡張子の関連付け - Qiita
Atomエディタで行末の空行を自動削除する設定を無効化する - Qiita
Atom Editorでインストールしているおすすめパッケージ一覧 - Qiita
【Atom Editor】マウス操作不要!キーボードだけで矩形選択をする方法 - Qiita
GitHub for Atom の機能とできること、できないこと - Qiita
Atomの設定・パッケージを複数端末で共有したいメモ - Qiita
ATOMエディタにインストールしているパッケージ 2017 - Qiita

Account
atom/atom: The hackable text editor
atom/atom-languageclient: Language Server Protocol support for Atom
Atom (テキストエディタ) - Wikipedia
Atom のススメ
Atom をちゃんと始める。 - Corredor
Atom(GitHub製エディタ)に乗り換えて最初にやっておきたいこと | maesblog
Atomの便利なパッケージ管理方法 – GitHubやスターを利用して他の開発環境でも使えるようにしておく | maesblog
職業別!ATOMエディタの作業が超捗る便利パッケージ24選 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
確実に参考になる!Atomひと通りの使い方(Windows・Mac編) | コムテブログ
Atom で Git を利用するのに便利なプラグイン | Lonely Mobiler
atomをつかってみる - ynishimura blog
ベターVimとしてAtomを使う - Kesin's diary
ATOM vim-mode-plusのESCで、autocomplete-plusのポップアップのみ閉じる方法 | mzgkworks.com
Atomでインデント設定に困ったらEditorConfigを使用する | webic
Atomのおすすめパッケージ61個 - はてな村定点観測所

メディア関連

GIGAZINE

無料&手軽にソースコードを可視化できる「Sourcetrail」、大規模開発やレガシーコードの理解に役立ちそう - GIGAZINE
無料の音声編集ソフト「Audacity」のバージョン3.0.0がリリース - GIGAZINE
画像の解像度を「2倍」にするPhotoshopの新機能「スーパー解像度」の使い方&仕組みはこんな感じ - GIGAZINE
サブスク途中解約でAdobeから2万円以上請求されたユーザーが支払いを回避した方法とは? - GIGAZINE
Amazon | CLIP STUDIO PAINT PRO 公式ガイドブックモデル改訂版 セットモデル | イラスト・ペイント | ソフトウェア
イラスト マンガ制作ソフト・アプリ CLIP STUDIO PAINT(クリップスタジオペイント)
画像・ムービー・PDFを1つの画面で連続表示できるオンライン配信向けメディアプレイヤー「Sanscadre」を使ってみた - GIGAZINE
無料&簡単に画像を使ったオシャレなHTMLメールを「テンプレートを選ぶだけ」で作成できる「Mail Studio」を使ってみた - GIGAZINE
イラストを線画に変換する「Anime2Sketch」が登場 - GIGAZINE
ライブ配信ソフト「OBS Studio」でNVIDIAのノイズ除去フィルタが利用可能に、実際に使ってみるとこんな感じ - GIGAZINE
無料の音声編集ソフト「Audacity」が「法執行に必要なデータを収集する」と発表、開発者は「データ収集なしのAudacityのフォーク」に着手 - GIGAZINE
無料でオープンソースのライブ配信ソフト「OBS」で画面を録画&ビデオ会議で画面を簡単にキャプチャーする方法 - GIGAZINE
1兆6000億円超でオンライン会議ツールのZoomが買収した「Five9」とは? - GIGAZINE

PC Watch

プロジェクトファイルが分割されなくなった「Audacity 3.0.0」 - PC Watch
Microsoft、AIがプレゼンのうまさを評価/指導してくれる機能 - PC Watch
Windows 10に既存ゲームを自動でHDR化する機能 - PC Watch
Windows版「mmhmm」のオープンベータ3公開。一括管理できる法人向けプランも登場 - PC Watch
【特集】デフォルト設定で使ってる人は注意。配信ソフト「OBS」で見落としがちな高画質化/フレーム落ち対策のポイント - PC Watch
OBS StudioにNVIDIA Broadcast相当のノイズ抑制や“元に戻す”機能が追加 - PC Watch
Zoom、Internet Explorer 11のサポートを9月末で終了 - PC Watch
Premiere Pro、自動文字起こし機能が正式公開。日本語含む13言語対応でテロップ配置支援も - PC Watch

Wget

wgetが超絶便利なwebクローラー、クローリングツールだとは知らなかった・・・! - ばうあーろぐ
Wget - GNU Project - Free Software Foundation

Wireshark

無料&オープンソースで大規模なネットワークを常時グラフィカルに監視できる「Moloch」 - GIGAZINE
Wireshark · Go Deep.
status:open | code.wireshark Code Review
wireshark/wireshark: Read-only mirror of Wireshark's Git repository. GitHub won't let us disable pull requests. ☞ THEY WILL BE IGNORED HERE ☜ Please upload them at https://code.wireshark.org/review/ .
CloudShark - The easiest way to analyze and share network capture files. | CloudShark
CaptureSetup/USB - The Wireshark Wiki
GolangでUDPサーバー&クライアントを作成してWiresharkで検証する - Yabu.log
Golangで書かれたWebサーバーでHTTP/1.1のkeep-aliveを検証する - Yabu.log
Golangで作成したWEBサーバーのTCP通信(HTTP GET)をWiresharkで検証 - Yabu.log
Wiresharkでlocalhost(127.0.0.1)宛のパケット送受信をキャプチャする方法 - Yabu.log
USBPcap
WiresharkのUSBPcapのログの見方 - Qiita
WiresharkでUSBメモリのパケットキャプチャしてみた! | LoT ラブオンテック
msaitohさんはTwitterを使っています 「てゆーか、新しいのゲットしたら MII ID1, ID2 を繋げてbitreverse したものを IEEE OUI.txt から検索するよね。最近は Wireshark OUI Lookup Tool もあるけど https://t.co/ZIMUOyt0YK」 / Twitter
Wireshark · OUI Lookup Tool

PGP

gpg (GNU Privacy Guard)の使い方 - Qiita
GnuPG チートシート(簡易版) - Qiita
SKS OpenPGP Public Key Server
ytakanoさんはTwitterを使っています 「GPGで署名したコードがGitHub上でunverifiedになって悩んでいたら、副鍵を相互署名していないからだった。GPG難しい。」 / Twitter

Web Compatibility | webcompat.com
SlideShareで公開されているスライドをpdfでダウンロードするコマンド - A painter and a black cat
Ubuntu18.04にImageMagickをインストールするには | Ninton
新しい RealPlayer(RealTimes)無料 Windows
Miro Video Converter FREE - Convert any video to MP4, WebM (vp8), iPhone, Android, iPod, iPad, and more.
XMedia Recode - Download
17 Free Audio Converter Software Pieces [2019] Check now >
TuneBrowser – TuneBrowser は Windows 用の音楽管理・再生ソフトです.
Amazon.co.jp: Kindle for PC (Windows) [ダウンロード]: ソフトウェア
calibre - E-book management
Releases · apprenticeharper/DeDRM_tools
ダウンロード | らくちんプリント2.0
Rufus - 起動可能なUSBドライブを簡単に作成できます
第662回 Docker+Selenium ServerでWebブラウザ自動操作環境を作る:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
gnuplot - Google 検索
matpyplot - Google 検索
matplotlib - Google 検索
第664回 スマートフォンをWebカメラとして使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
厳密なCDリッピングが行える「AccurateRip」に対応した「fre:ac」v1.1.5が公開 - 窓の杜

ハードウェア関連

FreeDOS

FreeDOS | The FreeDOS Project
FreeDOS/Vページ
RawWrite for Windows: FDをイメージ化したりイメージをFDに戻すツール - ぼくんちのTV 別館
chrysocome.net - RawWrite for Windows
OpenGEM - Opendawn
shanecoughlan/OpenGEM: OpenGEM is a non-multitasking 16-bit graphical user interface (GUI) for DOS. It is an extended distribution of FreeGEM that includes features of the original Digital Research GEM. Learn more here: http://www.opendawn.com/opengem/
ibiblio FreeDOS Package -- OpenGEM desktop (Utilities)
FreeDOS 1.2 がリリースされたので FreeDOS/V 化してみた: Aiming Off のブログ
FreeDOS 1.2正式版がリリース - 新しいインストーラーやコマンドが追加
DosUSB - providing USB support for DOS
http://bretjohnson.us/forum • View topic - FreeDOS and USB Flash Drives
Karellen's Unix Blog: Basic networking with FreeDOS
Antique Software
FreeDOS 1.3 Release Candidate Available For Retaining MS-DOS Compatibility In 2019 - Phoronix
FreeDOSの仮想マシンを構築してTCP/IPスタック・8086開発環境を整備する - Qiita
日記 (2014 年 3 月下旬)
DOSBox, an x86 emulator with DOS
File Cabinet - JamesOnline - Electrical Controls
open-watcom-v2/usage.sp at master · open-watcom/open-watcom-v2
DJGPP
MS-DOS Player for Win32-x64 謎WIPページ
microsoft/MS-DOS: The original sources of MS-DOS 1.25 and 2.0, for reference purposes
Graphics Environment Manager - Wikipedia
GEM (desktop environment) - Wikipedia
MS-DOSに続いてGW-Basicがオープンソースに
microsoft/GW-BASIC: The original source code of Microsoft GW-BASIC from 1983

FirmwareTablesView
Core Temp
Coreinfo
CPU-Z | Softwares | CPUID
PCI-Z detect unknown PCI devices
GPU-Z Video card GPU Information Utility
HWiNFO - Hardware Information, Analysis and Monitoring Tools
iPerf - The TCP, UDP and SCTP network bandwidth measurement tool
CrystalDiskInfo – Crystal Dew World
MemTest86 - Offical Site of the x86 Memory Testing Tool
無料&インストール不要で32GB以上でもFAT32フォーマット可能な「FAT32 Format」 - GIGAZINE
ASCII.jp:Windowsマシンの電源関係を制御する「Powercfg」コマンドを極める (1/2)|Windows Info
ASCII.jp:Windows 10で電力プラン情報を取得する
USB Device Tree Viewer
バッテリー残量や電圧が規定値以下のときメールを送ったり基準放電速度との比較ができたりするバッテリー監視ソフト「PassMark BatteryMon」レビュー - GIGAZINE
端末が機械学習アプリに適しているか測定する「Geekbench ML」 - GIGAZINE

Arm

Announcing ARM64EC: Building Native and Interoperable Apps for Windows 11 on ARM - Windows Developer Blog
ARM 上の Windows 11 アプリ用 ARM64EC - UWP applications | Microsoft Docs
Overview of ARM64 ABI conventions | Microsoft Docs
64-Bit Office for Windows on ARM
ARMネイティブの速度とx64相互運用を両立 ~Microsoft、「ARM64EC」を発表 - 窓の杜

Android

2021年7月第1週 Windows Subsystem for Androidが登場:Android Weekly Topics|gihyo.jp … 技術評論社
【山田祥平のRe:config.sys】なぜWindowsにAndroidアプリが必要なのか - PC Watch

Microsoft アカウントへのサインイン
プライバシー
サービスの状態
Microsoft 365 Service health status
Skype Status | Skype Support
Skype | 友達や家族への無料通話
Microsoft、wushowhide.diagcabを再公開。署名をSHA-2へと変更 | ニッチなPCゲーマーの環境構築Z
ViVi web site
オンラインスキャン for Home Network - トレンドマイクロ
Windows10 設定変更ツール
OSの検索機能を完全に置き換え ~「EverythingToolbar」に待望の機能が実験搭載 - 窓の杜
stnkl/EverythingToolbar: Everything integration for the Windows taskbar.
ASCII.jp:今秋にはWindows 10もアップデートするが今回も小規模? 21H2のプレビュー開始
「Windows Hello」の顔認証は赤外線画像で突破できると判明 - GIGAZINE
Windows 10の顔認証機能は赤外線写真の低解像度カラーコピーでだませることが判明 - GIGAZINE
簡単な操作で作業の内容や作業時間の記録が出来る「TimeTagger」を使ってみた - GIGAZINE
Bridge - Uniant

Windows 11

GIGAZINE

Windows 11の使い勝手と電力効率を向上させる「ダイナミックリフレッシュレート」とは? - GIGAZINE
「Windows 11」はIntelチップ搭載のMacを公式にはサポートせず - GIGAZINE
Windows 11でブルースクリーンは「ブラックスクリーン」に変わる - GIGAZINE
Microsoft StoreにまもなくFirefoxが登場予定、SteamやEpic GameStoreも利用可能に - GIGAZINE

インプレス

「Windows 11」は32bit CPUをサポートせず ~セキュアブート、TPM 2.0も必須に - 窓の杜
「Windows 11」へ更新できない原因の調査ツール「ReadySunValley」 ~親切なUIが魅力【レビュー】 - 窓の杜
Windows 11の要件チェックツール「WhyNotWin11」がダークモードと日本語UIに対応 - 窓の杜
Windows 11発表。年内提供予定でWindows 10からは無償アップグレード - PC Watch
Microsoft公式の互換性確認ツールでも非対応の理由が分かるように。現時点では英語のみ - PC Watch
【特集】Windows 11の新機能を早速試してみた!Windows 10との違いをまとめて紹介 - PC Watch
各マザーボードメーカーがWindows 11対応状況を報告 - PC Watch
GIGABYTE マザーボード製品 Windows 11 対応設定 | ニュース - GIGABYTE Japan
「Windows 11」へ更新できない原因を調査する「ReadySunValley」、UIを一新 - 窓の杜
【笠原一輝のユビキタス情報局】Armにとって劇的転換点となるWindows 11 - PC Watch
Microsoft、月額制クラウドPC「Windows 365」を8月提供開始。Windows 11にも対応 - PC Watch
Windows 11の右クリックメニュー・共有ダイアログはスッキリと使いやすく - 窓の杜
Windows 11統合の「Microsoft Teams」チャット機能がテスト開始 - 窓の杜
Windows 11の目玉機能の1つ「DirectStorage」は「Windows 10 バージョン1909」以降でも利用可能 - 窓の杜

ニッチなPCゲーマーの環境構築Z

悲報 Ivy Bridge以前のハードウェアはWindows11非対応。システム要件はかなり厳しめ | ニッチなPCゲーマーの環境構築Z
Windows11はTPM 1.2でもいける?どちらが正しい? | ニッチなPCゲーマーの環境構築Z
Windows11対応CPUリスト公開。Coffee Lake / Zen+以上が必須?SkylakeやKaby Lakeでは正常性チェックが通らず | ニッチなPCゲーマーの環境構築Z
Microsoft、Windows11はIntel第8世代以降が必要と発言。しかしBroadwell-Eはサポート?現場は混乱か | ニッチなPCゲーマーの環境構築Z
純正よりも高機能なWindows11互換性確認アプリ『WhyNotWin11』が登場! | ニッチなPCゲーマーの環境構築Z
Microsoft、早くもWindows11のスケジュールを変更。Windows10からのアップグレードは2022年以降 | ニッチなPCゲーマーの環境構築Z
WhyNotWin11の偽公式サイトが公開される | ニッチなPCゲーマーの環境構築Z
Windows11の発売日は2021年10月20日か。Microsoftが示唆 | ニッチなPCゲーマーの環境構築Z
Windows11でKaby LakeとZen 1をサポートする可能性。Microsoftが発表 | ニッチなPCゲーマーの環境構築Z
不出来を理由に『PC正常性チェック』を取り下げ。改善して秋の一般発売までに再公開予定 | ニッチなPCゲーマーの環境構築Z
Microsoft、Windows11のライフサイクルを発表。大型アップデートは年1回に | ニッチなPCゲーマーの環境構築Z
Windows11への無料アップグレード期限はいつまで?Microsoftが回答 | ニッチなPCゲーマーの環境構築Z
Windows11のタスクバー位置はレジストリから変更可能。ただし左右への移動はバグる | ニッチなPCゲーマーの環境構築Z
Windows11のスタートメニュー変更レジストリが無効化される | ニッチなPCゲーマーの環境構築Z

Windows 11 の仕様 - Microsoft
What's new in Windows 11 | Microsoft Docs
新しい Windows 11 OS へのアップグレード | Microsoft
Windows lifecycle and servicing update - Microsoft Tech Community
Planning for Windows 11: best practices for organizations - Microsoft Tech Community
Windows Processor Requirements Windows 11 Supported Intel Processors | Microsoft Docs
Windows Processor Requirements Windows 11 Supported AMD Processors | Microsoft Docs
Windows Processor Requirements Windows 11 Supported Qualcomm Processors | Microsoft Docs
Windows 10はなぜ最後じゃなかった?次世代の「Windows 11」がリリースされた理由 - CNET Japan
Windows 11では、デスクトップにダイナミックなリフレッシュレートが搭載されます。|自作.com
ASCII.jp:Windows 11は古いPCやWindowsと一旦線引きするのが1つの役目か (1/2)
ASCII.jp:Windows 11にアップグレード可能なCPUは基本はやっぱり第8世代/Zen+以降になりそう? (1/2)
システム要件を緩和したWindows 11 Insider Preview - 阿久津良和のWindows Weekly Report | マイナビニュース
北森瓦版 - 各社のマザーボードのWindows 11対応状況
Windows 11、Windows 7/8.1からはクリーンインストール必須? - iPhone Mania
Windows 11のisoを入手する方法(公式から) | FascodeNetwork Official Blog
ASCII.jp:中身は大きく変わらないようにも見えるWindows 11だが、では何が変わった?
なぜWindows 11のタスクバーはデスクトップ下部に固定? - 阿久津良和のWindows Weekly Report | マイナビニュース
[速報]マイクロソフト「Windows 365 Cloud PC」正式発表。Windowsをクラウドサービスとして月額定額料金で提供、デスクトップ仮想化をベースに - Publickey
Windows 11、ダークモードをデフォルト設定に - 記事詳細|Infoseekニュース
ASCII.jp:Windows 10や11のサポートやアップデートは今後どうなる? (1/2)
Windows 11のコンテキストメニューはシンプルに - 阿久津良和のWindows Weekly Report | マイナビニュース

Identify CPU features (beta)
Sony Japan | FeliCa | 個人のお客様 | ダウンロード
Sony Japan | FeliCa | 個人のお客様 | ダウンロード | SFCard Viewer 2
HL-L2360DN | 日本 | ブラザーサポート
日本 | ブラザーサポート | ブラザー製品調査・サポートプログラムのダウンロードとインストール
IME Cursor
IME Cursor Forum - Google グループ
Home | LibreOffice - Free Office Suite - Fun Project - Fantastic People
ダウンロード:WindowsとmacOSへDeepLを組み込む
Download Ubuntu Desktop | Download | Ubuntu
iCloud を入手 - Microsoft Store ja-JP
iTunes を入手 - Microsoft Store ja-JP

GitHub

tenpoku1000 (市川 真一)
GitHub · Where software is built
Trending C repositories on GitHub today
Trending C repositories on GitHub this month
Ando's Microprocessor Information
最新のJIS情報 (METI/経済産業省)
takuya-aさんはTwitterを使っています 「検索技術に関する情報交換を目的とした Slack を立ち上げました!こちらの招待リンクからご参加ください。 https://t.co/Tca70vuMff」 / Twitter
プログラミング言語処理系が好きな人の集まり
prog-lang-sys-ja
Computers-and-Mathematics
いい感じにリンク化するPopup Menu - daiiz
smalltalk-users.jp
osdev-jp
ゼロからの OS 自作入門 | ゼロからのOS自作入門
uchan-nos/os-from-zero: 『ゼロからのOS自作入門』(内田公太著、マイナビ出版)のサポートサイトです
uchan; MikanOSにUSB CDCドライバを追加してシリアル通信 · uchan-nos/os-from-zero Wiki
uchanの電子工作ラボ
J
0から作るソフトウェア開発

その他

不適切な名称

Easily rename your Git default branch from master to main - Scott Hanselman
VMwareがコネクターの「オス/メス」表記を非推奨にするとの報道 | スラド ハードウェア
ゆうくさんはTwitterを使っています 「git 2.28 がリリースされて init.defaultBranch が追加されたらしい。git init で最初に作られるブランチ名を master から変えられるやつ。 https://t.co/fcG82vjppd」 / Twitter
Highlights from Git 2.28 - The GitHub Blog
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「もう英語を避けようぜ。 git push origin master のかわりに クソ野郎 突き倒す お前 俺 にしよう。」 / Twitter
ギズモード・ジャパンさんはTwitterを使っています 「Github、人種差別を連想させるコーディング用語の見直しへ https://t.co/1EaS8H8esF」 / Twitter
Github、人種差別を連想させるコーディング用語の見直しへ | ギズモード・ジャパン
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「クソ野郎 侮辱 クソ野郎 状態 頭 もがれたぞ」 / Twitter
Twitter、コードやドキュメント内の用語「Whitelist/Blacklist」「Master/Slave」「Dummy value」などを好ましい用語へ置き換え、具体例も発表 - Publickey
Linuxカーネルでの「master/slave」と「blacklist」禁止、トーバルズ氏が承認 - ITmedia NEWS
Ichinose ShogoさんはTwitterを使っています 「すごい提案がやってきた 「"pull" はいじめに関連しており、気分を害する人がいるので、"pull request" を "get request" に変更しましょう」 https://t.co/VmLWY6PuM6」 / Twitter
Renaming "Pull requests" into "Get requests" by fengertao · Pull Request #15 · github/renaming
sksatさんはTwitterを使っています 「GitHubポリコレ部についていつも思うのは、「いやGitはいいんかい」ということですね」 / Twitter
sksatさんはTwitterを使っています 「ポリコレ部のみなさん、Linux Kernelの不適切なコメント除去活動などに参加されるとよいのでは。知らんけど。」 / Twitter
GitHub、これから作成するリポジトリのデフォルトブランチ名が「main」に。「master」から「main」へ変更 - Publickey
新しいGitHubリポジトリではmainブランチがデフォルトに

GIGAZINE

GitHubのソースコードがGitHub上にリークされる、公開した人物は「GitHubのCEO」を偽装 - GIGAZINE
オープンソースプロジェクトのセキュリティを1発で自動評価してくれる「Security Scorecards」が登場 - GIGAZINE
GitHubがGit操作時のパスワード認証を廃止、今後はトークンによる認証が必須に - GIGAZINE
GitとGitHubの機能をひとつのバイナリに詰め込んだ「Fossil」レビュー - GIGAZINE
GitHubのサービスを駆使してウェブサイトの死活監視が無料で行える「Upptime」 - GIGAZINE
Googleが提案するオープンソースプロジェクトのセキュリティを高めるための「Know, Prevent, Fix」とは? - GIGAZINE
SSH接続でGitHubにアクセスする際にセキュリティキーによる認証が利用可能に - GIGAZINE
Gitの操作を間違ってしまった時に簡単に元に戻せる「git undo」を使う方法 - GIGAZINE
プログラマーの書いたソースコードの続きを自動で記述する「GitHub Copilot」はエンジニアを駆逐してしまうのか? - GIGAZINE
GitHubのソースコードで学習したプログラミングAI「Copilot」は著作権侵害なのか? - GIGAZINE

窓の杜

GitHub、中核機能をすべて無償化 ~チーム開発も無料で始められるように - 窓の杜
Microsoft、「Visual Studio Codespaces」を「GitHub Codespaces」に統合 - 窓の杜
GitHub、“Open Source Guides”の日本語訳を公開 ~OSSコミュニティのベストプラクティスを集約 - 窓の杜
「GitHub」がMP4/MOVビデオのアップロードに対応 ~不具合や要望の投稿に - 窓の杜
「GitHub Copilot」がプレビュー公開 ~関数名やコメントをみたAIが勝手にコーディング - 窓の杜

Publickey

「GitHub Container Registry」パブリックベータとしてサービス開始。無料でコンテナのパブリックイメージ公開可能 - Publickey
CNCF、Kubernetes用ソフトウェアパッケージなどの公開リポジトリ「CNCF Hub」を公開 - Publickey
CircleCIがAWSやGoogle Cloud、Kubernetesなどへ自動デプロイするための共有パッケージ「Orb」を公開。クラウドへの自動デプロイが容易に - Publickey
GitHub、コードの脆弱性などを発見してくれる「GitHub Code Scanning」正式版が提供開始。パブリックリポジトリには無料 - Publickey
GitHub、電子掲示板でコミュニティ機能を実現する「GitHub Discussions」パブリックベータを開始。GitHub Universe 2020 - Publickey
GitHub、自動でマージが実行される「Pull request auto-merge」機能を発表。GitHub Universe 2020 - Publickey
Google、オープンソースソフトウェアの脆弱性をバージョンごとにデータベース化する「OSV」(Open Source Vulnerabilities)プロジェクトを開始 - Publickey
GitHubが動画のアップロード機能に正式対応。バグの再現手順や機能のデモなどの説明が動画で容易に - Publickey
AIとのペアプロへまた一歩前進、「GitHub Copilot」登場。AIがコメントからコード生成、書きかけのコードを補完、コードを見てテストコード自動生成など - Publickey

blog

VSCodeのGitHubリポジトリに対する不正なPushアクセス - RyotaK's Blog
Semantic Versioningの闇 - knqyf263's blog
セマンティック バージョニング 2.0.0 | Semantic Versioning
日記 (2020 年 5 月)
日記 (2020 年 6 月)
日記 (2020 年 7 月)
git で並列 fetch するオプション - HsbtDiary(2021-02-03)
Gitのワークフローについての私のスタンス | おそらくはそれさえも平凡な日々
同じソースツリーでテストが通っていたらテストをスキップする | おそらくはそれさえも平凡な日々
大きなGitリポジトリをクローンするときの工夫を図解します - DeNA Testing Blog

infoQ

GitHubとnpmをより活用するためのJavaScriptコーダ向けガイド - GitHub Satellite 2020より
GitHubコードスキャンはベータ版終了
GitHubは、CodespacesとDiscussions、およびその他のセキュリティ機能を導入
Visual Studio CodespacesはGithub Codespacesに
Githubが不必要なCookieをすべて削除
GitHubが依存性グラフとセキュリティ警告を導入
GitHubの依存関係グラフ~ 開発ワークフロー全体をセキュアに - GitHubブログ
Git Cloneの脆弱性の分析
Git 2.31がリリース、メンテナンスがバックグラウンドで実行可能に
GitHubはトークンフォーマットを変更して、識別性、シークレットスキャン、エントロピーを改善

Zenn

個人からチームまで、Notion での情報・タスク管理一元化完全解説
ブラウザだけでOS自作入門しよう
Docker ではじめる "ゼロからのOS自作入門"
Check! GitHub の監査ログを知る

Qiita

Ubuntu Desktop で OVMF と QEMU をソースコードからビルドする - Qiita
Visual Studio で日中韓台文字表示 UEFI アプリ作成のメモ - Qiita
GitHubのClone数をAPIで取得する - Qiita
GitHub「Personal access tokens」の設定方法 - Qiita

Twitter

ARCHITECTURE​.md

ドッグさんはTwitterを使っています 「ARCHITECTURE​.md ファイルのすすめ.コア開発者とコントリビュータの間の知識差を埋めるために,プロジェクトの構造を把握して「◯◯の処理をやっているのはどこか」が大体分かる小さいドキュメントを置く | 'ARCHITECTURE​.md' https://t.co/3QL0196l8E」 / Twitter
ARCHITECTURE.md
ドッグさんはTwitterを使っています 「https://t.co/EP0qzByMt3 rust-analyzer の architecture​.md がよく書けてるらしい.そういえば少し前に話題になっていたような」 / Twitter
rust-analyzer/architecture.md at d7c99931d05e3723d878bea5dc26766791fa4e69 · rust-analyzer/rust-analyzer
ブックマーク
プログラムの「アーキテクチャに関するドキュメント」は面倒でも書くべき、ではどのように書くべきか? - GIGAZINE
ARCHITECTURE.mdというものを書いてみた - maru source

Code of Conduct

Tomoya Matsuura 松浦知也さんはTwitterを使っています 「@uint256_t Berlin Code of Conduct https://t.co/B814f6XJom とContributor Covenant https://t.co/xuKT4crnu0 辺りが日本語もあるし参考にしやすいと思います。とはいえ、CoCってライセンスと違ってどういうコミュニティを目指すかの表明みたいなもんなんで、参考にしつつオリジナル作った方がよいかなとも」 / Twitter
ベルリン行動規範
Contributor Covenant:

key already in use

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「githubで key already in use になった場合、「どこで使われてる?」というのが判らないと詰む。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ssh -T -ai ~/.ssh/id_xxx git@github.com と実行して "username/repo" と出る場合はそのdeployキー登録されてる、というFAQあった。 https://t.co/UA4LJC2RJl」 / Twitter
Error: Key already in use - GitHub Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「もう少し詳細な議論 https://t.co/Gb2q4n4F93」 / Twitter
git - GitHub Error: Key already in use - Stack Overflow

κeenさんはTwitterを使っています 「パッチベースの分散バージョン管理システムのPijulが1.0に向けた展望を示してる(まだ読んでない) Towards 1.0 https://t.co/SkAsUabx6Z」 / Twitter
Pijul
👻 道化師 🃏さんはTwitterを使っています 「GitHub Desktop のイヤなバグを見つけてしまったなぁ。 GitHub 上で作りたてのリポジトリを GitHub Desktop でクローンすると、他の環境でコミット&プッシュした内容をプルできなくなる。」 / Twitter
👻 道化師 🃏さんはTwitterを使っています 「あ、ブランチを切り替えようとする操作で問題を回避できた!」 / Twitter
ドッグさんはTwitterを使っています 「https://t.co/dfdNpNQKQn ずっと欲しかった GitHub の通知を org と author でフィルタできる機能が入ってる.これで通知の流量の多いリポジトリを watch してても,自分のリポジトリ宛の通知を見落とさなくなるはず.早速 Filters に登録した https://t.co/Y2YJHLLUQw」 / Twitter
Organization and Author Filters for GitHub Notifications - GitHub Changelog
井山梃子歴史館さんはTwitterを使っています 「cherry-pickがidentityを保つの,達成されてほしい性質なんだよな」 / Twitter
FadisさんはTwitterを使っています 「ちなみにGitHubはAPIの/metaに機能ごとに使用する可能性があるアドレスの範囲が書かれているので、hooksに列挙されている範囲のアドレスをallowする設定を生成するスクリプトをcronで時々走らせておけば良い感じに「GitHubは通って良し」が出来る」 / Twitter
入谷 優さんはTwitterを使っています 「GitHub Codespaces が dotfiles リポジトリから自動的に設定ファイルを引っ張ってきていることに気付きました。配慮が行き届きすぎていて怖いぐらいです。 https://t.co/dlYQP1pCZP」 / Twitter
Personalizing Codespaces for your account - GitHub Docs

GitHub Copilot · Your AI pair programmer

検索

自作OS 資料 - Google 検索
自作OS gui - Google 検索
自作OS コンパイラ - Google 検索
自作OS UTF-32 - Google 検索
OS開発予定 - Google 検索
自作OS ドキュメント - Google 検索
自作OS レガシー規格 - Google 検索
自作OS 仮定義 - Google 検索
自作OS NMI - Google 検索
x64 uefi os自作 - Google 検索
freetype uefi - Google 検索
ovmf qemu ビルド - Google 検索
コンパイラ WebAssembly JIT 自作 - Google 検索
コンパイラ WebAssembly 自作 - Google 検索

Gist

2017

2 年以上かけて自作 OS 開発のための資料を集めた話

資料

ワナビとは (ワナビとは) [単語記事] - ニコニコ大百科
日本規格協会 JSA Group Webdesk
JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
JIS X 5603:1990 開放型システム間相互接続の抽象構文記法1(ASN.1)仕様 | 日本規格協会 JSA Group Webdesk
JIS X 0606:1998 情報交換用CD-ROMのボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
JIS X 0607:1996 非逐次記録を用いる追記形及び書換形の情報交換用媒体のボリューム及びファイルの構造 | 日本規格協会 JSA Group Webdesk
JIS X 0607:1996/CORRIGENDUM 1:2001 非逐次記録を用いる追記形及び書換形の情報交換用媒体のボリューム及びファイルの構造(追補1) | 日本規格協会 JSA Group Webdesk
JIS X 0610:2006 DVD-再生専用ディスクのボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
JIS X 0610:2006/AMENDMENT 1:2017 DVD-再生専用ディスクのボリューム構造及びファイル構造(追補1) | 日本規格協会 JSA Group Webdesk
JIS X 6235:2015 DVD-レコーダブルディスク(DVD-R)のボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
JIS X 0612:2015 ユニバーサルディスクフォーマット(UDF)1.50 | 日本規格協会 JSA Group Webdesk
JIS X 0611:2018 ユニバーサルディスクフォーマット(UDF)2.01 | 日本規格協会 JSA Group Webdesk
JIS X 0613:2015 ユニバーサルディスクフォーマット(UDF)2.50 | 日本規格協会 JSA Group Webdesk
JIS X 0614:2015 ユニバーサルディスクフォーマット(UDF)2.60 | 日本規格協会 JSA Group Webdesk
JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
JIS X 4197:2012 変倍ベクタグラフィックス | 日本規格協会 JSA Group Webdesk
JIS X 4156:2005 ハイパテキストマーク付け言語(HTML) | 日本規格協会 JSA Group Webdesk
JIS X 4168:2004 段階スタイルシート 水準1(CSS1) | 日本規格協会 JSA Group Webdesk
JIS X 3005-1:2014 データベース言語SQL 第1部:枠組(SQL/Framework) | 日本規格協会 JSA Group Webdesk
JIS X 3005-2:2015 データベース言語SQL 第2部:基本機能(SQL/Foundation) | 日本規格協会 JSA Group Webdesk
JIS X 8341-1:2010 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第1部:共通指針 | 日本規格協会 JSA Group Webdesk
JIS X 8341-6:2013 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第6部:対話ソフトウェア | 日本規格協会 JSA Group Webdesk
JIS X 8341-7:2011 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第7部:アクセシビリティ設定 | 日本規格協会 JSA Group Webdesk
CIPA 一般社団法人カメラ映像機器工業会: CIPA規格類

自作 OS で USB デバイスに対応するための調査メモ

自作 OS で USB デバイスに対応するための調査メモ

BSUSRC06 USBシリアル変換ケーブル : USBケーブル | バッファロー
USB-LAN100R|PLANEX
USB-LAN1000R|PLANEX
USB-LAN2500R
ETX3-US2 | LANアダプター | IODATA アイ・オー・データ機器
LAN-TXU2C - ロジテック株式会社
HL-L2360DN | レーザープリンター・複合機 | ブラザー
MFC-J960DN-B/W MFC-J960DWN-B/W | インクジェットプリンター・複合機 | ブラザー
BonjourPrinting
Raspberry Pi3を無線LANコンバータにする -blog SkyofFantasy-
Raspberry Piでイーサネットコンバータを作る
Raspberry Piで無線LAN
iPhone 6 Plus - 技術仕様
BluetoothテクノロジWebサイト
Launch Studio - Listing Search
PIC
HIDP ‐ 通信用語の基礎知識
A2DP ‐ 通信用語の基礎知識
PAN (Bluetooth) ‐ 通信用語の基礎知識
BNEP ‐ 通信用語の基礎知識
L2CAP ‐ 通信用語の基礎知識
HOGP ‐ 通信用語の基礎知識
IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Diego Giagio :: Personal Website - iPhoneEthernetDriver
iPhone/iPadを有線LAN(Ethernet)で接続しよう
if_ipheth(4)
[MS-WINPROTLP]: Archive Documents | Microsoft Docs
LTE対応USBドングル PIX-MT100 | 株式会社ピクセラ
PIX-MT100を接続するとWindowsの反応が悪くなる - ぷろじぇくと、みすじら。
URoad-Stick│超速モバイルネット WifiサービスはUQ WiMAX
stick_linux_info_v1.0.pdf
Huawei WiMAX 2+モデムをLinuxで使う

自作派の人のためのコンパイラ関連規格のメモ

自作派の人のためのコンパイラ関連規格のメモ

Unicode

[改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
Unicode標準入門(Tony Graham 関口正裕 乾和志 海老塚徹)|翔泳社の本
JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk

C

www.gnu-darwin.org/www001/ports-1.5a-CURRENT/devel/mcpp/work/mcpp-2.6.4/doc-jp/cpp-test.html
C++でCプリプロセッサを作ったり速くしたりしたお話
ISO/IEC 9899:201x - n1570.pdf
ISO/IEC 9899:2017 - c17_updated_proposed_fdis.pdf
Clarification Request Summary for C11

LSP

language server protocolについて (前編) - Qiita
Specification

アセンブリ/WebAssembly

Linux のアセンブラー: GAS と NASM を比較する
WebAssembly Specifications
WebAssembly High-Level Goals - WebAssembly

ABI

x64 software conventions | Microsoft Docs
System V Application Binary Interface - DRAFT
gabi41.pdf
mpx-linux64-abi.pdf

PE/ELF/UEFI

PE Format - Win32 apps | Microsoft Docs
The Linux EFI Boot Stub | Intel® Architecture Firmware Resource Center
Linux Foundation Referenced Specifications
Microsoft UEFI CA の署名ポリシーが更新されました | Microsoft Docs
mjg59 | Secure Boot bootloader for distributions available now
SecureBootとLinux
openSUSE:UEFI - openSUSE Wiki
HIRT-PUB14002:Authenticode 署名:Hitachi Incident Response Team:日立
RFC 2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
CUTT System:【改訂版】プロトコル構文規定言語ーASN.1
Internet X.509 PKI Certificate and Certificate Revocation List (CRL) Profile
RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
RFC 6818 - Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

テスト・log

第1回 Perlにおけるテストの概要/TAPとは?:Happy Testing Perl|gihyo.jp … 技術評論社
TAP
LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリー
Labeled Tab-separated Values (LTSV)

Debug

デバッグ情報の歩き方 - Qiita
DWARFファイルフォーマット - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
Download DWARF Standards
LLVM Project Blog: LLDB is Coming to Windows
本の虫: MicrosoftがPDBフォーマットの構造体定義のソースコードを公開
本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
The PDB File Format — LLVM 9 documentation
microsoft/microsoft-pdb: Information from Microsoft about the PDB format. We'll try to keep this up to date. Just trying to help the CLANG/LLVM community get onto Windows.
CodeView.pdf
x64 exception handling | Microsoft Docs

セキュリティ

MR201502_Intel_Memory_Protection_Extensions_JPN.pdf
Software Design 2015年5月号|技術評論社
SEH_Overwrite.pdf
EMETReport.pdf
/GS (Buffer Security Check) | Microsoft Docs
スライド 1 - bh-japan-08-Ishiyama.pdf
MR201412_Control_Flow_Guard_JPN.pdf

ECMAScript

ECMA-262 Edition 5.1を読む - 秀和システム あなたの学びをサポート
ECMAScript® 2018 Language Specification
asm.js: 仕様と実装の今 - Qiita
asm.js
Rockridgeさんのツイート: "Firefox、Edge、Chromeの各開発ツールが利用するリモートデバッグ用のプロトコルを統合する動きがあるという。 / “Implementing a Chrome DevTools Protocol server in …” https://t.co/BuXEkgpQRS"
ソースマップを使用する - 開発ツール | MDN
Safx: JavaScriptのSource Mapの内部表現について
Wayback Machine
HAR ファイルの生成と Web リクエストの分析 - アトラシアン製品ドキュメント
HTTP Archive (HAR) format
HAR 1.2 Spec | Software is hard
JavaScript ASTを始める最初の一歩 | Web Scratch
estree/estree: The ESTree Spec
tc39/proposal-binary-ast: Binary AST proposal for ECMAScript
Il y a du thé renversé au bord de la table !
binast/binjs-ref: Reference implementation for the JavaScript Binary AST format
[2015-02] 最近のJavaScript AST標準化の動き | Web Scratch
getify/concrete-syntax-tree: Defining a standard JavaScript CST (concrete syntax tree) to complement ASTs

Web IDL

ESウェブブラウザ通信 - ESウェブブラウザでのWeb IDLの利用 | Shiki’s weblog
Web IDL (第 2 版 — 日本語訳)
Web IDL

自作 OS の GUI 開発のためのメモ

GUI

書籍

朝倉書店| グラフィクスの仕組み
朝倉書店| GUIライブラリの仕組み ―ソフトウェア設計のケーススタディ―
マイナビ ブックス - 目次
フルスクラッチによるグラフィックスプログラミング入門 - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー:書籍案内|技術評論社
Androidを支える技術〈Ⅰ〉──60fpsを達成するモダンなGUIシステム:書籍案内|技術評論社

GUI ライブラリ

Immediate-Mode-UI/Nuklear: A single-header ANSI C immediate mode cross-platform GUI library
SL-RU/MakiseGUI: Graphics and GUI library for embed systems.
lc-soft/LCUI: A small C library for building user interfaces with C, XML and CSS.
xamarin/flex: Flex is a flexible box layout system written in C, designed to be easy to consume from other languages
lvgl/lvgl: Powerful and easy-to-use embedded GUI with many widgets, advanced visual effects (opacity, antialiasing, animations) and low memory requirements (16K RAM, 64K Flash).

Desktop Entry Specification

Desktop Entry Specification
本の虫: Desktop Entry Specification

EditorConfig

EditorConfig
EditorConfigで文字コード設定を共有して喧嘩しなくなる話。(Frontrend Advent Calendar 2014 – 14日目) | Ginpen.com

文字コード

Downloading ICU - ICU - International Components for Unicode
International Components for Unicode - Wikipedia
google/compact_enc_det: compact_enc_det - Compact Encoding Detection

フォント

Google、オープンソースフォント「Noto」がUnicode標準をフルサポートしたことを明らかに - 窓の杜
googlefonts/noto-fonts: Noto fonts, except for CJK and emoji
The FreeType Project

レイアウトエンジン

fribidi/fribidi - GNU FriBidi 0.19 series, an implementation of the Unicode Bidirectional Algorithm
fribidi/fribidi: GNU FriBidi
GNU FriBidi - Wikipedia
HarfBuzz – Y.A.M.A.P
HarfBuzz - Wikipedia
HarfBuzz - Wikipedia
Page not found · GitHub Pages

文書・PDF

JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
PDF.js
mozilla/pdf.js: PDF Reader in JavaScript
PDF.jsを設置する - Qiita
Google Chrome PDFエンジンがオープンソース化
pdfium Git repositories - Git at Google
Issues - pdfium
Full PDF SDK Developer Guides | Desktop, Mobile & Web
にっき♪: PDFium

画像

Independent JPEG Group
libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
libjpeg-turbo-2.0.5
CIPA 一般社団法人カメラ映像機器工業会: CIPA規格類
The libexif C EXIF library
libexif-0.6.22
libpng Home Page
libpng-1.6.37
GIFLIB download | SourceForge.net
giflib-5.2.1
memononen/nanosvg: Simple stupid SVG parser
SVG 1.1 仕様 (第2版) 日本語訳
JIS X 4197:2012 変倍ベクタグラフィックス | 日本規格協会 JSA Group Webdesk
memononen/nanovg: Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita
NanoVG を CPU で描画する - Qiita
NanoVG のソースコードを読んでみた - lriki’s blog
Favicon - Wikipedia
Favicon - Wikipedia
ICO (ファイルフォーマット) - Wikipedia
ICO (file format) - Wikipedia
https://twitter.com/rockridge07/status/868125619963314176
https://twitter.com/rockridge07/status/905787835357077504

音声

WAV - Wikipedia
WAV - Wikipedia
Resource Interchange File Format - Wikipedia
Resource Interchange File Format - Wikipedia
Wave File Specifications
WAVファイルフォーマットの読み込み – NecoTech
wav ファイルフォーマット
Waveフォーマット・PCM・サンプリング周波数・ビット数・チャンネル数とは、SoundEngine・RadioLineを例にわかりやすく解説 | 豆知識
Vorbis - Wikipedia
Vorbis - Wikipedia
Ogg - Wikipedia
Ogg - Wikipedia
Xiph.org: Downloads
git.xiph.org
libvorbis-1.3.7
git.xiph.org
libogg-1.3.4
The WebM Project | Developer Overview
Opus (音声圧縮) - Wikipedia
Opus (audio format) - Wikipedia
Development – Opus Codec
Opus-1.3.1
git.xiph.org
libogg-1.3.4
The WebM Project | Developer Overview
FLAC - Wikipedia
FLAC - Wikipedia
FLAC - download
xiph/flac: Free Lossless Audio Codec
FLAC-1.3.3
2017年5月9日 Fedora,まもなくMP3をフルサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社

動画

https://twitter.com/vyv03354/status/701022560759066624
https://twitter.com/vyv03354/status/702818242482405377
OpenH264
Theora - Wikipedia
Theora - Wikipedia
Theora.org :: downloads - Theora, video for everyone
git.xiph.org
libtheora-1.1.1
VP8 - Wikipedia
VP8 - Wikipedia
VP9 - Wikipedia
VP9 - Wikipedia
WebM - Wikipedia
WebM - Wikipedia
The WebM Project | Developer Overview
webmproject/libvpx: Mirror only. Please do not send pull requests.
libvpx-1.9.0
AV1 - Wikipedia
AV1 - Wikipedia
AV1 specification を読む 2018-03-26 .. 04-17 - Qiita
AOM-AV1-Video-Tech-meet-up.pdf
aomedia Git repositories - Git at Google
The WebM Project | Developer Overview

UTF-32 でも固定長で処理出来るわけではない

UTF-32

[改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
符号点 - Wikipedia
Unicode Terminology: English - Japanese
結合文字 - Wikipedia
異体字セレクタ - Wikipedia

表に出て来ない凄い人は、実在性の確認が困難である

2018

x64 の 64 ビットモードのエンコーディング概略

x64

IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol1_Online_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2A_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2B_i.pdf
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
Intel® 64 and IA-32 Architectures Software Developer Manuals

インテル関連ドキュメント・リンク集

インテル

書籍

Amazon.co.jp: 新装改訂版 Linuxのブートプロセスをみる (アスキー書籍) eBook: 白崎 博生: Kindleストア
自作エミュレータで学ぶx86アーキテクチャ | マイナビブックス
ゼロからのOS自作入門 | マイナビブックス
作って理解するOS x86系コンピュータを動かす理論と実装:書籍案内|技術評論社
30日でできる! OS自作入門 | マイナビブックス
コンピュータの構成と設計 第5版 上|日経BPブックナビ【公式サイト】
コンピュータの構成と設計 第5版 下|日経BPブックナビ【公式サイト】
ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ第5版(John L. Hennessy David A. Patterson 吉瀬 謙二 佐藤 寿倫 中條 拓伯 中條 拓伯 天野 英晴 天野 英晴 鈴木 貢)|翔泳社の本
プロセッサを支える技術 ― 果てしなくスピードを追求する世界:書籍案内|技術評論社
コンピュータアーキテクチャ技術入門 ――高速化の追求×消費電力の壁:書籍案内|技術評論社
[増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
PCI Express設計の基礎と応用
FPGAでゼロから作るPCI Express
USB 3.0 ホストドライバ自作入門 - Hello uchan world - BOOTH
USB 3.0設計のすべて
USB 3.2のすべて
USB Type-Cのすべて
販売終了
USBオーディオデバイスクラスの教科書 | コンピュータ・一般書,ハードウェア・自作,その他 | Ohmsha
O'Reilly Japan - Bluetooth Low Energyをはじめよう
Bluetooth LE入門 スマホにつながる低消費電力無線センサの開発をはじめよう - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
シリアルATAの基礎とFPGAへの実装
[絶版2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
CrystalDiskInfo Internals ~S.M.A.R.T.を極める~ | バラエティ,水晶雫 | OLIOSPEC
CUTT System:64ビットアセンブラ入門
CUTT System:AVX命令入門
低レベルプログラミング(Igor Zhirkov 吉川 邦夫 吉川 邦夫)|翔泳社の本
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ウォーレン, ジュニア, ヘンリー・S., Warren, Jr., Henry S., 徹, 滝沢, 貢, 鈴木, 英夫, 赤池, 毅, 葛, 順久, 藤波 |本 | 通販 | Amazon
Linkers & Loaders | コンピュータ・一般書,UNIX,UNIX | Ohmsha
リンカ・ローダ実践開発テクニック
【Code Reading Tシャツ付き】Write Great Code〈Vol.1〉 プレミアムブックス版 | マイナビブックス
【Code Reading Tシャツ付き】Write Great Code〈Vol.2〉 プレミアムブックス版 | マイナビブックス
リバースエンジニアリングバイブル ~コード再創造の美学~ - インプレスブックス
O'Reilly Japan - リバースエンジニアリング
O'Reilly Japan - Hacking:美しき策謀 第2版
O'Reilly Japan - Binary Hacks
たのしいバイナリの歩き方:書籍案内|技術評論社
デバッガによるx86プログラム解析入門【x64対応版】 - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました

SDM

https://twitter.com/InstLatX64
instlatx64
Intel® 64 and IA-32 Architectures Software Developer Manuals
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol1_Online_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2A_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2B_i.pdf
IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol3_i.pdf

データシート・エラッタ・拡張命令

Intel® Core™ Processors Technical Resources
Intel® Xeon® Processors Technical Resources
6th Generation Intel® Processor Family Specification Update - 332689-025_6th Generation Intel Processor Family Spec Update.pdf
Intel® Architecture Instruction Set Extensions Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf

llvm-mca・oneAPI

llvm-mca - LLVM Machine Code Analyzer — LLVM 12 documentation
Intel® Architecture Code Analyzer
Intel® Architecture Code Analyzer Download
Intel® oneAPI: A Unified X-Architecture Programming Model
インテル® oneAPI ツールキットで FPGA を開発してみる
インテル oneAPI ツールキット | 統一されたクロスアーキテクチャー・プログラミング・モデル | XLsoft
インテル® oneAPI ツールキット | iSUS
インテル® oneAPI 最新情報 | iSUS
インテル VTune プロファイラー | C++ C# Fortran Java Python プロファイラー

チップセット

Intel Chipset Products
Intel® 100 Series Chipset Family PCH Datasheet, Vol. 1
Intel® 100 Series and Intel® C230 Series Chipset Family Platform Controller Hub (PCH) Datasheet - Volume 2 of 2 - 100-series-chipset-datasheet-vol-2.pdf
Intel® 100 and C230 Series Chipset Family PCH Specification Update
Datasheet, Vol. 1: Intel® 200 and Z370 Series Chipset Families PCH - 200-series-chipset-pch-datasheet-vol-1.pdf
Datasheet, Vol. 2: Intel® 200 and Z370 Series Chipset Families PCH - 200-series-chipset-pch-datasheet-vol-2.pdf
Intel® 200 and Z370 Series Chipset Families Platform Controller Hub (PCH) Spec Update - 200-series-chipset-pch-spec-update.pdf
Intel® 300 Series and Intel® C240 Series Chipset Family Platform Controller Hub (PCH) - 300-series-chipset-pch-datasheet-vol-1.pdf
Intel® 300 and Intel® C240 Series Chipset Families Platform Controller Hub (PCH) Datasheet, Vol 2 - 300-series-chipset-pch-datasheet-vol-2.pdf
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 1
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 2
Introduction - 1.2 - ID:615146 | Intel® 400 Series Chipset On-Package Platform Controller Hub

GPU

Hardware Specification - PRMs | 01.org
Igalia/intel-osrc-gfx-prm: Intel Open Source Graphics Programmer Reference Manual (PRM)
Intel® Processor Graphics
インテル® プロセッサー・グラフィックス | iSUS

UEFI・ACPI・I/O 等

Specifications and Tools | Unified Extensible Firmware Interface Forum
Links to ACPI-related Documents | Unified Extensible Firmware Interface Forum
ACPICA Documentation | The ACPI Component Architecture Project
IA-PC HPET (High Precision Event Timers) Specification 1.0a - software-developers-hpet-spec-1-0a.pdf
eXtensible Host Controller Interface for Universal Serial Bus (xHCI) - extensible-host-controler-interface-usb-xhci.pdf
USB Type-C Connector System Software Interface Specification
Specifications – NVM Express
AHCI Specification
Specifications | Bluetooth® Technology Website

その他

技術資料 | iSUS
x64 アセンブリーの概要 | iSUS
x64 の 64 ビットモードのエンコーディング概略
投機的実行サイドチャネルハードウェア脆弱性

レガシー規格 SATA を振り返る

SATA

後半

忘却の彼方: SATA LPMって知ってますか?
忘却の彼方: SATA LPMの設定方法
忘却の彼方: Intel Driver V11.5以降のSATA LPMの設定
忘却の彼方: DEVSLP(Device Sleep)機能とは
【パワレポ連動企画】実測1GB/sec超! M.2 PCI Express x4接続のSSD「Samsung XP941」を試す ~システム起動は要注意 - PC Watch
Samsung HM020GI 1. Specification Summary
Support policy for 4K sector hard drives - Windows Server | Microsoft Docs
アドバンスド・フォーマット4Kセクター・ハードディスク・ドライブへの移行 | Seagate 日本
HDDの512E、4Kセクター、AFT、非AFT、4Kネイティブ(4Kn)の違い - ぼくんちのTV 別館
HDDのセクタサイズ~512セクタと4Kセクタ【パソコン購入術】
Toshiba MK6034GSX - hard drive - 60 GB - SATA-150 Series Specs & Prices - CNET
Toshiba MK3276GSX - hard drive - 320 GB - SATA-300 Series Specs & Prices - CNET
MQ04 シリーズ | 東芝デバイス&ストレージ株式会社 | 日本
Toshiba MG04ACA500A - hard drive - 5 TB - SATA 6Gb/s Specs - CNET
MG04ACA シリーズ | 東芝デバイス&ストレージ株式会社 | 日本
HDD が AV コマンド対応か調べたい: ひでのブログ
Seagate Mobile ST1000LM035 - hard drive - 1 TB - SATA 6Gb/s Specs & Prices - CNET
Seagate Laptop Thin SSHD ST500LM000 - hybrid hard drive - 500 GB - SATA 6Gb/s Specs - CNET
玄人志向 | SATA3-PCIE-E2:Marvell社製 88SE9128搭載 eSATA インターフェースカード(PCI-Express x1接続)
シンプルBOX2.5 USB3.0+eSATA SATA6G (CSS25EU3BK6G) ハードディスク(HDD)ケース - 株式会社センチュリー
TK-ESATA-05【eSATAケーブル(0.5m)】eSATA3.0Gb/s対応ケーブル。0.5m。 | サンワサプライ株式会社
Amazon.co.jp: オウルテック 5.25インチベイ内蔵専用HDDケース 2.5インチ&3.5インチHDD各1台簡単増設 SATA接続 Windows8.1対応 ガチャポンパッダイレクト ブラック OWL-IE5CB: パソコン・周辺機器
ASCII.jp:WDがSATA Express接続の3.5インチHDDをCOMPUTEXで展示中
4Tバイトの「Caviar Black」をベースにしたSATA Express対応ハイブリッドドライブ最新版をWDが公開 - ITmedia PC USER
ASCII.jp:mSATA SSDって、フツーのSSDとなにが違う? (1/3)
CFastって何?
コンパクトフラッシュ協会がCFexpress* 1.0仕様を発表 | Business Wire
最大転送速度2GB/sを実現する次世代カード規格「CFexpress 1.0」発表 ~将来的に8GB/sを目論む - PC Watch

Storage Reviews - CNET
Purchase SATA Specification | SATA-IO
シリアルATAの基礎とFPGAへの実装
[絶版2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
AHCI Specification
AHCI Memo · osdev-jp/osdev-jp.github.io Wiki
AHCI_code_example · osdev-jp/osdev-jp.github.io Wiki
Microsoft Word - dg_sataahciip_refdesign_jp.doc - dg_sataahciip_refdesign_jp.pdf
Microsoft Word - dg_sata_achi_ip_data_sheet_jp.doc - dg_sata_achi_ip_data_sheet_jp.pdf
Reconf 201506
CrystalDiskInfo Internals ~S.M.A.R.T.を極める~ | バラエティ,水晶雫 | OLIOSPEC
CrystalDiskInfo – 参考文献 – – Crystal Dew Blog
USB-HDD 対応はなぜ難しいのか? – Crystal Dew Blog
忘却の彼方: Linuxを使用したSecureEraseの手順
忘却の彼方: Crucial M500/M550/MX100とSecure Erase
一方、ふうえんさんちでは… Secure Eraseを回復不可能セクタに試す
ALL about Linux: SecureErase を実施してみた
ALL about Linux: SecureErase のために frozen 状態を解除する方法
ALL about Linux: 中古 SSD の SecureErase
ASCII.jp:SSDサポートにさらなる一歩を踏み出したWindows 7 (1/2)
ASCII.jp:Windows 7の実像 Part 5 OSのSSD対応とエンハンスドストレージ (1/2)
【元麻布春男の週刊PCホットライン】SSDに関するWindows 7の3つの特徴 - PC Watch
HDDのATA8-ACS規格について色々調べてみる - ぼくんちのTV 別館
AT Attachment 8 - ATA/ATAPI Command Set - D1699r4a-ATA8-ACS.pdf
AT Attachment 8 - ATA/ATAPI Command Set - d2015r2-ATAATAPI_Command_set_-_2_ACS-2.pdf
内蔵SSD | 2.5" SSD | SATA-III 6Gb/s SSD220S - トランセンド|メモリ製品のスペシャリスト
AT Attachment 8 - ATA/ATAPI Command Set - d2161r5-ATAATAPI_Command_Set_-_3.pdf
CSSD-S6i256HG7V:CFD Intel®製3DNAND採用SSD 256GB | CFD販売株式会社 CFD Sales INC.
di529r14-ATAATAPI_Command_Set_-_4.pdf
Samsung 860 EVO MZ-76E250B - solid state drive - 250 GB - SATA 6Gb/s Specs & Prices - CNET
INCITS: INCITS 558-202x - Information technology - ATA Command Set - 5 (ACS-5)

C のグローバル変数の仮定義とは

C

JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
45977 – "warning: 'i' initialized and declared 'extern'" could use a separate warning flag controlling it
仮定義
C言語のグローバル変数とexternについて - Gobble up pudding

NMI に割り込まれたい

NMI

bochs.sourceforge.net/techspec/PORTS.LST
Intel® 300 and Intel® C240 Series Chipset Families Platform Controller Hub (PCH) Datasheet, Vol 2 - 300-series-chipset-pch-datasheet-vol-2.pdf
Low Pin Count - Wikipedia
Wayback Machine
[絶版2016.10.4] 改訂新版 PCIバス&PCI-Xバスの徹底研究
PCI Express設計の基礎と応用
FPGAでゼロから作るPCI Express
カーネル ダンプまたは完全なクラッシュ ダンプを生成する - Windows Client Management | Microsoft Docs
ASRock Rack > E3C236D2I
Amazon | KONDOLEN ブレッドボード?ジャンパーワイヤ(メス-オス)(20cm)40本 1 個 | KONDOLEN | PCパーツ 通販
Amazon | アイネックス 実験用スイッチ・LEDセット KM-01 | AINEX | インターフェースカード 通販

32 ビット整数式の x64 JIT コンパイラを試作する

2019

x64 の電力管理についてのメモ

2020

Intel

ALL

Affected Processors: Transient Execution Attacks & Related Security Issues by CPU
Guidance for System Administrators to Mitigate Transient Execution Side Channel Issues
Loading Microcode from the OS
Security Best Practices for Side Channel Resistance
Guidelines for Mitigating Timing Side Channels Against Cryptographic Implementations
How to Assess the Risk of Your Application
CPUID Enumeration and Architectural MSRs
Indirect Branch Restricted Speculation
Single Thread Indirect Branch Predictors
Indirect Branch Predictor Barrier
Spectre mitigations in MSVC | C++ Team Blog
Analyzing Potential Bounds Check Bypass Vulnerabilities
Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community
Retpoline: A Branch Target Injection Mitigation
KVA Shadow: Mitigating Meltdown on Windows – Microsoft Security Response Center
Kernel page-table isolation - Wikipedia
Meltdown (security vulnerability) - Wikipedia
Rogue System Register Read
Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Microsoft Security Response Center
Speculative Store Bypass
L1 Terminal Fault | 01.org API
Foreshadow - Wikipedia
Microarchitectural Data Sampling
Microarchitectural Data Sampling - Wikipedia
Intel® Transactional Synchronization Extensions (Intel® TSX) Asynchronous Abort
Speculative Behavior of SWAPGS and Segment Registers
CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
More Information on Spoiler
Spoiler (security vulnerability) - Wikipedia
INTEL-SA-00145
Lazy FPU Save/Restore (CVE-2018-3665) - Red Hat Customer Portal
NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
まさみさん⋈語りたいさんはTwitterを使っています 「Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d」 / Twitter
Cyberus Technology - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
uchanさんはTwitterを使っています 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
とみながたけひろさんはTwitterを使っています 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
Processors Affected: L1D Eviction Sampling
L1D Eviction Sampling
CacheOut
Processors Affected: Vector Register Sampling
Vector Register Sampling
LVI: Hijacking Transient Execution with Load Value Injection
An Optimized Mitigation Approach for Load Value Injection
Load Value Injection
Processors Affected: Load Value Injection
Snoop-assisted L1 Data Sampling
Snoop-assisted L1 Data Sampling
Processors Affected: Snoop-assisted L1 Data Sampling
Special Register Buffer Data Sampling
SRBDS Mitigation Impact on Intel® Secure Key
Processors Affected: Special Register Buffer Data Sampling
PLATYPUS: With Great Power comes Great Leakage
Running Average Power Limit Energy Reporting
INTEL-SA-00389

Affected Processors: Transient Execution Attacks & Related Security Issues by CPU
Guidance for System Administrators to Mitigate Transient Execution Side Channel Issues

Secure Coding

Loading Microcode from the OS
Security Best Practices for Side Channel Resistance
Guidelines for Mitigating Timing Side Channels Against Cryptographic Implementations
How to Assess the Risk of Your Application

CPUID/MSR

CPUID Enumeration and Architectural MSRs
Indirect Branch Restricted Speculation
Single Thread Indirect Branch Predictors
Indirect Branch Predictor Barrier

(1) CVE-2017-5753 Variant 1 Bounds Check Bypass

Analyzing Potential Bounds Check Bypass Vulnerabilities
Spectre mitigations in MSVC | C++ Team Blog

(2) CVE-2017-5715 Variant 2 Branch Target Injection

Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community
Retpoline: A Branch Target Injection Mitigation

(3) CVE-2017-5754 Variant 3 Meltdown:Rogue Data Cache Load

Meltdown (security vulnerability) - Wikipedia
Kernel page-table isolation - Wikipedia
KVA Shadow: Mitigating Meltdown on Windows – Microsoft Security Response Center

(3a) CVE-2018-3640 Variant 3a Rogue System Register Read

Rogue System Register Read

(4) CVE-2018-3639 Variant 4 Speculative Store Bypass

Speculative Store Bypass
Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Microsoft Security Response Center

(5) CVE-2018-3615/CVE-2018-3620/CVE-2018-3646 L1 Terminal Fault

Foreshadow - Wikipedia
L1 Terminal Fault | 01.org API

(6) CVE-2018-12126/CVE-2018-12127/CVE-2018-12130/CVE-2019-11091 Microarchitectural Data Sampling

Microarchitectural Data Sampling - Wikipedia
Microarchitectural Data Sampling

(7) CVE-2019-11135 Transactional Asynchronous Abort

Intel® Transactional Synchronization Extensions (Intel® TSX) Asynchronous Abort

(8) CVE-2019-1125 Spectre SWAPGS gadget vulnerability

Speculative Behavior of SWAPGS and Segment Registers

(9) CVE-2019-0162 Spoiler

Spoiler (security vulnerability) - Wikipedia
More Information on Spoiler
CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記

(10) CVE-2018-3665 Lazy FPU Save/Restore

INTEL-SA-00145
Lazy FPU Save/Restore (CVE-2018-3665) - Red Hat Customer Portal
NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
まさみさん⋈語りたいさんはTwitterを使っています 「Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d」 / Twitter
Cyberus Technology - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
uchanさんはTwitterを使っています 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
とみながたけひろさんはTwitterを使っています 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter

(11) CVE-2020-0549 L1D Eviction Sampling

CacheOut
L1D Eviction Sampling
Processors Affected: L1D Eviction Sampling

(12) CVE-2020-0548 Vector Register Sampling

Vector Register Sampling
Processors Affected: Vector Register Sampling

(13) CVE-2020-0551 Load Value Injection

LVI: Hijacking Transient Execution with Load Value Injection
An Optimized Mitigation Approach for Load Value Injection
Load Value Injection
Processors Affected: Load Value Injection

(14) CVE-2020-0550 Snoop-assisted L1 Data Sampling

Snoop-assisted L1 Data Sampling
Snoop-assisted L1 Data Sampling
Processors Affected: Snoop-assisted L1 Data Sampling

(15) CVE-2020-0543 Special Register Buffer Data Sampling(SRBDS)

Special Register Buffer Data Sampling
SRBDS Mitigation Impact on Intel® Secure Key
Processors Affected: Special Register Buffer Data Sampling

(16) CVE-2020-8694/CVE-2020-8695 With Great Power comes Great Leakage(PLATYPUS)

PLATYPUS: With Great Power comes Great Leakage
Running Average Power Limit Energy Reporting
INTEL-SA-00389

投機的実行サイドチャネルハードウェア脆弱性
独自拡張 WebAssembly を生成し、UEFI アプリを出力するバックエンドを試作する

2021

WSL・Windows Update・Visual Studio・Chocolatey の更新をコマンド 1 行で一括で実行

新線計画
コンパイラ・IDE・OS・VMM・IME の開発のためのメモ
WSL・Windows Update・Visual Studio・Chocolatey の更新をコマンド 1 行で一括で実行
OS 開発予定(基本機能)
やらないこと・低優先度のリスト
正規表現を学習した際の問題点を掲載
keybase.md
MIT PGP Key Server
C++ でグローバル定数を宣言する場合のイディオム。定数の唯一の定義をマクロ HEADER_H_ で指示することで実現する
EFI 内部変数の CustomMode に CUSTOM_SECURE_BOOT_MODE:1 を書き込み後に再起動し、値を取得すると常に STANDARD_SECURE_BOOT_MODE:0 が返る
Affected Processors: Transient Execution Attacks & Related Security Issues by CPU | 01.org API

リポジトリ

tenpoku-book

chapter-2

2.3

最近のruby-core (2017年3月) | Money Forward Engineers' Blog
引退するメインフレームプログラマたち - その対策は?

2.4・2.5・2.6

情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
岩波講座 ソフトウェア科学〈〔環境〕5〉プログラミング言語処理系 | 佐々 政孝 |本 | 通販 | Amazon
CiNii 図書 - 定本Cプログラマのためのアルゴリズムとデータ構造
手書きLLパーサにおける左結合性を持つ演算子の左再帰をループで解決する - ふるつき
Kazuho's Weblog: C言語で可変長引数をとる関数を、型安全に書く方法
最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年11月) | Money Forward Engineers' Blog

2.7

プログラミング言語処理
プログラミング言語処理
WebAssembly Specifications
Binary Format — WebAssembly 1.1 (Draft 2021-07-16)
Binary Encoding - WebAssembly
WebAssembly/wabt: The WebAssembly Binary Toolkit
WABT: The WebAssembly Binary Toolkitを使ってみる - Qiita
【WebAssembly初心者必読】バイナリコードを使って「 WebAssembly 」の基礎を徹底解説してみた! | 株式会社ヌーラボ(Nulab inc.)
WebAssembly(wat)を手書きする | Kabuku Developers Blog
Writing WebAssembly By Hand
WebAssembly逆アセンブルして調べるテスト
WebAssemblyをはじめよう | WEBASSEMBLY USUI BOOK
LEB128な数の表現 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
LEB128 ‐ 通信用語の基礎知識
平成26年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室:書籍案内|技術評論社

2.8

Intel

IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
Intel® 64 and IA-32 Architectures Software Developer Manuals | Intel® Software

書籍

情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
Advanced Windows : Microsoft Visual Studio 2008 (日経BPソフトプレス): 2008|書誌詳細|国立国会図書館サーチ
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ジュニア, ヘンリー・S. ウォーレン, Jr., Henry S. Warren, 滝沢 徹, 鈴木 貢, 赤池 英夫, 葛 毅, 藤波 順久 |本 | 通販 | Amazon
[絶版1999.4] 8086ファミリ・ハンドブック
80x86 80x87―ファミリー・テクニカルハンドブック | RobertL. Hummel, 槌田 浩一 |本 | 通販 | Amazon
x86アセンブラ入門 : PC/ATなどで使われている80x86のアセンブラを習得 (CQ出版): 2006|書誌詳細|国立国会図書館サーチ

x64 アセンブリーの概要 | iSUS
Node.js
x64 の 64 ビットモードのエンコーディング概略
x64 でのソフトウェア規約 | Microsoft Docs
x64 での呼び出し規則 | Microsoft Docs
x64 でのスタックの使用 | Microsoft Docs
x64 でのプロローグとエピローグ | Microsoft Docs
Gamasutra - In-depth: Windows x64 ABI: Stack frames
Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
Saving Space When Saving Space - emsea
データ構造アライメント - Wikipedia
linux - How do I disassemble raw 16-bit x86 machine code? - Stack Overflow
Writing WebAssembly By Hand

2.9

引退するメインフレームプログラマたち - その対策は?

chapter-4

4.1.1・4.1.2

Windows7でもFastBootが効くってホント? - 週刊アスキー
Interface (インターフェース) 2011年 11月号 [雑誌] | |本 | 通販 | Amazon
Play with UEFI
UEFI時代のブートローダ
UEFI Spec 2_6.book

4.1.3

Windows 10で素早くUEFIの設定画面を起動する:Tech TIPS - @IT
GUIDとは何?Weblio辞書

4.1.4

FreeType使用記録

4.1.5

Microsoft UEFI CA の署名ポリシーが更新されました – Windows ハードウェア認定ブログ
SecureBootとLinux
mjg59 | Secure Boot bootloader for distributions available now
openSUSE:UEFI - openSUSE Wiki
Playing with UEFI Secure Boot – Part 2: Basic Authenticode signing with MS Tools | Al's Website
ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
ACPI BGRT - 借り初めのひみつきち
Advanced Configuration and Power Interface Specification
Windows bitmap - Wikipedia
Inside Windowsファイルフォーマット (カットシステム): 1995|書誌詳細|国立国会図書館サーチ
グラフィックファイルフォーマット・ハンドブック | David C.Kay, John R.Levine, MbCD |本 | 通販 | Amazon

まえがき - x64 UEFI 対応 OS 自作入門 ~実機で動作する OS を作ってみよう~
Spaces - GitBook
tenpoku1000/tenpoku-book: 電子書籍: x64 UEFI 対応 OS 自作入門 https://www.gitbook.com/book/tenpoku1000/tenpoku-book/details
Zephyrがおもしろい~OSSのRTOS~ - Qiita
数式の再帰的下向き構文解析
FOLLOW()の計算を間違えにくくする工夫 – knsm.net
気まぐれな戯れ言の部屋 バックナンバー12
LL(1) Parser Generatorを作ろう(1) – 腐った牛乳
review-1.pdf

UEFI

tenpoku1000/UEFI_Start: DevicePath 文字列などの情報取得結果の表示・保存を行う UEFI アプリケーションです。
tenpoku1000/UEFI_SetupScreen: UEFI セットアップ画面への画面遷移を行う UEFI アプリケーションです。
tenpoku1000/UEFI_FreeType_MSVC: UEFI アプリケーションで、英日中韓台のアウトライン・フォント表示を行うサンプル・プログラムです。
tenpoku1000/UEFI_SecureBoot: UEFI セキュアブートのサンプル UEFI アプリケーションです。
tenpoku1000/UEFI_SecureBootMode: UEFI セキュアブートのモード表示を行う UEFI アプリケーションです。
tenpoku1000/UEFI_ACPI_Table_Disp: ACPI テーブルの取得結果の表示・ファイルへの保存を行う UEFI アプリケーションです。
tenpoku1000/UEFI_Ver_CPUID: UEFI version 等と CPUID 命令の取得結果の表示を行う UEFI アプリケーションです。
tenpoku1000/PE_COFF: 独自拡張 64ビット WebAssembly と、PE32+ DLL や UEFI アプリを出力する C コンパイラ試作版

外部プロジェクト

Unicode

Unicode License Agreement
Unicode Terms of Use
Unicode Character Database
UAX #44: Unicode Character Database
Unicode 12.1.0
Index of /Public/12.1.0

UEFI

TianoCore

UDK

UDK · tianocore/tianocore.github.io Wiki
UDK2014 · tianocore/tianocore.github.io Wiki
UDK2015 · tianocore/tianocore.github.io Wiki
UDK2017 · tianocore/tianocore.github.io Wiki
UDK2018 · tianocore/tianocore.github.io Wiki

What is TianoCore?
tianocore/edk2: EDK II
EDK II · tianocore/tianocore.github.io Wiki
BSD Plus Patent License · tianocore/tianocore.github.io Wiki
EDK II Specifications · tianocore/tianocore.github.io Wiki
Tasks · tianocore/tianocore.github.io Wiki
Windows systems · tianocore/tianocore.github.io Wiki
EDK II BaseTools User Guides · GitBook
Getting Started Writing Simple Application · tianocore/tianocore.github.io Wiki

OVMF_DEBUG

Hosts/Linux - QEMU
Re: [edk2] Filesystem issues since "OvmfPkg: enable SATA controller"
How to run OVMF · tianocore/tianocore.github.io Wiki
How to build OVMF · tianocore/tianocore.github.io Wiki
QEMU - ArchWiki
[edk2] source level debugging of OVMF with gdb
[edk2] using gdb on OVMF with symbols
SYS$OUTPUT: GDB scripting example: reloading symbols for UEFI target
SYS$OUTPUT: Using GDB to debug UEFI.
Windows を EFI ベースのコンピュータにインストールする

UEFI shim loader

mjg59 | Secure Boot bootloader for distributions available now
Index of /~mjg59/shim-signed
mjg59/shim: UEFI shim loader
rhboot/shim: UEFI shim loader

gnu-efi | SourceForge.net
Specifications and Tools | Unified Extensible Firmware Interface Forum

The FreeType Project
musl libc
adobe-fonts/source-han-sans
Doug Lea's Workstation
ReactOS Project
NASM
LibreSSL
MinGW - Minimalist GNU for Windows download | SourceForge.net
MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net

参考資料

WinDbg

MSDN_Driver

テンプレートを使ったユニバーサル Windows ドライバー (KMDF) の作成 (Windows Drivers)
コンピューターの手動ドライバー展開の準備 (Windows Drivers)
Setting Up Kernel-Mode Debugging over a Serial Cable Manually - Windows 10 hardware dev
Kernel-Mode Debugging in Visual Studio - Windows 10 hardware dev
DevCon Install (Windows Drivers)
DevCon Remove (Windows Drivers)
アプリケーションからSCSIコマンドを発行する方法 - Japan WDK Support Blog - Site Home - MSDN Blogs
KMDF のディスパッチルーチンについて - Japan WDK Support Blog - Site Home - MSDN Blogs
KMDF Toaster で I/O Control を受け取る - Japan WDK Support Blog - Site Home - MSDN Blogs
フレームワークを使用したドライバーの開発 (Windows Driver Kit)
フレームワークベースのドライバーにおけるデバイスへのアクセスの制御 (Windows Driver Kit)
制御デバイス オブジェクトの使用 (Windows Driver Kit)
デバイス インターフェイスの使用 (Windows Driver Kit)
Defining I/O Control Codes (Windows Drivers)
SDDL for Device Objects (Windows Drivers)
デバイス オブジェクトのセキュリティ - Japan WDK Support Blog - Site Home - MSDN Blogs
デバイス オブジェクトのセキュリティ その2 - Japan WDK Support Blog - Site Home - MSDN Blogs
I/O コントロール発行に使うハンドルに必要なアクセス権限 - Japan WDK Support Blog - Site Home - MSDN Blogs
Device Object と Device Stack - Japan WDK Support Blog - Site Home - MSDN Blogs
KMDF デバイス ドライバーの更新 - Windows 10 hardware dev
KdPrint function - Windows 10 hardware dev

UserMode

Communications Resources (Windows)
Named Pipes (Windows)
ハンドラ関数
Amazon.co.jp: Windows95通信プログラミング (Microsoft programming series): Charles A.Mirho, Andre Terrisse, 梅原 系: 本

構造体

windbg で EPROCESS 構造体と遊ぶ:Book of Days
kernel-mode memusage - NyaRuRuが地球にいたころ
ダンプ解析 (Windows) - 08th SE's Wiki
WinDbg - マイクロソフト系技術情報 Wiki

Debugger Commands - Windows 10 hardware dev
Kernel and remote debuggers - tutorial - developer Fusion
KD Extension DLLs & KDCOM Protocol
j00ru//vx tech blog : Attacking the Host via Remote Kernel Debugger (Virtual Machines)
https://www.blackhat.com/presentations/bh-usa-07/Stewart/Presentation/bh-usa-07-stewart.pdf
ChangeLog-0.3.11 - ReactOS Wiki
アプリケーションからのデバイスドライバの呼び出し、制御方法について
管理者権限でしかアクセスできません | WDDDC
IoCreateDeviceSecure problem | Windows Vista Tips
0と1の欠片 : [Visual Studio]ドライバをビルドすると、"22.9.7: DriverVer set to a date in the future (postdated DriverVer not allowed) in \xxxx.inf."というエラーになる

TOML

toml/toml-v0.4.0.md at master · toml-lang/toml
TOML仕様和訳 - Qiita
TOMLは人に優しい設定ファイル言語 - Qiita
Cool Python Tips: TOMLを使ってみよう
TOMLの日時形式
Masaki Haraさんのツイート: "素朴なiniは原始的すぎて人間用ではなく、JSONは単純すぎて人間用ではなく、XMLは冗長すぎて人間用ではなく、YAMLは複雑すぎて人間用ではないので、そう考えるとTOMLは人間用の汎用設定記述言語としてかなりいい線いってると思う"
最強のC++実装TOMLパーサーが完成した - in neuro
toml11を60倍高速化した話 - in neuro
toml11をバージョンアップした - in neuro
toml11 v3ができてきた - in neuro
TOMLで浮動小数点数の指数部分でleading zeroが許可される - in neuro
toml11をマイナーアップデートした - in neuro
TOMLで型の異なる要素を持つ配列が許可された - in neuro

Play with UEFI
技術者見習いの独り言: SecureBootとLinux
openSUSE:UEFI - openSUSE
Playing with UEFI Secure Boot – Part 2: Basic Authenticode signing with MS Tools | Al's Website
UEFI - PhoenixWiki
www.uefi.org/sites/default/files/resources/UEFI 2_5.pdf
ぽこつん研究所 » メモリ管理について考える#09 dlmallocの設定項目
FreeType使用記録
www.uefi.org/sites/default/files/resources/EDK_II_SW_debugger_v0.1_lj-Plugfest.pdf
https://firmware.intel.com/sites/default/files/UDK_Debugger_Tool_User_Manual_V1.11.pdf
www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf

ライセンス

その他

GPLやMITやCCなど主要ライセンスの内容と意味のまとめ | ITキヲスク
Google v. Oracle API著作権裁判
ライセンスについての紹介 | VINTAGE Blog
いまアメリカのソフトウェア特許に起きていること - what`s the 446?
【Cases & Trends】 アメリカ特許訴訟が急減 - ここにも見える最高裁Alice判決の影|知財情報|日本技術貿易株式会社
Coop Lights - About
fixedpoint.jp - なぜGCCのドキュメントはDebianでnon-freeなのか
あなたのコード、違法かも? エンジニアも知りたい、弁護士が教える著作権と開発契約の法知識 - エンジニアHub|若手Webエンジニアのキャリアを考える!
よく見かけるあの©表示って何の意味なのかな? 【よくわかる音楽著作権ビジネス】 - INTERNET Watch
GoogleやYahoo! JAPANでさえ間違ってる、Copyright(コピーライト) の正しい書き方 - 2016年版 | hajipion.com
OSSライセンスとは~著作権法を権原とした解釈
mjg59 | The Commons Clause doesn't help the commons
Microsoft、OINに参加し、6万件以上の特許をオープンソース化 「Linuxを保護する」 - ITmedia NEWS
MongoDBもクラウド事業者に対抗してライセンスを変更、AGPLから独自作成のSSPLへ | OSDN Magazine
他人の著作物を使用したアイコンの法的リスクについて(栗原潔) - 個人 - Yahoo!ニュース
上山浩 「OSSライセンス遵守のための基礎知識」 知財管理 Vol.68 No.5(NO.809)に掲載 | 日比谷パーク法律事務所
c484e7e1251d2ed577a08fc47179d1e4.pdf
GoogleとOracleが「APIの著作権」を巡って最高裁判所の口頭弁論で対決、Googleが不利との見方 - GIGAZINE
09 f9: A Legal Primer | Electronic Frontier Foundation

ライセンス

さまざまなライセンスとそれらについての解説 - GNUプロジェクト - フリーソフトウェアファウンデーション
Welcome to The Open Source Initiative | Open Source Initiative
オープンソースライセンスの比較 | YOSBITS
オープンフォントライセンス | YOSBITS
SIL Open Font License - Wikipedia
License Library
SPDX License List | Software Package Data Exchange (SPDX)
著作権の保有と譲渡

日本

ガイドライン事例

サイボウズのオープンソースソフトウェアポリシーを紹介します - Cybozu Inside Out | サイボウズエンジニアのブログ
Kazuho Okuさんのツイート: "僕としては、OSSガイドラインの導入にあたっては社員が無意識の時間外労働をしないよう会社側に留意してほしい、そのことは会社のリスク管理と、社会全体の労働者保護につながることであるし、労務管理について理解することは社員本人にとっても有益であろう、というあたりかしら… "
Kazuho Okuさんのツイート: "あ、ちなみに株主です… "
Kazuho Okuさんのツイート: "ありがとうございます。労働にあたることを明示した上で社員に自由に休日労働する権利を認めるの、あまりにホワイト企業で素晴らしすぎる / “業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | …” https://t.co/Gk9woMzDrA"
業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | サイボウズエンジニアのブログ

授業目的公衆送信補償金にかかる著作権法の改正 | yasuokaの日記 | スラド
「TPP11関連法成立で、著作権の非親告罪化と保護期間延長が確定」「漫画家個人がCloudflareに漫画村運営者の情報開示請求提訴」など出版業界関連の気になるニュースまとめ(2018年6月25日~7月1日):見て歩く者 by 鷹野凌
著作権の保護と制限の規定がもうすぐ変わる ~ 保護期間延長、非親告罪化、柔軟な権利制限、教育の情報化対応など、まとめて解説 – HON.jp News Blog
Inada Naokiさんのツイート: "日本の著作権法にはフェアユース規定はないものの、基本的に親告罪だから、著作者の利益を損なわない、著作者が文句を言わない範囲での著作権違反の多くが明確な許諾なしに黙認されていて、それを前提に色んなことが成り立ってる。 その黙認されてるエリアに丸ごと網をかけちゃうような法律はNGと思う"
DL違法化「文化庁は与党に正確な情報を提供していない」知財法専門家が批判レポート - 弁護士ドットコム
「これでいいのか! 2018年著作権法改正」出版にあたり――日本版フェアユース再考のすすめ  - INTERNET Watch
マンガワンのチート事案についてまとめてみた - piyolog
「知人の弁理士に相談した」、Pythonを商標登録した企業が理由を説明 | 日経 xTECH(クロステック)
著作権法改正の概要と「写り込み」に係る権利制限規定の対象範囲の拡大 - BUSINESS LAWYERS
オープンソースのプロジェクトに商標登録の支援などを行い、不適切な利用から守る、「オープンソース商標イニシアチブ」が国内で発足 - Publickey
heatwave_p2pさんはTwitterを使っています 「今回の騒動の発端になった井上大臣の会見。政府がコスプレイヤーをクールジャパン大使に任命して、著作権の啓蒙までさせるものだから、コスプレの適法性に疑義があっては困る。そりゃ「法的な整理が必要」になるよね。全然クールじゃない。 https://t.co/wNzAkQlgAh」 / Twitter
井上内閣府特命担当大臣記者会見要旨 令和2年11月27日 - 内閣府
「Python」の登録商標、米Python Software Foundationが再出願。アーク社の登録商標に対しては不使用取消審判を請求 - Publickey

EU

GDPR

CCPA

2020年から施行される個人情報保護法「CCPA」はGDPRよりも企業に厳しい内容である - GIGAZINE

日本企業も大きな影響を受ける「GDPR」--まずは「対象か」の確認を - ZDNet Japan
GDPRの施行によりUnroll.meとPinterestのInstapaperはヨーロッパで利用不可に
Do Not Track and the GDPR | W3C Blog
GDPR:その目的と企業の責任 – カスペルスキー公式ブログ
GDPRとは – カスペルスキー公式ブログ
結局何をすべき?GDPR対応3つの優先事項と解消すべき6つの疑問
知らないとマズい - 最大約 26 億円の制裁金や個人情報利用停止措置を伴う「GDPR」施行まであと一週間 | トレンドマイクロ セキュリティブログ
GDPR 施行直後の対応に伴うリスクや、便乗したサイバー犯罪の可能性とは? | トレンドマイクロ セキュリティブログ
一般データ保護規則(GDPR:General Data Protection Regulation) - フォーティネット
GDPR対策関連ホワイトペーパー集 | 日本オラクル | Oracle JP
Rockridgeさんのツイート: "EUのGDPRやePrivacy Regulationに合わせて、Do Not Track(DNT)の仕様や実装もアップデートされていくようだ。 / “Do Not Track and the GDPR | W3C Blog” https://t.co/ajgFvTzRvF"
GDPR変更でユーザトラッキングへの影響が際立つ
SaaSがGDPRに準拠するには、オンプレミスが望ましいのか?
ブラウザ新興企業Brave、グーグルなどによるGDPR違反を申し立て - CNET Japan
Kazuya Gokitaさんのツイート: "GDPR、いろんなサイトで「当サイトでは利便性向上のためにcookieを…」みたいなダイアログが開いて、こんなの事実上同意せざるを得ないので、ただただインターネットが不便になっただけだな"
Nerry さんのツイート: "なんちゃらなんちゃら法のせいで最近やたらとクッキーを受け入れますかって画面に表示されるサイト増えたけど、これって拒否選んでも選んだことがクッキーに保存されないから永遠に聞いてくるってこと?"

ハイパーリンクを貼るだけで著作権料がかかる通称「リンク税」がEUで導入されようとしている - GIGAZINE
EUがインターネットをめちゃめちゃにする | ギズモード・ジャパン
「オープンソース開発に重大危機」--GitHubがEUの著作権法改正に反対する理由 - ZDNet Japan
欧州議会、著作権関連規則の改正案を否決 | スラド YRO
Rockridgeさんのツイート: "MozillaはEUの著作権指令の改正に反対の立場。包括的なアップロードフィルターの導入はインターネットの文化を貧しいものにしてしまうし、リンク税の導入は知識へのアクセスと共有を困難にするからだという。 / “Mozilla r…” https://t.co/8qOcIgeUze"
出た、Google最終兵器。EU著作権法改正後の白抜き画面がリーク | ギズモード・ジャパン
「リンク税」などを含むEUの改正著作権指令案への大規模な反対運動が勃発 - GIGAZINE
Tomoko Uchidaさんのツイート: "これ通っちゃったんか。。。meme と GIF は除外とされたらしい / EU passes divisive Article 13 copyright law https://t.co/mtlfHGMAKl"
EU passes divisive Article 13 copyright law

BSDL

@kazuho

Kazuho OkuさんはTwitterを使っています: "BSDL、昔は特許の使用権も付随してるに決まってるだろJKと思ってたけど、IIRC最近VP8とかFacebookとかBSDL+特許ライセンスの構成をとるものが増えてきてるので、そういう前提がいつか通用しなくなる可能性が出てきてるんじゃないかなと嫌な気分になってる"
Kazuho OkuさんはTwitterを使っています: "BSDL は特許ライセンスが付属するか怪しい、MITL は暗黙に付随していると考えられる、Apache License は明確に付随する、の差"
Kazuho Okuさんのツイート: "特許の使用許諾を別につけることが一番妥当なOSSライセンスがBSDLだし(文言内でライセンサーを意味する単語が「copyright holders」なため)、利用者としてもライセンサーとしてもBSDLは紛らわしいので避けるべき"
Kazuho Okuさんのツイート: "BSDLなソフト見つけたらまず特許条項の存在を疑う。2010年代の常識です"
Kazuho Okuさんのツイート: "AndroidにバンドルされてるOSSであるVP8がBSDL+特許ライセンスで、(電気機器メーカーが多い)MPEG4陣営がG社を特許侵害で訴えらづらくする毒饅頭として機能している話とか"
Kazuho Okuさんのツイート: "以前にも炎上して改訂されてたんだけど、今回は改訂されず https://t.co/GkOqd1NRXb / “Facebookの特許条項付きBSDライセンスが炎上している件について | こんぴゅ | note” https://t.co/3xK1JwnNuA"
Facebookの特許条項付きBSDライセンスが炎上している件について | こんぴゅ | note
Kazuho Okuさんのツイート: "BSD+特許ライセンス問題にASFが介入いしてくるの、なるほどその手があったのかって感じ"
https://www.apache.org/legal/resolved.html#category-x
Kazuho Okuさんのツイート: "fbの特許ライセンス問題に耳目が集まっているうちに言っておくと、BSDLは主要OSSライセンスのうちで唯一、ライセンス提供者が「作者」でなく「著作権所有者」になっているがゆえに、特許ライセンスを別途指定しやすいという問題があり、それがゆえにBSDLを使うのは避けるべき"
Kazuho Okuさんのツイート: "あと、パテントトロールに対してはOSSの特許条項は役に立たない(トロールは自社でOSSを使った業務をやらないので、OSSの使用権を失っても困らない)から、パテントトロール対策だって言い訳は説得力ない"
Kazuho Okuさんのツイート: "つまりOSSの特許条項は、競合他社との競争において意味をもつものです"
Kazuho Okuさんのツイート: "件の特許ライセンスについては、ああいうライセンスをBSDLにつけること自体は各個の自由だし、OSS配布は社会貢献活動ではないという立場からもアリだと思う。一方で、ああいうライセンスのソフトを使いたくないケースもあるから、もっとゆるい条項になるといいなとfbの中の人たちのために思う"
Kazuho Okuさんのツイート: "Fbに限らずGoogleのvp8やwebmもそうだし、BSDLみたらpatent grantを疑えって話ですよ。その認識が広まるなら今回の騒ぎはいいことだと思う #毎回言ってる"
ASFがReact.jsなどが使うFacebookのオープンソースライセンスを禁止、Facebookは「変更しない」と発表 | OSDN Magazine

@mhiramat

まさみさんは語りたいさんのツイート: "OSSライセンスのMITライセンスやBSDライセンスについて、著作者の表示をすれば自由に使えるのだけど、これ多人数で開発するプログラムに適用した場合、全ての人のCopyright表記をするのか、ライセンスファイルにあるものだけでいいのかでもめそう。"
KaiGai Koheiさんのツイート: "BSDライセンスのPostgreSQLの場合、Copyright表記は全て「PostgreSQL Global Development Group」になってるんだけど、『PGDGとはPostgreSQLの開発に貢献した全ての人です』という定義になってる。… "
まさみさんは語りたいさんのツイート: "なるほど、comittersとかdevelopersとか、個人を特定しない方法がありますね。その辺り、個人の表記をどうしたいのかは本当ははっきりさせたほうが良い・・・。… "
まさみさんは語りたいさんのツイート: "コントリビューターの一人が著作者名をどうしても表記して欲しいって言った場合は問題が起きちゃうんですよね。だから厳密には事前に方式を決め、コミット前に同意を取ったことを確認する手段(signed-offとか)も用意する必要があるんだけど、全部のOSSでやるのは難しいよなあと。… https://t.co/9KtW4HsTl6"
KaiGai Koheiさんのツイート: "なので、"How to contribute"でも良いので事前にルール化・文書化しておく必要はありますね。アップストリームに入れたいのであれば、その流儀に従ってくださいと。… "
まさみさんは語りたいさんのツイート: "この辺りのノウハウ、大手のOSSプロジェクトはみんな持ってると思うんで、そこからテンプレを起こして広めるのと、揉めた時の相談先としてLFなりが第三者機関として動けるようになると凄くありがたいですね。 Githubはライセンスファイルのテンプレしか用意しないし。… "
Satoru Uedaさんのツイート: "このスレッド、大切な問題提起を含んでいると感じます。著作権表記をどうするかもOSSの配布をするシーンで悩みとして浮かび上がる。配布のシーンに直面する事が圧倒的に多い組み込み系は特に気をつかいたいところ。… "
Satoru Uedaさんのツイート: "GPLだと、著作権表記もライセンス表記もソースコードと一緒に全部開示することになる。この点からも、Linuxのような大規模OSSに向いていると言えるのかも知れませんね。… "
まさみさんは語りたいさんのツイート: "はい。しかし一般に寛容型と言われているライセンスはこの辺りがあやふやなので、大規模になった時に、「ライセンスの外側」で貢献同意の裏付けを取るプロセスとしてOpenStackとかでContributor License Agreement を交わすという方法がありますね。 https://t.co/ax5gG9REfC… https://t.co/lAKOcwx7Xh"
まさみさんは語りたいさんのツイート: "このあたりは、OSSプロジェクトを進める上でのライセンス外だけどライセンスに絡む重要なノウハウなので、他の寛容型ライセンスを使う際の注意点と回避策として標準化していかないといけないんじゃなかろうかと思います。… "
Satoru Uedaさんのツイート: "そのとおりだと思います。短いメッセージでは書ききれないことがたくさん思い当たります。BoFネタですね。… "
まさみさんは語りたいさんのツイート: "昨日知ったというか理解したのは、寛容型ライセンスは法務的には全く寛容型とは言い切れない面倒くさいライセンスであるということだった。特に著作人格権が存在する日本では・・・。"
nishio hirokazuさんのツイート: "著作者人格権はベルヌ条約を批准している地球上ほとんどの国に存在しているわけだが、一体どこの国の話をしているのか…… "
henrichさんのツイート: "これはdebian/copyrightファイルでも悩む所であり、どうすればいいのかはまだベストプラクティスがない…。… "
まさみさんは語りたいさんのツイート: "これはいいまとめ。やはりプロジェクト毎にライセンスがどう扱われるかをきちんと決めておけという話になるのかな? (CLAで。)… "
Igaguriさんのツイート: "(まちがい) 日本には著作者人格権があるからめんどくさい (ただしい) なぜか米国は条約で保証しなければならない著作者人格権の制度がなく、米国法しか考えずに作られたOSSライセンスが多い… "
まさみさんは語りたいさんのツイート: "なるほど米国だけ例外的で、例外的な条件に基づいてライセンスを作ってしまったから、本来保護されるはずの著作人格権の行使のあたりの取り決めが別途必要なのか。"
nishio hirokazuさんのツイート: "僕の理解をまとめました https://t.co/KvOucRXa5p… "
すぎむら45さんのツイート: "> ライセンスも「著作者が、他の人に、どういう条件で利用を許諾するか」を書いたものに過ぎないので、著作者が誰であるかを定めるための手続きではない。 この観点はとても重要だと思いました。 使用許諾の話と、著作者人格権の行使の話は混じっているのはよくないですよね。… https://t.co/3JGcfxruVs"
多人数で開発するOSSの著作者表記 - 西尾泰和のScrapbox
mongrelP@もんぐれさんのツイート: "わかりやすいところだと旧GPLとかが該当するみたいね(記事による。今のGPL3とかはどうなってるかはわからぬ) https://t.co/X7HcTVFF8X… "
GPLは契約として成り立つか---日本法との整合性を検証する - CNET Japan
MAEKAWA Masahideさんのツイート: "著作「者」人格権ですね。… "
姉崎 章博さんのツイート: "あまり意識されていないが「多人数で開発する」は「全員、共同著作権者とは限らない」し「(元著作者以外が)二次的著作権者とは限らない」。 Contributer=(二次的)著作権者と思い込んでいる人が多い? 「二次的著作物として何を創作した」に答えられるプログラム記述が残っていれば権利者と言えるかな… https://t.co/th1z91D2vg"
姉崎 章博さんのツイート: "もちろん、プロジェクトリーダをやっている元著作者は、そんな厳しいことを言わずに、Contributeしてくれた人をリスペクトして、Copyrightを追加してくれている人が多いけど。 記述が類似性をもって取り込まれたわけでもないとか、著作物と言える規模でもないのに、著作権を主張するのはどうなんだろう… https://t.co/W2dxp1gV5y"
姉崎 章博さんのツイート: "「第三者から見て決める基準」が無いから、親告罪になっていると思っています。 釈迦に説法になりそうですが、 どのくらい他人のウチに踏み入れたら住居侵入罪になるか、何センチって決まっていないのと同じではないでしょうか。 どちらにしろ所有者(権利者)しだいかと。… "
ぉゅぅさんのツイート: "姉崎さんに教示いただいたと思いますが、LGPLの3項に参考になりそうなサイズはありますね。10行以下のインライン関数やマクロ程度ならLGPLとしてのライセンスを要求していません。 とはいえ、それをもって著作権有無を判断できないでしょうけれど(各国の判例があれば もっと参考になるのかな)。… https://t.co/xDMyYhIJW9"
ぉゅぅさんのツイート: "https://t.co/7BcoewUTMP 3. Object Code Incorporating Material from Library Header Files. >small macros, inline functions and templates (ten or fewer lines in length) このあたりがそういってるのかな、と。… https://t.co/Dt9PxcUpQj"
姉崎 章博さんのツイート: "親告罪になっている理由にももう一つあって、著作者本人が許している(お目こぼししている)のに、第三者の検察が問題視するものではないかららしい。 そういう意味でも、著作者次第。 著作者を無視したルール(基準)があるわけではない。… "

vyv03354さんのツイート: "歴史的にはむしろBSDLはGPLがパクれない条文だった(宣伝条項付きだった)ところを、FSFからの働きかけに応じてわざわざパクれるように修正した(宣伝条項を外した)という経緯があるわけだが、哲学とか本来の意図とか一体何の話をしているのだろう。 #エアリプ"

Artistic License

Artistic License - Wikipedia
Artistic License - Wikipedia

MPL

Mozilla Public License - Wikipedia
Mozilla Public License - Wikipedia
Mozilla Public License, version 2.0
MPL 2.0 FAQ — Mozilla
MPLの概要 | easy labo
MPL2.0ライセンスのライブラリを使った開発 -MPL2.0ライセンスをうたっ- オープンソース | 教えて!goo
Mozilla Public License(MPL)2.0が公開 | オープンソース・ライセンスの談話室
Mozilla、Mozilla Public License(MPL)を10年ぶりにアップデート | OSDN Magazine
MPL 2.0, copyleft, and license compatibility | Opensource.com
Kazuho Okuさんのツイート: "MPL 1.1にあった、著作者に対し(その著作物に無関係でも)特許侵害訴訟を起こしたら、その著作物に含まれる著作者所有特許のライセンスがrevokeされるってのは割と好きなんだけど、なんで2.0で廃止されたのかしら"

GPL

Linux

まさみさんは語りたいさんのツイート: "StackOverflowにGPLとカーネルモジュールについての詳細な引用回答を見つけた。結構具体的にソースを示して見解を示しているのが良い。しかも技術的な話だから、これは多分法務の人だけでは理解できない。 https://t.co/XPsEGkhyIm"
how to make my own linux kernel driver closed(not open source)? - Stack Overflow
まさみさんは語りたいさんのツイート: "GPLとしての要件は派生物であるかどうか。Linusの意見も派生物としてのカーネルモジュールはGPLにすべきであるという意見。ただし、他のOS向けに書かれたドライバを、単純に移植しただけである場合についてのみ、Linusの見解としては派生物でないからGPL出ないドライバも受け入れられると言う。"
まさみさんは語りたいさんのツイート: "おそらく厳密に言えば、そのハードウェアが他のGPLでないOSで動くことが証明されていて、そのOS向けに書かれたドライバであるということが証明できるのであれば、GPLを適用しなくてもLinuxカーネルについてだけ言えば受け入れても良い。ただし他のGPLソフトウェアはそれぞれの事情で判断すべき。"
まさみさんは語りたいさんのツイート: "ライセンスは書面の字面だけでは解釈が別れるものがあって、それをきちんと解釈しようとすれば、ライセンサに確認するしかないが、ここではライセンサ(Linus)の意志が明確に表現された発言がリンクされているのがポイント。"
まさみさんは語りたいさんのツイート: "ちょっとややこしいのは、元々以前の世代のハードウェアはLinux以外のOSを動かしていて、Linuxもサポートするために移植したが、今世代のハードウェアではLinuxしか動かしておらず、しかも新世代のために修正を加えている場合はどうなるのかということ。"
まさみさんは語りたいさんのツイート: "今ならいくらでもユーザ空間にドライバの機能を追い出す手段があるので、わざわざカーネルドライバにプロプラコードを突っ込むのは相当のマゾかN○IDIAだと思ってる。"
まさみさんは語りたいさんのツイート: "armのmaliドライバはカーネル部分はGPLだし、まあ妥当でしょうこれ。"
まさみさんは語りたいさんのツイート: "OSSライセンスに関わる話って見方が何種類かあって、Linuxのモジュールに関わるものはもう少し細かくて、あまり外野から口を挟むべきではないよなと思ったり。(なんでLGPLではなくてGPLv2だけどEXPORT_SYMBOL_GPLなど入れることになったのか、等の苦しさを汲み取れなければ止めたほうがいい)"
まさみさんは語りたいさんのツイート: "このあたりの苦しさが伝わってくるから、いろいろ言われても「OSSライセンスの教科書」は好き。"

licenses/GNU_General_Public_License_version_3.0 - Open Source Group Japan Wiki - Open Source Group Japan - OSDN
GNU General Public License - Wikipedia
姉崎 章博さんのツイート: "#osc18tk 世界中の弁護士が「GPLは契約」と言う愚かな理由 https://t.co/nGALPIVDHJ 一時限目より、ちょっと、ディープな話ですが、聞いていただけると幸いです。 言葉だけを鵜呑みにせずに、人がどういう認識で何のためにそういう話をしているのか調べると、結構あまり考えていないことがわかる:-(… https://t.co/BrJ52LdBvf"
オープンソースカンファレンス2018 Tokyo/Fall - イベント案内 | 2018-10-27 (土): 世界中の弁護士が「GPLは契約」と言う愚かな理由
GNUライセンスに関してよく聞かれる質問 - GNUプロジェクト - フリーソフトウェアファウンデーション
Kazuho Okuさんのツイート: "@yukihiro_matz FSFは商用ソフトを「マルウェア」「ユーザを虐待するように設計された機能を有している」と非難している(https://t.co/0krqdpAztY)わけですし、松本さんの感情は別としてウイルスと呼ばれるくらいのことを問題視してもしょうがないかと"
トーバルズ氏がLinuxとGPLについて真に思うこと - ZDNet Japan
「GPLv3」公開から10周年 | OSDN Magazine
米Red HatやGoogleなど、GPLv2やLGPL違反時の「治癒期間」の権利を約束へ | OSDN Magazine
本の虫: 自由ソフトウェア財団が技術的な指導力を失いつつある
米Red Hat、GPLv2やLGPLv2.1を利用するソフトウェアに対してもライセンス違反時の「猶予期間」を提供へ | OSDN Magazine
「Qt 5.7」リリース、本リリースよりLGPLv3およびGPLv3での提供へ | OSDN Magazine
まさみさんは語りたいさんのツイート: "B2BのビジネスでGPLのソフトウェアを使った場合、ソースコードの提供義務はそのソフトウェアの頒布先になるんだけど、戦車とかにLinux使ったら自衛隊にだけに公開すればいいという話で、そこから先は組織の機密保持のため公開されることはない、という話になるな。"
まさみさんは語りたいさんのツイート: "GPLは頒布に際してソースコードの公開を要請するけど、更に踏み込んで、レポジトリの公開を要請するライセンスって言うのはどうだろうか。"
fjのYog教祖様さんのツイート: "GPLv4 としてRMSに提案する ( w )/… "
まさみさんは語りたいさんのツイート: "WindowsやRTOSドライバとコア部分を共有したい場合はBSDとかMITにするのが良いと思いますね。GPL互換だし問題がない。… "
だよもんフレンズは転職したいさんのツイート: "だからBSD(とMIT)ライセンスが無難。GPLは極端過ぎる。… "
まさみさんは語りたいさんのツイート: "だけどBSDだと「このドライバはBSDだからソースコードは配布しないで下さい」とかいうB2B契約をしようとする輩が出てきてやっぱり炎上するかもなので、よっぽど隠したい理由がない限りGPLにしておくのが良いと思うよ。要するに、Linuxを育てた人たちの成果にフリーライドして平気かどうかという話。"
まさみさんは語りたいさんのツイート: "過激と言われるかもだけどさ、そこの筋を通せるかどうかって、その会社が単なる寄生虫として生きるのか、社会のリーダー格として生きるのかの分岐点だと思うんだよね。 寄生虫は大きくなれないし日陰に生きるしかない、それで良いの?"
まさみさんは語りたいさんのツイート: "https://t.co/tCtMZVhFk8 ごめん、Linusもアカンって言ってる。"
Linusのカーネルモジュールのライセンスへのスタンス | スラド
GNU GPL登場前夜 | OSDN Magazine
2019年9月27日 リチャード・ストールマン「FSFは辞めてもGNUは辞めない」:Linux Daily Topics|gihyo.jp … 技術評論社
著名なフリーソフト活動家が一通のメールで役職辞任に追い込まれたことに「危険な動きだ」と批判が寄せられる - GIGAZINE
FadisさんはTwitterを使っています: 「FSFとGNUは今までRichard M. Stallman氏が双方のトップを兼任していた為その連携は必然だった。が、先の騒動でFSFを追い出された氏が依然としてGNUのトップを続けている状況で、今後FSFがGNUとどう付き合うべきかが悩ましい問題になっているらしい https://t.co/rgKBMGwEzg」 / Twitter
The FSF Is Re-Evaluating Its Relationship With The GNU - Phoronix
Stallman氏、GNU Projectトップを引き続き務めることを表明。プロジェクト内からは反発の声も | OSDN Magazine
SNKのあまりにもデタラメな対応のせいで GPL違反状態になっているNEOGEO Arcade Stick Proの解析情報 - honeylab's blog
SNKによるNEOGEO Arcade Stick ProのGPL逃れの手口と彼らのミス - honeylab's blog
FadisさんはTwitterを使っています: 「GNUの主要なプロジェクトのメンテナが名を連ねてRichard Stallman氏をGNUのトップから降ろすように求めている声明文。なんというか、GNUの方も時間の問題って感じだ https://t.co/Xk8QSmFHbq」 / Twitter
Joint statement on the GNU Project — 2019 — Blog — GNU Guix
KOSAKI MotohiroさんはTwitterを使っています 「GPLはバイナリを使える正当所有者はソースコードも入手可能でなければならないというライセンスですが、そのソースコードを自分でコンパイルしたものを利用可能かどうかはその国の法律によります。ほとんどの先進国では Red Hatみたいな他者の商標は勝手には使えません。CentOSみたいな商標削除作業要」 / Twitter
電子計算機の沼さんはTwitterを使っています 「Xを静的にリンクしたバイナリYを配布したら私がXのバイナリを再配布した扱い?(ライセンス苦手おじさん)」 / Twitter
てらモス♋️さんはTwitterを使っています 「現代のストレージ事情において、共有ライブラリを使う必要性はほぼ無く、あげるとすれば暗号系のライブラリの更新だけど、これは本来OS側で面倒を見るべき事で、実際RHEL などは suite として提供している」 / Twitter
てらモス♋️さんはTwitterを使っています 「@Hishinuma_t それは再配布した扱い(もちろん共有ライブラリを同梱しても再配布扱い)。ただし誤解が多いけど、GPL のバイナリと MIT なバイナリを同梱したら全部 GPL にしないといけないわけじゃないからな」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@termoshtt そこが難しい、、、 再配布するときは元の…みたいなやつに頭を悩ます」 / Twitter
てらモス♋️さんはTwitterを使っています 「@Hishinuma_t CUDAが結構ややこしくて、リンクしたやつを再配布する場合はCUDAのライブラリはその本体を動かすためになら使って良いという条項がある」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@termoshtt なるほど、、、、、」 / Twitter
2021年6月2日 もうFSFにとらわれない ―GCC運営,FSFへの著作権移譲を開発者に求めないポリシーに:Linux Daily Topics|gihyo.jp … 技術評論社
Grafana LabsがGrafana、Loki、TempoのライセンスをAGPLv3に変更
FadisさんはTwitterを使っています 「GNU C Library(glibc)がコントリビュート時に著作権をFSFに譲渡する事を求めなくなったらしい。FSF発のプロジェクトの多くはコントリビュート時にFSFへの著作権の譲渡を求めていたが、少し前にGCCがこの条件を撤廃しており、glibcもこれと同じ方式に移行する形になる https://t.co/VbIX7X4TrK」 / Twitter
GNU C Library Looking To Drop FSF Copyright Assignment Policy - Phoronix
nishio hirokazuさんはTwitterを使っています 「CopilotとGPLの話、少なくとも日本の著作権法においては30条の4の「著作物に表現された思想又は感情を自ら享受し又は他人に享受させることを目的としない場合」について著作権が制限され自由に使える件を踏まえてない発言はミュートしたい https://t.co/AL7rRWALgn」 / Twitter
著作物に表現された思想又は感情の享受を目的としない利用 - 西尾泰和のScrapbox
7594591200220899443さんはTwitterを使っています 「github copilot はgplのコードを学習してんならgithub copilotが生成するコードはgplなコードのderivative worksでしかあり得ねえだろうが、という指摘がされており一考の価値がある」 / Twitter
eeveeさんはTwitterを使っています 「github copilot has, by their own admission, been trained on mountains of gpl code, so i'm unclear on how it's not a form of laundering open source code into commercial works. the handwave of "it usually doesn't reproduce exact chunks" is not very satisfying https://t.co/IzqtK2kGGo」 / Twitter
7594591200220899443さんはTwitterを使っています 「元来GPLとはソフトウエアを自由化する運動だってわけだが。謎のAIとやらをかますだけでGPLの自由が毀損されて不自由なコードに化けてしまって良いのか。」 / Twitter

CDLA

Linux Foundation、機械学習やAI時代をにらみデータのための新ライセンスを発表 | OSDN Magazine
Home - CDLA

Bluetooth

Bluetooth ブランドを使用する - 登録
Bluetoothロゴを使用するためには?〜①Bluetooth SIGメンバー登録編〜 | 無線化.com
Bluetooth認証 | BLEDocs
a10.pdf

Creative Commons

クリエイティブ・コモンズ・ライセンスとは | クリエイティブ・コモンズ・ジャパン
Creative Commons — CC0 1.0 全世界
クリエイティブ・コモンズ・リーガル・コード
Creative Commons — CC0 1.0 Universal
Creative Commons Legal Code
Creative Commons — 表示 4.0 国際 — CC BY 4.0
クリエイティブ・コモンズ (Creative Commons) — 表示 4.0 国際 — CC BY 4.0
Creative Commons — Attribution 4.0 International — CC BY 4.0
Creative Commons — Attribution 4.0 International — CC BY 4.0
本の虫: このブログのライセンスをCreative CommonsからGFDLに変更
本の虫: 邪悪なクリエイティブ・コモンズで起こるべくしておきた事件
本の虫: ますますクリエイティブコモンズが変な方向へ
Choose a License
Creative Commonsライセンスの作品は無条件で使って良いわけではない - yanok.net
データ・資料 | クリエイティブ・コモンズ・ジャパン

DMCA

漫画村が使っているCloudflareというCDNが著作権侵害ほう助で苦境に陥っている件 - orangeitems’s diary
楠 正憲さんのツイート: "CloudflareがDMCAで海賊版サイトをテイクダウンしないのは札付きだったのか / “Cloudflare: We Can't Shut Down Pirate Sites - Slashdot” https://t.co/w0PVacszQh"
Cloudflare: We Can't Shut Down Pirate Sites - Slashdot
フェアユースに対する不当なDMCA削除要請をめぐる「Dancing Baby」裁判、和解に達する | スラド IT
まさみさんは語りたいさんのツイート: "DMCA申請する際に、予め誤った申請だった場合の保証金を積み立てる仕組みと、申請自身が正当な申請者により行われたことを保証する仕組みが必要なのでは。虚偽住所や詐称申請はできない仕組みを作ったら儲かる気がする。"
辻正浩 | Masahiro Tsujiさんのツイート: "私の投稿を検索結果から消そうと先月から色々やっている方へ。 私のブログを装った盗用ブログを作ってそれを元に私の投稿にDMCA申請するのは全部Googleに拒否されてるにしてもやりすぎですよ?全部気づいてますよ?既に警察からも指導されていますよね?まだ続けるならそろそろ動きますよ?"
光のインターネットの闇さんのツイート: "侍エンジニア塾、批判していたサイトをDMCAクレーム申請してGoogle検索に出さなくしている。。。 https://t.co/gn0UJ341JK"
DMCA (Copyright) Complaint to Google :: Notices :: Lumen
高梨陣平さんのツイート: "インターネットアーカイブ、Waback MachineがDMCA対応で削除を開始。 とうとう個々人での保存が重要になりつつある。腐ったDMCA申告に対抗するのはコストが高過ぎる。… "
「最後の砦」崩れる? Internet ArchiveでDMCAによる削除要請に対応した痕跡見つかる【やじうまWatch】 - INTERNET Watch

MS

Microsoft Public License (MS-PL) | Open Source Initiative
使用条件
Microsoft 開発者サービス契約
マイクロソフトの主要なシェアードソースライセンスに関して « 来栖川電算
米Microsoft、オープンソースライセンス準拠の管理のためのOpenChain Projectに参加 | OSDN Magazine
2019年12月19日 欧CERNが進める脱Microsoftプロジェクト「MALT」,代替ソリューションが一部公開:Linux Daily Topics|gihyo.jp … 技術評論社

本の虫

本の虫: 高度に発展した特許業界はヤクザと見分けがつかない
本の虫: Javaの権利にまつわるまとめがすごい
本の虫: fair use権利を侵害するYouTubeのContent IDと戦うために著作権侵害するゲーム批評家の話

GIGAZINE

Googleが「コードが著作権の対象になる」という裁判所判断はソフトウェア開発の未来を左右するとして対Oracle訴訟について嘆願書を提出 - GIGAZINE
GoogleとOracleが繰り広げる訴訟で「APIは著作権保護対象か否か」について最高裁判所が審理に乗り出すことに - GIGAZINE
Googleを著作権侵害で訴えているOracleもAmazonのコードをパクっているという指摘 - GIGAZINE
約1兆円の賠償金を巡るGoogleとOracleの10年にわたる訴訟が決着、「APIのコピー」は結局違法なのか? - GIGAZINE

技術評論社

2018年10月11日 Linuxとオープンソースを守るために ― Microsoft,「Open Invention Network」に参加:Linux Daily Topics|gihyo.jp … 技術評論社
監訳者解説 山形浩生:ハードウェアハッカー ~新しいモノをつくる破壊と創造の冒険|技術評論社
2019年1月17日 SSPLはオープンソースライセンスにあらず!? Fedora,リポジトリからSSPLソフトを削除へ:Linux Daily Topics|gihyo.jp … 技術評論社

TechCrunch Japan

MongoDBがそのコードのオープンソースライセンスを改定、オープンソースの“食い逃げ”に むかつく | TechCrunch Japan
世界を手中に収めたオープンソースソフトウェア | TechCrunch Japan

Publickey

Redis、MongoDB、Kafkaらが相次いで商用サービスを制限するライセンス変更。AWSなどクラウドベンダによる「オープンソースのいいとこ取り」に反発 - Publickey
クラウドベンダなどによるサービス利用を制限したMongoDBの新ライセンス「SSPL」を理由にDebian、Fedora、RHELがMongoDBのバンドル取りやめを表明 - Publickey
[速報]10年にわたる著作権訴訟でGoogleがオラクルに勝訴、米連邦最高裁判所で判決。Java SEのコードのコピーはフェアユースの範囲 - Publickey

スラド

OpenSSL、ライセンス変更に向けて貢献者の合意を求める | スラド オープンソース
OSSを利用する多くのソフトウェアで脆弱性対応の不備やライセンス問題が存在する | スラド セキュリティ
著作権法における「引用」と「技術の開発又は実用化のための試験の用に供するための利用」と「情報解析のための複製等」 | yasuokaの日記 | スラド
なかのん&マジックさんのツイート: "これはGoogleを支持するわ。APIの模倣がダメなら、プラットフォーム間等の移植の際に、元のAPI叩いてたところに抽象化したレイヤーをはさむこと自体が違法ってことになるよな。 / Google、最高裁に対しソフトウェアインターフェースに対する著作権の扱いについて再考を求める https://t.co/UIoIwVmEZ0"
Google、最高裁に対しソフトウェアインターフェースに対する著作権の扱いについて再考を求める | スラド IT
なかのん&マジックさんのツイート: "API呼び出し部分を同じ形のメソッドなりでラップして、自動テストでプラットフォームの色んな動作をエミュレートしてもやっぱり違法になるのかな?"

infoQ

OSSライセンスの遵守を簡単にするGitHub Licensed
グーグル、オラクルへの支払いは数十億の可能性も
Bank of Ameriaのブロックチェーンデータストレージ特許が公開
最高裁判所は、GoogleによるJava APIの使用は公正利用であると判決

OSDN

licenses/MIT_license - Open Source Group Japan Wiki - Open Source Group Japan - OSDN
オープンソースライセンス管理団体OSI、ライセンス情報を提供するAPI「Open Source License API」を公開 | OSDN Magazine
スタッフ解雇を理由にFSFと対立していた「Libreboot」、GNU Projectから正式に離脱 | OSDN Magazine
Black Duckが企業アプリで使われるOSSに関する調査結果を公表、6割以上で脆弱性が放置されているという結果に | OSDN Magazine
米Facebook、批判を受けて「React」のライセンスから特許条項を削除へ | OSDN Magazine
米GitHub、依存性ライセンス情報のキャッシュと確認を行う「Licensed」を公開 | OSDN Magazine
オープンソース商標についての解説と不使用取消審判への対応のお願い | OSDN Magazine
Redisがモジュールのライセンスを変更、商用利用に制限 | OSDN Magazine
Kazuho Okuさんのツイート: "周辺モジュールをAGPLよりもリベラルなApache Licenseにしつつ、それ自体を商品として提供するのは禁止する、と。これは果たしてOSSなんだろうか... / “Redis’ License is BSD and wil…” https://t.co/K4IcvZRQrQ"
Kazuho Okuさんのツイート: "変更前のライセンスがAGPLなので、クラウド事業者も開発に協力していたわけだし、今後も協力すると期待されるからこそApache License+αに変更したんじゃないのかしら… "
Kazuho Okuさんのツイート: "AGPL+著作権譲渡でやりつつ、「別ライセンスは有償提供ね♡」といういつものモデルで始めてればよかったんじゃないの感は感じる"
米Redis LabsがRedisモジュールのライセンスを再変更、独自のRedis Source Available License(RSAL)へ | OSDN Magazine
分散SQLデータベース「CockroachDB」、「as a Service」としての提供を制限するライセンスに変更 | OSDN Magazine

POSTD

MITライセンスを1行1行読んでいく | プログラミング | POSTD

Qiita

公開ライセンスの話 - Qiita
そのライブラリは、本当にその著作権表記だけで良いのか? - Qiita
githubでライセンスを設定する - Qiita
ライセンスの選択を恐れる必要はありません - Qiita
ちょっとユニークなライセンスたち・まとめ - Qiita
Facebookと係争中の他社はReact.jsが使えない - Qiita
プレゼン資料やアイコンやLGTMに、漫画・アニメを無許可で使うと日本では著作権侵害です - Qiita
ライセンスをつけないとどうなるの? - Qiita

Twitter

特許

Shirouzu Hiroaki(白水啓章)さんのツイート: "2000年以降の出願で、特許として認められないもの。 「特許出願前に(略)外国において(略)電気通信回線を通じて公衆に利用可能となった発明」 https://t.co/YKhdZvBu4Y 例えばRFC等で既知の場合は、特許として認められない、となるはず。 (なのに特許成立している例が…無効審判にできそう)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "1999年以前の出願については、「外国において頒布された刊行物に記載された発明」が認めない条件となっていて、出版されているものに限っていた様子。"
Kazuho Okuさんのツイート: "自己防衛とかナイーブすぎる。基盤技術をばらまいて他社に依存させて、それら他社の特許を自由に踏めるようにするための戦略でしょ。Androidを販売したければVP8のサポートが必須だから動画関係の特許侵害でGoogleを訴えることができなくなる、的な… https://t.co/QT8nIgkS7j"
mattnさんのツイート: "PATENTS は特許侵害に対する自己防衛だと思います。Google は OPN にサインしています。 https://t.co/fBee4IHiw3 https://t.co/LyrpQBWQx0"
Kazuho Okuさんのツイート: "まあGolangの特許条項はApache Licenseと同様の温和なものだとは思うけど"

著作権

OS作れないマン 技術書典3 あ11企さんのツイート: "社内リポジトリにあるソースコードに著作権表示があって、編集するたびに年号の部分を書き換えるの面倒だから、米国も無方式主義となった現在では著作権表示を削除しても良いのではないかと提案した。"
ぬるぽへさんのツイート: "著作権のこと全然考えてなかったんだけど、特に譲渡とかの取り決めをしてない状態でプルリクエストをどんどん受け付けると、ライセンスを例えばMITから独自のものに変えようみたいな話が出たときに全著作権者にコンタクトを取って了承を得なければいけなくなるのか、なるほどなー"
Kazuho Okuさんのツイート: "著作権譲渡契約(CLA)がなくてcopyright書き換えられたのなら文句言うの分かるけど、CLAがあるのにsquash mergeのオーサー欄がとか言われるの辛い。そんなに自分の名前載せたいならCLAがあるプロジェクト避ければいいのに、と正直思います"
Kazuho Okuさんのツイート: "なお僕はCLA嫌いです"
Kazuho Okuさんのツイート: "実務的な話をすると、squash mergeをする場合というのは、複数人の変更を単一のコミットに変換するというケースが当然に想定されるわけで、その際、CLAで著作者の表示が不要であるにもかかわらず著作者の確認を行わなければならないとなると、作業上の負担が大きくなります"
Kazuho Okuさんのツイート: "僕は 1) @mattn_jp さんの気持ちはわかる 2) MSのやり方が間違っていたわけではないし、実務上のメリットもある(https://t.co/NAYpIxbEAH) 3) である以上、謝罪と修正を要求すべき問題ではない という認識です"
Kazuho Okuさんのツイート: "「僕はこうしてほしい」という希望を伝えるのはもちろんいいんだけど、どっちが正しいとか間違ってるとかそういう問題ではないということ… "

商標権

Kazuho Okuさんのツイート: "商標権は製品の識別を保護するものだから、ソフトウェアやサービスとして商標登録がされているものを紹介する「書籍」を出したとしても商標権侵害にはならないんじゃないの? 教えて偉い人 / “ライセンスからみたOSSの商業出版の話。 -…” https://t.co/Q3qvGRmgek"
ライセンスからみたOSSの商業出版の話。 - @rdlabo
成瀬さんのツイート: "その通りで、「商標的使用」じゃないので侵害にはなりません… "

OSSライセンスの教科書

もうすぐ夏休み終わりさんのツイート: "OSSライセンスの教科書買ってきた。 JSONライセンスを実務上当然認めるべき、という主張には断固としてNoと言いたい。理解しかねる"
まさみさんは語りたいさんのツイート: "JSONライセンスの言うEvilかどうかって主観的だし、ソフトウェアというツールを作った時点では保証しかねる。例えばカワンゴのOP53Bに利用されたらどうするか。これはインターネットの自由にとってはEvilだが、カワンゴにとってはGoodなのである。要するに確信犯に対しては全く意味がない。"
まさみさんは語りたいさんのツイート: "その上意図的に差別的に自由を侵害しているのでフリーソフトウェアライセンスとしてもダメっていうね。似たような話にNihon Linuxで起きたGGPL騒動がある。 https://t.co/9XATNlB83S"
nihonLinux - Wikipedia
まさみさんは語りたいさんのツイート: "JSONライセンスよりGGPLの方が日本ローカルで騒動に面白みが会って良いんだけど、如何せん2002年のことだからみんな忘れちゃってるんだよなあ。"
まさみさんは語りたいさんのツイート: "実務的に見てJSONライセンス使ったソフトウェアがあったとして、製品に使えるかどうかと言うと、製品がevilな使い方をされるはずはないから使っていいことになるのではないか?ただ、巡り巡って偵察兵器に使われる可能性は無いといえないが、ライセンス受けた時点で判断はできないよな。"
まさみさんは語りたいさんのツイート: "後になって著作権者から、「それは俺にとってevilだ」とか言われたら著作権違反で訴えられる可能性もあるから、やはり判定に主観が入り込む可能性があるのは実務的にも無理だな。"
まさみさんは語りたいさんのツイート: "これと全く同じ状況に陥るのは、ライセンスが付いてないソフトウェアね。誰かが書捨てたコードはすごく危うい。しかしそういうのを考えないで依存関係で勝手に使われるものもあるからなあ。"
もうすぐ夏休み終わりさんのツイート: "全くそうです。Evilな人はそもそもライセンスなんて無視するから意味ないんですよ… "
まさみさんは語りたいさんのツイート: "オープンソースの皮をかぶったハニーポットトラップ、というのも実は存在しうる。"
もうすぐ夏休み終わりさんのツイート: "JSONライセンス大喜利〜 アジアの某大国では顔識別ソフトで人民を監視している。さて、この顔識別ソフトにJSONライセンスが使われていた場合、これはライセンス違反であると言えるか?違反である・違反ではない、それぞれに根拠を述べよ… "

スタックオーバーフロー

κeenさんはTwitterを使っています 「スタックオーバーフローの問答はクリエイティブコモンズのなんかのライセンスで自由に使えたはず。あれを勝手に自動翻訳したサイトを作るのはライセンスの範囲内。問題なのはそれを上位に出すサーチエンジンの方では」 / Twitter
κeenさんはTwitterを使っています 「> 2018-05-02 (UTC) 以降に投稿されたコンテンツは、CC BY-SA 4.0 の条件に基づいて配布されます。 投稿した内容のライセンスは? https://t.co/Lz5qMSG7Qm」 / Twitter
投稿した内容のライセンスは? - ヘルプ センター - スタック・オーバーフロー

Makoto Kato ︎︎さんのツイート: "OSSってのはソースコードを公開するということがOSSじゃなくて、コードのコントリビュートや意見が開かれているということに使うべきだと思ってるんだよね。zlibとかその点ダメな部類だけど"
まさみさんは語りたいさんのツイート: "OSSによらず、ソフトウェアのライセンスの話は、プログラミングを小学生から教えるのならば、リテラシとして扱わねばならない話なんですよ。これだけ気軽にweb上に文書を公開できるなら、著作権の知識がリテラシであるように。"
まさみさんは語りたいさんのツイート: "何かを表現する権利とそれに付帯する注意点は、その表現方法の知識と、本来であれば表裏一体であるべき。これは道徳なんかより遥かに重要。"
まさみさんは語りたいさんのツイート: "未だに読み書き算盤から基本のリテラシが進歩していないことが、日本の教育の問題だと思う。識字率が高いけど、バランスのいい互恵権利意識(fairness)の普及率はどうだろうか? 社畜の問題も、男女格差の問題も、OSSフリーライドの問題も、同根なのではないか。"
まさみさんは語りたいさんのツイート: "道徳はそれを書いた人間や文化を背景にした「善悪」を教える教科なので、ここで言いたいfairnessとは真逆ですね。一方が善きことと思っても、他方はそう思わないかもしれない。これだけだと文化を同質に保つ事は出来ても、異文化との交流にとっては障害になります。… https://t.co/DFJPxQjwM9"
ところてんさんのツイート: "超かっこいいEULAだ。そりゃー同意するよ。… "
まさみさんは語りたいさんのツイート: "Copyright表記のオリジナル年と名前以外の部分については、つまり更新年のところについては不要な表記なので著作物の一部とみなせるので、つまりそこだけを毎年書き換えても、更新年記述の更新があったことを更新とみなせるから嘘は書いていないことになる。"
まさみさんは語りたいさんのツイート: "ExFATだ。間違えた。ちなみにExFATのページにはまだ「製品適用にはMSの特許ライセンスを必要とする」旨書かれている。 https://t.co/Gsv0lRDAiA"
まさみさんは語りたいさんのツイート: "MSがOINに提供したパテントにはexFAT関連の特許は含まれていないが、彼らの「善意の兆し」があるのだろうと期待してSoftware Freedom ConservancyがMSに話をし始めたようだ。 https://t.co/pj22b4ImKy"
Shinji Konoさんのツイート: "マイクロソフトって「特許で訴えない契約」を強要してた会社なんだよな。結局、特許はクロスライセンスで相殺される方向。薬でも特許が切れるのを待つ的なところがあって。"
傳智之さんのツイート: "“知的財産権は,もともとイノベーションを促進するための手段ではある(⁠「保護してあげるから,みんなに公開してくださいね」というのが知財だ)⁠。でも,欧米日の先進国ではそれがいまや,既得権益の保護に使われるだけになっている。” https://t.co/DyBFWEerTC"
henrichさんのツイート: "TechcrunchのMongoDB記事、タイトルから妙な匂いだなと思ったらやっぱりのhiwa案件(viewが増えてもアレなのでリンクなし)。MongoDBは風評被害で訴えてもいいと思うよ…あと本家Techcrunchのライターも。"
まさみさんは語りたいさんのツイート: "マイクロソフト、Linuxをめぐる特許戦争で「休戦」の真意 @wired_jp https://t.co/Z2fOfGDJE1 まだだ、exFatが含まれていない限り、見せかけだけに過ぎないよ。"
Thoughts on Microsoft Joining OIN's Patent Non-Aggression Pact - Conservancy Blog - Software Freedom Conservancy
マイクロソフト、Linuxをめぐる特許戦争で「休戦」の真意|WIRED.jp
Hideyuki Tanakaさんのツイート: "わかっててBSDとかMIT採用してたんじゃなかったのか。やっぱストールマンの言ってたことは正しかったんだなあ(´・_・`) / “redismongodbkafkaaws.html” https://t.co/VI6EnMNvCC"
Hideyuki Tanakaさんのツイート: "オープンソースなんか広まったらソフト産業死ぬぞ ↓ これからはサービスで儲ける時代。ライセンスも緩くていいぞ。まだこの時代に適応できてへん企業おる? ↓ 結局IaaS持ってるとこしか儲かんないじゃん… ↓ 謎ライセンスでクラウド業者の利用を縛るぞ!フリーライドは許さん! (´・_・`)"
henrichさんのツイート: "ふむ。『「今更聞けないシリーズ」にOSSの利用に関する法的リスクや係争事例の紹介およびOSSライセンス違反を生じさせないための基礎的な知識の解説が掲載されました。』 https://t.co/0QNkSNSCa1"
κeenさんはTwitterを使っています 「著作権にあまり詳しくないので他人のコードの一部を拝借してきたときにどういう著作権表示したらいいのかよく分かってない。 元がMITライセンスとかならLICENSEファイルもってきてauthorに自分加えればよい?」 / Twitter
よんたさんはTwitterを使っています 「@blackenedgold わからないのわかる。「一部のコードはこのかたのでライセンスはこれだよ」みたいな説明もあると良さそう。ライセンス表記をするヘルプ項目いれたり、他の人のコードとライセンスでディレクトリ切ったり、ソースコードコメントに書いたりかなあ。引用サイズによる。」 / Twitter
ドッグさんはTwitterを使っています 「Rust の標準ライブラリのソースコードを使う場合,ライセンスは Apache 2.0 か MIT だけど,Apache 2.0 で取り込んだソースを大きく変更したら変更内容を書く義務があるのか」 / Twitter
NPRさんはTwitterを使っています 「Just in: The U.S. Supreme Court, in a 6-2 opinion, found that Google’s use of Oracle's lines of code when creating its Android operating system constituted “fair use” under the copyright laws.」 / Twitter
Kazuho OkuさんはTwitterを使っています 「今回のグーグルvsオラクル著作権訴訟の米最高裁判決は、API以外の用途(同人等の二次創作含む)にも影響がありそうというスレ」 / Twitter
Charles DuanさんはTwitterを使っています 「Wow--SCOTUS doesn't just rule in favor of Google in @googlevoracle, but says that API reimplementation is fair use *as a matter of law*, meaning that the decision applies to all APIs https://t.co/AwRBGtZ5Pp」 / Twitter

-from:tenpoku1000 github.com/tenpoku1000 - Twitter検索 / Twitter
tenpoku1000/tenpoku
tenpoku1000/int_calc_compiler: WebAssembly を中間言語に採用した、32 ビット整数式の x64 JIT コンパイラ
Github新项目快报(2018-11-26) - 《统计学习方法》的代码实现
tenpoku1000/first_follow_set: C 言語で文法の First 集合と Follow 集合を出力するサンプルコード
tenpoku1000/OPML_bookmarks: コンパイラ・IDE・OS・VMM・IME の開発のための OPML・ブックマーク HTML ファイル
tenpoku1000/jp-books: コンパイラ・IDE・OS・VMM・IME の開発のための和書
tenpoku1000/Chocolatey.pkg.config: Chocolatey パッケージマネージャの pkg.config XML 設定ファイル
tenpoku1000/.atom: テキストエディタ Atom の設定ファイル
tenpoku1000/test: テスト用リポジトリ
tenpoku1000/windbg_logger: カーネルデバッグ中の Visual Studio 内蔵 WinDbg の通信内容を記録するアプリケーションとデバイスドライバです。
visualstudio · GitHub Topics · GitHub
602+ Best Webassembly Open Source Software Projects
電子書籍: x64 UEFI 対応 OS 自作入門 https://tenpoku1000.gitbook.io/tenpoku-book/ | LaptrinhX
Uefi_freetype_msvc
格安のトラックパッド付き無線キーボード – Boot macOS
Linux - PCのVRAMに直接アセンブリ言語でデータを書き込む。|teratail
linux - write data in assembly language directly to pc vram

Help

GitHub.com Help Documentation
Creating a commit with multiple authors - GitHub Docs
GitHub Deceased User Policy - GitHub Docs
ブランチの自動的削除を管理する - GitHub Docs

Git

その他

cherry-pick

4. cherry-pick【チュートリアル3 コミットを書き換えよう!】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
cherry-pickコマンド備忘録 - Qiita
git cherry-pickで特定のコミットのみを適用する| Gitテックラボ | [Smart]
SourceTreeでgit cherry-pickを使う | アライドアーキテクツ エンジニアブログ
[git]複数のcommitをまとめてcherry-pickする - dackdive's blog

reflog

いざという時のためのgit reflog - Qiita
`git reflog` についてまとめてみる
Git - git-reflog Documentation
[git]git reset を取り消す(git reflogの使い方) - dackdive's blog
【翻訳】Gitで様々なUndoを行う方法 - はらへり日記
Git/git reflog (git resetを取り消す) - yanor.net/wiki
Git Undo エイリアスを定義する | POSTD
git log - What's the difference between git reflog and log? - Stack Overflow

docx

渋川よしきさんのツイート: "gitの内部構造的に、バイナリファイルの過去のすべてのバージョンをgzipしてローカルに保存していくのと変わらないので、これやるとgit clone数時間みたいなリポジトリができあがる。zipされているxlsxはgzipしてもファイルサイズほとんど変わらないし。git LFSはわかっている人じゃないと/でもつらい… https://t.co/mYRLJW2HP3"
アーさん@疾風の雑魚プログラマさんのツイート: "WordやExcelが内部的にGit対応を行い、ファイルを保存すると自動的にGithub上のリポジトリにPushされるようになり、世界から日付管理されたExcelファイルを撲滅することができた日には、後世までMicrosoftを称える準備がある。"
Arseny Tolmachevさんのツイート: "今でもできますけど https://t.co/Cl9b1IPGqV… "
Gaelan/WordGit: Git diff and merge on Word docs, using Word's native support.
TortoiseGit/contrib/diff-scripts at master · TortoiseGit/TortoiseGit
渋川よしきさんのツイート: "git、正確にはバイナリdiffで保存する仕組みはあるんだけど、まあそれが発動するときはgit gc起こりまくりの極限状態なことが多いはずで、ストレスフルなのは変わりない。"

stgit

stgit Tutorial - エンジニアきまぐれTips
まさみさんは語りたいさんのツイート: "stgit使ってるからなあ・・・… "
Masaki Haraさんのツイート: "アンケート: gitでブランチを切り忘れてmasterにコミットしてしまったとき 1. masterをtopicにリネーム 2. topicにコピーしてmasterに戻ってreset 3. resetしてtopicを作って再コミット 4. その他"
まさみさんは語りたいさんのツイート: "stgitのあかん所、CC: stableに # が使えんのじゃー。"

~/.gitignore_global を指定するのをやめ、デフォルトの置き場に置こう

内部構造

Amazon.co.jp: エンジニアのためのGitの教科書[上級編] Git内部の仕組みを理解する eBook: 河村聖悟: Kindleストア
Git の仕組み (1) - こせきの技術日記
やさしいGitの内部構造 - yapcasia2013
内部構造から見るGit - Qiita
Git の内部データ構造 - SSSSLIDE
Git の内部構造を知っていたら、リモートリポジトリへアクセスできないホストへ差分を適用できた話(実話) - Qiita
Gitのリポジトリの中身をなるべく正確に理解する | To Be Decided
Git のコマンドだけでなく、その仕組みを学ぶ
Gitの基礎知識をまとめたよ - tasuwo blog
Gitを支える内部構造についての話 - Timers Tech Blog
「GitHub トレーニングチームから学ぶ Git の内部構造」のノートです。 曖昧なところもあるので、間違いがあったら教えてください! http://connpass.com/event/3808/
Gitレポジトリはパッチの集積ではなくてスナップショットの集積である。 · DQNEO起業日記
[Git].git/indexのデータ構造を詳しく調べてみた · DQNEO起業日記
git graphを使ってターミナルで Git のツリー構造を表示する | ワードプレスのホームページ制作|新宿区のフリーランスWeb制作 ピクセルデザイン
» Gitの最低限必要な基礎知識
参加レポート【GitHub トレーニングチームから学ぶ Git の内部構造@名古屋】 - ton-tech-ton

ProjFS(GVFS)

WalkingCatさんのツイート: "it looks like GVFS (Git Virtual File System) has been renamed to ProjFS🧐"
GVFS: Git at Enterprise Scale
Microsoft/GVFS: Git Virtual File System: Git at Enterprise Scale
GVFS/Protocol.md at master · Microsoft/GVFS
Releases · Microsoft/GVFS
RavenFile | Windows Weekly 558: 150 Bottles of Ranch Dressing on the Wall
米Microsoft、Gitリポジトリのファイルシステムを仮想化する「Git Virtual File System」を公開 | OSDN Magazine
Makoto Kato ︎︎さんのツイート: "SDのレポジトリにはSLM時代 (Windows 2000 RTMまで)のデータ入ってないから、言ってること間違ってるよ。 https://t.co/Yms96KiRhz"
大規模リポジトリの問題を解決するGit Virtual File System
Gitのスケーリング(と、その背景) | プログラミング | POSTD
SATO Naoki / さとうなおきさんのツイート: "WindowsのソースがGitに移行。350万ファイル、300GB、開発者4,000人、1,760デイリービルド。GVFSのおかげ。 The largest Git repo on the planet https://t.co/22nMZ9j6OH"
The largest Git repo on the planet | Brian Harry's blog
MicrosoftがWindowsのコードリポジトリをGitに移動
「Windows」開発にもオープンソース浸透--変わりゆくマイクロソフトの現場 - ZDNet Japan
Microsoft、Windowsの開発におけるGitの活用状況を説明 | マイナビニュース
Where is GvFlt filter driver source code? · Issue #5 · Microsoft/GVFS

LFS

大容量ファイルもGitで管理。 Git LFSの使い方
git-lfs/docs at master · git-lfs/git-lfs
過去のコミットでgit LFSを使うように歴史改変をする - 簡潔なQ
すらりん日記 » Blog Archive » Git LFS を使ってみる|No:4390|すらりん日記
渋川よしきさんのツイート: "git lfsのファイルロックの仕様がわからん。.git/lfs/lockcache.db というファイルができる。ロック・アンロック時にHTTPのリクエストをサーバーに飛ばしている。リモートとローカルというモードがありそう。わからん。"
渋川よしきさんのツイート: "で、これロックしたところでだれがこの状態を見て「このファイルを編集しちゃダメだよ」って言ってくれるのか。そしてどうやってリモートとこのステータスを共有するのか。"
渋川よしきさんのツイート: "なるほど。lock対象にすると全部がreadonlyになるのか。"
渋川よしきさんのツイート: "あーわかった。積極的にはロック情報を取りに行かないのかもしれない。"
428Hさんのツイート: "git-lfs が 2.x だと認証を拾ってくれない気がする。 1.5.6 だとすんなり通る。 たぶんこれと同じ症状。 https://t.co/F946bdlsNZ"
Git LFS on Windows requires credentials to be cached · Issue #1763 · git-lfs/git-lfs
fu-jinさんのツイート: "git lfsは失敗する。というかもう失敗に終わった感がある。… "
squirrelsさんのツイート: "この間ついにsouce treeが見限っていたような。 本家がバグありのまま更新止まってたしね。… "
beepcap@エビからくり民(成年済)さんのツイート: "git lfsはそのアイデアが出回り始めた頃は期待してた。 まさか、lfsを追加してないgitからpushするとリポジトリ全体が崩壊するとは思わなんだ"

gitattributes

.gitattributesをいじって特定のファイルをgithubのPRのdiffの対象から外す方法のメモ - podhmo's diary
Customizing how changed files appear on GitHub - GitHub Help

gitignore

Git - gitignore Documentation
github/gitignore: A collection of useful .gitignore templates

rebase

あのコミットをなかった事に。git rebase -i の使い方 – karakaram-blog
git svn rebase で conflict したときの解消手順 - 日曜プログラマがダラダラ書く
Esewvi LoveさんはTwitterを使っています 「git squashとrebaseでいつもハマって、めんどくさいからgit push -f でごまかす」 / Twitter
yoh2さんはTwitterを使っています 「せめて --force-with-lease にして😖」 / Twitter

filter-repo

git filter-repoってなんぞ - Qiita
Gitの履歴のメールアドレスを一括変更 (git-filter-repo) - Qiita
git-filter-repo/INSTALL.md at master · newren/git-filter-repo
newren/git-filter-repo: Quickly rewrite git repository history (filter-branch replacement)
git-filter-repo(1)

switch/restore

git checkout の代替としてリリースされた git switch と git restore - kakakakakku blog
Git 2.23.0のswitchとrestoreについて - DEV
git switchとrestoreの役割と機能について - Qiita
Git - git-restore Documentation
Git - git-switch Documentation
Git - Gitの基本

git worktree

git worktreeを使ってみる - Qiita
ブランチの切り替えをしなくてよくなるコマンド git worktree がすごい! - Qiita
複数ブランチの同時並行作業にはGit Worktreeを - astamuse Lab
git worktree についてのメモ - Webdelog
worktree - [Reference/Git] ぺんたん info
git worktreeで複数ブランチを並行させて作業する - いろいろ備忘録日記
git-worktree を使って時間のかかる処理を別の作業ディレクトリで行う - アジャイルSEの憂鬱
Goリポジトリでgit worktreeは使えるか. gitの比較的新しい機能としてworktreeがあります。普段利用する機会はなか… | by Masaki Yoshida | Medium
ワークツリーとインデックス|サル先生のGit入門【プロジェクト管理ツールBacklog】
まさみさんは語りたいさんのツイート: "この問題、実は切実。確かにある程度のgotoはレビューしやすい差分ができるのでwelcomeなんだけども、後で最適化のためのパッチも作って欲しい。… "
Urabe, Shyouheiさんのツイート: "個人的には「diffが小さくなるから」という理由によりgit以降でgotoは復権しつつあると肌感覚で感じるんだけど、どうなんだろうな。ちゃんと調査してみると面白いかも"
まさみさんは語りたいさんのツイート: "個人的には原則として、機能追加とコードの最適化は別パッチにして欲しい。但し機能追加が完全な関数実装の変更を伴う場合は一緒にして欲しい。この当たり微妙な書き方だけど・・・。"
まさみさんは語りたいさんのツイート: "あー、splitdiffはhunkレベルに分割してくれないのか・・・。"
まさみさんは語りたいさんのツイート: "git add -pで手動でhunkに分けながらcommit"
まさみさんは語りたいさんのツイート: "どうもkconfigに怪しい所があるのでうまく行くパターンと行かないパターンをgitに放り込み、hunk毎に別コミットにした上でgit bisectしつつカーネルビルドとテストを繰り返している。"
まさみさんは語りたいさんのツイート: "gitのデータベースだけシンボリックリンクにして、複数の異なるバージョンをチェックアウトできないだろうか・・・。"
Hiroaki Nakamuraさんのツイート: "git worktreeというサブコマンドで出来るらしいですよ。 https://t.co/IBtaqaj1gv… "
Multiple working directories with Git? - Stack Overflow
Hiroaki Nakamuraさんのツイート: ""Git - git-worktree Documentation" https://t.co/PuTHA6F6Dj さっきまでこれ知らなくて、gitの複数ブランチを並べて見たいときにgitのワークスペースディレクトリをまるごとコピーして片方ブランチ切り替えとかやってたんですが、これを使えばさくっと出来たんですね。"
Git - git-worktree Documentation
まさみさんは語りたいさんのツイート: "カーネルのgitが4つぐらい入っていて無駄すぎたので助かる。"

blog

cron から自動で git push する [Tipsというかメモ]
git pushで本番環境に“自動デプロイ”できる環境を作ってみよう! | vdeep
gitのコミットの記法 - Fixstars Tech Blog /proc/cpuinfo
git grep を使う - Fixstars Tech Blog /proc/cpuinfo
Github を Windows で利用する(Git GUI編): 小粋空間
git入門 (全22回) - プログラミングならドットインストール
Gitで特定のcommit idを指定してcheckoutする方法
Git で現在チェックアウトしているコミットのID | そんなこと覚えてない
Gitのインラインdiff (word-diffの進化型) - quattro_4's diary
TortoiseGit で git add -p 相当できた
Gitのdiffで差分の場所をメソッド/関数名で表示させる - 理系学生日記
GPG鍵を作って運用し、Git(hub)やMercurialで自分が書いたコードに署名をする - kuenishi's blog
Windows 10の開発環境を整えた - YAMAGUCHI::weblog
本の虫: gitの10周年を記念したLinus Torvalsへのインタビューの翻訳
Git 2.x シリーズの 6 つの素晴らしいフィーチャー | Atlassian Blogs
Gitのリモート操作を5倍から50倍高速化するには | Yakst
ブランチ、タグを指定してgit cloneする|DIGITAL SQUADブログ
「新機能作成時に開発ブランチに細かくmergeしていく戦略」について社内勉強会で発表しました - Hatena Developer Blog
apt-get upgrade gcc considered harmful - NyaRuRuが地球にいたころ
本の虫: git submoduleを含むレポジトリをGitHub Pagesで公開するときのsubmoduleのURLはhttpsでなければならない
Kazuho's Weblog: Git で全ブランチから検索
本の虫: GCCのgit移行が難航中
gitのrebaseでsquashをワンライナーで | κeenのHappy Hacκing Blog
globalのgitignoreの設定をdotfilesでやるようにした - 脱力系日記
gitでアレを元に戻す108の方法 - TIM Labs
git logでソースのdiffを見る - 誰にも見えないブログ
bare repositoryの初期化時に入り込んだ余計なファイルの削除 - 誰にも見えないブログ
commitとpushしかできない人のためのgithubの使い方まとめ - Just $ A sandbox
過去の Git コミットのコミッタを変更するには - Corredor
Kazuho's Weblog: git blameでプルリクエストの番号を表示する
gitで2つのリポジトリを混ぜる戦略を考える - golden-luckyの日記
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「強制的に共有させるような仕組みを作るとセキュリティー上の問題も発生するだろうし、これくらいが落とし所なんだろうなぁ / 1件のコメント https://t.co/TPYdzttmoN “チームで共通のフックスクリプト(Git hook)を使っています - ファーエンドテクノロジー株式会社” https://t.co/VAsGejhr9v」 / Twitter
チームで共通のフックスクリプト(Git hook)を使っています - ファーエンドテクノロジー株式会社

News

“master”は不適切? デフォルトブランチ名の変更に対応した「Git for Windows」v2.28.0 - 窓の杜
「Git for Windows 2.29.0」が公開 ~セットアップ時にデフォルトブランチ名を設定可能 - 窓の杜
プログラムの実行時間を99%短縮した「たった1行のコード」とは? - GIGAZINE
「Windows Terminal」「Sublime Text 4」連携を追加した「Git for Windows」v2.32.0 - 窓の杜

infoQ

Facebookの大規模で高速なリリース方法
Git2.17は移動したコードに対する差分表示やオブジェクト検索機能が向上した
Git 2.18がGitプロトコルバージョン2のサポートを追加
diff, branch、grepなどが改善されたgit 2.19
ワークフローとパフォーマンスを改善したGit 2.20
トポロジの保存とインタラクティブなりベースが可能になったGit 2.22
MicrosoftがWindowsのコードリポジトリをGitに移動
Git 2.26でプロトコルバージョン2がデフォルトに
Git 2.29でSHA-256の実験的サポートを導入

OSDN

分散バージョン管理システムGitの使い方入門 | OSDN Magazine
Gitを使いこなすための20のコマンド | OSDN Magazine
Git 2.10リリース、表示の改善や細かい設定強化などが行われる | OSDN Magazine
「Git 2.9」リリース、「git diff」や「git log」での表示変更などが行われる | OSDN Magazine
「Git 2.8」リリース、「CRLF」改行コードへの対応強化や細かい機能追加などを含む | OSDN Magazine
「Git 2.7」リリース、多数の機能強化などが行われる | OSDN Magazine
「Git 2.6」リリース | OSDN Magazine
「Git 2.5.2」リリース、軽微な修正が中心のメンテナンスリリース | OSDN Magazine
「Git 2.5」がリリース | OSDN Magazine
「Git 2.3.3」リリース、バグ修正が中心のメンテナンスリリース | OSDN Magazine
「Git 2.3」がリリース、リモートリポジトリ側でチェックアウトしされているブランチへのプッシュが可能に | OSDN Magazine
「Git 2.2」リリース、細かな機能強化や性能改善が行われる | OSDN Magazine
ワークフローを強化した「Git 2.1」がリリース | OSDN Magazine
1.9系のメンテナンスリリース「Git 1.9.1」がリリース | OSDN Magazine
分散バージョン管理システム「Git 1.9」が公開 | OSDN Magazine
分散バージョン管理システム「Git 1.8.3」がリリース | OSDN Magazine
認証ヘルパ機能や細かい機能強化が加えられた「Git 1.8」がリリース | OSDN Magazine
「Git 2.14」リリース、細かな変更が多数加えられる | OSDN Magazine
「Git 2.16」リリース | OSDN Magazine
「Git 2.17」が公開 | OSDN Magazine
「Git 2.19」リリース | OSDN Magazine
「Git 2.20」リリース | OSDN Magazine
「Git 2.21」リリース | OSDN Magazine
「Git 2.22」が公開 | OSDN Magazine
「Git 2.23」リリース、「git switch」や「git restore」コマンドを実験的に導入 | OSDN Magazine
「Git 2.24」公開、複数の新機能が導入される | OSDN Magazine

POSTD

コードの半減期とテセウスの船 | 開発手法・プロジェクト管理 | POSTD
モノリシックなバージョン管理の利点 | プログラミング | POSTD
GitトラブルをGetしてしまったら:バージョン管理のお話 | POSTD

Qiita

gitでシンプルなデプロイ環境を作る - Qiita
AdventCalendar - git bisect で問題箇所を特定する - Qiita
Git blameを使って効率の良い犯人探し(w - Qiita
インデントコミットで真犯人がわからなくなった場合の git blame - Qiita
気をつけて!Git for Windowsにおける改行コード - Qiita
Git コマンドまとめ - Qiita
Gitでやらかした時に使える19個の奥義 - Qiita
detached HEAD から脱出する方法を git の内部構造から探る - Qiita
gitで文字列検索、git grepとgit log -Sがとっても便利 - Qiita
git grepでディレクトリを限定して検索 - Qiita
git diff -bとgit diff -wの違いを調べた - Qiita
git-lfsでコンフリクトしたらどうなるか - Qiita
Git リポジトリの内容を zip ファイルにする - Qiita
【Git】ブランチの切り替えとかプルとか出来ないときの対処法 - Qiita
基本的なGitコマンドまとめ - Qiita
ブランチ切って更新してマージするまでの流れ - Qiita
git configをプロジェクトによって使い分ける - Qiita
GitでVisual Source Safeの使い勝手を再現する!ロック機能 - Qiita
gitのremote urlを変更する(レポジトリ移行時) - Qiita
git tagの使い方まとめ - Qiita
Git リポジトリに上がっているファイルを履歴ごと消すには? - Qiita
Githubのリポジトリからファイルを削除 - tanaka's Programming Memo
git最強のオプション filter-branch - Qiita
Git ファイルの履歴を完全に削除する
あのコミットをなかった事に。git rebase -i の使い方 | karakaram-blog
git reset --hard の復元 - Qiita
まだ git push origin するときに current branch 名を入力して消耗しているの? - Qiita
Git で変更を patch ファイルにする / patch コマンドで適用する - Qiita
[git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法 - Qiita
[git]マージ時のコンフリクトで片側の変更だけ適用する方法 - Qiita
git tagの使い方まとめ - Qiita
GitコミットメッセージにMarkdownを使えるようにする - Qiita
Gitで日本語長文のdiffをとる方法 - Qiita
Git Subtree 事始め - Qiita
git-subtree移行メモ - Qiita
git format-patchなどで複数のコミットを別のリポジトリーに変換して移植する - Qiita
GitHub Desktopで新規リポジトリ作成後、Push/Pull/同期エラーが出たときの対処 - Qiita
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita
git gcの限度設定 - ゲームエンジニアな日々
git fetch の裏側では何が起こっているか - 詩と創作・思索のひろば

GitHub

Setting your username in Git - User Documentation
Setting your email in Git - User Documentation
Taeung/git-training: Don't think about git, just do git
rgburke/grv: GRV is a terminal interface for viewing git repositories
瑣末u 🗹さんのツイート: "javascript実装のgit。ほう。ブラウザでも動作 / “isomorphic-git · A pure JavaScript implementation of git for node and browsers!” https://t.co/RSQhQv23Rq"
isomorphic-git · A pure JavaScript implementation of git for node and browsers!
isomorphic-git/isomorphic-git: A pure JavaScript implementation of git for node and browsers!

Twitter

その他

Ryou Ezoeさんのツイート: "非プログラマーのためのgit入門書、割と切実に啓蒙のために出版されてほしいし、実際私が書いてもいいんだけれど、gitを効果的に使うためには、プレインテキストで書く、CLIツールを使うといった作業も出てくるので、果たしてこれをどうすればいいのか。"
にゃおきゃっとさんのツイート: "git diff で --color-words オプション付けると単語単位でdiffしてくれるのか!!!!めっちゃ便利!!!!!行単位じゃないから本当に変更点だけが分かりやすく出る!!!!もっと早く知りたかった!!!!"
くまぎさんのツイート: "ふははは、貴様には git submodule init --update git submodule update --init のどっちが正しいか定期的にわからなくなる呪いをかけた。"
なかのん&マジックさんのツイート: "バージョン管理システムってGUI化すると面倒すぎて使えたものではない印象がある。基本的には各アプリがそういう機能を内蔵するなり、連携するなりして自動化しないとあかんのだろうなと(そして意味が分からずに使ってもらえないオチ)。"
水島宏太さんのツイート: "実名は挙げませんが、プログラミング能力が高くて、コンピュータ・サイエンスの分野でとても高名な偉い人でもgitほとんど使えないか使いこなせない人ときどきいるんですよ。そういう人の肩の上に乗っている自覚があるので、たかがツール一つでそういった方々を馬鹿にするとか恐れ多くてできないです。"
水島宏太さんのツイート: "もちろん、情報系学生がgit触れないのが主題というのは理解してますが、git触れないこと程度のことを馬鹿にするってのはそういうのとたいして変わらないと思ってます。"
qwerty2501さんのツイート: "git使ってるとここからここまでのcommitを一つにまとめたものを一つのcommitとして見れる単位が欲しくなる"
vyv03354さんのツイート: "changesetのidは内容や更新日時などをもとに生成される(改竄防止の為) その情報の一部として「親changesetのid」も含む(途中だけ差し替える攻撃を防ぐため) なので途中を変えるとそれ以後も必然的に再計算が必要 gitも同様の仕様だったはず。分散バージョン管理では避けようがないのでは… https://t.co/t7AbIGY9ON"
ドッグさんのツイート: "Git で 4b825dc642cb6eb9a060e54bf8d69288fbee4904 は特別なコミットハッシュで,最初のコミットの前の空のツリーを指すというのを初めて知った"
ドッグさんのツイート: "特別なコミットハッシュというか,空のツリーだから常に同じハッシュになると言ったほうが正しいのかな(よく分かってない)"
クニワッさんのツイート: "そうだと思います。オブジェクトの型ごとに prefix がつくので、先頭に tree でバイト数でみたいな感じになりますが、後続の内容が空なので一意になるはずです。https://t.co/SnjiyWYkYF にわかりやすい作成方法が載ってました。… "
Is git's semi-secret empty tree object reliable, and why is there not a symbolic name for it? - Stack Overflow
ドッグさんのツイート: "分かりやすいリンクありがとうございます.なるほど,first commit のツリーの sha は空だから固定値になるけれど first commit オブジェクトの sha は他の諸々が考慮されて別の値になるという感じですね… "
あずりえるさんはTwitterを使っています: 「検索すると色々なことができることがわかるが、如何せん難しすぎる。 (コミットメッセージを上書きする方法、リモートにあるブランチ名を強制的に書き換える方法、プッシュを取り消す方法など)」 / Twitter
nhoriguchiさんはTwitterを使っています: 「リリース用のタグは git-tag -a オプションで annotate tag (タグオブジェクト) 付きにして、ちょっと仮のタグを打ちたいときは -a なしにするのがよくある運用じゃないかな。」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「git の GUI frontend はボタンとかメニューには、(git xxx)の様に対応するコマンドを書いてほしい。何を言ってるのかわからんのじゃ。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Gitで、特定のコミットにおける特定のファイルの中身を表示する / 1件のコメント https://t.co/eIlTIibqL4 “git commands - How can I view an old version of a file with Git? - Stack Overflow” https://t.co/XvuO10xxR1」 / Twitter
git commands - How can I view an old version of a file with Git? - Stack Overflow
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「git format-patch... まさに今欲しいコマンドじゃないか!」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「コミットをきれいにするために歴史を改変する文化はよくわからない。」 / Twitter
tomoyaさんはTwitterを使っています 「違うちがう。本当に綺麗な人は、綺麗にしようとしてるんじゃなくて、息を吐くように普通にコミットしたら自然と綺麗になっているんですよ。生産性とか関係なく、単純にスキルレベルの話ですね。」 / Twitter
yoh2さんはTwitterを使っています 「履歴をありのままに、それこそコミット直後の push 前に気付いた typo 修正のような fixup 的なものまで記録して、履歴の追いにくさははツールでカバーというのが理想なんだろうけどあいにくツールもそれを扱う人間もそこまで賢くないからまあまあ見れた形に直してる。」 / Twitter
yoh2さんはTwitterを使っています 「あと、PR/MR 直前の rebase はそれとは違う理由でやってる。 コンフリクト起こしてるから直してと連絡受けて作業するのはロスがでかい。」 / Twitter
ドッグさんはTwitterを使っています 「過去の履歴も含めて全てのテキストを git grep するには git rev-list --all と組み合わせれば良いのを知った https://t.co/N07vFEsV67」 / Twitter
How to grep (search) committed code in the Git history - Stack Overflow
Takashi KawasakiさんはTwitterを使っています 「gitの一番良いのは、とりあえず何も考えずにgit initしておけばいいということだと思う。」 / Twitter
ぬるぽへさんはTwitterを使っています 「これ今更聞けないGit入門的な質問だと思うんですが、Gitってあるコミットのコミットハッシュが同じだったらそれ以前の歴史も全部常に同じだと言えるんですっけ?確かに昔の歴史書き換えたらそれ以降のコミットも書き換わりますよね普通」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@nullpo_head 同じですね」 / Twitter

blame

SODA Noriyukiさんのツイート: "cvs には blame はなくて「cvs annotate」なんだけど、少なくとも1999年の10月には、NetBSD 関係の chat で「cvs annotate」のことを「cvs blame」と呼んでたし、解説されなくても意味が通りました。1999年10月はsvnやgit… https://t.co/ZqtuAGmtrV"
_さんのツイート: "SVN も svn blame だけど、どこらへんに由来するだろう"
SODA Noriyukiさんのツイート: "この辺の話は、オッサン達にはジェラルド・M・ワインバーグの「プログラミングの心理学」のエゴレスプログラミング関係の記述で広まってる。名著なので若者にも読んで欲しい(最近の版の翻訳の質について悪い評判があるのが気になるけど。昔の版だと訳者は別の方) https://t.co/Db45ZlpKc6"
_さんのツイート: "ちなみに一連の blame についての話は SRE 本に `Best Practice: Avoid Blame and Keep It Constructive` という項目があったことで呟きました。人を blame するのはやめよう。… https://t.co/z0we6tGJCq"
Atsushi EnoさんはTwitterを使っています 「質問の意図はよくわからないけどgit blameしたらcommit出てくるのでそこから辿って意図を調べるのには十分だったかな…コードに書いてあってもいいけど邪魔な時もあるしコメントが適切に更新されないこともある(そしてそれをコードレビューで検出するのはきびしみある)ので一長一短」 / Twitter
qwerty2501さんはTwitterを使っています 「コードでなぜそうなってるか説明したいときにcommit logでその説明を書くって人にそれで開発ちゃんと回せるのか聞きたいんだけど だれに聞けばよいのだろう」 / Twitter
qwerty2501さんはTwitterを使っています 「@atsushieno git blameだとcommit後にファイル内の別のところを変更してフォーマッタかけると影響でてそれをcommitしてしまうとcommit logが隠れてしまいますよね。 あとファイル移動してcommit前にそのファイルに更新かけてしまうとrenameじゃなくてdelete/addになってしまって後で追うのが難しくなるかなって」 / Twitter
qwerty2501さんはTwitterを使っています 「@atsushieno それと単純にチームメンバーがgit の履歴見ない文化だったりするとなぜそうなってるかが伝わらずその後の改修に影響を与えるリスクがあると感じてるのでそういう場合もコメントに書いて見られないよりはマシな状態にしてます。 コメントメンテされないよねってのはそれはそう」 / Twitter

@fadis_

Fadisさんのツイート: "gitに唯一guiが欲しくなる瞬間がある。大和西大寺駅みたいになったgit log --graphを目の当たりにした時だ"
Fadisさんのツイート: "gitプロトコルv2: gitの通信は「通信路を確保する方法(http?ssh?)」と「通信内容の表現方法」の2層で構成されているが、後者についてGoogleが提案している新しいプロトコル。v2ではクライアントが関心の無いブランチをサーバでフィルタしてfetchできる。git-2.18から使える https://t.co/I1es9C2UOQ"
Git Has A New Wire Protocol Yielding Much Greater Performance - Phoronix
Fadisさんのツイート: "ローカルに転がっているgitリポジトリを今すぐgitwebで見たくなった時は、git instawebでgitwebを動かすためのhttpdが上がってきてブラウザが開いてそのリポジトリをgitwebで見れるようになる。git instaweb --stopしないとhttpdが上がりっぱなしになる https://t.co/3zqarBV1cR"
Git - git-instaweb Documentation
Fadisさんのツイート: "で、従来git instaweb時にgitが呼び出そうとするhttpdはapacheかlighttpdかmongooseかplackup(Perlモジュール)かwebrick(Rubyモジュール)だったけど、新たにPythonのモジュールhttp.serverにも対応したらしい https://t.co/lvKyQey3Z4"
FadisさんはTwitterを使っています: 「gccのsvnからgitへの移行が今週末にも完了するらしい。gccのリポジトリをgitに移す試みは2018年からなされているが、20世紀から続く巨大な歴史相手に既存のツールではRAM 64GBでも足りずgcc移行ツールが新規に作られる、gitでの解釈が悩ましい歴史が発掘される等難航していた https://t.co/W7pmpA2kro」 / Twitter
It Looks Like GCC's Long-Awaited Git Conversion Could Happen This Weekend - Phoronix

@shibu_jp

会社員さんのツイート: "@shibu_jp `git checkout -` で前のブランチに戻れますよ"
渋川よしきさんのツイート: "github、まちがって自分でマージボタンを押してしまって、revertコミットPRを作る機能を使ってもどしたんだけど、それだと最初に出そうとしたPRがマージ済みだと判定してしまうので再度PR出すのができなかった(ので歴史改変して完全になかったことにした)"
渋川よしきさんのツイート: "githubのsquash and mergeするとハッシュが変わっちゃう?git pullしてgit branch -dで消すときにハッシュが違うと、違うブランチ扱いになって強制削除じゃないとダメになるのかな・・・"
INADA Naokiさんのツイート: "squash はまとめた別コミットを作るのでハッシュ変わりますね。1コミットだけのプルリクをハッシュ変えずにマージしたいなら rebase and merge 使うのかな。 master が1つでも進んでたら rebase もハッシュ変わるので、 -D になれるしか無いかと。… https://t.co/4OHb6teyDZ"
INADA Naokiさんのツイート: "Github上でマージ後にプルリクのブランチを消して、git fetch methane --prune して、 deleted branch があったら git branch -v して git branch -D するという習慣を付けてます。もう少しうまくやりたい気持ちはある。… https://t.co/4YrVReKx3p"
渋川よしきさんのツイート: "git rebaseでコンフリクト →修正しているうちに乗ってきて、rebase中なのを忘れて作業してコミット(detachヘッダー発生) →git checkout →コミットが虚空に消える"

@msdmairitan

Masaru Iritaniさんのツイート: "Windows ソースコードが Git に移行しました。計画を最初に聞いた時には夢物語のように思えましたが、日本の開発チームでもあっという間に Git が当たり前になったように感じます。 https://t.co/9ZYv3gvwRZ"
Masaru Iritaniさんのツイート: "因みに Git の前は Team Foundation Server ですらなく、Source Depot と呼ばれる内製の集中型バージョン管理システムを使っていました。社外の豊富な情報が活かせるのも Git の大きな魅力です。"
Masaru Iritaniさんのツイート: "GVFS で Windows のリポジトリを複製中です。Git が導入されてから開発ツールの更新も早くなったので、嬉しい反面追い付くのが大変です。"

@blackenedgold

κeenさんのツイート: "コミット、ほぼ -mでやってる。むしろ複数行に跨らないといけないのはコミットが大きすぎるから分割しろって習った。"
κeenさんのツイート: "そういえば世の中にはコマンドラインからgitを使わない人がいるらしいですねって言おうとしたけどgitって-m付けなかったらデフォルトでエディタが立ち上がるんだっけ。"
κeenさんのツイート: "commit前にgit diff --cachedしてた"

@kazuho

Kazuho OkuさんはTwitterを使っています 「規模というより、正確にはブランチの構成の複雑度によるんじゃないかなぁ。squashは特に、コミット粒度が大きくなって元の変更の意図が曖昧になるので、必然性がない限りやらないほうがいいと思う」 / Twitter
はむこさんはTwitterを使っています 「色々言われて「大規模 OSS で cherry pick と revert がしにくくなるので、メンテナが泣いちゃう」は非常に理解できた。 僕も割と泣く係なんですが、隕石級確率の泣き案件のために、毎日の commit コストを上げるとのは、チーム全体の機動性が下がって生産性への影響があるかなというイメージでした。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「たとえば、なぜpr単位でcherry-pickしたいかっていうと、master以外にもリリース用のブランチが(場合により)複数あって、バックポートが大量にあるからなんだと」 / Twitter
Kazuho OkuさんはTwitterを使っています 「github flowで開発してる分にはrebaseもsquashもなくて大丈夫だと思う。first-parentだけ辿ることは大抵のgitコマンドで可能だし。フローが違うと、、、(ツイートはここで途切れている)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「PRレビューがしやすいように、PR作る段階でコミット群が汚いなら整理してもいいと思う。やっちゃダメなのは、PRレビューが始まった後にforce pushとかrebase。文脈が消える」 / Twitter
Kazuho Okuさんのツイート: "まさか-mで一行コミットログとかしたことのない真面目クンなの???"
Syohei YOSHIDAさんのツイート: "git commit -mでエディタを立ち上げないというより, みなさん git commit -vで差分を見ながらコミットメッセージを書かないのかしら ?"
Kazuho Okuさんのツイート: "git checkoutで別のブランチにうつるときに、submoduleのバージョンも切り替えてくれるハックってないのかな"
hkobaさんのツイート: ".oO(… --recurse-submodules …?)… "
Kazuho Okuさんのツイート: "ありがとうございます!!!!! gitをアップデートしながら… "

画力・博士号さんはTwitterを使っています 「(gitの操作的意味論書き下しはやりたいことの1つだったけど既にやっている人がいた!)」 / Twitter
吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@bd_gfngfn データタイプアラカルテの著者(?)がバージョン管理の意味論に関する論文を発表していて、僕もバイナリファイルとテキストファイルで一体何が違うのか?というのは長年の疑問です。 https://t.co/WhwdodFGO7」 / Twitter
2014-onward.pdf

Git - リベース
Gogs
Git - タグ
Git - Git as a Client
リリースプロセス | Yarn
Git チュートリアルとトレーニング | Atlassian Git Tutorial

GitBook

プラグイン

GitBookで外部ファイルの読み込み | 技術文書をソフトウェア開発する話
azu/gitbook-plugin-include-codeblock: GitBook plugin for including file
練習問題の解答を折りたたんで表示できないか?(in HTML版) · Issue #63 · dwango/scala_text
ymcatar/gitbook-plugin-sectionx: A GitBook plugin created for you to separate the page into sections, and add buttons to allow readers to control the visibility of each section
gitbook-plugin-regexplaceを利用して、ブロックレベル要素でMarkdownを囲む - kmizuの日記
markomanninen/gitbook-plugin-regexplace: Replace (RegEx) page section texts with given substitutes
書いた文章をレビューしてGitHubにIssueを切るためのGitBookプラグイン | Web Scratch
GitbookIO/plugin-mathjax - JavaScript
gitbook-plugin-japanese-support
gitbook-plugin-mermaid-2の導入 - Qiita
mermaid.jsが素晴らしいけどなかなか使ってる人見かけないので実例晒す(追記あり) - Qiita
ローカルにGitBookの環境を構築してmermaid.jsをプラグインで導入する | つくるログ
gitbookのmathjaxプラグインが突如動かなくなる - in neuro

Qiita

GitbookとGithubを連携して電子書籍を自動Publishする方法 - Qiita
GitBookローカル開発環境セットアップ - Qiita
GitBook MarkdownからPandoc+LaTeXで美しいPDFを生成する - Qiita
[GitBook] GitBookから生成されるPDF・HTMLのデザインを変更する方法 - Qiita
Gitbookインストール - Qiita
GitBookでAnkerを使ったLinkのURLを使えるようにする - Qiita
GitBookで体制図を書きたい - Qiita
gitbookを使ってみてわかったこと - Qiita
AsciiDoc入門 - Qiita
GitBookのPDF出力で日本語フォントをIPAGothicにする - Qiita

GitBook
What is GitBook - GitBook
GitHub - GitBook
GitbookIO/gitbook: 📝 Modern documentation format and toolchain using Git and Markdown
mizunashi_mana/TIL/tools/doc-aboutgitbook - 電気通信大学MMA
Markdown · GitBook Toolchain Documentation
Configuration · GitBook Toolchain Documentation
Plugins for GitBook
autocover | GitBook Plugins
Introduction · GitBook Starter Kit
Introduction | 技術文書をソフトウェア開発する話
技術文書をソフトウェア開発する話 - GitBook
GitBook Starter Kit - GitBook
Can I host my content on GitHub? · GitBook Help Center
Kindle形式の電子書籍(.mobi)を手動でデバイスへ転送してプレビューする方法 | Thinking Salad
gitbookで楽々ドキュメント作成
VPC内のGitlabで管理しているGitbookのドキュメントをCodePipelineとCodeBuildでS3にデプロイする話
Gitbookで生成したファイルがGitHub pagesに無視される - in neuro
How to fix HTTP 404 on Github Pages? - Stack Overflow
ドキュメントは何で書けば良いのか - in neuro

Markdown

Graphviz

Graphviz - Graph Visualization Software
graphviz / graphviz · GitLab
graphviz / webdot · GitLab
Graphvizとdot言語でグラフを描く方法のまとめ - Qiita
Graphviz - Wikipedia
テキストデータをグラフ画像に変換するツール「Graphviz」ことはじめ | DevelopersIO
データのビジュアル化を最少の労力で: Graphviz
Python上でGraphvizを使って綺麗なグラフを描く - プログラミング原人の進化論
sphinx.ext.graphviz -- Graphvizのグラフを追加 — Sphinx documentation
graphvizを使ってみる | ぬの部屋(仮)

PlantUML

シンプルなテキストファイルで UML が書ける、オープンソースのツール
PlantUML使い方メモ - Qiita
Visual Studio Code で UML を描こう! - Qiita
PlantUMLの基礎 | tracpath:Works
PlantUMLの実践応用(シーケンス図) | tracpath:Works
VSCodeで始めるPlantUML生活 | GMOインターネットグループ 次世代システム研究室
OSSテストツールを知ろう「PlantUML」 | ハートランド・ザ・ワールド
PlantUML - Wikipedia
PlantUMLのレイアウトのコツと指定方法についてのまとめ
チームで機能設計するためのPlantUML標準化 | フューチャー技術ブログ

Mermaid

Takashi KawasakiさんはTwitterを使っています 「おや、今までMarkdown Preview Enhanced使ってたけど、GitHub形式の```mermaid しか対応してなくて、面倒なことをしていたんだけど、こっちだとAzure形式の::mermaidもサポートしているのか。」 / Twitter
稀Jr.さんはTwitterを使っています 「VSCode に "Markdown Preview Mermaid Support" がありあますね。編集はこれで十分かも。 https://t.co/axch2xz0cw」 / Twitter
Yoshiyuki NakamuraさんはTwitterを使っています 「@moonmile VS Codeで編集されたMermaidダイアグラムですけど、Wikiの方ではちゃんとグラフィカルに表示される手段があるんでしょうか? …と思って自分で調べてみたところ、一応ちゃんとあるんですね。これは良いなあ…😇 https://t.co/1iMlJIrQXn」 / Twitter
SimonKenyonShepard/mermaidjs-github-svg-generator: This project allows you to generate and render mermaidJS diagrams and automatically include them in github README files
稀Jr.さんはTwitterを使っています 「@nakayoshix chrome だと GitHub + Mermaid 拡張があって SVG 表示してくれたりします。 https://t.co/Hn09aLHs5g ↓の図は見えるはず。 https://t.co/gi6SuQILFw」 / Twitter
GitHub + Mermaid - Chrome ウェブストア
COCOAシーケンス図

slideship.com

slideship.com - Create a slide, ship immediately
Markdownで手軽にスライドが作成・公開できるサービス「slideship.com」が始動:ニュースリリース|gihyo.jp … 技術評論社

Marp

Marp - Markdown Presentation Writer
yhatt/marp: Markdown presentation writer, powered by Electron.
Markdown スライド作成ツール『Marp』の開発経緯裏話 - Speee DEVELOPER BLOG
Electron で Markdownプレゼン作成ツールを作って公開するまで - Qiita
無料でプレゼンのスライドをマークダウン記法で作成できる「Marp」 - GIGAZINE
marp - Google 検索

remark

Remark
gnab/remark: A simple, in-browser, markdown-driven slideshow tool.
Home · gnab/remark Wiki
Remark使い方メモ(Markdown でスライドを作るやつ) - Qiita
markdown + remark.js + gh-pages でプレゼン資料を公開する - Qiita
markdownからスライドを作るツールを調べてみた - UNIX的なアレ
Remark.jsにMathJaxの数式を入れる方法 – はむかず!

reveal.js

reveal.js – The HTML Presentation Framework
hakimel/reveal.js: The HTML Presentation Framework
Reveal.js、Markdown、Githubでスライドを作成する。 - Qiita
hakimel/reveal.js: The HTML Presentation Framework

Marked

chjj/marked: A markdown parser and compiler. Built for speed.
Marked.js で Markdown をクライアント側でパースして表示する - Qiita
markdownをリアルタイムプレビューするWEBエディタを作ってみました(シンタックスハイライト、サニタイズあり) - Qiita
『marked.js』 を使ってブラウザ上で markdown を html に変換する方法 | phiary
JavaScript - Markdownパーサーのshowdown.js、markdown-js、markedを簡単比較 - ぼっち勉強会
Marked.jsを使って社内ドキュメントを書きやすくしよう! – cybozu developer network
node.jsでmarkdownからHTMLを生成する [2014-2-28 17:18]

highlight.js

highlight.js
marked.js で変換したコードを highlight.js でハイライト表示する方法 | phiary
コードのハイライト表示用 JS ライブラリ highlight.js の使い方 - Qiita
ソースコードをハイライトする軽量ライブラリ、Highlight.jsの使い方
highlight.jsを言語毎にカスタマイズして使う
highlight.jsの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適 | エス技研
highlight.jsを全ての言語に対応させる - ncaq
ソースコードをシンプルきれいにハイライト!highlight.jsを使ってみた | ぶちねこどっとうぇぶ
WordPress に Markdown と highlight.js を導入 – アカベコマイリ

markdown-headings

Markdownの見出しを抽出するツールを作った - EagleLand
markdown-headings
1000ch/markdown-headings: Get headings in markdown.

markdown-it

markdown-it demo
markdown-it/markdown-it: Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed
Markdown it!
markdown-it
markdown-it - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!
Node.jsでmarkdown-itを使ったMarkdown→HTML変換を行う - 情報アイランド
Markdownをクライアント側でパースする(markdown-it利用) - LionHeart SD BLOG
Markdown-Itで独自レンダリングする方法 – 踊る犬.netブログ (旧)

blog

Markdown in 2016 - Hack like a rolling stone
Markdownに目次(TOC)を表示させる - tsunokawaのはてなダイアリー
Markdownテキストを整形するAngular Markedとコードをハイライト整形するAngular Highlightjs (1/3):CodeZine(コードジン)
【レビュー】「Excel」の選択セルをMarkdownのテーブル記法でコピーできる「CopyToMarkdownAddIn」 - 窓の杜
Big Sky :: GitHub 等で Markdown に画像を貼る時は代替テキストを意識しようと思った。
k16's note: Markdown原稿をGitHubで管理して本にする仕組みが出版社で導入されないわけ
k16's note: TeXと10年戦ってわかったこと
AlminのサイトをOSSドキュメントツールのdocusaurusで作り直した | Web Scratch
機能紹介 - HackMD
Markdown+CSS組版での技術系同人誌制作時の環境 | 吉川ウェブ
MKDocsを使ってFPGA開発日記の記事まとめページを作り直した - FPGA開発日記
MarkdownエディタならTyporaが最強であるという話 - FPGA開発日記
Markdown ブロックの WikiWikiWeb 方式での書式変換 - Tociyuki::Diary
Markdown ブロックの WikiWikiWeb 方式での書式変換 (その2) - Tociyuki::Diary
Markdown ブロックの WikiWikiWeb 方式での書式変換 (その3) - Tociyuki::Diary
大量のテキストを食っても速い Markdown Editor 作った - mizchi's blog
MarkdownBuffer の実行時間の計測とパフォーマンスチューニングの余地 - mizchi's blog
mdbuf v1.0.0: 最高の Mardkown Preview を目指して - mizchi's blog
Markdown コードブロックの JavaScript を bundle して実行するエディタを作ってみた - mizchi's blog
MDX eXtended = MDXX | AMP対応 Markdown Compiler と静的サイトジェネレーター - mizdev
MDsveX - Svelteの中のMarkdownの中のSvelte
markdownがもっと捗るキーボード設定:全角入力時も記号はなるべく半角になるようにする - Yabu.log
WordPressをMarkdownで執筆、あるいはMarkdown→HTML変換とGitHub Pagesの自動更新 | IIJ Engineers Blog

Qiita

Qiita - Markdown記法 チートシート - Qiita
GitHub Markdown + TeX記法で数式を任意の位置で合わせたい - Qiita
GitHub Markdown + Tex記法で任意の数式番号を書きたい - Qiita
GitHub Markdown + TeX記法で数式に空白を入れたい - Qiita
Markdownテキストでシーケンス図とフローチャートを描く - Qiita
マークダウン中にコメント行を入れる - Qiita
Markdown文法まとめ - Qiita
GitHub Flavored Markdown は何であって何でないか - Qiita
CommonMark
CommonMark Spec
A formal spec for GitHub Flavored Markdown - The GitHub Blog
GitHub Flavored Markdown Spec
QiitaやGitHubのコメントで折りたたみ要素を作る方法 - Qiita
GitHub 上のマークダウンを Travis CI 経由で Qiita に記事として投稿する - Qiita

GitHub

README.mdファイル。マークダウン記法まとめ | codechord
markdown-cheatsheet-online
higuma/markdown_cheat_sheet: Markdown cheat sheet
markdown-memo/markdown.md at master · owlat7/markdown-memo
OS作れないマンさんのツイート: "Atomのmakrdown-previewが使っているライブラリを使う手もあるか?https://t.co/vEBD63YBKL"
gjtorikian/roaster: Turns a raw and crunchy Markdown file into nice and smooth output
syntax-tree/mdast: Markdown Abstract Syntax Tree format
github/markup: The code we use to render README.your_favorite_markup
remark - markdown processor powered by plug-ins
wooorm/remark: Markdown processor powered by plugins
EFMarkdown on CocoaPods.org
EyreFree/EFMarkdown: A lightweight Markdown library for iOS.
commonmark/cmark: CommonMark parsing and rendering library and program in C
thlorenz/doctoc: 📜 Generates table of contents for markdown files inside local git repository. Links are compatible with anchors generated by github or other sites.
joeyespo/grip: Preview GitHub Markdown files like Readme locally before committing them.

Twitter

おそろしく速い手刀さんのツイート: "MarkdownコンパイラがGithubと違う動きをする!このMarkdownはクソ!って言うまえに、Github Flavored Markdown という規格がいかに Commonmark から逸脱しているかをな…"
( ꒪⌓꒪)さんのツイート: "markdown でコマンドラインのコードハイライト指定する時に ```sh より ```console の方が良いという知見を得た。 https://t.co/PgYsVYYRXy"
ドッグさんはTwitterを使っています 「Issue や PR に何か stats をコメントするタイプの bot でコメントを適宜更新する必要がある場合,生成する markdown テキスト内に <!-- ... --> で bot 向けの情報を JSON あたりで埋めておくの良さそう」 / Twitter
広江 克彦さんはTwitterを使っています 「文中の改行は無視してくれればいいのに、ブラウザが半角スペースとして表示してくれてしまうのはCSSで制御できるのだろうか?」 / Twitter
yoh2さんはTwitterを使っています 「Markdown もこれなので、そのままでも読みやすいようにと適宜改行を入れてるとレンダリング結果にポツポツ空白が挟まって残念な気持ちになる。」 / Twitter
yoh2さんはTwitterを使っています 「改行前後の文字種 (行頭の空白は無視) によって空白を入れるかどうか判断するようになるといいのかな。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「脚注をサポートしているmdの実装そのものは、Markdown Extra、Pandoc’s Markdown、Kramdownなどなど、たぶん有名どころがかなりある(ところでCommonMarkの脚注の現状はどうなってるんでしょうか…?)」 / Twitter
ドッグさんはTwitterを使っています 「ついでに GitHub の markdown の描画のバグも見つけた. a <!-- -- --> この行でなぜかコメントがそのまま描画されてしまう.コメント内の -- を削除すると正しく動くので,コメントのパースのミスかな」 / Twitter
ドッグさんはTwitterを使っています 「仕様見る限りでは -- は含んで良さそうに見える https://t.co/9rYbYED8fA コメントの中のテキストが <!- で終われないのと -> で始まれないの知らなかった」 / Twitter
HTML 5.2: 8. The HTML syntax
ドッグさんはTwitterを使っています 「結論から言うとこれは仕様だった.HTML 5.2 までに仕様変わったのかな? CommonMark の仕様には -- は含んではいけないと明示的に書いてあった > An HTML comment consists of <!-- + text + -->, ...(省略)... and does not contain --. https://t.co/tbbSWAgEvT」 / Twitter
ドッグさんはTwitterを使っています 「"does not contain --" の後に HTML5 spec へのリンクが載ってるけど,そのリンク先にも -- を含んではいけないとは書いてないので,多分どこかで変わったんだろうなぁ」 / Twitter
ドッグさんはTwitterを使っています 「HTML 5.1 → 5.2 の間で変わったのか.5.1 では -- は含められない仕様になってた https://t.co/xJzQODmbbv > nor contain two consecutive U+002D HYPHEN-MINUS characters (--)」 / Twitter
HTML 5.1 2nd Edition: 8. The HTML syntax
HTML Standard
ドッグさんはTwitterを使っています 「例えば今回の <!-- -- --> みたいに markdown として不正な文字列に対してレンダラがどう動くべきなのか謎い.今回のだと,テキストの後だと一連のテキストノードとして扱われて,行頭とかだとコメント扱いになってる(コメントの終端が無い扱い?)っぽいのでパーサの気分次第にみえる」 / Twitter
ドッグさんはTwitterを使っています 「markdown ではリンクのラベルをラベル定義より先に書けるから,そこを正しくパースしようとするとインクリメンタルパースができないのか.例えば [foo][bar] がある時,bar が存在するとリンクにしないといけないし,存在しないと [foo][bar] 全体をただのテキストノードにしないといけない」 / Twitter

クロスリファレンスとは 「相互参照」 (cross-reference, x-ref, xref): - IT用語辞典バイナリ
CommonMark Spec
Markdown Variants
RFC 7763 - The text/markdown Media Type
Daring Fireball: Markdown Syntax Documentation
Markdown - Wikipedia
StackEdit – In-browser Markdown editor
Simplenote
なぜScrapboxはMarkdownを採用していないのか - 増井俊之
Kibela キベラ| 人と情報に自由を|個人の力を組織の力にする情報共有ツール
HackMD - Markdownで知識ベースを共作
開発者のためのスライド作成ツール Slidev がすごい
slidevjs/slidev: Presentation Slides for Developers (Public Beta 🎉)

Releases

GitHubのリリース機能を使う - Qiita
GitHubのリリース(Releases)を削除する - Qiita
GitHubのAPIを使ってReleaseの最新バージョンを取得する - Qiita

reject(CVE)

Hiroshi SHIBATAさんはTwitterを使っています 「@__gfx__ @bulkneets 「脆弱性じゃない」というのを、https://t.co/jrxvm1HXa2 から reject というのを出すのが良いと思います。油断するとこの CVE id をもとに dependabot が動いたり、期待しない FUD なども出てきます(本当にだるい...)」 / Twitter
CVE - Common Vulnerabilities and Exposures (CVE)
FUJI GoroさんはTwitterを使っています 「@hsbt @bulkneets そうそう、dependabotとかが動き出すのを懸念してます。 ほぼメンテされてないモジュールだし、さらにいうとぼくはあまり関係もないのですが、エコシステムに対する攻撃…とまではいかないものの雑すぎるムーブでだるいですね…。」 / Twitter

Compiler

Compiler Explorer
WebAssembly Studio
WebAssembly/proposals: Tracking WebAssembly proposals
Repl.it - Haskell Online Compiler & Interpreter
Try F#
x86 and amd64 instruction reference
opv86
Andreas AbelさんはTwitterを使っています 「The data shows that 'move elimination' is active on Rocket Lake, so the ICL065 issue appears to be fixed. https://t.co/fWGqjRH5wo」 / Twitter
uops.info - Table
電子情報通信学会知識ベース |トップページ
QBE - Compiler Backend
https://cfallin.org/blog/
Parsing Algorithms | Hacker News
Lee and Seshia, Introduction to Embedded Systems
Microbenchmarking Return Address Branch Prediction « Blog
ABAB↑↓BAさんはTwitterを使っています 「ワイが真の初学者の為の学習サイトを立ち上げたる! ってことで、まだGatsbyの初期設定の残り香があるけどテスト投稿。 モットーは、初学者に環境を用意させない。その場で試せる。練習問題で必ずコードを触らせる。ツイートでコード共有しやすく。 感想とか指摘をください https://t.co/zreGEngtGz https://t.co/Ut3cobMtf1」 / Twitter
Home | Gatsby Default Starter

重点項目

その他

その他

スタック使用量の算出 | CS+ V4.01.00
微分方程式と差分方程式(漸化式)
TCD CS David Gregg
プレースホルダとは - IT用語辞典
lifeLOG + REPOsitory: 2^64 (2 の 64 乗) って、どれぐらい?
linux - ARG_MAX は何故必要?(あるいは、ARG_MAX はどう決まる?) - スタック・オーバーフロー
情報理論の父と呼ばれるクロード・シャノンの功績とは? - GIGAZINE
Clojure - Learn Clojure - Functions
プレースホルダ構文完全解説
プログラミング言語を作る!?自作言語にハマる理由と"Shiika"のこだわり | Offers Magazine
approximate computing survey - Google Scholar
新規開発でnull安全が既定になった「Dart 2.13」「Flutter 2.2」 - 窓の杜
リードタイム MTTR 変更失敗率 - Google 検索
Raku 入門

代数的データ型

代数的データ型 - Wikipedia
Haskell 代数的データ型 超入門 - Qiita
代数的データ型と初等代数学 - ryota-ka's blog
代数的データ型とその双対性 - エムスリーテックブログ
代数的データ型 - ウォークスルー Haskell
6.pdf
shapelessと代数的データ型
TypeClass.pdf
代数的データ型のひみつを暴いて関数型プログラムを攻略する|IT勉強会ならTECH PLAY[テックプレイ]
haskell - 代数的データ型は木構造で表現されるとあるが、どのような構造になるのかよくわからない - スタック・オーバーフロー

部分型付け

ポリモーフィズム - Wikipedia
resume8.pdf
幽霊型による部分型付けの紹介
Swiftと3種類のポリモーフィズム - Qiita
TypeScriptで関数の部分型を理解しよう | Kabuku Developers Blog
構造的部分型 (Structural Subtyping) - サバイバルTypeScript-TypeScript入門
プログラム言語論 - 8.pdf
部分型付けの動作概念 | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
型システムの勉強 | 雑記帳
漸進的型付けの未来を考える - yigarashiのブログ

合併型

TypeScriptの合併型と交差型ついて学ぼう
Scalaの合併型と全称型
「合併型」のご紹介:Scala 3の新しい型表現(2)|Scalapedia
(1)合併型
TypeScriptの型入門 - Qiita
Typescript(合併型と交差型) - 駆け足エンジニアの記録

パーサコンビネータ

Typescriptでパーサコンビネータを書いてみる - teruuuのブログ
Java パーサコンビネータ 超入門 - Qiita
パーサコンビネータで構文解析をより身近なものにする | mediba Creator × Engineer Blog
Java - パーサコンビネータとは、何なのでしょうか|teratail
パーサジェネレータ - Wikipedia
第5章 パーサコンビネータ―小さなパーサを組み合わせて大きなパーサを作る:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
Chapter4.pdf
Parser Combinators in Swift
Scalaのパーサコンビネータにふれる - Uzabase Tech
パーサコンビネータ - mrsekut-p

並列・並行

新しい並列for構文のご提案
分散処理に詳しいオタクさんはTwitterを使っています 「"平行性"って英語だと"parallelism"なんだけど、"parallelism"を(計算機の文脈で)和訳すると"並列性"になるのどっかでバグってると思う。まぁ並行性と平行性はそもそも全然別の話なんじゃが。」 / Twitter
こば(右)- Koba as a DB engineerさんはTwitterを使っています 「@kumagi 並行性をconcurrencyと訳したりもしますね。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「@tzkb ちなみに僕はごっちゃになった時はparallelという単語は縦線が多いから同じく縦線の多い"列"と紐づけ、concurrentという単語はそれに比べると横線が多いので"行"と紐付けることで、並行・並列とconcurrent・parallelの混乱を解決しています。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「僕の感覚では 並行: 朝ご飯を食べながらニュースを見る、のように複数の作業を手段はどうあれ時系列的にオーバーラップした状態でやること 並列:白米を咀嚼して嚥下しつつ目がニュースの映像を解釈して理解する、のように実際の動作が同時に行われる事。仕事の種類は関係ない https://t.co/7CMRYQGNgl」 / Twitter
君たちの「並行」の理解は間違ってる
分散処理に詳しいオタクさんはTwitterを使っています 「ご飯時にテレビをつけてさえいれば、ニュース鑑賞と食事を実際は交互にやっていてもそれは並行作業とは呼べる。目的が複数あれば並行。 それの効率化として咀嚼する間に暇な目と脳をニュースに向けるのなら並列作業。目的の数に依らず独立したアクチュエーターが複数あれば並列。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「つまり並行・並列ってのはラベルを付けるレイヤーが違うので、並行かつ並列という状況もありうるし、例えば両手に箸を持つ事により倍のスループットで白米を口に運ぶというのならそれは並列と呼べる。計算処理にDMAをオーバーラップさせるのも複数のアクチュエータを同時に動かすので並列処理。」 / Twitter
分散処理に詳しいオタクさんはTwitterを使っています 「普段のCPUもメモリコントローラーとALUが同時に動いとるやんけみたいなクソリプを無限につければ何でも並列処理とは呼べるんだけど、まともな文脈において並列処理ってのは「複数のアクチュエータを同時に駆動させる事による高速化」を縮めて言ってるだけなので高速化とは関係のない文脈では使わない。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「並行に関して言うと concurrent が con-current じゃなくて concur-ent なのは罠だと思う。register 的なアレ」 / Twitter
KOBA789さんはTwitterを使っています 「これは定義ではないけれど、並列化はそれらのタスクを直列に実行したときよりも完了までの時間が短くなることをしばしば期待するよね」 / Twitter
KOBA789さんはTwitterを使っています 「下のレイヤーの詳細を知らずに速いソフトウェアを作れるわけなかったわ。大変失礼しました」 / Twitter
_ko1さんはTwitterを使っています 「@KOBA789 下回りの詳細を知らないと速くできないCSの敗北」 / Twitter
KOBA789さんはTwitterを使っています 「@_ko1 leaky abstraction に勝ちたい」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「concurrentとparallelについては昔@kumagiさんとやらかしたことがあったなあ(ぉぃ 「concurrentとparallelの違い説明会」 https://t.co/M3TT95Lgm2 個別の事例に対しこれは concurrent? これはparallel?って判断すれば意見はほぼ一致すると思うんだけど、一般的に説明しようとなんか紛糾する?」 / Twitter
concurrentとparallelの違い説明会 - Togetter
Toshio HirotsuさんはTwitterを使っています 「@hidemotoNakada @_ko1 昔、殆どの環境が (physical に) single thread だった時代には、論理的に同時に走る (incl. time slicing) を並行(Concurrent)、物理的に同時に走るを並列(Parallel)と呼んでいた時代もあったような。」 / Twitter
_ko1さんはTwitterを使っています 「なお、私の理解: (走らせれば終わる)複数のタスクについて、 並行:待ってればいつか全部終わること(論理的に同時) 並列:並列計算機において、物理的に同時に走ること」 / Twitter
_ko1さんはTwitterを使っています 「@t_hrt @hidemotoNakada 昔ブックオフで買った情報処理大辞典というのを見てみました。 並列は物理的に同時っぽく書いてありますが、並行処理はあんまり論理的じゃなかったようです。 https://t.co/bc1ukJrWnF」 / Twitter
yohさんはTwitterを使っています 「並行/並列の"厳格な"定義はハナから無いと考えたほうが気楽なのかもしれず 文脈依存説」 / Twitter
yohさんはTwitterを使っています 「といいつつ 個人な感覚では タスク記述の論理的な分離性が主眼=並行(concurrent)/タスク処理の物理的な高速化が目的=並列(parallel) 派」 / Twitter
画力・博士号さんはTwitterを使っています 「「並行処理に対してユニットテストを走らせる」ということ自体がナンセンスな気もするんよな,こういうところこそbisimulationの証明手法や(higher-order) model checkingが活かせる対象なんじゃないかなと思える」 / Twitter
画力・博士号さんはTwitterを使っています 「「活かせる」はここでは特に「産業的にも要請されやすい」の意です」 / Twitter
Yoshimasa NiwaさんはTwitterを使っています 「雑なテストだけど、Big Sur だと TaskGroup でいっぱい Task つくると作っただけ Thread ができるけど、同じコードを Monterey で実行するとCPUの数(M1なら8個)までしか Thread ができない。Swift concurrency: Behind the scenes のプレゼンで言ってた通りの挙動してる。 https://t.co/VdnOdaoHUv」 / Twitter
thread.swift

分散プログラミング言語

Acute: high-level programming language design for distributed computation: ACM SIGPLAN Notices: Vol 40, No 9
Acute Programming Language
HashCaml
Scribble
Specifying Systems
book-02-08-08.pdf
[TLA+] TLA+と形式仕様言語 [目的と準備] | DevelopersIO
handout.dvi - lecture09ModelChecking.pdf

型安全な行列計算

shapeless で型安全に行列の積を計算する - Qiita
[1512.01898] A Simple and Practical Linear Algebra Library Interface with Static Size Checking
akabe/slap: BLAS and LAPACK binding in OCaml with type-based static size checking for matrix operations
実世界を扱う依存型プログラミングのたぶん基本~外界から安全な世界までの道 - ぼくのぬまち 出張版
動的な計算グラフの型とshapeの“半”静的推論 | Preferred Networks Research & Development

OOP

R. ShioyaさんはTwitterを使っています 「RustConf 2018 のキーノートなんだけど,スーファミとか64の時代のゲームの作りから始まり,オブジェクト指向はゲームに全くむいてない(For games, OO doesn’t really help, at all)とか,昔ながらの配列ベースの構造を発展させた ECS というものの説明がされてて面白かった https://t.co/InZWz9Wfqk」 / Twitter
My RustConf 2018 Closing Keynote
R. ShioyaさんはTwitterを使っています 「ゲームを作るのに(少なくとも古典的な)オブジェクト指向がむいていないのは体感的には昔から感じていて,“The problem with OO is that everything happens somewhere else” と書かれているように,オブジェクトの相互作用で全体の動作を実現するみたいのは作りにくいしわかりにくいんだよな.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「オブジェクト指向のメイヤー先生も「OOは、データと操作の並置ではなく、データ中心のアプローチ」と書いてはいたが、でもその独立性・自律性が別の扱いづらさを生むのはよく感じる話。 RDBとのミスマッチはわかり易いけど、多くの問題解決パターンとしてもミスマッチ多々発生してる印象。」 / Twitter

NUE/TAO/ELIS

Multi-Paradigm Language TAO
#:g1: (41)NUE/TAO/ELISのOS的側面(1984)
CiNii 論文 -  NUE/TAO/ELISのOS的側面

Vala

ValaによるGNOMEアプリケーションのプログラミング:Programing Bible - ITmedia エンタープライズ
Vala - w_o’s diary
Projects/Vala - GNOME Wiki!

MS

ボックス化とボックス化解除 - C# プログラミング ガイド | Microsoft Docs
READPERMISSION Function (Record) - Dynamics NAV | Microsoft Docs
GET Function (Record) - Dynamics NAV | Microsoft Docs

haskell-shoen
Esolang, the esoteric programming languages wiki
トップページ - nothingcosmos wiki
The Missing Semester of Your CS Education (日本語版) · the missing semester of your cs education
Medley Interlisp Common Lisp
recover-rtti: Recover run-time type information from the GHC heap
Functions | Documentation (Version 2.3) | AtoM: Open Source Archival Description Software
delphi - Strange behavior with a record as a result of the function - Stack Overflow
Abstract vs. Concrete Syntax Trees - Eli Bendersky's website
Introduction - Counterexamples in Type Systems
アセンブリ言語や機械語、高級言語といったものがなんなのかよくわかりません。それぞれに該当する言語を教えて欲しいです。C言語やPythonはどの部類に入るのでしょうか?に対する大島 芳樹 (Yoshiki Ohshima)さんの回答 - Quora

関数型プログラミング

関数型プログラミング

関数型

mumumuさんはTwitterを使っています 「関数型言語のめっちゃ基本的な疑問でどなたか教えて欲しいのですが,一般論として 副作用がない ⇔ 純粋 は正しいですか? それとも,文脈におけるそれぞれのタームの定義に依存する話ですか?」 / Twitter
mumumuさんはTwitterを使っています 「> 文脈におけるそれぞれのタームの定義に依存する話ですか? というのは,「純粋」とか「副作用がない」というのは厳密な定義ができない,みたいなニュアンスです」 / Twitter
mumumuさんはTwitterを使っています 「自分の理解では,そもそも純粋であることの定義が「参照等価性がある」ということだったのですが,これも文脈依存なのでしょうか...?」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm あ、というか副作用+参照透過性=純粋なのかと思っていました。」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm もとい、副作用なし、の意です。」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm で、おそらく嘘なので無視してください。参照透過で副作用あり、というのは参照透過性の定義を逸脱しているような気がしてきました。」 / Twitter
mumumuさんはTwitterを使っています 「独自定義と厳密定義が混じり合ってる気がしていますわね」 / Twitter
mumumuさんはTwitterを使っています 「定義が文脈によって変わる系の話かもしれない」 / Twitter
mumumuさんはTwitterを使っています 「@buri17 本でかじっただけですが,「純粋 = 参照等価性」という定義が存在することは間違いなさそうです. しかし,そもそも世間では色々な定義が混在しているのかもしれなくて困っている,という感じです...!」 / Twitter
MIURA ToruさんはTwitterを使っています 「@mumumu_vm たとえば乱数を返す関数は参照透過ではないけど副作用がないという立場もありそうですが、乱数を返す環境に影響を与えているという立場ならありとみなすような気がするので文脈依存といえばその通りなきがしています。」 / Twitter
とりさん@腹筋が弱いさんはTwitterを使っています 「式は値を返せば良くて,それ以外の環境を変化させるような余計な振る舞いは全部*副作用*だから.(過激派」 / Twitter
mumumuさんはTwitterを使っています 「みんなが使ってる副作用にも広義、狭義みたいな話がありそうで、もはや関数型言語がアカデミアだけのおもちゃでないことを考えると、厳密な定義を求めないで文脈ごとに定義を明示するべきであるという結論に達してしまった」 / Twitter
mumumuさんはTwitterを使っています 「(ちなみに、自分の理解では「副作用=プログラムの任意の状態変化」だったので、副作用はもっと緩い定義をすることもあるという事を知れただけでも収穫)」 / Twitter
timelerさんはTwitterを使っています 「高階関数のないプログラミング言語だとこういうの多く作られがち😰 https://t.co/7Ji9uMJs8Z」 / Twitter
プログラムを勉強している人の毒舌な妹さんはTwitterを使っています 「お兄ちゃん、なんで8割方同じ内容の関数が3つも4つもあるの?」 / Twitter
きしもとさんはTwitterを使っています 「@TakaoOzaki そんなことはないでしょう。必要なのは高階関数というよりも、関数(ないし手続き)がファーストクラスでないという制限のために、コードの複製が多発しやすい、というのが元のツイートの言っていることの要点ではないかと思います」 / Twitter
尾崎隆大さんはTwitterを使っています 「@ksmakoto % Prolog 'なるほど。高階関数を使うという話ではなくて、高階関数が存在しないようなクラスの言語ではと、読むべきだと。'.」 / Twitter
水無麻那さんはTwitterを使っています 「関数型は第一級関数を先取りしててすごいという言説を聞くが、オブジェクト指向もオブジェクトにより高階関数が自然な形でエミュレート出来るの、十分すごいし綺麗だと思う」 / Twitter
島鉄雄さんはTwitterを使っています 「Lispで (let ((a hoge)) ...) と書くべき所を (let (a hoge) ...) と書いてしまうとハマる… Cの if (a = hoge) ...; と同じレベルの落とし穴がLispにもある。 (ちなみに後者は、(let ((a nil) (hoge nil)) ...) と同じ)」 / Twitter
Keigo ImaiさんはTwitterを使っています 「これ論文のどこにも書かずに10年経ってしまった (実装してすぐITPLに就職してしまった) 誰かが理論にしてるのかも知れないけどまだ見たことがない。安直な方法ではある」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn Haskell'08はunsafeCoerceを使ってるのがアレですが、うまいことやれば型安全なエンコーディング(かつRevisitedのようなチャネル渡しを伴わない)も可能です(例えば https://t.co/qQrv9rj3ZL のように一つのセッションチャネルを複数の単純型付きチャネル(ここではIOモナド)の列で実現するとか」 / Twitter
betty-book-haskell-sessions/Types.hs at master · dorchard/betty-book-haskell-sessions
El Pin AlさんはTwitterを使っています 「MacQueen "Modules for Standard ML"の1985年版(functorと言う用語が初めて出てくる)、入手困難かと思っていましたが、 https://t.co/l14H7pKBaB から入手できる(72 MBのPDF)と知りました」 / Twitter
Full page fax print - Polymorphism Vol II, No 2.pdf
El Pin AlさんはTwitterを使っています 「https://t.co/dVjE4eDFTr」 / Twitter
伊津野 英克さんはTwitterを使っています 「関数型プログラミング、早期リターンができないのがつらいんだということに気付きはじめた。Rust は結構、関数型押しなんだけど、Try演算子も入ってほとんど普通の言語と同じように扱えるんだけど、Kotlinのinlineクロージャがないから、そこだけ早期リターンができない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「逆方向のリストは和田先生もなんか言ってたが、ほんと再帰で扱いにくい。順方向と対称にならない。coinductionするべきかもしれない。 a . (b . (c . ... と ((((a . b) . c ) ... の差。なぜか、Agdaの演算が後者で…」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLのリストは再帰で書いてるが本質的にはループ。ループの最大値と途中の値がすべてあることを確認できれば良い。」 / Twitter

クロージャ

実装から理解するクロージャ | κeenのHappy Hacκing Blog
島鉄雄さんのツイート: "Emacs Lisp だとクロージャが何なのかより分かり易いと思う。 この画像の連想リスト(alist)の ((count . 0) t) が、いわゆる環境で、メタファーでなくて実際に本物の連想リストを保持している。 で、setq がこの中身を直接書き換えてる。 実際に書き換わってるのが分かると思う。 Emacs は勉強になるな… https://t.co/No7IoW1GOy"
島鉄雄さんのツイート: "ちなみに、これはバイトコンパイルされてない関数の場合で、バイトコンパイルされると、クロージャの持ち方は全然別物になる。 へーそうなんだと言う感じだけど、近々バイトコード完全解説記事を公開予定なので、少々お待ちを…"
Kota Mizushima (on a diet)さんはTwitterを使っています 「オブジェクト指向言語でオブジェクトを渡すのは、実質的に高階関数を渡している(そういうオブジェクトは固有のメソッドを持つので)のであって、OOPL使っている皆さん、すでに高階関数使っているのだ。クラス使わずに1メソッドだけのオブジェクト便利に渡せると思えばいいのでは。」 / Twitter

末尾再帰

Tanaka AkiraさんはTwitterを使っています 「OCaml での tail recursive な map (逆順にもならず、無駄にメモリを確保しないやつ) https://t.co/jPix5aoHiK」 / Twitter
天泣記
Shiro KawaiさんはTwitterを使っています 「@tanaka_akr f内で継続捕まえて後で再起動すると破壊がばれるやつですね」 / Twitter
Tanaka AkiraさんはTwitterを使っています 「@anohana Lisp と書くか Scheme と書くか迷ったけど、Lisp と書いてよかった」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@tanaka_akr :-) あとCheney on the M.T.A.方式 (スタックをnurseryとみなす)だと普通に再帰しても頑張って工夫してアロケートするのとあんまり変わりませんね。Scheme以外の言語で同方式の実装ってあるのだろうか」 / Twitter
κeenさんはTwitterを使っています 「Lispでtconcって呼ばれるテクニックだ。Obj.magic使えばできるんだ。」 / Twitter

集合論

Shinji KonoさんはTwitterを使っています 「ブール値に値を持つ論理の代わりにトポスに値を持つ集合論とか書いてたが、トポスはSubobject classifierで論理値を決めるので、結局はその問題になるはず。CCCで良いやんと思うと∨がある場合(biproduct)は命題論理以外は矛盾してしまう。なので工夫が必要らしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CCCはGraphで力尽きてて、biproductの矛盾まではやってなかった。CCCと演繹定理はクライスリ圏を使うのだけやるべきだった。圏の圏はAgdaだとレベルの問題が出るってのを発見したのだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Toposもやるべきだな。Osius先生の集合論とか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「来年はチコノフもやってみたい。選択公理やりまくったし、チコノフは選択公理と同値なので面白いだろう。基底の存在が選択公理と同値とかもできそうではある。HODな集合論が手に入ったのでいろいろできる。と言っても、色々残ってるのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「残してるのは、濃度を定義する時のベルンシュタイン。ℵが冪集合で上がるやつ。Generic Filter。それから強制法だが… Toposの方が良さそう。聞き逃したの残念だったな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合とはなんですかという質問に対して今は割と明確に答えられる。無限のモデルとして自然数を二次元にした順序数が考えられる。この部分集合を集合だとしたい。でも、それでは集合が循環論法になってしまう。そこで順序数方程式(OD)を考える。その解のうち最大値を持つもの(HOD)を集合と定義する。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODの要素は順序数で集合(HOD)ではないが、HODはゲーデル数的に順序数に対応すると考えられる。簡単のためにこれを仮定すると、集合を要素に持つ集合を定義できる。順序数がメモリで、そのアドレスが個々の集合。つまりCの*と&のように集合と順序数の対応がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この時に集合HODは順序数としての順序を持つが、順序数と違って全順序にはならない。これは古典論理的には矛盾してるが直観主義論理ならば整合する。集合には∈からでる自明な順序があるが、それを対応する順序数の大小から導出することはできない。∈ならば順序数の順序はそれに従う必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「つまりHODは自明な順序を持つので整列定理は成り立っているが、排中律がない状況では、それを選択公理(この場合は空でなければ要素が取れる)に対応させることはできないというわけ。排中律があれば選択公理=整列定理。」 / Twitter
Shinji KonoさんはTwitterを使っています 「実際に反例を構築するためには選択公理を否定したモデルを構築する必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「最大値を持たない順序数方程式の解はProper class、つまり集合ではない集りになる。順序数は自分自身を含むので、それを集合Sとすると、class全体はその中で集合になる。もちろんSは、そのclassには含まれない。つまり、Sはclassの中にない集合ということになる。out of memoryだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、順序数を含むHOD(可算順序数を考えれば具体的構成できる)をモデルとする集合論がある。これはHODでは順序数が自身を含むことから自明。古典集合論だと割と面倒な条件になる。Sの要素の冪集合がSに含まれるとか正則だとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「VとLはHOD内で超限帰納法を用いて定義できるが、Lは定義可能集合を冪集合の部分集合として与える必要がある。ODは定義可能なのだが、そのうちのad-hocな定義可能集合があるとする感じ。いやODだろとするとV=Lとなる。 https://t.co/YIn5bE5luE」 / Twitter
Members/kono/Proof/ZF-in-agda: 9b0630f03c4b VL.agda
Shinji KonoさんはTwitterを使っています 「実際にV≠Lな集合論のモデルを作るためには整合的な Df : Definitions → (x : HOD) → HOD Df D x = Power x ∩ Definition D x を具体的に作る必要がある。元の順序数が非可算だとできないらしいんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODに最大値が必要な理由は「集合は階層的な無限を構成してほしい」というのと「集合を要素とする集合」を定義したからだな。最大値のないODが集合の要素になると階層的な無限にならない。冬のプロシンではそこまで気が付いてなかった。なので、そこに突っ込まれると面白かった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「最大値がないとすると矛盾になるので超気まずい。数学者がいたら確実につっこまれたと思われる。まだ、間違いがある可能性もある。ODに全順序があると思ってた時期もあって、それだとODは順序数になってしまう。だいたい一週間くらいでリカバリしてるらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「最大値があるというHODの定義は古典集合論の HOD = { x | TC x ⊆ OD } とは異なる。なので違う名前の方が良いだろうな。おそらく同じものだが。 TCは推移閉包。古典集合論だとxは集合なので意味がある。うちの場合だと自明であまり意味がない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「たぶん、bounded OD」 / Twitter
Shinji KonoさんはTwitterを使っています 「ClassがBoundedなら集合だってのはどっかにあったような。ZFでの集合は公理から生成されるものなのでBoundedなはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Classの定義は「単なる論理式」ってことらしい。でも、ほとんど集合と同じように使えるので共通のシンタックスを使うのでややこしくなってる。Agdaの場合はODとHODなので明解。型が違うって良いよね。V αが集合でVはOD。」 / Twitter
Shinji KonoさんはTwitterを使っています 「古典集合論だとなんかclass(条件)持ってきて「集合とは限らない」とかやるのでいらっとする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ZFの公理は導出できるので、集合論の別公理ってことね。ブール値モデルとかToposだと公理化はしないみたいなんだけど。なんでかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「全順序と半順序が準同型になるってのは古典論理ではなくて、直観主義論理だから可能。もちろん、これは圏論的な概念だな。なんかそういう名前があるんだろうか?」 / Twitter
Shinji KonoさんはTwitterを使っています 「コーエンモデルでは順序を持つ可算モデルから、順序を持たない可算モデルを生成してるので、そんなもんらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「カントルは直観主義論理は知ってたのかな。40年くらい差があるのか。知っていておかしくない。この頃はまだ記号論理は確立されてないが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「カントルの晩年にはラッセルホワイトヘッドのあれが出てたのだが、ラッセルに会うことはできなかったのか。ラッセルは集合論を救った人なので会いたかったろうな。ただ、ラッセルの多層型理論は複雑。でも、まぁ、だいたい今のAgdaと同じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「カントールの生涯は英語版と日本語版では量が全然違う。クロネッカーがカントールをネチネチいじめた的に書いてあるが… クロネッカーは構成主義的な立場だったらしい。カントールはむしろ非構成的な数学の重要性を確立した人なんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODとODは、もちろん同時に知ったのだがHODがさっぱりわからなくて。Bounded ODだとわかったのは今年になってから。推移閉包とBoundedの関係はなんか書けるとは思うが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「全順序と半順序の準同型っていう言い方はおかしいよな。AからBは順序が保存するが、逆は決定できない。なので半準同型みたいな感じ。」 / Twitter

データフロー指向

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「個人的には記法の問題だと思う。テキストで制御構造を「上から下に流れる」「インデントでネスト構造」の表現力と比較可能なレベルで、データフローのグラフ構造を表現可能な記法がない。図法だとスケールしない。テキストだとグラフの接続関係を把握できない。(ああわが青春のPARTS Workbench https://t.co/d5WzhDxH2C」 / Twitter
Miura HidekiさんはTwitterを使っています 「三浦 英樹さんによるデータフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?への回答 https://t.co/lJFDgeijrt 面白い質問なので思わず答えたのですが、これはぜひ識者の人の意見を聞きたいのでツイートします。」 / Twitter
データフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?に対する三浦 英樹さんの回答 - Quora
Miura HidekiさんはTwitterを使っています 「@tomooda たしかに。木構造以上の複雑なグラフ構造をテキストで表現するの急に難易度が上がりますよね」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 プログラムで扱う時にも木構造からDAGで一気に難易度が上がるので、単純にニンゲンの脳ミソの特性というだけでなく、やはり木とDAGでは問題そのものの難易度に本質的な差があるんじゃないかなーと思います。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 @tomooda 制約プログラミングになると依存関係がDAGに収まらないのでちょっと難しくなります。ただドメインに合うとむしろ可読性が上がるわけで、例えばiOSのGUIレイアウトに使われているAutolayoutはDeltablue以来の歴史を持つ制約解消系の実用例です。」 / Twitter
Nobuhiko FUNATOさんはTwitterを使っています 「@miura1729 識者じゃないし、答えでもないけど、関数型言語ってある意味データフロー指向のようにも思えますが、そういうのじゃないんですね!? (データフローコンピュータが何故あまり一般化…というと、また別の回答になると思いますが)」 / Twitter
Miura HidekiさんはTwitterを使っています 「@nfunato たしかに。このあたりは定義がはっきりしないのですが、引数が非同期に決まってくるってのが暗黙の条件に入るのかなって思っています。そうすると、Haskellが微妙です。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 @tomooda 最近FRPをやっている経験からは、ドメインを上手く限定すれば、テキストでも図式でもDAGに収まっている限りはそれほど難しくはならない気がします。そうでなければMatlab/Simulinkなんてこんなに使われていません。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 @nfunato 関数リアクティブプログラミング(FRP)はデータフロープログラミングの再来みたいなものですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@wtakuo @nfunato FRPはあまり知らなかったのですが、調べてみたら確かにデータフロープログラミングですね。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@miura1729 Elixirは実質的にデータフロー指向の言語だと思っています。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@miura1729 そしてこの性質によりSIMDアーキテクチャによる最適化が抜群に効きます。」 / Twitter

OCamlのlet recの変数の再帰使用の制限

kinabaさんはTwitterを使っています 「POPL'21論文リスト見てる。OCamlのlet recの変数の再帰使用の制限を以前までのad-hocな規則じゃなくて、型システム的にちゃんと定めるというの言われてみればなるほどだけどそりゃこうあるべきだなあ、と面白かった。 https://t.co/sp1vgdOPB3」 / Twitter
A Practical Mode System for Recursive Definitions (POPL 2021 - Research Papers) - POPL 2021
kinabaさんはTwitterを使っています 「以前の規則 https://t.co/2ze6KCnKrJ 見てても、まあそりゃそんなもんかーと思って深く考えてなかったもんなあ自分」 / Twitter
Chapter 7  Language extensions

Haskell

多相関数のデバッグ

いろはす∈ますらばさんはTwitterを使っています 「「Haskellの関数は副作用がないからデバッグしやすい」っていう人がいるんだけど,どうやったらその境地に達せられるのかが分からない・・・ printfデバッグするのに関数のシグネチャいじらなきゃいけないとかマジで無理なんだが」 / Twitter
o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@irohasu_math Debag.Trace.trace を使えばシグネチャーを変えずに print デバッグができます https://t.co/f2yFF9EqAv」 / Twitter
Debug.Trace
o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@irohasu_math Debug.Trace モジュールは base パッケージに入っているので追加パッケージのインストールなしに使えますよ👍」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellの多相関数のprintfデバッグが辛い問題は最近出た https://t.co/bfQ3PWScgJ が一つの解決策にならないかな(まだ試してない)」 / Twitter
recover-rtti: Recover run-time type information from the GHC heap
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskell でのデバッグ手法あれこれ https://t.co/6kjw7gQ9XT の内容を改訂しようとしてるけどdebugパッケージが依存の関係でそのままだとGHC 8.10で動かないな。Hoedをgitリポジトリから引っ張ってくれば動きそう」 / Twitter
Haskell でのデバッグ手法あれこれ | 雑記帳
だめぽラボ@技術書典9さんはTwitterを使っています 「動いたのはいいけど、ローカル変数が見えなくなってる……」 / Twitter

orkronさんはTwitterを使っています 「Haskellアロー記法の図はストリング図だった? 改めて見るとモノイド圏(デカルト圏)に見える。 https://t.co/dTQNRmGo2n https://t.co/eOAHg66wit」 / Twitter
Arrow syntax
orkronさんはTwitterを使っています 「以前に見かけたときは良く分からなかったけど、 今ならこれらの記事の意味が理解できそうだ。 https://t.co/1fgte423nr」 / Twitter
Haskell カテゴリーの記事一覧 - PS
みんな大好き🐐ヤギのさくらちゃん(Kadzuya Okamoto)🎯さんはTwitterを使っています 「Haskellちゃんは強い静的型付けとか純粋な関数とかでがんばった努力をガバガバな例外処理が全部台無しにするところが好き(きらい)」 / Twitter
lotzさんはTwitterを使っています 「2021年こそ Haskell を始めてみようという人! 日本語のチュートリアルがたくさん集まっている便利なWebサイトがありますよー https://t.co/iPWK35wR5b でも環境構築が面倒くさいーという人! このリンクを開けばオンラインのREPLですぐに書き始めることができますよー https://t.co/M7EX5Nmisu」 / Twitter
Haskell入門 | haskell
Repl.it - Haskell Online Compiler & Interpreter
lotzさんはTwitterを使っています 「型推論、型クラス、Lens組み合わせると最強で、ただのJSON文字列に対してまるでちゃんとしたデータ構造かのように(実際中ではそう)アクセスできるし、ネストしててもJSON文字列のまま中身を更新したりできる #Haskell https://t.co/PfXkFj7yYO」 / Twitter
lotzさんはTwitterを使っています 「https://t.co/yQsLnw0zM4」 / Twitter
Lens.Micro.Aeson
電波猫さんはTwitterを使っています 「リスト型やオプション型のようなものが作れる言語の中で、モナド則が成り立たないと困る言語がHaskellくらいしか思い浮かばなくて、モナドってプログラミングに必要なんだろうかという思いは強くなる。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「副作用のある計算」を扱うのに専用の型(IO)が必要なのがHaskellくらいしかないからなあ」 / Twitter
トデス子'\さんはTwitterを使っています 「モナドはエラー処理に役立つが、その用途には?で充分だったという説が出てきてしまった。」 / Twitter
トデス子'\さんはTwitterを使っています 「さまざまな制御構造を汎用的に扱える単一の仕組み vs エラーと非同期処理だけあれば困らなくないっすか で後者を選ぶ言語が多い印象……」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「(´・_・`)なんでモナドでいいのに、わざわざ汎用性を減らした?が必要なんですか?僕はいぶかしんだ・・・。」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「エラー処理もモナドだったら、async/awaitもモナドのフレームワークで済んでたはずだ(知らんけど)」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「うーん、でもまあ、なんか型の表現力が全然足らん気がするし、そういうのが満足にできるような型システムと、ライフタイムがちゃんとかみ合うのかどうかとか、だいぶ型システムのチャレンジングなチャレンジな気がしてきたな(´・_・`)・・・。」 / Twitter

モナド(Unix Shell)

ひさてるさんさんはTwitterを使っています 「Unix のコマンドはモノイド (cat | grep | more は cat | grep を more しても cat を grep | more しても同じだし、パイプしても結果に影響しないコマンドもありえる) なのでこの対象となる標準入出力はモナドだし、シェルは自己関手の圏 ← 乱暴な解釈」 / Twitter
wint 𝄆 9月病 𝄇さんはTwitterを使っています 「@tanakahisateru 自分もファイルの圏はいけるのか考えてみましたが、識者によるとそのままモナドに対応付けられるようです: https://t.co/NoTP6bidlK」 / Twitter
UNIX pipes as IO monads
ひさてるさんさんはTwitterを使っています 「@wint7 とりあえずエラー出そうとビルドしたら一発でコンパイル通ったときの気持ちです」 / Twitter

遅延評価(log)

Kazuho OkuさんはTwitterを使っています 「Cの場合は if で囲まれたコードを出力するマクロ書きますねぇ」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「コレ、logger あるあるで、正格評価しか無い場合はどうにかして全体を if で囲んだり、無理矢理 closure に押し込んで渡したり」 / Twitter
山本和彦さんはTwitterを使っています 「うぉー! 遅延評価が本当に役に立つ事例をもう一つ発見したぞ! ロギングだ! 正格評価だと、ログを記録しないログ関数を指定しても、引数のロギングの文字列を生成しちゃう!」 / Twitter
https://twitter.com/objectxplosive/status/1301363081939791874
How do I implement assertions?
Kazuho OkuさんはTwitterを使っています 「dtrace とかでも、probe には必ず同名の probe_enabled って関数があって、実際に probe がアクティブな場合だけ引数構築ができるようになってる」 / Twitter

Miranda

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「すごい!Mirandaのソースが公開!! https://t.co/55Etgo6hIP」 / Twitter
Edward KmettさんはTwitterを使っています 「Over the last couple months, David Turner's Miranda source code has been released! https://t.co/z9c4iUUgpm Miranda first tried the cookies 'n cream combo that is type inference and laziness, and shaped Haskell. For those interested in compiling to combinators, it's a goldmine.」 / Twitter
Miranda homepage

bright-ml

El Pin AlさんはTwitterを使っています 「言語作ってます。割と動く https://t.co/vcW7v9bs5S https://t.co/hQOJO5rGQn」 / Twitter
elpinal/bright-ml: A statically-typed programming language based on "F-ing modules"
El Pin AlさんはTwitterを使っています 「Moscow MLの再帰モジュールをふんだんに利用して実装しています」 / Twitter
El Pin AlさんはTwitterを使っています 「ああ、あとlexer / parserは、Karl CraryのHygienic Source-Code Generation Using Functors (2018)を試しに使っています 基本的にyaccだけどfunctorが生成される https://t.co/9j5Qvu74jd」 / Twitter
cmtool.pdf

Category:関数型プログラミング - Wikipedia
関数型プログラミング – OCaml
Curryで関数論理型言語を体験してみた - Qiita
函数論理プログラミング言語 Curry - Ryusei’s Notes (a.k.a. M59のブログ)

末尾呼び出し最適化

FUJI GoroさんはTwitterを使っています 「こういう経緯だったのか。暗黙のTCOはダメだよなーと常々思っていたけど、Syntactic Tail Callだったらいいと思う。 / “末尾呼び出し最適化とJavaScript - Speaker Deck” https://t.co/qljvqhVju9」 / Twitter
末尾呼び出し最適化とJavaScript - Speaker Deck
FUJI GoroさんはTwitterを使っています 「JavaScript、かなり浅いはずの再帰でも実ブラウザ環境では "Maximum call stack size exceeded" が発生しうるので、再帰は使うべきでないんだけど、再帰で書くほうが素直に書けることも多いし、STCがあれば解決できる。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptのTCO事情、そんなことになってたのか / 末尾呼び出し最適化とJavaScript https://t.co/5QRvbrChnH」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptみたいに「コンパイル先」として使われる言語はTCOがないと関数型言語が辛い」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「JavaのTCOの話はこの辺か? https://t.co/9C965yfZQB」 / Twitter
TailCalls - TailCalls - OpenJDK Wiki

Lazy K

Lazy K - Wikipedia
Church encoding - Wikipedia
Lazyk
cormoran's note - Lazy K 〜インタープリタの導入〜  (Mac)
cormoran's note - LazyK HelloWorldを目指す

高階関数

Kota Mizushima (on a diet)さんはTwitterを使っています 「私の知る限りでは、引数/返り値の両方を含めるのが標準的かなと思います。cf. https://t.co/QZenBn3RGI し、そもそも、引数で関数を受け取るもののみをそう呼ぶのは非対象ですし。 ↓」 / Twitter
Higher-order function - Wikipedia
がくぞさんはTwitterを使っています 「逆に後者を含めずに引数にだけ限定して呼ぶ流派があることにびっくりしました。どこかでそういう定義がされてたりするんでしょうかね? 自分の観測範囲だと後者も含めた定義しか見たことなかったので新鮮ですねー」 / Twitter
🈚️うひょ🤪✒📘さんはTwitterを使っています 「業務で高階関数の話をしていて、関数を引数に受け取る関数だけでなく関数を返す関数のことを高階関数と呼ぶ流派があることにしぬほどびっくりした。しかもWikipediaやそれ以外の複数の情報源にそう書いてあるんだ(?)」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「あえて、引数に限定した「定義」をしてもいいのですが、高階関数でのメリットや、その時のみ発生する問題を論じる上であんまりメリットがない気がします。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「あと、そもそも、カリー化というテクニックが、 (A, B) -> C ==> A -> (B -> C) に変換するといった感じで、基本的には「返り値が関数になる」という意味での高階関数を利用しているので、これを含めないとしたら、議論がややこしくなる気も。」 / Twitter
なたがわさんはTwitterを使っています 「@_marony 少なくとも単純型付ラムダ計算の文脈では陽に定義があって (https://t.co/YjgNFvmaaE) それなりに意味のある値なんですが、(少なくともこのあたりの分野では) これが2以上であることを higher-order と呼びます。」 / Twitter
Simply typed lambda calculus - Wikipedia
Kota Mizushima (on a diet)さんはTwitterを使っています 「なるほど。単純型付きラムダ計算(とその拡張)でorderの定義が、 https://t.co/gfkk4bKKoW なのは以前見た気がした。ただ、K山先生の講義資料にも https://t.co/S4qyDc7soS "および、返り値が関数である関数*1を総称して" とあるし、論文で高階関数を扱うときは両者を総称する事が多い気が。」 / Twitter
Simply typed lambda calculus - Wikipedia
7.pdf
Kota Mizushima (on a diet)さんはTwitterを使っています 「(おそらく)狭義には、(A -> B) - >C のような形のみを高階関数と言うらしい(?)。K山先生とかはその辺り知らないわけではないにも、A -> (B -> C)みたいなのも高階関数と説明してるのは、学部生への便宜上なのか、慣用法として既にどっちも高階関数になってるのか。どうなんだろう。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ただ、高階関数のある言語である種の検査が難しくなる、という時に、返り値に関数が出てくるケースも想定しているような気がするんだけど、勘違いしてたりするだろうか。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「CSにおける高階関数ってどの辺りが初出なのかなあと調べてたけど、とりあえず1972の論文では"higher-order function"が「普通に」出てくるな。 https://t.co/Yqy3WQufzC それ以前でも出てくるけど、数学関係の論文が多い感じが。数学における"higher-order function"を調べた方がいい?」 / Twitter
Definitional interpreters for higher-order programming languages | Proceedings of the ACM annual conference - Volume 2

モノイドや半群の概念

がくぞさんはTwitterを使っています 「Scala使うのに無理にFPごりごりに倒す必要は無いよね。 それはそれとしてFPとか関係なくモノイドや半群の概念とかを把握しているとJavaでもKotlinでもRubyでもPythonでもPHPでもTypeScriptでも他の言語でも楽に書ける処理が増えたりするよ」 / Twitter
がくぞさんはTwitterを使っています 「具体的に言うとこういう応用が効くようになるよ https://t.co/qX7prYqVlO」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「知っていると「あっ、これ...!」ってなる瞬間あるよね。SemigroupやMonoidこそデザインパターンじゃなかろうか >RT」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「本当にものすごく的確にMonoidの性質を応用した例としてはこれが面白かった。結合則を満たすから並列に実行した結果をどの順番で足し算しても問題ないように計算を分割していく例 https://t.co/idYRlXihsP」 / Twitter
Beating C with 80 lines of Haskell: wc
がくぞさんはTwitterを使っています 「この例だと入力がフラットなだけじゃなく順序に強い制約があるので、確かにスタック積んでループ回す方が読みやすいかもですね ただ、foldMap知ってるとこちら問題 https://t.co/82uH6jn6M5 も全く同じ構造の問題として捉える事ができて同様にして解けるんですよね https://t.co/ouoDVWDsXK なので(続」 / Twitter
suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「#JavaScript こういうフラットな配列から木構造を作るのってどうやったらいいんだろう? https://t.co/upGEJK5Wxi」 / Twitter
NAKAMURA AtsushiさんはTwitterを使っています 「ひどいLINQコードを書いてしまった。 でも、できるだけイミュータブルにしようとするとこうせざるを得ない。元のデータが悪いんだよなあ。 https://t.co/xVh9QdGckc」 / Twitter
https://twitter.com/matarillo/status/1302048512771645440 フラットなデータ集合からネストしたグルーピングするのに foldMap が便利だよというお話
がくぞさんはTwitterを使っています 「なので問題を見て進○ゼミでやったところだ!的に簡単に解ける問題だと認識が広がるのでお勧めですよ的な事が言いたかった感じですね。 副次的効果として入力の列が長い場合に並列化して実行効率があげられたりしますし(入力列が短いと単純にループした方が効率いい場合多いでしょうが)」 / Twitter
がくぞさんはTwitterを使っています 「最近Foldable/Traversableが(僕のTLで)話題になりましたが、これも典型的な foldMap で楽に書ける問題ですね。残念ながらTSだと標準で foldMap 無いので map().reduce() で代替してますが発想は同じです https://t.co/SdOOVIeT2m」 / Twitter
TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript
がくぞさんはTwitterを使っています 「不要なchildrenは除去する必要がありましたね https://t.co/jOrEFmeXKT」 / Twitter
TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript
がくぞさんはTwitterを使っています 「https://t.co/xlu8HMF5Wx」 / Twitter
まろ@関数型言語作曲機械学習勉強してないさんはTwitterを使っています 「関数言語が得意な人は本当にこの木構造のレベル合わせるTypeScriptのコードが読みやすい(コードの綺麗汚いではなくすんなり頭に入る)のですか? 読めるけどmap, fold(reduce)よりもループと再帰で書いた方がわかりやすくないですか?」 / Twitter

histric-1

水無麻那さんはTwitterを使っています 「ところで,関数型プログラミング is ... (僕はいまだに手続型と関数型の違いが分からないんですが,Haskell で書くプログラムは関数型で良い?)」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana 個人的には、局所的なプログラミングスタイルとしてしかなくて、少なくともプログラミング言語の分類として使用するのはもはや無意味だとずっと思っています。対立するのが(昔の)JavaやCだったころならともかく、今や大抵の言語が局所的なプログラミングスタイルとしての「関数型」を支援しますし」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep そもそも『局所的なプログラミングスタイルとしての「関数型」』というのすらどういうものかあんまり分かってないんですが,これってどっかに定義がまとまってたりするんですか?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana 公式なものとかは知りませんが、 https://t.co/YvKE5eentP でなされている説明でいつも認識しています。」 / Twitter
関数型プログラミングは本当に難しいのか | 日経クロステック(xTECH)
水無麻那さんはTwitterを使っています 「@igrep つまり, > プログラム中の記述のほとんどが「関数」で占められているスタイルを指す。 これでいいんですか?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい。私はそう思っています。」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep これって,OCaml の Printf.printf 使ったやつとかは関数型プログラミングの範疇には入らないってことなんですか?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい、だから「局所的なプログラミングスタイル」だと思っています。プログラム全体がそうなると言うことはなくてあくまでも純粋な計算で書ける部分は純粋な関数で書きましょうという話です。」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep つまり,関数型プログラミングでの関数って,純粋な関数しかほんとに含んでないってことでいいんですかね? で,純粋な関数を割と自由に扱えたり定義したりしてたら,関数型プログラミング?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい、純粋な関数を主に使えていれば関数型プログラミング」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep それって,つまりクロージャ相当の機能が無名関数の公文付きで入っていれば,大体関数型プログラミングと呼んでいいってことでいいんですかね?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana ええっと、もしかして関数型プログラミング「言語」の話をしている?私はあくまでもプログラムの「書き方」の話をしているんですけども。「言語」の方であればそうだと思います。今は多くのプログラミング言語がクロージャーも高階関数も取り入れたから「言語」をそう呼ぶ意味が減りました」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep つまり関数型プログラミングというのが純粋な関数を操作してると本人が思ってプログラムを書いてるなら関数型プログラミングと言えるのか?例えば,クロージャを C で実装して,それを使ってプログラミングしてるなら関数型プログラミングと言って良いのか?ってところが聞きたかったんですが」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep そうだということでいいんですよね?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい、そう思います。さすがにCだとやりづらそうな気はしますが。」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep C だとやりづらいというのは,クロージャみたいな機能が入ってなくて,クロージャの free とかも余計に必要だからって認識でいいんですかね? 後,ここら辺の本人が純粋な関数と捉えられるなら関数型プログラミングという話って,」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep どこかの文献に載ってたりするんでしょうか?数学的な関数といった場合には,記法とかそれが実際に純粋な関数にならない場面があるかによらず,本人が純粋な関数を使っていると思っていればそうというのは,さっきの記事からは読め取れませんでした (無料版しか見れてないですが,有料版の方にある?)」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana 文献を挙げるなら、元記事が言及しているスライドがあったはずなんですが見当たらない... 逆に言えばそれしかないです。 それとすみません、「本人がそう思っていれば」の件は言い過ぎでした。「実際に純粋な関数か」の方が重要です。」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep 中野先生の「関数型プログラミング今昔」でしょうか? https://t.co/MaoeCXt6xS この話,後半は参考文献が載ってるんですが,前半は特に参考文献ないんですよね (中野先生自身,最初に個人的な見解と断り入れてますし)」 / Twitter
120901fp key
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana それです!」 / Twitter
水無麻那さんはTwitterを使っています 「@igrep なるほど,ありがとうございます」 / Twitter
水無麻那さんはTwitterを使っています 「関数型プログラミングの定義,TL の反応見る限り,掘っても虚無になるだけな気がしてきたので,触れてはいけない話題なんだなあという感が出てきた.やはり,機械学習しつつ,話し相手の定義を慎重に探っていくしかないのか」 / Twitter

histric-2

HexirpさんはTwitterを使っています 「関数型プログラミング言語は、関数型プログラミングを推奨しているプログラミング言語であると、ウィキペディアでは定義されています(宣伝)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「俺「関数型言語の要件には『第一級関数』だけでなく『末尾呼び出しの最適化の保証』も必要」 俺「横から失礼します。言語仕様ではTCOを規定しているが実際の実装の多くはそれに準拠していない(ので事実上使えない)という場合はどうなるのでしょう」 俺「うむむ」」 / Twitter
HexirpさんはTwitterを使っています 「もう一度: 関数型プログラミングの限界と言っていたのは、「関数型プログラミング」が広すぎたので取り下げます。 Rank-1 多相と代数的データ型と単純な定義の宣言だけがあってモジュールとかはない状態では限界があるというという主張に弱めます。」 / Twitter
HexirpさんはTwitterを使っています 「https://t.co/KWas1Vaao6 この記事は、オブジェクト指向プログラミングの本質を、データとロジックを結び付けることであるとしている。そして、これを過剰に推し進めているか、あるいは言語仕様によって強制されているのが、現在のオブジェクト指向プログラミングの失敗であるとしている。」 / Twitter
Elixir から Elm の流れで、いよいよオブジェクト指向に対する懐疑心が無視できないレベルに達した2017年冬。 – ゆびてく
HexirpさんはTwitterを使っています 「この問題を、データとロジックの結びつきを正しく管理することで解決しようとするのが、ドメイン駆動開発であるのかもしれない。データとロジックの結びつきを捨てることで解決しようとするのが、関数型プログラミングであるのかもしれない。」 / Twitter
HexirpさんはTwitterを使っています 「個人的には関数型プログラミングが好きだけど、これには限界があって、プロジェクトが巨大になると、情報を隠蔽する上手い仕組みが必要になることが分かっている。この段になってドメイン駆動開発を導入していけば良いのではないだろうか。」 / Twitter
HexirpさんはTwitterを使っています 「関数の性質を何でもかんでも保証したり、依存型を使って不正なプログラムを作れないようにするという方向性は、データとロジックを不要に結びつけてしまうという罠があるのではないだろうか。」 / Twitter
HexirpさんはTwitterを使っています 「という訳で、 Intheo 言語は二層にしようと思う。 Elm 言語に高級なモジュールシステムと多重度による線形型を足したものが第一層である。それに、さらに依存型や cubical なノーテーションを加えたものが第二層である。」 / Twitter
HexirpさんはTwitterを使っています 「第一層で書かれた定義は、第二層の定義として翻訳される。そして、その翻訳された定義に対して、第二層で停止性や性質などの証明を書くことができる。」 / Twitter
HexirpさんはTwitterを使っています 「関数型プログラミングの限界と言っていたのは、「関数型プログラミング」が広すぎたので取り下げます。 Rank-1 多相と代数的データ型と単純な定義の宣言だけがあってモジュールとかはない状態では限界があるというという主張に弱めます。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「「極力イミュータブルにしてインスタンスの存在自体が状態を表す」てのは、まさにFPであって、FPとOOが直交していると言える根拠だとも思うんですよね。 しかし、普段これを自然に実践しないとわかりにくい感覚のような気もします。」 / Twitter
スマートコンさんはTwitterを使っています 「Haskell は Monad が注目されがちだけど、実用的・汎用的なプログラムを書いていくには、やっぱり Applicative や Semigroup, Monoid, Foldable, Traversable あたりの知識はあった方がよく、この辺のコンビネータを使ったり自前のデータ型に対して使ったりできるかが脱初心者の一つの基準といえそう」 / Twitter
kinabaさんはTwitterを使っています 「関数に==定義するの、RTした記事のように入力が有限(Bounded)の時に限定して全検査するしかないかと思いきや、位相空間に思いを馳せることで、たとえ無限でも (Integer→Bool)→Integer 同士の等価判定とかできるみたいな話があって面白いです https://t.co/dh4Kftznlp」 / Twitter
Topology for functional programming
d.y.d.
kinabaさんはTwitterを使っています 「https://t.co/JKnbKiq3yT 読んだ。α変換の下で同じなプログラムを同じ値に潰すハッシュ関数を書いたよという話。変数を名前文字列やde-Bruijn indexとかで表すのでなく、部分木中での出現位置がどこであるかを表す木であらわすと大体全部普通に木をハッシュする感じの作業に帰着される。」 / Twitter
Hashing Modulo Alpha-Equivalence - Microsoft Research
sumimさんはTwitterを使っています 「抽象データ型のスーパーセットのオブジェクト指向でも継承は(それ無しでは辛いけど^^;)要件ではなくなって久しいので(ある意味80年代のクックの言語機能としてのインターフェースの提案の時点で既に…)、今オブジェクト指向は抽象データ型はおろか「手続きを内包した構造体」で十分用は足りる状態」 / Twitter
sumimさんはTwitterを使っています 「そして、足りない部分は強力な型システムで補ってください…となっていて、関数型(これまた参照透明性という原義(?)から外れて、強力な型システム+αが本来みたいに語られがち)…と、なんだか区別が付かなくなってきているのが現状か。」 / Twitter

滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「そういえば,今日の講義で #LISP 評価器の構成について話をした時,その場のノリで『evalは制御装置(CU)でapplyは演算装置(ALU)みたいなもん』(そしてenvは主記憶装置やレジスタ)って言い方をしたんだけど,そういう対応付けって聞いたことないな.あながち間違いでもないとは思うのだけれども.」 / Twitter
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「コンスセルとcar/cdr/cons/eq/atomの実装完了.コンスセルは #クロージャ で実現.あらためて #ラムダ式 万能説.#LISP #Excel #lambda #programming #プログラミング https://t.co/M3joGvuxQ7」 / Twitter
リスト処理関数(cons,car,cdr,eq,atom)実装例まとめ - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には、関数型言語に対する恐怖と似てる…「状態保持は、引数/返値のみ」なので、頭の良い人だけ使えるジャグリングを頑張れ(=バカは状態の連結が作れない)みたいな(たぶん偏見)」 / Twitter
mizutaniさんはTwitterを使っています 「散々サーバレスアーキテクチャなアプリを作りまくってきた自分が言うのもだいぶなんですが「やっぱり巨大なサーバレスピタゴラスイッチを作ると辛いな!」という境地に至りました。こちらからは以上です。」 / Twitter
mizutaniさんはTwitterを使っています 「関連するLambda functionが片手で数えきれなくなったらサーバーレスは諦めましょう」 / Twitter
ken\dさんはTwitterを使っています 「@m_mizutani Step functionの自前実装はそれはそれで大変そうですけど、どうなんでしょう👀」 / Twitter
mizutaniさんはTwitterを使っています 「@ken5scal Step functionはテストが難しいのと状態遷移管理が辛くなってくるので、自分はここぞという時にしか使いたくない印象ですね…。あと細かいロジック処理は結局Lambdaを呼び出すことになるので、関数の数が増えると依存関係ムズイになりがちというのが難しいところです」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「処理系の中間言語を curry 化しています。target 言語は uncurried なので、いまは一度 curry 化したものをきれいに uncurry 化するのを書いてる」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「大昔に学んだ catamorphism とか融合変換とかそういうのを実装していて楽しさはあるんだけど、もう GHC の上に乗っかってその拡張のひとつとして実装した方が楽だった気もしてきている」 / Twitter
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「ああ,チャーチ真理値にすると条件分岐構文が要らなくなるなあ.#CharLISP に組み込めるかな?アレの場合,引数なし #ラムダ式 でくくるのはさほど煩雑ではないのだよな. #lambda #programming #プログラミング https://t.co/s2B5i7YZU3」 / Twitter
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「というわけで #CharLISP 仕様変更.構文がラムダ式とquote相当のみに.quoteにしても数値演算特化にするならば要らないのだよな.car/cdr相当も.ただ,そこまですると #LISP じゃなくなって『CharLambda』とかに改名することに.んー.#lambda https://t.co/OlrYk0NRmq」 / Twitter
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「更に仕様変更中.そういえばラムダ式も定義時はquote状態(?)だよなということを流用して文字列生成を関数実装.空リストも0で代用することにしたら,あら不思議,構文はラムダ式のみに(意図的).仕様もだいぶすっきりしたなー(そして勘違い).#LISP #lambda https://t.co/kjtsIvPM2L」 / Twitter
エヌユルさんはTwitterを使っています 「GitHub Copilotの必要性が今ひとつわからなかった理由が分かった 私がHaskell文化圏に属してるからだ Haskellでは既にボイラープレート的なコードの生成はGenericsやTemplate Haskellでやらせる でも多くの言語ではボイラープレートたくさん必要だからコード生成ツールが必要だったんですね」 / Twitter
エヌユルさんはTwitterを使っています 「Template Haskellを持ち出すまでいかなくても、HaskellやScalaのような高階関数が気軽に使える言語はコードを中に包み込ませるから不要に思えるんだよね」 / Twitter
エヌユルさんはTwitterを使っています 「どっちかと言うとHaskellにほしいものはプログラムからコメント生成定期 型で情報を管理しようとしてるから逆に型でキャッチできないデータ(部分関数などによる純粋関数の例外生成、遅延評価によるスペースリークの可能性、計算オーダーとか)は見えづらいんだよなあ」 / Twitter
関数型プログラミングの復活 - QCon Plusハイライト

依存関係グラフ

LMNtal

CSLMNtal (仮) チュートリアル
Research Areas of UEDA Lab.
LMNtal - LMNtal PukiWiki
jssst2002-dklic.pdf
_pdf

PDF

26_3_109.pdf
t-kanemt_sigss.pdf - t-kanemt_sigss2.pdf
__ォ__e_杏M_本 - A_4.PDF
1093-40.pdf
doctoral.dvi - doctoral.pdf
Ito.pdf
description_ja.pdf
SE-171-11.pdf
223208578.pdf

Makefile でファイルの依存関係をグラフ化する - Qiita
データフローと依存関係グラフの並列化
プログラム依存グラフを利用した 情報漏洩解析手法の提案と実現 - ppt download
CiNii 論文 -  プログラム依存グラフ可視化ツールの開発
プログラム依存グラフを用いたリファクタリング候補の特定と可視化 : 2010-12|書誌詳細|国立国会図書館サーチ
佐々木 晃 (Akira Sasaki) - プログラム依存グラフを用いた機能性によるソースコードの分類 - 講演・口頭発表等 - researchmap
PDG (プログラム依存グラフ) : R-Study
依存関係グラフ
依存関係フローグラフの例
Understand 5の新機能・改善点 | テクマトリックス株式会社
依存関係 | Understand
Understand Blog: グラフィカルビュー - 依存関係グラフ
依存グラフの解決を行うオブジェクトが必要な理由 #CodePiece
クラスの依存関係グラフ 4 - 超ウィザード級ハッカーのたのしみ
algorithm - トポロジカルソートの依存グラフのエッジ方向? - 初心者向けチュートリアル
SQLスクリプト上でのテーブルや共通テーブル式の依存関係を可視化する|Dentsu Digital Tech Blog|note
Pythonコードの依存グラフ生成 - Zaike Yuki Blog
pythonの依存関係解析ツール、pydepsを使う - Techブログ - MNTSQ, Ltd.
phpを使って簡単な依存グラフを可視化する方法は?

クエリ言語

GraphQL(クエリ言語について) - Qiita
クエリ言語の紹介 | Elasticsearchリファレンス [5.3] | Elastic
Logging のクエリ言語  |  Google Cloud
クエリ言語を理解する - Azure Resource Graph | Microsoft Docs
QUERY - ドキュメント エディタ ヘルプ
クラスタークエリ言語 - Amazon Elastic Container Service
Logica | Modern Logic Programming
BigQuery ドキュメント  |  Google Cloud
GoogleがCloud Monitoring用のクエリ言語”Monitoring Query Language”をGAリリース

停止性問題

正当性・停止性

チューリングの停止性問題 | IIJ Engineers Blog
termination.pdf
typedlmd.pdf
Microsoft PowerPoint - 13comp.ppt - 13comp.pdf
Microsoft PowerPoint - 02diag.pptx - 02diag.pdf
停止性問題について考える。Halting Problem - Unityでインディゲーム道!
3.handout.pdf
Turing machine の停止問題
チューリングマシンの停止性問題 - Thoth Children
どんなコンピューターにも出来ない事 〜停止性問題〜|越境するテクノロジー|note
Microsoft PowerPoint - 6.pptx - 6.pdf
p1.dvi - 16_15.pdf
ソフトウエア工学資料 - programVerification.pdf
IPSJ-Z81-2N-02.pdf
https://nagoya.repo.nii.ac.jp/record/19059/files/IPSJ-TPRO0402003.pdf
20世紀の数学が直面した計算することの限界—神様のコンピュータは止まらない?— | サイエンス&テクノロジー | 研究・社会連携 | 京都産業大学
itp.dvi - itp.pdf
Computability2019-12 - Computability2019-12.pdf
バカ犬を使った停止性問題のわかりやすい例え - 明日とロボット
03-correctness.pdf
algorithm4.pdf
Byron Cook: Terminator - Proving Good Things Will Eventually Happen | Charles | Channel 9

停止性問題

停止性問題

停止性問題 - Wikipedia
ゲーデルの不完全性定理 - Wikipedia
ゲーデル数 - Wikipedia
カントールの対角線論法 - Wikipedia
カントールの定理 - Wikipedia
濃度 (数学) - Wikipedia
連続体仮説 - Wikipedia
パラドックス - Wikipedia
ラッセルのパラドックス - Wikipedia

電子情報通信学会知識ベース

電子情報通信学会知識ベース |トップページ
06gun_02hen_ab.pdf
06gun_02hen_01.pdf
06gun_02hen_02.pdf
06gun_02hen_03.pdf
06gun_02hen_04.pdf
06gun_02hen_05.pdf
07gun_01hen_ab.pdf
07gun_01hen_01.pdf
07gun_01hen_02.pdf
07gun_01hen_03.pdf

バカ犬を使った停止性問題のわかりやすい例え - 明日とロボット
停止性問題について考える。Halting Problem - Unityでインディゲーム道!
20世紀の数学が直面した計算することの限界—神様のコンピュータは止まらない?— | サイエンス&テクノロジー | 研究・社会連携 | 京都産業大学
【コナハン】「人と機械の停止性問題」/「tbn*echo」の小説 [pixiv]
マンガ6.b「停止性問題」 | ラビリンス人工知能
停止性問題は決定不能→バグのないソフトウェアは作れない? - sumiiのブログ
高階差分にもとづくループ停止性証明方法
「バグのないプログラム」と「バグのないプログラムは作れない」と停止性問題について - noopな日々
Magic: The Gatheringのルールが本質的に不完全であることの証明|Memeplexes
ライスの定理 - Wikipedia
チャイティンの定数 - Wikipedia
無限ループ - Wikipedia
モデル検査 - Wikipedia
二分決定図 - Wikipedia
充足可能性問題 - Wikipedia
抽象解釈 - Wikipedia
SPINモデルチェッカ - Wikipedia
制御フローグラフ - Wikipedia
決定問題 - Wikipedia
コラッツの問題 - Wikipedia
Shinji KonoさんはTwitterを使っています 「ゲーデルの不完全性定理とチューリングマシンの停止性の問題は、両方とも自己参照命題と対角線論法の二つの証明があり別物。後者は番号付けを通して自己参照する感じ。」 / Twitter

機械学習

機械学習 停止性問題 - Google Scholar
AI研究における「ブラックボックス問題」とは何か | Forbes JAPAN(フォーブス ジャパン)
Ceron - 機械学習によって解決できるかどうかが証明不可能な学習モデルが発見される - GIGAZINE
アラン・チューリング「人工知能の “考え方” は我々とは異なる」 | and AI. – 人工知能のwebメディア
いまさら不完全性定理と人工知能について - 再帰の反復blog
AIは数学者にとってかわれない、これはチューリングが既に証明済み - 団塊亭日常

制約ソルバー

連言標準形

uint256_tさんはTwitterを使っています 「連言標準形と積和標準形って同じようなものなんだろうか」 / Twitter
ゆかたゆさんはTwitterを使っています 「@uint256_t 積和標準形は論理積の論理和であって、「変数に何を代入しても条件を満たす」もの(つまり同値変形)を見つけるために使います。 連言標準形は論理和の論理積であって、「ある変数を代入して条件を満たす」ものを見つけるために使います。 という説明を今思いつきましたが、鉞が来そうな気がしています。」 / Twitter
uint256_tさんはTwitterを使っています 「@yukata_yu なるほど (連言じゃなくて選言標準形でしたね)」 / Twitter

SAT/SMT

テストケース生成

32_1_103.pdf
ソフトウェア科学特論: 命題論理とSAT
KJ00005931319.pdf
SAT/SMTソルバの仕組み
基盤(S)離散構造処理系プロジェクト(北海道大学サイト) セミナー
高速SATソルバーの原理と応用 - nabeshima.pdf
2-2.pdf
07gun_01hen_02.pdf
lecture4.dvi - lecture4.pdf
高速SATソルバーの原理と応用 - 20141015-atos10.pdf
m_1205089.pdf
高速SATソルバーの原理と応用 - 2701.pdf
はじめてのコンコリックテスト - S4-1.pdf
37136500.pdf
OGAWA.pdf
https://swest.toppers.jp/SWEST10/minutes/S23-a.txt
2H5-OS-03b-5.pdf
10-6-B4-4.pdf
情報基礎特論
JP2014186407A - テストケース生成方法、テストケース生成装置およびプログラム - Google Patents
人工知能学会 第106回人工知能基本問題研究会(SIG-FPAI)
魔術師見習いのノート
充足可能性の意味・用法を知る - astamuse
PowerPoint プレゼンテーション - ando_lab_intro_b4_2020.pdf
宋 剛秀 (Takehide Soh) - マイポータル - researchmap
教員詳細 - 番原 睦則
Mutsunori Banbara's Web Page (in Japanese)
特開2015-22515 | 知財ポータル「IP Force」
九州大学-研究者情報 [松永 裕介 (准教授) システム情報科学研究院 情報知能工学部門]
甲1514_本文.pdf
SAT技術の進化と応用 パズルからプログラム検証まで 特集 基 応 専 般 SAT 技術の進化 番原睦則 神戸大学 鍋島英知 山梨大学 SAT ソルバー 地区 1 地区 2 地区 3 地区 4 The story of satisfiability is the tale of a triumph - PDF Free Download
DLPDFR013375_P1-61.pdf
Sigss2012.pdf
業績

モデル生成

144449495.pdf
IPSJ-JNL5502035.pdf
KJ00009572843.pdf
命題論理 SAT モデル 生成 - Google 検索
393.pdf
90001267.pdf
if12_168.pdf
PowerPoint Presentation - OGAWA.pdf
充足可能性問題 (SAT)のQUBO表現 -最大独立集合問題に帰着させる方法- T-Wave
000049838.pdf
F_039.pdf
論理と計算 講義ノート - logic2018spring-draft.pdf
2E1-J-1-03.pdf
SAT µ»½Ñ¤òÍѤ¤¤¿ Áȹ礻¥Æ¥¹¥È¥±¡¼¥¹À¸À® - erato_seminar_20120706.pdf
システム検証論 -モデル検査によるシステム検証- - hand4.pdf
C 言語ベース設計に対する高位設計検証技術 - das2009-fujita.pdf
スライド 1 - Kameya-IBISML-slides.pdf
SAT/SMTソルバを自作してみる話 - るくすの日記 ~ Out_Of_Range ~
or55-11_706.pdf
人工知能学会 第97回 人工知能基本問題研究会 (SIG-FPAI)
学位論文要旨詳細
Theses - 岩沼研究室
jsai08.pdf
石畠正和 : Masakazu ISHIHATA - Publication
Microsoft PowerPoint - 8.pptx - 8.pdf

C3

SAT/SMTソルバを自作してみる話 - るくすの日記 ~ Out_Of_Range ~
RKX1209/c3: The C3, SMT/SAT solver written in C.
SAT ソルバで数独を解く方法 - まめめも
2009-02-08
Decision Procedures - Bit-Vectors
SMT-LIB The Satisfiability Modulo Theories Library
SATソルバを使うためにCNFを作る - soutaroブログ
DPLLアルゴリズム - Wikipedia

blog

SATソルバを使うためにCNFを作る - soutaroブログ
SAT/SMTソルバの仕組み - scrapbook
ヒビルテ(2012-08-26)
Knuth先生の『TAOCP 7.2.2.2 Satisfiability』を読む
SMT2ファイルの書き方

PDF

IPSJ-MGN570811.pdf
27_3_24.pdf
three_wise_men - 160307-16.pdf
Sigss2012.pdf
fose2012.pdf
general2-3.pdf
37136500.pdf
ソフトウェア科学特論: 命題論理
特集「最近のSAT技術の発展」
ソフトウェア科学特論: 命題論理とSAT
encoding.dvi - encoding.pdf
110008106386.pdf
SAT¥½¥ë¥Ð¡¼¤ÎºÇ¿·Æ°¸þ¤ÈÍøÍѵ»½Ñ
CiNii 論文 -  SATソルバ・SMTソルバの技術と応用
Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł - YATABE.pdf

スライド

SAT/SMTソルバの仕組み
_pdf
three_wise_men
000049838.pdf
The Art of De-obfuscation - Speaker Deck

Wikipedia

二分決定グラフ

講義情報

アルゴリズム特論
S. Minato's Course Information (in Japanese)
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論
アルゴリズム特論

二分決定図 - Wikipedia
ブール関数 - Wikipedia
二分木 - Wikipedia
決定木 - Wikipedia
真理値表 - Wikipedia
ブール代数 - Wikipedia
ベン図 - Wikipedia
カルノー図 - Wikipedia
クワイン・マクラスキー法 - Wikipedia
選言標準形 - Wikipedia
連言標準形 - Wikipedia
否定標準形 - Wikipedia

充足可能性問題 - Wikipedia
制約充足問題 - Wikipedia
命題論理 - Wikipedia
恒真式 - Wikipedia
数理論理学 - Wikipedia
エルブランの定理 - Wikipedia
DPLLアルゴリズム - Wikipedia
タブローの方法 - Wikipedia

Qiita

「サイゼリヤで1000円あれば最大何kcal摂れるのか」をSMTソルバー(Z3)で解いてみた。 - Qiita
z3 (smtソルバ) で遊ぶ - Qiita

Twitter

るくすさんのツイート: "UCLID、適当に変数のビット幅を減らしてみてUNSATになればUNSAT proofを取り出す。でproof以外のクロージャを1変数に置き換えて規模を削減した物にbit-blasting。これでSATになればproof部分のビット幅が足りてない事が原因というヒューリスティック"
るくすさんのツイート: "Bit BlastingとTseitin encoding実装しなおさなきゃ駄目だ"
Shinji KonoさんはTwitterを使っています 「SATの変数の数は線形だが、それに全部引っかかると指数乗になる。解が多くなると易しくなってしまうので絞る必要があるが、そうすると関与する変数が多くなり、それを見つけるのは容易しになる。繰り返しネックを作るには…」 / Twitter
Shinji KonoさんはTwitterを使っています 「変数の組合せを変えていく必要があるが、変数の数には限りがあるので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「結局、変数の数がないとだめ。しかし、それは線形にしか増えないので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「というわけなのでP=NPがdefenceできてるのは驚異ではあるな。決まったパターンでしかネックを作れないことがわかって肯定的に解けてしまう可能性もある。」 / Twitter

SAT/SMT by Example
openSUSE/libsolv: Library for solving packages and reading repositories
pycosat 0.6.1 : Python Package Index
PicoSAT
wkschwartz/pigosat: Go (golang) bindings for Picosat, the satisfiability solver
z3 - Implementing bit-blasting for floating-point arithmetic in SMT - Stack Overflow
Vol.28 No.2 (2013/03) SAT ソルバー – 人工知能学会 (The Japanese Society for Artificial Intelligence)
バージョンの充足可能性問題 | POSTD
権藤研 輪講資料 2018/6/19 新山 (充足可能性問題について)

Rust

Hideyuki TanakaさんはTwitterを使っています 「充足問題をRustコンパイラのmatchのnon-exhaustive patternsの検出に帰着できるんで、RustコードをコンパイルするのはNP Hardだという話 (´・_・`) / 1件のコメント https://t.co/NJtM9FVK29 “Compiling Rust is NP-hard” (3 users) https://t.co/mIIoNtshxZ」 / Twitter
[B! *あとで読む] Compiling Rust is NP-hard
Compiling Rust is NP-hard
Hideyuki TanakaさんはTwitterを使っています 「CNFの否定は余集合のDNFになるんで、まさにそれでカバーされないものが元の式を充足される割り当てになるって話で言われてみればそうだ(´・_・`)」 / Twitter

Sugar

SAT型制約ソルバーSugarについて
お絵かきロジックをSugar制約ソルバーで解く
SATソルバーMiniSatとSugarを導入 - Qiita
制約充足問題を解くためにsugarをインストール - TIM Labs
Sugar制約ソルバーがパズル神 – The Coherence World

PDF

Microsoft PowerPoint - csp.ppt
Microsoft PowerPoint - 11Prolog演習応用編印刷用.pptx
Microsoft PowerPoint - backtrack.pptx
67.pdf
introduction_sat.pdf
digidepo_8559157_po_r6-2-7.pdf
制約論理型言語における制約集合の構造解析による代数制約ソルバーの効率化についての検討 - 国立国会図書館デジタルコレクション

american fuzzy lop

コンコリック実行エンジン

angr, AFL, Driller | 一生あとで読んでろ
Conpy:Pythonアプリケーションのためのコンコリック実行エンジン | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
これまで調べてきたファジングの話 - who3411のブログ
ソフトウェアテストの技術:現場から研究へ,研究から現場へ
コード難読化・アンパック系論文サーベイ - Log.i53
改竄とリバースエンジニアリング - owasp-mstg-ja
DeepState: C/C++ symbolic execution unit test framework from Trail of Bits | Firmware Security
実装して学ぶ Symbolic Backward Execution - Speaker Deck
はじめてのコンコリックテスト
mumumuさんはTwitterを使っています 「ファジングの最適化のためにMutationの選択を強化学習しようぜ、みたいな話を聞いてなるほど状態だった 指摘されるとせやな、という感じだが」 / Twitter
mumumuさんはTwitterを使っています 「たしかDirectedなファジングにアニーリングを使ってたやつは読んだことあって、システムっぽい話に数理最適化とか機械学習の話題を混ぜるとこうなるのか感があったな」 / Twitter
Aurélien FrancillonさんはTwitterを使っています 「Our new paper (to appear at NDSS 21) with @poeplau SymQEMU: Compilation-based symbolic execution for binaries Like for SymCC we directly embed the instrumentation for symbolic execution in the app, but this time in QEMU, so works with binaries PDF: https://t.co/785ORontDi https://t.co/CCM40sb5Xd」 / Twitter
ndss21_symqemu.pdf

american fuzzy lop
google/AFL: american fuzzy lop - a security-oriented fuzzer
ご注文は American Fuzzy Lop ですか? - Qiita
RustでAmerican Fuzzy Lop(afl) - Qiita
mirrorer/afl: american fuzzy lop (copy of the source code for easy access)
afl/afl-fuzz.c at master · mirrorer/afl
american fuzzy lop (fuzzer) - Wikipedia
Chapter 23  Fuzzing with afl-fuzz
Breaking Ruby’s Unmarshal with AFL-Fuzz – Fuzz Stati0n – Medium
American Fuzzy Lop (AFL)の構造 - 睡分不足
AFL on my extensible fuzzing framework (squiffer)
afl/technical_details.txt at master · mirrorer/afl
るくすさんはTwitterを使っています: 「2016年のハッキング自動化コンテストDARPA CGCでも上位チームの殆どがファジングとシンボリック実行を組み合わせていて、現在でも活発に研究されてる分野です。 CGCで優勝した我らがCMUの「mayhem」だけは別格の高度なシンボリック実行切り替えシステムなんだけど、詳細は表に出てないです(言えません」 / Twitter
るくすさんはTwitterを使っています: 「あ CGC当時のmayhemは純粋にAFL+シンボリック実行だったのかも。 説明がめんどくさいので2016年のntddk先生の記事を見て。 https://t.co/d3JVSu668P 今のmayhemは... アレがアレしてアレになってる」 / Twitter
angr, AFL, Driller | 一生あとで読んでろ
Miura HidekiさんはTwitterを使っています: 「そうか、シンボリック実行、具体例を挙げて抽象実行するよりより汎用的な解析結果が得られそうだな。組み合わせ爆発さえ抑え込めれば」 / Twitter
Miura HidekiさんはTwitterを使っています: 「mmcもシンボリック実行を取り入れ始めていると言えるのかな?結構効果は絶大な気がする。ライブラリレベルで呼び出しが無くても型を得ることが出来そうな気配」 / Twitter
Miura HidekiさんはTwitterを使っています: 「全然次元の違う話だった。すげー、これをガリガリ実装できるリソースのある国とは戦争したって勝てねーよ」 / Twitter
uint256_tさんはTwitterを使っています: 「ファザーというもの, よくわかってないけど, バイナリを解析して分岐を網羅できそうな入力をSATとかで生成するのかな」 / Twitter
mumumuさんはTwitterを使っています 「Automated Whitebox Fuzz Testing [NSDI '08] BlackBoxなファジングはあまりにも非効率なので,Mutation時にシンボリック実行の制約情報を活用するWhitebox手法を提案しSAGEを実装.(実行時に制約を生成し,Mutation時に一部の制約を否定した入力を生成).MS Researchの人がMSのAppに適用していい話」 / Twitter
American Fuzzy Lop (AFL)の構造 - 睡分不足

抽象解釈

抽象解釈 - Wikipedia
米Facebook、抽象解釈を土台としたコード解析ライブラリ「SPARTA」を公開 | OSDN Magazine
Microsoft Word - 【第5分科会】ConcolicTestingグループ_論文_修正_20150220.doc
情報システム信頼性研究会資料
デバック工学研究所
Concolic testing - Wikipedia
ピギーバック - Wikipedia
abstractInterpretation - 白紙
untitled
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
Miura HidekiさんはTwitterを使っています: 「evalに型付けをおこなう方法について考えている。今は、型変数を実際の型を基底とする線形空間のなかのベクトルとして表現してよろしくするという方針で考えている。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「結局、サポートしていないといけないメソッドの組の中から実際の型を検索するという話になると思うのだが、それを効率よくやる方法で思いついた方針」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 引数として文字列リテラルじゃなくて変数が渡ってくると色々困りそうな」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 変数で文字列の内容がわからないのが前提です。eval時に型チェックを行うのですがその型を得る方法を考えています。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 とりあえず制約無しの型変数を考え抽象実行で持っていなければならないメソッドを集めます。そのメソッドの戻り型の制約とかも考え具体的に当てはまる型を探すってのが大まかな方針です」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 引数として渡される変数の値(文字列)そのものを推論しないと返り値の型も決まりませんよね?」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 いえ、evalの戻り値がその後どういうメソッドを使っているか(さらにそのメソッドの返り値のメソッドの使い方)を見ると型が決められるのではないかと思います。何も制約がなければObjectクラスということになります」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 なるほど、逆の発想なんですね。 副作用だけを期待して返り値を捨てるケースもありそうですし、method missingとか使ってると辛そう」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 返り値を捨てるケースだとObjectとでもしておけばいいですし、method_missingを使っている場合はmethod_missingが定義されているクラスを持ってくればいいかなと思います。ただ、method_missingが定義されているとなんでも候補のクラスとして出てくるのであまり嬉しくなさそうです」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 そうか、別に厳密に型を定める必要はないし、Rubyだとそもそもそれは不可能ですよね。 RubyでRubyのプログラムを読んで、最終的には対象プログラム内の変数や関数の(取り得る)型の集合をリスト化して出力する、という話なんでしたっけ。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 そうです。もともとはコンパイラの最適化のためですが、どこまで型宣言なしで型宣言が復活できるか興味本位で作っています。」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 最終的にはプログラマが最低限の型を書いて、あとは型推論で頑張るようになるんですかね。それだと動的型付け言語ではなくなりますが。 静的型付け言語にも代数的データ型が普及しつつあるので、変数に複数の型を突っ込めるという動的型付けの美点?が失われつつあるような。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 究極的には動的と静的型付けの区別はつかなくなるんでしょうね。Rubyはその中でも最右翼で言語仕様に型宣言はとりあえず入らない(型宣言は別ファイル)ですわね。」 / Twitter
CiNii 論文 -  論理プログラムの抽象解釈を用いた解析
untitled - 7.pdf
静的解析 - MATLAB & Simulink
抽象解釈を用いた静的解析によるソフトウェアテスト ランタイムエラー検出ツール PolySpace Verifier | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
抽象解釈を用いた静的解析によるソフトウェアテスト ランタイムエラー検出ツール PolySpace Verifier : 2002-06|書誌詳細|国立国会図書館サーチ

制約充足問題 - Wikipedia
制約充足問題 - 数理計画用語集
制約充足問題についてのゆるふわな話 - Qiita
SuperCon 2016 予選問題をCSPソルバーで解く - ブログのとさか
世界一美しい覆面算を制約ソルバーで解く - 屯遁のパズルとプログラミングの日記
制約計画ソルバー SCOP  入門編
離散組み合わせ問題の制約充足問題による定式化ならびに整合化手法の適用検討
B.4 制約充足問題ソルバwcsp
離散組み合わせ問題の制約充足問題による定式化ならびに整合化手法の適用検討
制約プログラミングとは | constraint.org
SATソルバーは問題解決のための「銀の弾丸」か?
制約充足問題のSAT符号化
パズルをSugar制約ソルバーで解く
《制約充足問題》 - ORWiki
ikyuuさんはTwitterを使っています 「HORNSATがPに入る話(貪欲法で解ける)を読んでいて、Horn formulaがPrologで使われていることを知った。 いつか論理プログラミングとかも勉強してみたいな:)」 / Twitter
Introduction to Fuzzing - Speaker Deck
解析基盤技術を用いた効率的なソフトウェアテスト - Speaker Deck
ZetZ、形式的検証機能を備えたCのダイアレクト

PDF

20800022 研究成果報告書
_pdf
_pdf
encoding.dvi
termination.pdf
typedlmd.pdf
www.cs.tsukuba.ac.jp/~kam/lecture/plm2017/termination.pdf
www.fc.inf.kyushu-u.ac.jp/~kawamura/t/joi/H290320_yoyogi.pdf
paper.pdf
general4-3.pdf
1205_29.pdf
bachelor.pdf
ieicej07.pdf
100229.pdf
Microsoft PowerPoint - 03np.ppt [互換モード]
Kenji OtsukaさんはTwitterを使っています 「停止性問題の重要性 https://t.co/XrJkRnqxCZ」 / Twitter
What is the importance of the Halting Problem? - Quora
Kenji OtsukaさんはTwitterを使っています 「ポストの対応問題については、チューリングの停止性問題への Reduction を用いて決定不能であることを証明できる。 https://t.co/xfFjglJcOh」 / Twitter
決定不能問題から始める計算可能性理論入門 - resume.pdf
Kenji OtsukaさんはTwitterを使っています 「チューリングの停止性問題について、矛盾を導いて証明する方法は、ほかの場合にも使える。 たとえば、「任意の関数と任意の入力についてテキストをプリントすることを判定する関数は作れるか」という命題について、同じように矛盾を導いて不可能であることを示せる。」 / Twitter

Aritalab:Lecture/Algorithm/Halting Problem - Metabolomics.JP
yuwki0131-blog: アンダースタンディング・コンピューテーション, メモと感想
PFIセミナー 2013/02/28 「プログラミング言語の今」
バグのないプログラムと不完全なこの世界: Architect Note
バグのないソフトウェアの作れない理由 - Qiita
ハッカーの遺言状──竹内郁雄の徒然苔第44回:複雑さを利用する? | サイボウズ式
決定不能問題から始める計算可能性理論入門
計算可能性理論 講義ノート
d.y.d.
El Pin AlさんはTwitterを使っています 「OCaml、このコードの型検査も停止しない。 applicative functorがあって、かつpathベースのモジュールシステムだと、再帰モジュールを上手く扱うのは難しいよね https://t.co/CAcIS33dZj https://t.co/lb7w5a4aoJ」 / Twitter
unterminating type checking for recursive modules · Issue #3674 · ocaml/ocaml

論理と計算

論理

命題論理・述語論理・コンパイル

述語論理・CNF・SAT

一階述語論理をCNFに変換する - ja.pays-tarusate.org
暇人の暇人による暇人のためのブログ | 一階述語論理式の冠頭標準形
述語論理をやろうず - Qiita
充足可能性問題SAT (Satisfiability Problem) - ppt download
帰納論理プログラミングのSATによる表現 - yamamoto-kondo.pdf
B-C31.dvi - 27_271.pdf
KJ00005931312.pdf
untitled - predclausal07.pdf
text.pdf
A-002.pdf
chap1.dvi - AI-SAT-1.pdf
SAT.pdf

数理言語 - ke-8-slide.pdf
ke-8.pdf
Introduction to Mathematical Logic
nyumon_logic.pdf
06gun_03hen_01.pdf
連言標準形 - Wikipedia
ホーン節 - Wikipedia
述語論理.pdf
命題論理.pdf
7_130.pdf
16_202.pdf
IPSJ-ICS91076006.pdf
KJ00001303130.pdf
0902-10.pdf
lecture7-dist.pdf
riron.pdf
2000_2a1etc.pdf
logic.pdf
D2-2.pdf
人工知能のこれまで(2)――論理を越えて - Beyond_Logic.pdf
nyumon_logic.pdf
PowerPoint Presentation - OGAWA.pdf
人工知能概論 13
shiryo4.pdf
情報に関する技術の理解を目的とした数理論理学の導入 - gijutsukyoiku21924.pdf

直観主義命題論理の命題を投げると解いてくれるbot

ipc_botの紹介 - 簡潔なQ
Theorem Prover Advent Calendar 2013 - Qiita
IPC botさん (@ipc_bot) / Twitter
buho305.pdf
東京大学コンピュータ系サークル TSG
qnighy/ipc_solver: O(N log N)-space IPC solver in OCaml
Proving Decidability of Intuitionistic Propositional Calculus on Coq
qnighy/IPC-Coq: Intuitionistic Propositional Calculus
qnighy/proofline0: study for making programming language, with linear logic

KL1

ICOT

ポストGHCにむけて  ― 21世紀の計算モデルと実装
第五世代コンピュータプロジェクトの記録
Index of /~ueda/bit-special-issue-5G
Fuchi Memorial Colloquium
Fuchi Memorial Colloquium
Microsoft PowerPoint - hayashiNov25.ppt
Abduction and Induction: Logical Framework
(私的)海外研究事情
Microsoft PowerPoint - furukawa.ppt
モデル生成型定理証明系MGTPの要素技術 - hasegawa.pdf
PowerPoint Presentation
PowerPoint Presentation
Microsoft PowerPoint - Fuchi-colloquium3.ppt
Microsoft PowerPoint - matsu071020.ppt
Microsoft PowerPoint - 渕記念コロキウム-横尾.ppt

Kima

d-resist2.pdf
main.dvi
https://www.ueda.info.waseda.ac.jp/~ajiro/ftp/Readme-kima220-j

Research
ローテクと向き合う
早稲田大学 研究者データベース
Kazunori Ueda, Prof.
GHC-intro.pdf
Contrtact Research by AITEC in 1996 FY
Contrtact Research by AITEC in 1998 FY
https://www.ueda.info.waseda.ac.jp/~ajiro/ftp/use-of-software-J
KLIC's page
Inside KLIC Version 1.0
KLIC 講習会テキスト KLIC システム編
KLIC 講習会テキスト KL1 言語編
dklic: KL1 による分散 KL1 言語処理系の実装 - PowerPoint PPT Presentation
CiNii 論文 -  並列論理型言語KL1の最適化手法
修士論文
Shinji KonoさんはTwitterを使っています 「PSIも触ったことがある。ESPというObject指向なPrologが動く。かっこいい。一応販売されたのかな。ESPもSparc版があり、かなり速かった。KL/1は、もっと流行っても良かったんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「KL/1 は人間のプログラミング能力を越えてる感じがはっきりあった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もっもと、PIMOSは触ったことはない。あれはどうだったんだろう? 実在したのだろうか? PSIクラスタは動いていたんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「近山先生にPIMOSの話を聞きに行くべきかも」 / Twitter

Prolog

Prolog

The GNU Prolog compiler
How do I make an executable?
Creating a Windows console application from SWI-Prolog
SWI-Prolog -- Manual
GNU-Prolog Manual
O-Prolog
WAM: Warren's Abstract Machine (Japanese)

組み込み述語

Prolog の組み込み述語一覧が欲しい - 電脳スピーチ blog
AZ-Prolog ユーザーズマニュアル
AZ-Prolog ユーザーズマニュアル
ncaq/prohell: Prolog like programming language
M.Hiroi's Home Page / Prolog Programming
Prolog Programming / 制約論理プログラミング超入門
Prolog Programming: List Processing (in Japanese)
144565694.pdf
prolog_main.pdf - prolog_main.pdf
28_4_108.pdf
Prolog Cafeで組込述語を作る方法 〜Prolog言語で実装する場合〜 - Qiita
IPSJ-PRO88048004.pdf
r5.pdf
Skyley Networks / マイコンでProlog
3年生勉強会 - Prolog (2)
SIG-SWO-A402-01.dvi - SIG-SWO-A402-01.pdf
05_3_Prolog.txt - Prolog.pdf
C:/‘C”mŸ_ٶ/‘C”m™ƒ−Ô/‘C”m™ƒ−Ô(‚å›ïŠp).dvi - B_25.PDF
SWI-Prolog 7.1.3の組み込み述語 'term_string / 3'のモジュール名は何ですか? - モジュール、プロローグ、述部、swi-prolog、組み込み

DCG

Definite clause grammar - Wikipedia
Prolog DCG Primer
SWI-Prolog -- Manual
Tutorial -- Using Definite Clause Grammars in SWI-Prolog
Learn Prolog Now!
DCG入門 - Qiita
Prologの動作原理と自然言語処理 | 東京工業大学デジタル創作同好会traP
https://home.hiroshima-u.ac.jp/katsuiwa/nlp.html
549.pdf
Prolog Programming: Language Processing (in Japanese)
構文解析
Prolog の Definite Clause Grammar を試す:Rainy Day Codings:So-net blog
プロローグ-解析 - parsing - Dev4App's Blog
prolog - DCGパーサのPrologを書くために他の抽象構文であいまい性を取り除く - 答えた
Prolog のプログラムのことで疑問があります。 - 問:次のことを行うPro... - Yahoo!知恵袋

PDF

Microsoft PowerPoint - searchtree-2007.ppt
_pdf
oksn_065_065.pdf
情報数学III 2001年度後期                    担当:守屋
prolog.pdf

Qiita

PrologによるPrologインタプリタ - Qiita
Prologで型クラス実装 - Qiita
Prologで様々な多相型推論 - Qiita
Miura HidekiさんはTwitterを使っています: 「ISO-PrologからGHC,独自拡張Prologへ https://t.co/zCxfsDC0tJ GHCをハスケルコンパイラではなく、ガードされたホーン節の意味で使う記事をネットでは初めてみた。面白い、ただただ面白い。いろいろ言いたいことがありそう」 / Twitter
ISO-PrologからGHC,独自拡張Prologへ - Qiita
Miura HidekiさんはTwitterを使っています: 「α変換のところで、変数として変数名と番号のタプルを使っているとのことだけど、単なる名前なしオブジェクトでよいと思う。名前が必要ならインスタンス変数に名前を入れておけばよいし。つまり、ユニーク性だけが必要なものにちょっとオーバーヘッドが大きすぎじゃないかと思う」 / Twitter
Pure Prolog in Elixir - Qiita
Elxghc -Elixir によるGHC実装の試み- - Qiita
Elxghc -中断の実装- - Qiita
Elxghc -並列動作とその測定- - Qiita
Elxlog シンプルでわかりやすい論理&関数型をめざして - Qiita
Elxlog 実行効率の測定 - Qiita
エジンバラ文法内でのAND並列の試み - Qiita
O-Prologの仕様、覚書 - Qiita
O-Prologのコンパイラ - Qiita
sasagawa888/Prolog
sasagawa888/Elxghc
sasagawa888/Elxlog
sasagawa888/opl
Prolog で実装するモデル検査器の心臓部 - Qiita
Prolog実践入門 - AIに特化した老舗言語 - Qiita
Prolog 入門 - Qiita

Twitter

操作的意味論

インタプリタ

h_sakuraiさんはTwitterを使っています 「型システムはPrologでさくっと作るのが簡単なのになぁ t(I,int):- integer(I). t(E1+E2,int):- t(E1,int),t(E2,int). :- t(1+2+3,int). ってだけで作れる。 これを認められない人が多すぎる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「構文木をクォート無しで扱うことは古くて終わっているわけではなく、型理論で実用され続けている。その世界を素直にコンピュータ上で扱いたい。 そのために必要なのが昨今研究が盛んにされている集合論的型システムなのだよな。Union Types あたりがPrologのプログラムを検査するのに使えるといい。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologを使うメリットは単一化や非決定性、集合、一階述語論理などを理解するのに有益だからである。 Prologを理解していれば、CoPLやTAPLの図は理解しやすいし、型推論も理解しやすい。 証明まで行おうとするとPrologは力不足なのでCoqを使う。 その前に、OCamlを使って置くと良いのかな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「i(I,I):-integer(I). i(E1+E2,I):-i(E1,I1),i(E2,I2),I is I1+I2. :- i(1+2+3+4,R),writeln(R). :- halt. Prolog による整数の足し算ができるだけのインタイプリタはこのようにかけて短い。この簡潔性と、構文=抽象構文とできる能力は述語論理の特徴であるので使い慣れると便利だ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「型推論は t(I,int):-integer(I). t(E1+E2,int):-t(E1,int),t(E2,int). :- t(1+2+3,int). :- halt. と書ける。簡潔に書けて意味も宣言的で明確である。Prologがわかればね。」 / Twitter
h_sakuraiさんはTwitterを使っています 「今書いたPrologのインタプリタは 評価規則 ーーーーーーーーーーー (E-Int) i => i e1=> i1  e2=>i2 i1 + i2 is i ーーーーーーーーーーー(E-Plus) e1+e2 => i 型付け規則 ーーーーーーーーーー(T-Int) i : int e1 : int  e2 : int ーーーーーーーーーー(T-Plus) e1+e2 : int と書ける。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologにハマった高校生というのは見たことがないのだけど、Prologを使いこなす高校生がいたら天才だと思うよ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「表記は若干違うけれども、型理論で用いられる形式的言語を自動処理できるのがPrologだ。難しいことはないのでちょっと遊びに挑戦して、スタックマシンのコンパイラを書いたりしてみると世界の見方が一気にトップレベルの研究者のレベルに引き上がると思う。」 / Twitter

histric

状態(の変化)*さんはTwitterを使っています 「REST APIの作りとか見てると型付き操作的意味論というのが表示的意味論に寄せてく理由はわかる」 / Twitter
3^5さんはTwitterを使っています 「夏休みに全3回くらいの意味論勉強会をやっても良いかもしれない 操作的意味論と表示的意味論の両方から単純なインタプリタを実装する感じで」 / Twitter
h_sakuraiさんはTwitterを使っています 「プログラミング言語をなんとなく使いこなせても理解していると言える。 文法や操作的意味論を図として書いてその意味が理解出来ればより理解が深くなる。 実装したり、証明しなくても、図を理解するという段階はあるのだな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「人によっては、プログラミング言語の実装や型検査器の実装はできてもBNFや操作的意味論、型付け規則がわからない人もいる。 言語の性質を証明する作業をする場合でもCoqで証明は分かるけど、BNFや型付け規則はわからないという人もいるのだろうなぁ。」 / Twitter
Tomoaki KobayashiさんはTwitterを使っています 「Standrd MLの操作的意味論感も好きだったが、Haskellの表示的意味論感もだいぶ好きになってきた 特にモナドですよねえ(まあより深淵な分、かなり重い概念にはなってしまっているよなあ)」 / Twitter
h_sakuraiさんはTwitterを使っています 「操作的意味論の図とかただのPrologだと思ってみると簡単なのだけど、すごそうに見せるものになってて残念だな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「言語作成の、お手軽ツールがOCamlやPrologなのだよな。 お手軽ツールは論文でも多用されており操作的意味論や型理論では述語論理が図に使われている。」 / Twitter
h_sakuraiさんはTwitterを使っています 「操作的意味論と型システムの本格ならやっぱり新しいPrologの型システム作ってからにしたいと思うけど難しいのだよなぁ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「C言語のコンパイラが作れたら、次に勉強したほうがいいのは操作的意味論だ。操作的意味論に使われる言語は一階述語論理であり、論理型言語のPrologを使えば実装は簡潔にできる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「LLVMの操作的意味論は非決定的マシン状態を持ったスモールステップ評価器として定義されているのでPrologで実装すると楽だよなぁw」 / Twitter
h_sakuraiさんはTwitterを使っています 「Formalizing the LLVM Intermediate Representationfor Verified Program Transformations https://t.co/M7XWzftAOT POPL12 で Vellvm という話で操作的意味論などの形式化がされてたんだな。」 / Twitter
Architecture and Compilers Group | Main / HomePage
h_sakuraiさんはTwitterを使っています 「XMLはDSLを作るには冗長すぎる。S式は単純すぎる。C言語のような表現力が欲しい。関数型言語の代数的データ型は悪くないけど表現力不足だ。Prologみたいなものがいいよなぁと自作するも、操作的意味論の意味も論理型言語で自然に書けるしPrologで良いと気がついて自作は辞めてる今日この頃。」 / Twitter
muratakさんはTwitterを使っています 「どうでも良いけど Prolog の SLD 反駁は誰がどう見ても操作的意味論だと思うし、出来上がる反駁木は証明っぽい。一方よくある成功集合を不動点で求めるタイプの表示的意味論(宣言的意味論?)は、結局コンパイル先が論理式の集合なので、あんまりモデルっぽくない。(個人の感想」 / Twitter
Jun InoueさんはTwitterを使っています 「@emptst どっちかというと公理的意味論が証明論に対応してて、操作的意味論は対応するものが無いと思います。論理系では普通考えない「計算手順」を指定するものなので。ただ、さうした手順(遷移関係)を証明したい論理式と捉えると操作的意味論も証明論に対応します。」 / Twitter
H. M. (ALGI2020@Kyoto, ALC2021@Kyoto)さんはTwitterを使っています 「公理的意味論は表示的意味論や操作的意味論と比べてそれほど定義が明確ではありませんが,基本的にはFloyd-Hoare論理の発展形で,Hoare三つ組などのassertionに対する推論システムだと思います。 https://t.co/rHof4YRj4K https://t.co/IRwOep4A4J」 / Twitter
Axiomatic semantics - Wikipedia
Chapter11.pdf
h_sakuraiさんはTwitterを使っています 「プログラミング言語を設計してよく説明するにはBNFを書いて説明できるのが良いし、言語の仕様を説明するには操作的意味論を説明できるとよい。一階述語論理の規則で説明出来て理解できればそれ以上に難しいことはない。Prologで実装出来てれば自然に一階述語論理は身につく。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Haskell は操作的意味論が明確だし、型の単一化は実装に隠れてるし、型を理解するのはどうせ必要だしで、初心者的には楽なんじゃないかと。」 / Twitter
らりお・ザ・何らかの🈗然㊌㋞㋰㋷㋓ (Mastodon に引っ越しました)さんはTwitterを使っています 「表示的意味論はプログラムを数学の関数とか写像みたいなのに写すやつ 操作的意味論はプログラムを状態と状態遷移で規定するやつ 公理的意味論はプログラム全体が証明木みたいになるやつ というクッッッッソ雑な説明」 / Twitter
Shinji KonoさんはTwitterを使っています 「面白いのは数学の基本は操作的意味論を持つ直観主義論理であって、問題を記号的に読み、それを機械的に処理することが数学そのものだってこと。それを算数の文章題に当てはめて文句を言ってる人たちは数学をなんだと考えてるのかってこと。」 / Twitter
でこれきさんはTwitterを使っています 「@taqenoqo 公理はその体系の中で、証明木の根になれるやつ的なの。意味論はある体系を別の他の何かに言い換えて意味を説明するの(表示的意味論)とか簡約規則みたいなので意味を説明するの(操作的意味論)とか」 / Twitter
けこさんはTwitterを使っています 「@dico_leque じゃあ推論規則は操作的意味論?」 / Twitter
でこれきさんはTwitterを使っています 「@taqenoqo そう思ってる」 / Twitter
けこさんはTwitterを使っています 「@dico_leque なんかモヤモヤしてネットで色々調べてたけど結局前授業でもらった亀山先生の講義資料がめちゃわかりやすかった〜 https://t.co/FckCVHwyTf」 / Twitter
画力・博士号さんはTwitterを使っています 「アクターモデルに基づく並行計算の言語を設計するとして,Erlangのreceive式による選択的受信は別に核言語の機能に入れなくていい気がしてきた,型つけはともかく操作的意味論上は “全部一旦受信して,期待するメッセージではなかったら自分自身に送信し直す” でエミュレートできる気がする」 / Twitter
画力・博士号さんはTwitterを使っています 「いやしかし型つけがややこしくなるだけか(メッセージの分解をパターンマッチングに帰着させると必然的に強い依存型が必要になりそう)」 / Twitter
h_sakuraiさんはTwitterを使っています 「第5世代コンピュータの計画は、論理型言語はどうがんばっても高速にできないということがわかったのが功績でもあるけど、それゆえに、多くの人たちが論理型言語を避けるようになってしまった弊害ももたらした。 操作的意味論や、型理論を実装して理解するには Prolog 便利なので使うといいのになぁ。」 / Twitter
画力・博士号さんはTwitterを使っています 「技術者として生きる自信急速に潰えてきた,わいは操作的意味論と型システムの各導出規則について思案してこねくり回していればそれで満足なんかもしれん…….」 / Twitter

h_sakuraiさんはTwitterを使っています 「Prolog使って、ラムダ計算の操作的意味論から述語作るとか、構文木の構文検査を作るとか、型推論規則から型検査述語作るとかならすぐできるよね。BNFからコンパイラコンパイラで構文解析は1時間でできるか出来ないかかなぁ。 https://t.co/1uVfB8fTtI」 / Twitter
h_sakuraiさんはTwitterを使っています 「e ::= i | e+e な言語で ーーーー (E-Int) i => i e1=>i1  e2=>i2 i1+i2 is i ーーーーーーーーー(E-Add) e1+e2=>i から e(I):-integer(I). e(E1+E2):-e(E1),e(E2). e(I,I):-integer(I). e(E1+E2,I):-e(E1,I1),e(E2,I2),I is I1+I2. :- e(1+2+3). :- e(1+2+3,6). みたいなかんじだな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「答えをパッといって嫌われる老害扱いだろうな 他に、型付け検査、部分型付け、レコード、ヴァリアント型、うんぬんとPrologで様々な型システムを実装すると面白いよ。 複雑すぎると1時間で実装できなくなるけどw」 / Twitter
h_sakuraiさんはTwitterを使っています 「Hackerson 的なことで2週間くらいあれば、型クラスとか、多相レコード、多相バリアントができたりするようになれたりするはず。 線形型、アフィン型なんかも結構短く実装できる。Prologならね。 なぜならば、抽象度が関数型言語より高い、論理型言語だから。」 / Twitter
h_sakuraiさんはTwitterを使っています 「bnf(G,E):- (G::=G1),G0∈G1,bnf(G0,E). bnf(i,I):- integer(I). bnf(G,E):- G=..[O|Gs],E=..[O|Es],maplist(bnf,Gs,Es). というような推論規則で木に対する構文検査が大体できるようになる。 Prologを使うと木に対するBNFで構文定義が簡単に論理的に定義できる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「S式やXMLはプログラミング言語を記述するには不向きなデータ記述言語だ。Prologのエジンバラ記法はなかなかプログラミング言語を記述するためのデータ記述言語として優れているので、プログラミング言語の実装実験に向いている。」 / Twitter
h_sakuraiさんはTwitterを使っています 「集合論的型システムは型演算結果の正規化が難しい。 a | b は b | a | a と同じ型だ。 a | b - b は a | b & !b 型であり a 型というような演算を高速に行う必要がある。それに加えてグラジュアルな型システムを導入しないと現状のPrologのプログラムと共存しずらい。型演算をどう高速に正規化するか。」 / Twitter
h_sakuraiさんはTwitterを使っています 「アルゴリズミックな規則を実装してみるだけならPrologをおすすめします。例: %評価規則 e(I,I):- integer(I). e(E1+E2,I):-e(E1,I1),e(E2,I2),I is I1+I2. %型付け規則 t(I,int):-integer(I). t(E1+E2,int):-t(E1,int),t(E2,int). r(E,T,V):-t(E,T),e(E,V). :-r(1+2+3,int,6). :-halt. https://t.co/QYmgQ7RsDd」 / Twitter
h_sakuraiさんはTwitterを使っています 「第5世代コンピュータの計画は、論理型言語はどうがんばっても高速にできないということがわかったのが功績でもあるけど、それゆえに、多くの人たちが論理型言語を避けるようになってしまった弊害ももたらした。 操作的意味論や、型理論を実装して理解するには Prolog 便利なので使うといいのになぁ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Rustは低レベルなのでHaskellのほうが抽象度が高くかけて良いけど、Prologのほうがさらに抽象度が高く短く書けることがある。型システムを実装する場合などはPrologを使ったほうが短く書ける。なぜならば、単一化変数やバックトラックがあり、推論規則をそのまま書けるからだ。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「表示的意味論なら式は値を表すし、操作的意味論なら計算の仕方(の一部)も表すけど、「式で場面を表す」というのは論理的に不可能なのでナンセンス。」 / Twitter
h_sakuraiさんはTwitterを使っています 「自動的に推論規則を動作させることができるということは、型理論で用いられている一階述語論理の操作的意味論を自動的に実行しプログラミング言語として実行できるということである。しかしそれは順番に実行できるように推論規則の順番に気を使って書く必要があるということになる。」 / Twitter
muratakさんはTwitterを使っています 「ラムダ計算の操作的意味論程度ですら「意味論」と呼んでいるんだから,証明体系による論理式の分類も「意味論」と呼んでなんの問題もなさそうに思える.」 / Twitter
相川千穂さんはTwitterを使っています 「操作的意味論、意外と構文論的だという印象を受ける方が多いんですね」 / Twitter
yaxbellさんはTwitterを使っています 「意味論と証明論の差については、まだ、時間が自分のために使えた時に考えたことがあった。意味論という時には、明示的に、無限の操作を認める場合であって、証明論のときには、有限回の操作しか認めていない、という差がある。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「操作的意味論は意味論じゃない」「項モデルはモデルじゃない」「ゲーム意味論は(簡単な場合を除き)商が出てくるからモデルとして不十分」等々は半世紀以上にわたる現在進行形の論争。」 / Twitter
h_sakuraiさんはTwitterを使っています 「前向き推論は幅優先探索の操作的意味論においては完全であるけど、実際のPrologの処理系は深さ優先探索をするので不完全なのではないかなぁ。」 / Twitter
h_sakuraiさんはTwitterを使っています 「表示敵意味論では、プログラミング言語の性質を理解するには不十分なのではないかな。型があっていても実行してみないと停止するかどうかはわからないように、意味は通っていて人間には理解できて計算を完了出来る数式でもPrologの操作的意味を考えると計算が無限ループしてしまう可能性がある。」 / Twitter
h_sakuraiさんはTwitterを使っています 「操作的意味論としてLispを実装したらこうなりますみたいなのが、PrologでLisp実装だと思うといいと思う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Lispのプログラムの証明に使う公理の証明だった。公理の証明って変な気もするけど、Lispの操作的意味論(モデル)をAgdaで作って、公理が真であることを示すってことね。Lispの項の等式とその性質を証明するのが面倒。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「#IPSJPRO 条件式, 再帰関数, quasi-quote の言語機能を HLisp 自身で定義できる.{Landin, '64] の SECD機械の拡張でできている.必要最小限の操作的意味論とはどのようなものか,という興味に基づいている. https://t.co/7JnYGq6TBP」 / Twitter
Keigo ImaiさんはTwitterを使っています 「#IPSJPRO [Plotkin '75] の流れをフォローします. 操作的意味論. evaluation context で引数部分にちょっとside condition がある (関数部分がマクロのとき引数を評価しないように).https://t.co/vrwFCzJa38」 / Twitter
はかりさんはTwitterを使っています 「2+3=5を"2+3を計算したら5"と読むか"2+3と5は同じ"と読むかの違いは操作的意味論と表示的意味論の違いっぽい。λ計算ではこの2つは同じになるけど、そういうところの整合性が取れてるのも改めて意識してみるとちょっと楽しい」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミング言語を複雑にするとなんとかなると思っている人たちが一定量いるらしく。それよりは、テストとか証明とか検証とかの仕組みが欲しい。それには複雑な操作的意味論は邪魔。アセンブラでやれってわけでもないんだが。」 / Twitter
画力・博士号さんはTwitterを使っています 「(gitの操作的意味論書き下しはやりたいことの1つだったけど既にやっている人がいた!)」 / Twitter
吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@bd_gfngfn データタイプアラカルテの著者(?)がバージョン管理の意味論に関する論文を発表していて、僕もバイナリファイルとテキストファイルで一体何が違うのか?というのは長年の疑問です。 https://t.co/WhwdodFGO7」 / Twitter
2014-onward.pdf

バックトラック

尾崎隆大さんはTwitterを使っています 「% Prolog 'ならびを昇順に整列して順位を振る。ただし値に重複はない。'(_ならび,_順位,_値) :- sort(_ならび,_整列したならび), append(L1,[_値|_],_整列したならび), length([_|L1],_順位). 'ならびを昇順に取り出す。ただし値に重複はない。'(_ならび,_値) :- bagof(_,member(_値,_ならび),_).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これで分かることは、Prologは順位を振るという作業は得意ではありません。その理由は非決定性の述語をバックトラックで処理しようとすると、今何位目というカウント情報がバックトラックにより無効となってしまうからです。この観点からappend/3の偉大さを感じさせられます。'.」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologの限界は評価順が深さ優先探索しか選べないことにあるので、それ以外の戦略をオプショナルに選択できると嬉しい。遅延評価だったり、幅優先探索だったりしていいし、バックトラックなしにできたり、変数の単一化ができなくなるオプションとかあっていいと思う。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologの遅さの原因はバックトラック、単一化や、静的型システムがないための最適化能力不足にある。Mercuryみたいな言語は論理型言語に1つの型システムを加えるけど型にハマったプログラムしかかけなくなるので困ることもある。場合によって型システムを選択できると嬉しいのだよなぁ。」 / Twitter

カット

尾崎隆大さんはTwitterを使っています 「% Prolog カット(!)が何故必要か 成績を判定する(_成績,不可) :- between(0,59,_成績),!. 成績を判定する(_成績,可) :- between(60,79,_成績),!. 成績を判定する(_成績,良) :- between(80,89,_成績),!. 成績を判定する(_成績,優) :- between(90,100,_成績),!. 成績を判定する(_,異常値).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog もし以下の定義であると 成績を判定する(_成績,不可) :- between(0,59,_成績). 成績を判定する(_成績,可) :- between(60,79,_成績). 成績を判定する(_成績,良) :- between(80,89,_成績). 成績を判定する(_成績,優) :- between(90,100,_成績). 成績を判定する(_,異常値).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- 成績(84,_成績). _成績 = 良 ; _成績 = 異常値 ; false. ?- 'のようなことが起こってしまう。最後の定義節の頭部の第一引数が変数であるため、ここがどんな値でもこの節は真になる。カットがあれば、この節に到達しなくなるから、「異常値」という解がでることは避けられる。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog これならOK 成績を判定する(_成績,不可) :- between(0,59,_成績). 成績を判定する(_成績,可) :- between(60,79,_成績). 成績を判定する(_成績,良) :- between(80,89,_成績). 成績を判定する(_成績,優) :- between(90,100,_成績). 成績を判定する(_成績,異常値) :- \+(between(0,100,_成績)).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- 成績を判定する(59.5,_成績). _成績 = 異常値. 'さて、between/3の第三引数に生成される値は実は整数である。したがって、整数でない値の59.5が入力されると \+(between(0,100,_成績)) が真となって、「異常値」が返される。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologのマニュアルでは、between/3のような組込述語でも、第一引数の型のような情報は載っていない。そもそもPrologでは型という概念が事実上存在しない。関数評価する為の式はあるから計算可能なものかどうかの判定はしている。整数とか浮動小数点数とか。しかしこれは「特例」。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '本来ならば、整数も浮動小数点数も必要なく、全部アトムでよかったはずだ。>,<,>=,=<,=:=,=\=,is。これら全て二引数の述語であるが、この引数にある特殊なアトムは計算可能だと。それだけで済む。そのアトムがどんな可能性を持つアトムであるか問う述語としてinteger/1があってもよいが。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '組込述語 forall/2 ですが、 第一引数を実行して、真になった条件で、第二引数を実行します。そして、この条件での第二引数の実行が全て真になった場合、forall/2の実行は真になる。 第一引数が偽で第二引数が実行されない場合は、 ?- forall(fail,true). true. は、真となります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ということは、 'Pの否定'(P) :- forall(P,fail). と書くことができる.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '否定の定義にカットが必須だと言う話。 forall/2で書くことができるではないかとなりますが、forall/2の定義の中にカットが必要ないならば、胸を張れますが、そういうわけにはいかないでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'すみません。これ、 ?- forall(fail,fail). true. という例にするべきでした。それから、 「そして、この条件での第二引数の実行が全て真になった場合、」は 「そして、全ての第一引数の実行が真になった条件で第二引数の実行が真になった場合、」でした。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'forall/2の定義を論理的にPrologで定義するならば、当たり前に (\+)/1 が使われているだろうという意味ですね。(\+)/1 を使わなくても、それにあたることを述べる時にやはり、カットが必要になるだろうと。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog カット ! ?- findall(_行ストリング,(repeat, (at_end_of_stream(current_input),!,fail; read_line_to_string(current_input,_行ストリング))),_行ストリングならび).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'findall/3,setof/3,bagof/3,forall/2などの事実上のループからの脱出用のカットです。'.」 / Twitter

単一化

尾崎隆大さんはTwitterを使っています 「% Prolog (a,b) は ','(a,b) という項と同じです。 , という関数子を中置きしているのは、 ?- current_op(A,B,','). A = 1000, B = xfy. 演算子定義されているからです。xfyの意味は左側にはこの関数がもはや来ることはない。右側には再帰的にこの項を持つことができるという意味です。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ですから a,b,c は ','(a,','(b,c)) という結合であると解析されます。(a,b,c) の ()は (a,b,c) = X だとイコールの左側とXが単一化されますが、 a,b,c = X だとXと単一化されるのはcだけで、a,bは目標だと解釈されます。それは意図に反するからここからここまでの「連言」だと指定する。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'その目的の為に()が使われています。従って、ここで大事なのは , の方で()は便宜的なものだと考えることができます。これで、 ?- (X,Y) = (a,b,c). X = a, Y = ','(b,c). の意味がお分かりでしょう。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- (X,Y) = (a,b,c,d). ならば X = a, Y = ','(b,','(c,d)). ですが、 ?- (X,Y) = (a,b,c,d). ならば X = a, Y = (b,c,d). でも構いません。要は項の(インタプリタによる)見せ方の問題です。 大事なことは , が演算子定義で xfy の形式だと定義されているということです。」 / Twitter

アトム

尾崎隆大さんはTwitterを使っています 「% Prolog 'ここでSWI-Prologのprolog_flagの使い方の話をしましょう。 ?- current_prolog_flag(allow_dot_in_atom,X). X = true. 'だと、 尾崎.隆大 というようなアトムが可能になります。昨日、整数とか浮動小数点数なんてなくてもよいという話を書きましたが、この話が前提になっています。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これが、 X = false. SWI-Prologの起動時(初期値)はfalseになっていますが、 3.14 のような文字列はアトムになり得ません。基本的に数字から始まってもアトムだとPrologを設計し直そうとした場合、この小数点のドットの扱いが問題になるのです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '基本的にアトムにドットが含まれていても問題ないというモードのもとで、数字と文字の区別をしないというルールにPrologを改めた時に、型の片鱗もないPrologが実現するのでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ' =:= や 大小符号の両辺。それに is/2 の第二引数の中にある評価しなくてはならないアトムの検査はどうするの?型が必要ではないかと言われるかも知れないが、そういうことはErlangやElixirにでも委託してしまえば良いのではないか。Prologで計算しなくても良いのではないか。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '他言語との連携の遅延を0にすることはできないし、他言語側で計算可能かどうかアトムの評価をしてもらわねばならない。やはり、難しいか。PrologとErlangが一体のものであるのならともかく。'.」 / Twitter

append

尾崎隆大さんはTwitterを使っています 「% Prolog 分解/3は、append/3の第三引数を第一引数に持ってきたもの。 分解( L1 , [] ,L3) :- L1 = L3. 分解([A|L1], [A|L2],L3) :- 分解(L1, L2 ,L3). '第二節で第一引数の頭を削った残りを第一節の第三引数として取ることができる。第二引数は・・・頭からコピー。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog もちろん実行は. ?- 分解([1,2,3],X,Y). X = [], Y = [1,2,3] ; X = [1], Y = [2,3] ; X = [1,2], Y = [3] ; X = [1,2,3], Y = [] ; false. となる.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ふたつのリストを結合した新たなリストを生成するのがappend/3だった。 append(L1,L2,L) このappendから、図らず思いがけず、分解/3の機能が発見された。非決定性に、双方向性に。 結合のappendが書かれてから、分解のappendの全てが解明されるまでに3-4ヶ月が掛かったということだ。'. https://t.co/DweT0hYnqt」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「すげえ美しい定義だ。これが動くのだから、Prologってスゲーなと思う。(オレのボキャ貧に絶望」 / Twitter
それさんはTwitterを使っています 「@KISUGI_JINEN @TakaoOzaki 動作は分かるのですが append([],L,L). append([X|L1],L2,[X|L3]):- append(L1,L2,L3). の定義で、何故そうなるのか想像するのが難しいです」 / Twitter
尾崎隆大さんはTwitterを使っています 「@miyako_yayo @KISUGI_JINEN % Prolog 'Prologを開発したコルメライワのグループは1972年の12月頃には、Prologが使えるようになり、appendの書き方も発見されたのですが、この述語の可能性を全て理解するのに四ヶ月くらいは掛かったという伝説があります。彼らにしてそうですから、やはり正直難しいのでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「@miyako_yayo @KISUGI_JINEN % Prolog '神話とはしましたが、実際の話のようです。'. append([],L,L). append([A|L1],L2,[A|L3]) :- append(L1,L2,L3). select(A,[A|L],L). select(A,[B|L1],[B|L2]) :- select(A,L1,L2). '下は非決定性のパターン。この二つを理解できれば、Prologの再帰述語は怖くない。'.」 / Twitter
来生自然さんはTwitterを使っています 「@miyako_yayo @TakaoOzaki 何となく分かる。。。 https://t.co/jiyto20QPZ かも。。。」 / Twitter
[Prolog][Memo] append/3 | Basic Werk

select

尾崎隆大さんはTwitterを使っています 「% Prolog ' append/3 はもしかして神様というものがいるのかと思わせる作品ですが、昨今これ以上に使われているのが select/3 です。定義は select(A,[A|R],R). select(A,[B|R1],[B|R2]) :- select(A,R1,R2). 一個取り出して、それ以外の要素も参照できる非決定性の述語です。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- select(A,[1,2,3],R). A = 1, R = [2,3] ; A = 2, R = [1,3] ; A = 3, R = [2,3]. false. ?- member(A,[1,2,3]). A = 1 ; A = 2 ; A = 3 ; false. に似ていますね」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- append(L1,[A|L2],[1,2,3]). L1 = [], A = 1, L2 = [2,3] ; L1 = [1], A = 2, L2 = [3] ; L1 = [1,2], A = 3, L2 = [] ; false. ですから. ?- append(L1,[A|L2],[1,2,3]),append(L1,L2,R). 'これでA,Rに関しては先程のselect(A,[1,2,3],R)と同じ結果が順に得られます'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'この最後の ?- append(L1,[A|L2],[1,2,3]),append(L1,L2,R). ですが、「やっ」と一瞥すると、その途端に 何をやっているのか分かってしまう。 そういう動きとかに交渉をもたない理解が生まれる。宣言的とか言ってしまうと面白くないのですが、この脳内で何も動かすことのない理解。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これがPrologの醍醐味ということでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'select/4が大変重宝だということは何度も書いた。 select(_取得値,[_取得値|R],_更新値,[_更新値|R]). select(_取得値,[A|R1],_更新値,[A|R2]) :- select(_取得値,R1,_更新値,R2). という定義になる。取得値をキーにして取り出し、これを更新値に置き換えるという使い方になる。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'さて、それでは取得値をキーにするのではなく、何番目の要素であるかを指定してこれを更新する組込述語はというと、ないらしい。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 何番目の要素かを指定してならびを更新する(_ならび,_何番目,_更新値,_取得値,_更新されたならび) :- length([_|L1],_何番目), append(L1,[_取得値|L2],_ならび), append(L1,[_更新値|L2],_更新されたならび). 'これで書くことができているがselect/4のようにappendを使わず再帰で書くと'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog こんな感じかな nth1_select(_nth1,_取得値,L,_更新値,L2) :- nth1_select(1,_nth1,X,_取得値,_更新値,L2). nth1_select(N,N,_取得値,[_取得値|R],_更新値,[_更新値|R]). nth1_select(M,N,_取得値,[A|R1],_更新値,[A|R2]) :- M2 is M + 1, nth1_select(M2,N,_取得値,R1,_更新値,R2).」 / Twitter

findall

尾崎隆大さんはTwitterを使っています 「% Prolog 文字列の分解の例(_分解された文字列) :- findall(_文字,sub_atom(大草原不可避,_,1,_,_文字),_文字ならび,['']), atomic_list_concat(_文字ならび,w,_分解された文字列). https://t.co/IBes0l34km」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '1980年頃には知られていた findall/3 ですが、 findall/4 は相当に新しいと思います。第四引数に差分リストがくるのがこの述語ですが、 atomic_list_concat/3 が第二引数を植木算的に間にしか入れないために不十分で、空文字を番兵的に差分リストの中に使って最後のwを挿入しています。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- 文字列の分解の例(_分解された文字列). _分解された文字列 = 大w草w原w不w可w避w . ?-」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '実は、 findall(_文字,sub_atom(大草原不可避,_,1,_,_文字),_文字ならび,['']), の部分は本来、 atom_chars(大草原不可避,_文字ならび), でよいのだが、それだと _分解された文字列 の最後にwを付ける機会が一番最後になってしまう。それでfindall/4という凝った組込述語を使ったわけだ。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '一旦、 大w草w原w不w可w避 という文字列を作り、その最後に atom_concat/2 の第二引数をwとして実行して完成するというのは、癪なので。'.」 / Twitter

行入力

尾崎隆大さんはTwitterを使っています 「% Prolog 空白区切りの行入力(_入力,_文字列ならび) :- read_line_to_string(_入力,_文字列), split_string(_文字列," ","",_文字列ならび). カンマ区切りの行入力(_入力,_文字列ならび) :- read_line_to_string(_入力,_文字列), split_string(_文字列,",","",_文字列ならび).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ということで '文字列を区切り文字列で分割する。ただし、区切り文字列も要素として残す。'(_文字列,_区切り文字列,_置換された文字列) :- 文字列を区切り文字列で分割する(_文字列,_区切り文字列,L), ならびの空文字要素を置換文字列に変換する(L,_区切り文字列,_置換された文字列ならび). https://t.co/2HcnrAWB4M」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 今の所こんな迂遠な方法しか思いつかない。 ?- 文字列を区切り文字列で分割する(尾崎隆大,崎隆,L), ならびの空文字要素を置換文字列に変換する(L,崎隆,_置換された文字列ならび). L = [尾,'',大], _置換された文字列ならび = [尾,崎隆,大].」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 基本的にはこれでよいのでは。私はStringは使いませんが。 '入力 1行に1つ そのまま変数へ'(_変数) :- read_line_to_string(current_input,_変数). https://t.co/Pgnk42mDR1」 / Twitter
Prolog競プロ用チートシート - Qiita
尾崎隆大さんはTwitterを使っています 「% Prolog 'ファイルから情報を読み取る場合、Prologでは see(_ファイル名), としてストリームを形成してきました。 読み込み述語が read/1 の場合、end_of_fileを読み込むことによってファイルの終了を認識しました。そのことから、ひとつ不都合が生じました。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それは、読み込み述語の第一節に停止節を起きたい場合に起こります。 読み込み([]) :- read(end_of_file),!. 読み込み([A|R]) :- read(A),読み込み(R). のようなコードを実行すると、第一節で read が空転して、結果一つ跳びに情報が取れてしまう。副作用の弱点が出る。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これを解決するのが、伝統的な、そう、先読みですということになる。COBOLではあるまいし。ここでは先読みのコードは載せませんが、実は解決策がある。第一節を、 読み込み([]) :- at_end_of_stream(current_input),!. ・・・ とするのです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ' see(_ファイル名), で作られたストリームが後に変更になっていない場合は、現在のストリームをcurrent_inputで参照できます。そしてそれを使って、at_end_of_streamを認識できる。いわばpeekできる訳です。これも副作用だが、覗くだけなら悪さはしないということになります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これで、先読みのような不自然なコードから解放されます。ところが、実は事務処理のプログラムなどでは、この先読みによって、ひとつ前の情報が常に引数にあって、それをプログラムの中で自然に参照できて、情報の比較をすることの役に立っているいうこともあるのです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ただ、現在のPrologのコードスタイルとしては、情報はできるだけ、データベースに展開するか、全データをリストに取り込んで処理に行くというのが主流で、ファイルを読み込みながら何かをすることは少ない。私も先読みで処理するコードを書く機会はほとんどなくなりました。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'split_stringに訂正。 read_line_to_integers(L) :- read_line_to_string(current_input,String), split_string(String," ","",LL), maplist(integer_string,L,LL). integer_string(Integer,String) :- number_string(Integer,String), integer(Integer). となる。'. https://t.co/mL5NlwhO7N」 / Twitter

CSV

尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび) :- read_line_to_string(_入力,_ストリング), split_string(_ストリング,",","",_ストリングならび), maplist(string_to_atom,_ストリングならび,_項目ならび).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの処理(カンマ区切り)'(_ファイル,_項目区切り行ならび) :- open(_ファイル,read,_入力), findall(_項目ならび,( repeat,(at_end_of_stream(_入力),!,fail; 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび))),_項目区切り行ならび), close(_入力).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 再帰で 'csvファイルの項目区切り行を全て読み込む'(_入力,[]) :- at_end_of_stream(_入力),!. 'csvファイルの項目区切り行を全て読み込む'(_入力,[_項目ならび|R]) :- 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび), 'csvファイルの項目区切り行を全て読み込む'(_入力,R).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの処理(カンマ区切り)'(_ファイル,_項目区切り行ならび) :- open(_ファイル,read,_入力), 'csvファイルの項目区切り行を全て読み込む'(_入力,_項目区切り行ならび), close(_入力). '再帰だと、文字数制限の為すこし不自然なところがありますが、ざっとこんな感じになります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 文字列からカンマで区切られたアイテム数を得る(_文字列,_アイテム数) :- split_string(_文字列,",",",",_アイテムならび), length(_アイテムならび,_アイテム数).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog アイテムをアトムとして取り出したい 'CSV形式の文字列から任意のアイテムを取り出す'(_文字列,_アイテム) :- split_string(_文字列,",",",",_アイテムならび), member(S,_アイテムならび), string_to_atom(S,_アイテム).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 文字列の両端にあるダブルクォーテーションを取り除く(_文字列,_取り除いた文字列) :- 副文字列(_文字列,'"',_取り除いた文字列,'"'). 副文字列(_文字列,_前文字列,_副文字列,_後文字列) :- atom_concat(_前文字列,_残り文字列,_文字列), atom_concat(_副文字列,_後文字列,_残り文字列).」 / Twitter
尾崎隆大さんはTwitterを使っています 「文字列の両端にあるダブルクォーテーションを取り除く(_文字列,_取り除いた文字列) :- 両端の文字はダブルクォーテーション(_文字列), sub_atom(_文字列,1,_,1,_取り除いた文字列). 両端の文字はダブルクォーテーション(_文字列) :- sub_atom(_文字列,0,1,_,'"'), sub_atom(_文字列,_,1,0,'"').」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologで最も簡単なsplit処理は ?- atomic_list_concat(L, ',' ,'abc,def'). L = [abc,def]. だろう。これにはSWI-Prologではの但し書きが付く。'.」 / Twitter

エラーと偽の区別など

尾崎隆大さんはTwitterを使っています 「% 翻訳は 'プロパティベースのテストでは、反例を縮小すると他のバグが明らかになる可能性があります。 優れた実装は、これらの他のバグも報告します。 しかし、論理プログラミングはこれを本質的に困難にします。バグはしばしば失敗を引き起こし、失敗は有益ではなく、区別することができません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ここまでの主張はPrologが日本に紹介された頃から言われていたことで目新しさはないのだが、この続きが読みたい。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'コメントすると、Prologではエラーと偽の区別がし難いということが言われます。ここでは、それとは少し違って、 「確信をもって偽としたもの」と、非決定性述語の解をすべて取得する際に(一時的に)偽になったものが、同じ制御上に乗ってしまうため区別をつけられないの意味だと思います。'.」 / Twitter

DB

Sadayuki FuruhashiさんはTwitterを使っています 「RDBMSって視点によっては「プログラマブルなデータストア」で、データモデルはリレーショナルモデルに基づいていて、SQLでプログラムできる。一方、アプリケーションってプログラマブルじゃない。今その間が必要とされている。RDBMSほど柔軟性があっても困るけど、プログラマブルなデータストア。」 / Twitter
市川 真一さんはTwitterを使っています 「Prolog インタプリタに永続性を追加したもの、みたいな https://t.co/YXYiPrQBM8」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「RDBMSよりずっと柔軟性が高い、GemStone/Sはいかがでしょう?Smalltalkというプログラミング言語処理系がまるっと載ってます。 https://t.co/nKSlUd7ZYS」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'インメモリデータベースに採用される索引機構で書き込み速度の速いものはどんなものがあるのだろうか。Prologデータベースの弱点というよりも、Prologの弱点は定義節の追加が定義節数が多くなるに従って目に見えて遅くなることなので。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologでは、同一述語の定義節数が数千万を超えると書き込み速度が落ちる。これは第一引数に暗に、索引が振られていて、それがハッシュで、ハッシュテーブルの作り直しを強いられているのではないか。第二、第三、・・第n引数にも索引は欲しいのだから設計の変更が必要ではないか。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '私の現在使っているマシンは物理10コアですが、 SWI-Prologで8-threadで並行処理をすると、逐次的に処理するのに較べ、7.74倍速くなります。メッセージ交換がない場合ですが。threadを気楽に使うことができるようになりたいものです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは何故8倍にならないかですが、これは唯一箇所にある1億節のデータベースを各スレッドが共通して参照しているからです。データベースをコアのcacheに収まるくらい小さくして、8-threadにすれば、8倍に極めて近くなるはずです。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% prolog 'Prologデータベース(頭部のみで本体がないもの)の定義節のn番目を取得するためには nth_clauseという組込述語を使います。この述語の使い方は少々難しいので、 ''from:@TakaoOzaki nth_clause'' とツイッター参照をしてみてください。結構書き込んであります。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologの場合、予め、以下の定義をしておく。 第n節の頭部(_n,_頭部) :- nth_clause(_頭部,_n,Ref), clause(_頭部,_,Ref). ?- 第n節の頭部(2,氏名(X)). X = 東竜太郎 . '. https://t.co/s7UUAqHvQ3」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog の問題です ' 氏名(尾崎行雄). 氏名(東竜太郎). 年齢(60). 年齢(67). 氏名と年齢をばらばらに定義してしまいました。これを [[尾崎行雄,60],[東竜太郎,67]] のように定義順にまとめたい。そのためにはどんな述語を定義すればよいか。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ?- findall([_氏名,_年齢],( 第n節の頭部(_n,氏名(_氏名)), 第n節の頭部(_n,年齢(_年齢))),L). L = [[尾崎行雄,60],[東竜太郎,67]]. ?-」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '現在インタプリタに動的に定義されている述語の定義節、その10001節目から20000節目までを切り取りたい。こんな場合、 ?- tell(temp),listing(述語名),told. のように仮ファイルに書き出して、vimのようなエディタで処理するのが普通。そうではなく、これを直接処理したい場合もある。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologを高速に動かすためには 給与_社員名('026',尾崎隆大). 逆_給与_社員名(尾崎隆大,'026'). 給与_総支給('026',150000). 逆_給与_総支給(150000,'026'). のように持てばよい。 泣き所は_idの管理の難しさと、大量のassert時の第一引数のハッシュテーブルの更新が原因の遅延。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'foo/2が1億節定義されているとする。その第一引数に2000のアイテムがランダム(平均50000)に選択されて現れる。さて、 ?- bagof(_,B ^ foo(A,B),_). Aをキーとして取り出す。第一解が現れるまで550秒掛かった。何度繰り返してもほとんど変わらない。この時間では実用にはならない。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '要するに1億要素の重複を取り除いた結果2000要素となるソートの実行時間が9分間掛かったということだ。バッチ処理で、このキーが取得できさえすれば処理を完了できるというのならば、9分掛かっても構わないというになるのだろうが。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'なんで1億節というような、普通Prologでは扱わないような述語定義の話になるかというと、一昨日かな、失業保険のシステムの話が出たから。日本の場合は、1億人を管理することもあるのだろうから、述語定義もそういう単位になる。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog データべースの解を再帰で集める(P,L) :- データべースの解を再帰で集める(1,P,L). データべースの解を再帰で集める(M,P,[P|R]) :- copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), succ(M,N), データべースの解を再帰で集める(N,Q,R),!. データべースの解を再帰で集める(_,_,[]).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog これだと末尾再帰 データべースの解を再帰で集める(M,P,[]) :- \+nth_clause(P,M,_),!. データべースの解を再帰で集める(M,P,[P|R]) :- copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), succ(M,N), データべースの解を再帰で集める(N,Q,R).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'このcopy_term/2が必要な辺りがキワモノっぽい。 copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), clause/3の第二引数(本体の部分)を匿名変数にしているが、clauseはcallではない。定義は参照されるが、本体が導出される訳ではない。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '言うまでもないことだが、こんな定義は本来必要ない。 データベースの解を集める(P,L) :- findall(P,P,L). だけで済むのだから。nth_clause/3の使い方の例として示してみただけ。'.」 / Twitter

規則外の意味比較

ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 命題を真偽判定可能な単位に分割し、単位毎に既知の知識に照合して推論するのがPrologだと理解していますが、設問をもって「既知の知識」を自己拡張する能力って持ってましたっけ?」 / Twitter
JO3ALTさんはTwitterを使っています 「@uchujin17 当然、規則外の意味比較には対応していないはず。なので、あまり結果は良くなかったような記憶があります。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 僕も卒研はいちおう「人工知能」だったんですが、当時の人工知能は教授がモデルを作り、学生はひたすら既知データを打ち込んで、そこに設問を入れて正解率を見てみる、という原始的なものでした。正解率の上下で一喜一憂するけれど、その原因が何なのかは解析できていませんでした。」 / Twitter
ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 打ち込んだ既知データがどれだけ正しいのか、打ち込み時にミスが無かったかどうかの検証も怪しいもので、GIGOをこねくり回している感がありました。だから僕は「人工知能」に絶望して、それが21世紀になってこんなに発展したことに驚いています。」 / Twitter

flatten

Shinji KonoさんはTwitterを使っています 「Prologを書けるようになったと感じたのはflatten書いてから。木構造を平らなリストに展開するやつね。そこから簡単な並列言語を作るまで2ヶ月くらい。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 昨日@shinji_kono先生が言及されていたflatten/2 my_flatten(L1,L2) :- my_flatten(L1,[],L2),!. my_flatten(V,L,[V|L]) :- var(V),!. my_flatten([],L,L). my_flatten(A,R,[A|R]) :- \+list(A),!. my_flatten([L1|R1],L2,L) :- my_flatten(L1,L3,L), my_flatten(R1,L2,L3). list([_|_]).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'やはり、my_flatten/3の第三節の第二・第三引数のやり繰りが難しい。先生の感想もここら辺りを発見/理解できて、自信が付いたということなのでしょう。差分リストの類ですが、quick_sortの中に現れるそれよりは易しいと思います。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'すみません。間違い。 my_flatten/3の第四節になりますね。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'さらにすみません。 この第四節の第一引数のなかにR1となっているところがありますが、ここはRとしてください。R1でも構わないのですが、そして第一引数を強調しての1なのですが、他にRなんとやらが現れない場合はRだけにした方がよいでしょう。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '細かなことはともかく、 my_flatten([L1|R1],L2,L) :- my_flatten(L1,L3,L), my_flatten(R1,L2,L3). この第二引数・第三引数の ・・,L2,L) :- ・・,L3,L), ・・,L2,L3). というパターンは頭に入れておくとよいですね。append/3の定義を覚えておくとよいように。'.」 / Twitter
Shinji KonoさんはTwitterを使っています 「@TakaoOzaki 変数なし想定で書いた方が良いです。」 / Twitter
Shinji KonoさんはTwitterを使っています 「@TakaoOzaki これで学ぶのは差分リストの使い方なので。変数が入る場合は最初にnumbervarsで変換してしまうのが楽です。理論でもそうするみたいです。」 / Twitter
Shinji KonoさんはTwitterを使っています 「差分リストはPrologを使うプログラミング的な利点なのだが、Prologの持ってる論理的基礎とは相性がよろしくない。まったく合わないってわけでもないんだが、希望を砕くくらいにはずれてる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「上田先生のX’talは自身でモデル検査できるので、もう少し注目されても良かったが… まだ、ギリギリPrologと言える感じ? いや、別物?」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここからたどれるのかな。KL1Cがあるな。 https://t.co/a9OnMrdA6w」 / Twitter
Kazunori Ueda, Prof.
尾崎隆大さんはTwitterを使っています 「% Prolog my_flatten([],[]). my_flatten([[A|R]|R1],L3) :- my_flatten([A|R],L2), append(L2,R2,L3), my_flatten(R1,R2),!. my_flatten([A|R1],[A|R2]) :- my_flatten(R1,R2). '変数を除外しましたが、append/3を差分に使ったこのコード。意外なことに最速かも知れない。'. https://t.co/CN5FcXuXav」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog my_flatten(L1,L2) :- my_flatten(L1,[],L2),!. my_flatten([],L,L). my_flatten([[A|B]|R1],L2,L) :- my_flatten([A|B],L3,L), my_flatten(R1,L2,L3),!. my_flatten([A|R1],R,[A|R3]) :- my_flatten(R1,R,R3). 'これが最速コード。先程のappend/3を使ったコードとの差は3%程度です。'.」 / Twitter

ソケット

尾崎隆大さんはTwitterを使っています 「% Prolog udpを書いたから今度はtcp tcpソケットの準備(_接続用ソケット,_ポート) :- tcp_socket(_接続用ソケット), tcp_bind(_接続用ソケット, _ポート), tcp_listen(_接続用ソケット, 5).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog サーバーサイドはこんな流れ 接続要求を確認したら接続用ソケットを開く(_接続用ソケット,AcceptFd) :- tcp_open_socket(_接続用ソケット,AcceptFd,_). tcpインタプリタ(AcceptFd) :- repeat, 行を読みだして実行(AcceptFd), fail.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog ストリームを準備するのはこの段階 行を読みだして実行(AcceptFd) :- 接続されたら実行用ソケットを開く(AcceptFd,_実行用ソケット,_Peer,In,Out), 一行読み出し項に変換(In,_項,_エラー情報), インタプリタの実行(_実行用ソケット,In,Out,_項).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 接続されたら実行用ソケットを開く(AcceptFd,_実行用ソケット,_Peer,In,Out) :- tcp_accept(AcceptFd, _実行用ソケット, _Peer), tcp_open_socket(_実行用ソケット, In, Out), set_stream(Out, encoding(utf8)), set_stream(In, encoding(utf8)).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog インタプリタの実行(_ソケット,In,Out,_項) :- 親タスクで実行(In,Out,_項), 子タスクで実行(_実行用ソケット,In,Out,_項).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 親タスクで実行(In,Out,_項) :- 項は親タスクで実行するべきもの(_項),!, 親タスクで実行(In,Out,_項,_エラー情報), fail. 親タスクで実行(_,_,_項) :- 項は子タスクで実行するべきもの(_項).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 話が前後するが、トップレベルは サーバ(_ポート) :- tcpソケットの準備(_接続用ソケット,_ポート), 接続要求を確認したら接続用ソケットを開く(_接続用ソケット,AcceptFd), tcpインタプリタ(AcceptFd).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 以下のような流れに 子タスクで実行(_実行用ソケット,In,Out,_項) :- thread_create(項を実行して結果を返す(In, Out, _項),_,[]). 項を実行して結果を返す(In, Out, _項) :- 目標評価(In, Out, _項), '項を書き出し、空行を送信する'(Out,_項), ストリームを閉じる(In,Out).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ここでは、tcp/ip関係の組込述語がどのような順序で使われるかを見ていただきたい。'.」 / Twitter

引数の数

み。さんはTwitterを使っています 「本タワーの一つにErlangの本があって読んでいるけど、大学の時のPrologの記憶が意外と残っててびっくりする。「関数に引数の数をarityと呼ぶ」というのを見て、ああarityねみたいになったけど、よく考えたら他で使ったことない単語だ。」 / Twitter
み。さんはTwitterを使っています 「arityって英単語として関数が取る引数の数という意味があるみたいだけど、これまで全然見なかったのは単に自分が勉強した範囲でたまたま使ってないだけかな。日本語だったら引数の数って表現すればいいから使う必要がない説もある。」 / Twitter
み。さんはTwitterを使っています 「数学とか論理学の英語論文とか読んでる人には馴染みのある単語なのかもしれない。」 / Twitter

尾崎隆大さんはTwitterを使っています 「@hatsugai % Prolog 'Prologに関しては、実は非常に単純なことをやっているんだと分からせてくれる解説本がない。どの本も何かに繋げたくての解説になっている。繋いで楽しませてやろうと思っている内容が少々高度なので、理解の進み具合との間にギャップが生じて難しくなる。'.」 / Twitter
prolog_sukiさんはTwitterを使っています 「質問掲示板とかのPrologの質問、かなりの割合で大学の授業で「やらされている課題を解くための」質問で、本当にPrologに興味持った人が質問しているわけではないので、萎える。一時期積極的に回答してたけどもうやってない。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '注意するまでもないと思うが、私はリストという言葉が大嫌いだから、これを「ならび」と表現している。時にリストと表現している述語もあるが。'.」 / Twitter
竹渕瑛一さんはTwitterを使っています 「Prologは再帰定義やカットがなければ,マルバツゲームみたいな言語だからわかりやすい」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 非決定性の述語 '1文字の出現頻度'(_文字列,_文字,_出現頻度) :- bagof(_,'1文字取り出す'(_文字列,_文字),L), length(L,_出現頻度). '1文字取り出す'(_文字列,_文字) :- sub_atom(_文字列,_,1,_,_文字).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これは私の7-8年前のツイートですが、誰でもが当たり前にこう思う時代は何時来るのか。'( 'https://t.co/8RyeB7WyqG').」 / Twitter
尾崎隆大さんはTwitterを使っています 「Prologで何ができるかという話ですが、手つかずの領域が多すぎて。コンピュータで処理する。プログラム言語で記述する。それに相応しい領域の常識というのが狭すぎて。それから外れたら、そこは全部Prologの領域です。要するにコンピュータで動くかどうかなんて最初から問題にしていない。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologは型どころか、構造体をつくらないな。述語以外には。'.」 / Twitter
prolog_sukiさんはTwitterを使っています 「論理学の本読んでるんだけどカット除去理論のカットとPrologのカットって全然別物なのね・・・」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '数式の話が出ましたが、Prologというのは is/2 の第二引数に数式を閉じ込めている。と書くて正確ではない。比較演算子の両辺には数式を書くことができます。ただ言語として遠ざけていることは感じます。私はその先鋒かな。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ほとんどのプログラム言語でPrologを組み込もうとすると、AZ-Prologのような専用の処理系に速度的に勝てない。組込述語の充実など使い勝手でも勝てない。さらにPrologのコードは数理論理学の専門家でない限り、突然に書くことは難しい。それで作っても使われなくなってしまう。'.」 / Twitter
zimmy_yさんはTwitterを使っています 「Prologでニューラルネットとか計算量が多いプログラムを作る場合、Visual Prologが有力候補です。 Visual Prologは型定義ありで、C言語並みの処理速度です。 私の持っている円周率プログラムでの 1万桁計算時間(AMD 3400G) SWI Prolog 201.813s LPA Prolog 104.823s Visual Prolog 16.875s」 / Twitter
尾崎隆大さんはTwitterを使っています 「@daigakusenyoo % Prolog 起動プログラムは swipl です。 -q オプションでopening messageが抑制されます。 $ swipl -q ?- append([3,4],[a,b,d],L). L = [3, 4, a, b, d]. ?- halt. $」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog Ubuntuで動かしています $ cat >https://t.co/dDe59M8LRc hello :- write('Hello World!\n'), halt. :- hello. ctrl-d $ swipl -q -f https://t.co/dDe59M8LRc | wc 1 2 13 $」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologの起動ですが、 Windowsの場合は、実行ファイルとして \Program files\swipl\bin\swipl.exe と \Program files\swipl\bin\swiwin.exe の二つがありますが、swiplをPower Shellで呼び出せばよいでしょう。'.」 / Twitter

Prolog - Wikipedia
Haskellが数学だとすれば、Prologは国語だ
Prologで構文解析という昔話
構文解析
は、PrologでシンプルなC言語を実装していますか? - VoidCC
Prolog Programming: Language Processing (in Japanese)
Prolog Programming: Database (in Japanese)
#:g1
神戸 Swi-Prologを使ったエキスパートシステムのメタルールやメタインタープリタの作成方法 - 初心者入門サンプル
大学 Swi-Prolog を使用したエキスパート システムのメタルールおよびメタインタプリタの作成方法 / 逆引きリファレンス
Multi-Paradigm Language TAO
プロローグ:ビルトイン付きの「バニラ」メタインタプリタ - コードログ
Prolog: "Vanilla" metainterpreter with builtins - Stack Overflow
metaprogramming - Depth limited search in prolog (vanilla meta-interpreter) - Stack Overflow
Prolog Guide - Metainterpreters
A Couple of Meta-interpreters in Prolog
Prologによる簡単なモデリング例
Prolog入門
事実と質問
UTF-8からUnicodeへの変換
Prolog入門
Prolog - Wikipedia
bitlaw-jp
The birth of Prolog | The second ACM SIGPLAN conference on History of programming languages

Prolog の知識を外部の知識で自動生成

python 3.8.2でprologを動かしてみた - Qiita
Koji von IgarashiさんはTwitterを使っています 「PythonとPrologとの連携 https://t.co/QH7THYSFOE」 / Twitter
AZ-Prolog | トピック: PythonとPrologとの連携
Koji von IgarashiさんはTwitterを使っています 「PythonからSWI-Prologの機能を呼び出す https://t.co/EezGH0Xzx4」 / Twitter
Pythonを応用した活動の紹介 - Qiita
尾崎隆大さんはTwitterを使っています 「% Prolog 'Pythonで書かれたDeep Learningや機械学習のコードや結果を統制する為のプログラム言語としてはPrologは最適なものだろう。今後はこの需要に答えるためにPrologプログラマが大量に養成されることだろう。 これがPythonからPrologを呼び出す方向。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは、どんな需要があって、PrologからPythonを呼びだすインターフェイスが欲しいのか。 Prologで知識を蓄えるのには実は膨大なコストが掛かる。これを外部の知識で自動生成したい。データマイニングや機械学習でこの部分をなんとかできないか。この要請はずっと前からある。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '2日前に示した https://t.co/fgJeNGnkL1 程度の易しいPrologプログラムはルール節も含めて、機械学習で自動生成できるのではないか。もしできるとなれば、Prologは現在の地平を一気に飛び抜けてしまう。'.」 / Twitter
nojiriko.asia/prolog/fuufu_dousei_mondai_20151219_utf8.html

単一化

ユニフィケーション - Wikipedia
Unification (computer science) - Wikipedia
Unification
2051-19.pdf
unify.pdf
ppl4-3.pdf
Microsoft PowerPoint - prolog-2007.ppt
ja
ppl4-3.pdf
proofsummit.pdf
CiNii 論文 -  A unification algorithm for typed λ-calculus
unify.pdf
機能単一化文法 - English translation – Linguee
7-6. Unification
ppl6-4.pdf
Kota Mizushima (on a diet)さんはTwitterを使っています 「最近、色々な言語がパターンマッチを言語の第一級構文として入れようとしている(入れている)のを見ると、言語の進化としてパターンマッチはやっぱり正解だったんだろうな。そこから、さらに双方向のパターンマッチとしてPrologのような単一化が入ったりしないだろうか。」 / Twitter
小さいMLの型推論機を書いた - TypoTypoTypo
画力・博士号さんはTwitterを使っています 「「単一化アルゴリズムの実装は参考書や論文に書かれている擬似コード通りにやるよりもmutable referenceを型の表現中に噛ませて解消時に破壊的に書き換える方法を採るのが定石」という話は実際全然入門書で扱われないな」 / Twitter
画力・博士号さんはTwitterを使っています 「手頃な資料としてはこれを読むとよいです(全称量化を型環境全走査ではなくlevel-basedにやる話も載ってる): How OCaml type checker works -- or what polymorphism and garbage collection have in common https://t.co/5tto0ns6AJ」 / Twitter
Efficient and Insightful Generalization
Masaki HaraさんはTwitterを使っています 「束縛変数を考慮した単一化は実はそんなに難しくないような気もしてきた。単一化変数に何回shiftしたかの情報も置いておくと、shiftよりも小さいde Bruijn indexの束縛変数とは単一化できないみたいなルールが作れる。単一化変数同士の場合はshiftの大きい方にあわせる」 / Twitter

パースの法則

パースの法則 - Wikipedia
Peirce's law - Wikipedia
call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
ch.pdf
d.y.d.
popl90.pdf
HOSC-double-barrel.pdf
lambdamu.pdf

線形論理・π計算

線形論理

kenkyu0290100690.pdf
ゲーム意味論 線形論理 - Google 検索
PowerPoint プレゼンテーション - ppl-summer-2015.pdf
1525-7.pdf
msj07.dvi - msj07.pdf
001_16.pdf
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
π計算
El Pin AlさんはTwitterを使っています 「https://t.co/zTdBJTgXS8 『線形論理についての軽い調査』を公開しました」 / Twitter
linear_logic.pdf

線形論理 π計算

π計算

スライド

π計算
PI-calculsu
pi-calculus.ppt - pi-calculus.pdf
other-calculi.ppt - other-calculi.pdf
concurrency.ppt - concurrency.pdf

プロトコル記述

IPSJ-TPRO4308019.pdf

エージェント

CiNii 論文 -  π-計算を用いたエージェントのプランの形式化に関する研究
IPSJ-JNL4209002.pdf

分散オブジェクト

CiNii 論文 -  π計算からJavaへの変換系を用いた分散システム開発手法
IPSJ-Z67-1S-03.pdf
abst062.dvi - IPSJ-TPRO0101009.pdf
IPSJ-TPRO4711012.pdf

リアルタイム・オブジェクト

IPSJ-JNL4506002.pdf
CiNii 論文 -  時間付きπ計算における有限プロセスの時間動作抽象化 (計算機科学の理論とその応用 RIMS研究集会報告集)
CiNii 論文 -  π計算に対する時間拡張と合同的性質

GUI・視覚化

CiNii 論文 -  π計算に対する視覚化システム
CiNii 論文 -  π計算に基づくプログラミング言語Nepi のためのGUI機能
IPSJ-TPRO4512011.pdf

Haskell

k9694.pdf
IPSJ-TPRO4716003.pdf

仕様検証・論理体系

IPSJ-TPRO4611006.pdf
CiNii 論文 -  線型論理・π-計算による構成的プログラミング・システム

k9694.pdf
pi calclusを学ぶにあたって参照したドキュメントとその紹介その一 - けいぞうのメモ帳
A Very Brief Introduction to the Pi-Calculus (in Japanese)
CiNii 論文 -  M-pi計算 : モジュール記述を持つ計算体系
CiNii 論文 -  π-計算の名前制限の名前生成による実装の正しさ
KAKEN — 研究課題をさがす | π計算の圏論的意味論と論理的解釈 (KAKENHI-PROJECT-19K20211)
06gun_03hen_05.pdf
Parallel and Distributed Systems: Winter Semester 2013
Foundation of Software: Winter Semester 2006
授業ホーム | 並行分散計算特論 | 情報科学研究科 | 名大の授業 (NU OCW)
54-2-3_特集_06-1.qxd - 0601.pdf

PowerPoint Presentation - DNaward.talk.jp.final.pdf
IPSJ-TPRO4611006.pdf
07gun_01hen_01.pdf
j-1-1.pdf
j-1-2.pdf
j-1-3.pdf
j-2-1.pdf
j-2-2.pdf
j-2-3.pdf
okada.pdf
Computersoftware Vol.20, No.5 - 20_502.pdf
コンピュータソフトウェア18巻1号 - 18_195.pdf
ipsjPRO01.pdf
21_74.pdf
30_2_83.pdf
001_16.pdf
print-3-phase.pdf
kenkyu0290100690.pdf
other-calculi.ppt - other-calculi.pdf
π計算 - 数学とプログラミングとくだらないこと
A Very Brief Introduction to the Pi-Calculus (in Japanese)
π計算
PPL7-4.pdf
IPSJ-TPRO4716003.pdf
resume8.pdf
resume9.pdf
process-pi-calculus - process-pi-calculus.pdf

線形論理 停止性

summer1.pdf
birth.dvi - birth.pdf
IPSJ-TPRO4611006.pdf
toyama-final.dvi - toyama-final.pdf
07gun_01hen_02.pdf
1875paper.pdf

時間付きπ計算

IPSJ-JNL4506002.pdf
1554-01.pdf

プルーフネット 線形論理

jssst01k.pdf
ipsjPRO00t.pdf
paper.pdf

英文

重点項目

Linearity and the pi-calculus | ACM Transactions on Programming Languages and Systems

An exact correspondence between a typed pi-calculus and polarised proof-nets - ScienceDirect
On the π-calculus and linear logic - ScienceDirect
Linear Logic Propositions as Session Types
Session Types as Intuitionistic Linear Propositions | SpringerLink
The π-calculus as a theory in linear logic: Preliminary results | SpringerLink
DROPS - Cut Reduction in Linear Logic as Asynchronous Session-Typed Communication
Linear Logical Relations for Session-Based Concurrency | SpringerLink
A New Linear Logic for Deadlock-Free Session-Typed Processes | SpringerLink
On linear logic planning and concurrency - ScienceDirect
"The Pi-Calculus as a Theory in Linear Logic: Preliminary Results" by Dale Miller
The Pi-Calculus as a Theory in Linear Logic: Preliminary Results - fulltext.pdf

線形論理 - Wikipedia
シークエント計算 - Wikipedia
適切さの論理 - Wikipedia
ゲーム意味論 - Wikipedia
直観論理 - Wikipedia
summer1.pdf
birth.dvi
kenkyu0290100690.pdf
Brief introduction to linear logic
ipsjPRO00t.pdf
ja
1+1ができない子と線形論理 - 檜山正幸のキマイラ飼育記
「線形論理」の検索結果一覧 - 檜山正幸のキマイラ飼育記
線形論理。 - いもあらい。
Ryo HaruyamaさんはTwitterを使っています 「中止になった修論中間発表のスライド等です。内容は線型論理の相意味論についてです。 https://t.co/p00n1OEuOe」 / Twitter
rharuyama/soundness-for-linear-logic-regarding-phase-semantics: 修士論文中間発表用提出物
Ryo HaruyamaさんはTwitterを使っています 「ググると出てくる照井先生の「線型論理の誕生」が二種類[1][2]あって、内容が少し違うのだけど、後者[2]の方の参考文献の紹介が参考になると思う。 [1]: https://t.co/Th5lHpqVpg [2]: https://t.co/M6zZkZPlJN」 / Twitter
birth.dvi
1525-7.pdf
Ryo HaruyamaさんはTwitterを使っています 「やっぱり証明をちゃんとやろうとするとGirardの1987年の論文[3]が良いですかね。The Blind Spotという本もあるけど、1章の哲学パートは難しそうなので、頭から読むものではないかもしれない。形式的な部分だけなら参考になる。 [3]: https://t.co/QMwFZb3TXP」 / Twitter
Linear logic - ScienceDirect
ko0307.pdf
62_0621115.pdf
CiNii 論文 -  線形論理と論理プログラミング
CiNii 論文 -  線形論理に基づく計算モデルの理論概説
CiNii 論文 -  ペトリネットモデルに対する線形論理の完全性
CiNii 論文 -  型付きλ計算の古典線形論理の計算的解釈への埋め込み
CiNii 論文 -  名前通信プロセス計算の並行コンビネータ
とりとめのない GHC 線形型メモ - 趣味はデバッグ……

様相論理・時相論理

線形論理と時相論理

情報学広場:情報処理学会電子図書館
30_2_83.pdf
jssst01k.pdf
PowerPoint Presentation - modal-temporal.pdf
B-028.pdf
1966paper.pdf
lambdaCB-PPL05.pdf
ai_03_001.pdf
07gun_01hen_02.pdf

制約充足問題・LTL

リアクティブシステム仕様を実現可能にするための環境制約の抽出
平均利得時間論理とそれを用いた検証・最適化手法
充足可能性判定を利用したモデル検査
UMLに基づくRTOS設計検証のための環境自動生成法
Formal Method Europe (FME) 2001 参加報告
抽象化を用いた検証ツール
制御システム分野におけるモデル検査の応用
IEICE Trans - モデル検査の実行順序制約の図式表現と試験ケースの自動生成
IEICE Trans - 記号モデル検査によるスマートオブジェクトの近接連携シナリオの効率的な検証
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
千葉商科大学学術リポジトリ
http://t2r2.star.titech.ac.jp/rrws/file/CTT100667201/ATD100000413/
1-FPAI107-20180807-B801_01-06.pdf
2-FPAI101-20160807-B504_07-14.pdf
Honbun-t3606u021.pdf
KJ00005931319.pdf
tanabe_dsw06.pdf
147691361.pdf
235184037.pdf
3635paper.pdf
90001267.pdf
ippan4-5.pdf
ppl9-2.pdf
paper.pdf
紀要34号片山3(校了).indd - KJ00010099963.pdf

時相論理

時相論理・余帰納的手法

余帰納的手法

テスト集合余帰納法を用いた振舞等式の検証
無限の入出力を行う関数型プログラムの K正規化の形式的検証
第34回大会受賞者の声
帰納法と余帰納法にまつわる伝承 - 秋津早苗の備忘録
双対的にみる余帰納法 1.イントロ - Qiita
余帰納法についての質問と回答 - Togetter
情報学広場:情報処理学会電子図書館
始代数 - Wikipedia
余論理式,再帰型,循環的言語 - Coformulas-recursive-type-circular-language.pdf
general13-1.pdf
<30392D91E6343589F191E589EF838F815B834E835683878362837695F18D902E706466> - 46_85.pdf
ws1_2.pdf
2019-5-4-4.pdf
cs2019hoshino.pdf
algPLJapaneseJan2014.pdf
4.pdf

井山梃子歴史館さんはTwitterを使っています 「時相論理」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「あと余帰納的手法がよく効きそう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「あと基本的にはsafety, liveness, fairnessでググればいいかな」 / Twitter
ogiwaraさんはTwitterを使っています 「@sanjutsu_yu 他二つはオートマトンだけで説明できるのかな?と思い…」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「@designpatterngf Deadlockは項書き換え系において、受理状態でない状態で書き換え規則が適用できなくなった…とかで定義できそう ほかはぼくがそもそもどんなものか知らないので何とも…」 / Twitter
ogiwaraさんはTwitterを使っています 「これはObstruct freeとLock freeとWait freeの区別にもつながる」 / Twitter
ogiwaraさんはTwitterを使っています 「DeadlockとLivelockとStarvationをどう形式的に定義できますか?って話になって」 / Twitter
ogiwaraさんはTwitterを使っています 「@__pandaman64__ どこかに参考になる文献ありますか?」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@designpatterngf わからん…」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@designpatterngf https://t.co/SxWhz6oZh2 SEPでも読む…?入門に良いかは分からない」 / Twitter
Temporal Logic (Stanford Encyclopedia of Philosophy)

時相論理 - Wikipedia
線形時相論理 - Wikipedia
計算木論理 - Wikipedia
様相論理 - Wikipedia
クリプキ・モデル - Wikipedia
可能世界論 - Wikipedia
Modal μ-calculus - Wikipedia
model-checking.ppt - model-checking.pdf
プロセス論理 時間 - Google 検索
μ計算 - Google 検索
12gun_02hen_07.pdf
0902-10.pdf
自作言語の型システムの話 - Qiita
オートマトンの概要
時相論理 排他制御 - Google 検索
時相論理 ベクタークロック - Google 検索
時相論理 ベクトルタイムスタンプ - Google 検索
時相論理 デッドロック - Google 検索
時相論理 ロック - Google 検索
時相論理 入門 - Google 検索
時相論理 モデル検査 - Google 検索
ロックコンボイ - Google 検索
レースコンディション - Google 検索
レースコンディション 時相論理 - Google 検索
ロックコンボイ 時相論理 - Google 検索

時相論理 オートマトン ペトリネット

論理式とオートマトン

kinabaさんはTwitterを使っています 「十進数どうしの足し算は定数サイズの記憶領域でできる(普通に筆算すれば繰上りを覚えて1桁ずつ出すだけ)。大小比較とかも。けど掛算は無理。でもこれは、十進表記という表記法が悪いせいかもしれない。色んな実数を表現できて色々な演算も定数メモリな数の表記法を探そう、という分野がありまして」 / Twitter
病気の美少女さんはTwitterを使っています 「kinaba さんが POPL モードなので追いかけよう。その前にこれ、まずツイートの内容がわからなかったので精進せねば…いやプログラマじゃないんですがもう…」 / Twitter
kinabaさんはTwitterを使っています 「https://t.co/KdI78F9Bqw 1/2と√3を含む加算と乗算の半環の元(実数)の文字列表現で、加算と大小比較と任意の定数倍がオートマトンで表現可能なのを見つけるよという話。実際1/2と√3に限らずもうちょい色々できる。この辺の話どこまで既知なのかわからんな」 / Twitter
Ordered Semiautomatic Rings with Applications to Geometry | SpringerLink
kinabaさんはTwitterを使っています 「定数記憶領域で書ける=オートマトンで書けるということで、すると、そういう表記法がある数と演算に関する論理式はオートマトンに変換して、マッチする文字列がある⇔論理式が真みたいにできるので、論理式の静的検証ができて嬉しい。件の論文は√3と1/2が書けるので30°回転が登場する幾何の検証とか」 / Twitter

CiNii 論文 -  有限オートマトンと表現等価な正則時相論理とその論理設計検証への応用
0902-10.pdf
ja
線形時相論理 - Wikipedia
時相論理 - Wikipedia
PowerPoint Presentation
hagiya-jssst03.pdf
オートマトン
Microsoft PowerPoint - RS2010-spin2.pptx
研究会 - 線形時相論理式からイベントベースオートマトンへの変換を利用したペトリネット検証ツールHiPS向けon-the-flyモデル検査器
07gun_01hen_03.pdf
modelcheck.pdf
jssst05.pdf
techrep.dvi
ai_03_001.pdf
Microsoft PowerPoint - 20110911_swest11.ppt
モデル検査ツールSpinによる組込みソフトウェアの検証 受講メモ
10-6-B4-4.pdf
afreeSat050215.pdf
_pdf
CiNii 論文 -  線形時相論理による組込みシステムの仕様記述とペトリネットによる実装法 (情報システム研究会 数理的アプローチと情報システム、その他一般)
17th_nagata.pdf
Dr.Uchihira's PhD Thesis
時相論理 - Wikipedia
lambdaCB-PPL05.pdf
59160283.pdf

様相論理

IPSJ-MGN300607.pdf
14_61.pdf
Introduction_to_Modal_Logic.pdf
afreeSat050215.pdf
入門・様相論理(第1回目)|山口尚|note
入門・様相論理(第2回目)|山口尚|note
入門・様相論理(第3回目)|山口尚|note
入門・様相論理(第4回目)|山口尚|note
入門・様相論理(第5回目)|山口尚|note
入門・様相論理(第6回目)|山口尚|note
入門・様相論理(第7回目)|山口尚|note
入門・様相論理(第8回目)|山口尚|note

ゲーデル変換 様相論理 古典論理

直観主義論理 - Wikipedia
ja
Math club public
no16
_pdf
(PDF) カリー・ハワード対応と直観主義論理の意味論入門 | Shunsuke Yatabe - Academia.edu
第13回「不完全性定理」
1525-7.pdf
1532jabstract.pdf
bookA4.dvi
計算機向きの様相論理の公理化
fom-mu-with-func.dvi
1602-11.pdf
Microsoft Word - 評価センター関先生・奨励研究_23C050_
afreeSat050215.pdf
論理学FAQのブログ
Substructural Negations | The Australasian Journal of Logic
様相演算子としての二重否定 - 論理学FAQのブログ
様相を「ならば」と「かつ」で定義する - 論理学FAQのブログ
20190527.pdf | Powered by Box
直観主義論理を理解した(してない) - Qiita

5分でハイデガー『存在と時間』|山口尚|note
チェシャ猫さんはTwitterを使っています 「何らかの充足可能性問題になりそうだというのはわかるけど、なんで LTL になるんだろ?」 / Twitter
Tomonori SHINDOHさんはTwitterを使っています 「形式手法(モデル検査)などで使う、時相論理のLTL記述からロボットアームの動作を生成する技術について日経Robotics 最新号で書きました 《日経Robotics》NEC、形式的記号論理でロボットが行動を「考える」技術、時相論理のLTLから知的な把持手順生成 https://t.co/3WGQLcxcAX」 / Twitter
NEC、形式的記号論理でロボットが行動を「考える」技術 | 日経クロステック(xTECH)
様相論理 カリーハワード - Google 検索
様相論理 証明 - Google 検索
様相論理 証明可能性 - Google 検索
staged computation - Google 検索
staged computation - Google 検索
monadic types for effects - Google 検索
monadic types for effects - Google 検索
情報学広場:情報処理学会電子図書館
1539paper.pdf
正規様相論理のためのCurry-Howard対応

ループ・再帰

ループを再帰関数にする考え方 - Qiita
R:whileループを再帰に変換する - 初心者向けチュートリアル
JavaScriptでループ関数を再帰関数に変換する - 初心者向けチュートリアル
ppl8-2.pdf
相互に定義された末尾再帰
授業資料/09 - Experimental Mathematics 1 (2010)
cpp-intro/008-loop.md at master · EzoeRyou/cpp-intro

意味論・直観主義

圏論

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうのに「関数型の基礎」というタイトルを付けるのは全力で止めていただきたいのだが、説得力のあるよい例えはないものか。 / 1件のコメント https://t.co/lv2uzQCf9k “【圏論】巨大な集合=宇宙について調べてみた【関数型の基礎】 - Qiita” https://t.co/YlfvhA1JdH」 / Twitter
【圏論】巨大な集合=宇宙について調べてみた【関数型の基礎】 - Qiita
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そりゃ遠い繋がりはあるけど、遠すぎるんだよなぁ。強いていうなら「プログラミングの基礎」だよ。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「うーん、やっぱたとえ話はこういうときよくないな。 そもそも例えが適切かどうかで話が発散してしまう。」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「違います &gt; 結論からいうと圏は集合です. https://t.co/DHGlZvpIWG」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏自体はほとんど集合を意識した構造を持たないので、圏を集合というのは語弊が大き過ぎる(cf. 集合圏の性質)。 圏は一般にかなりデカいので、扱いやすい小ささに収めるために Grothendieck universe を持ち出して議論してるという印象だった。」 / Twitter
⿻あいや⿻ 技術書執筆「せつラボ」さんはTwitterを使っています 「大きい圏(対象の集合(と|か)社の集合がユニバースな圏)の話かー。 ユニバースが集合なのか集合でないかという問題に依存しそう🤔✨ (明示的に言及されてない限り、ユニバースは集合ではない……という曖昧な感覚があります)」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏論はプログラミングという営みからも遠くて、プログラミング言語の意味論の基礎の基礎という感じがしますね」 / Twitter
wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏だけ使うなら圏論は要らない?」 / Twitter
[2010.05167] A Categorical Programming Language
圏 論 に よ る プログラミング と 論 理
20200325.pdf
8_1_34.pdf

表示的意味論

圏論

トビ🍷ペンギン村さんはTwitterを使っています 「圏論、無秩序な世界に”特定のルール”を課すことで、”同じ構造とみなせる”モノ達ができ、それによって”同一のルールで扱える”、って点ではプログラミング言語における”型”や”プロトコル”とかと似たようなモチベーションなんだろうなって思った。 いや、知らんけど。」 / Twitter
トビ🍷ペンギン村さんはTwitterを使っています 「言い換えると、すべての数値に対応する関数を f(1), f(2), f(3) ・・・って全部定義するより、 "Int"って型を用意して f(Int) な関数を1つ用意するようにしたいとか、List&lt;Int&gt;, List&lt;Bool&gt;, List&lt;String&gt; って個別のリストを用意するより、 "List&lt;Element&gt;" を1つ定義するようにしたい、とかとか。」 / Twitter
トビ🍷ペンギン村さんはTwitterを使っています 「たぶん、圏論はその扱う対象の抽象度が極めて高いから、難解に感じるだけで、モチベーション自体は極めてシンプルなんだと思う、”同じようにみなせるようにしたい”っていう。 そういう意味では、”ポリモーフィズム”みたいなものだ、って説明もありなのかもしれない。OOP ユーザには。」 / Twitter
Kosuke YOSHIMOTOさんはTwitterを使っています 「@tobi462 Haskell、モナドのインスタンスになれば、do記法を使って「命令型で記述ができる」ようになるっていう仕組みが不思議ですよね。(do記法を実現する方法としてモナドが導入されたのでしょうが。)」 / Twitter
トビ🍷ペンギン村さんはTwitterを使っています 「@ysn551 んー、私も詳しくないので断言は避けたいのですが、”モナド”という文脈を保って計算する仕組みが先に存在して、バインド関数?(==&gt;)のシンタックスシュガーとして”do記法”が用意された、という順ではないですかね・・・? Haskell はモナドがなければ I/O すら扱えないわけですし。」 / Twitter

圏論と型付きラムダ計算

PDF

RelevantTheories
5.pdf
H28-hasegawa.pdf
wakimoto3.pdf
intro.pdf
https://www.sci.kagoshima-u.ac.jp/mcs/archive/116-abst.html
20500010 研究成果報告書
jabstract.pdf
052.pdf
2009w202.pdf

職業プログラマが圏論をスルーすべき理由
圏論とプログラミング読書会#2 資料
圏 論 に よ る プログラミング と 論 理
圏論的指数の周辺:ラムダ計算、デカルト閉圏、ノイマン型コンピュータ - 檜山正幸のキマイラ飼育記 (はてなBlog)
型付きラムダ計算 構文論 再入門 1/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
デザイナーに憧れて: 型付きラムダ計算を関数型プログラミング言語と見做す
Modegramming Style: 関数型プログラミング技術マップ2015
なぜ、プログラムは書けるのか:計算論からゴールによる様相論理、意味論まで俯瞰してみる - ウィリアムのいたずらの開発?日記
typed lambda calculus型付きラムダ計算 ←・← (型を持たない「ラムダ計算」を改良したもの?! ・・・) | 隠れ家 - 楽天ブログ
yuwki0131-blog: ラムダ計算の使い方
技術者/プログラマのためのラムダ計算、論理、圏第2回
2017年振り返り - The curse of λ

d.y.d.
d.y.d.
katsumata.pdf
並列論理和の続き - sumiiのブログ
表示的意味論に基づくパターンマッチングコンパイル方式の構築と実装
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「圏論の「圏」はなんで「圏」なんだろうとずっと思ってたけど可換図式が輪っかを描くからだってことに最近やっと気づいたよ」 / Twitter
nkamlさんはTwitterを使っています 「型付きラムダ計算とカルテジアン閉圏の対応は理解できた(と思う)ので他の例を見てみたいなど...」 / Twitter
OddieさんはTwitterを使っています 「型付きラムダ計算から得られる圏C(λ_→)は基底型(基本的なデータ型のこと)の集合Xから自由生成されたカルテジアン閉圏になっており、任意のカルテジアン閉圏Cがに対し基底型の対応する対象を指定することで、カルテジアン閉圏の構造を保つ関手C(λ_→)→Cが唯一つ決まる(ラムダ計算の意味論)」 / Twitter
https://twitter.com/shinji_kono/status/1307988467096326144

ホーア論理・意味論

Incorrectness Logic

Masahiro SakaiさんはTwitterを使っています 「Incorrectness Logic https://t.co/DUWxMRaaeT ホーア論理は「QはPのもとでのCの実行後の状態の過大近似である」という関係 {P}C{Q} の導出に関する体系なのに対して、Qが過大近似ではなく過小近似である [P]C[Q] という関係の導出に関する体系 incorrectness logic の提案。 #POPL2020」 / Twitter
Incorrectness logic | Proceedings of the ACM on Programming Languages
Masahiro SakaiさんはTwitterを使っています 「ホーア論理(correctness logic)は不具合が存在しないことを証明する体系なのに対し、この incorrectness logic は具体的な(特に不具合を表す)実行例の存在を証明する体系になっていて、テスト、記号実行、バグ発見ツール等で使われている概念を捉えている。 動画: https://t.co/P4ef3AwSuk #POPL2020」 / Twitter
Incorrectness Logic - YouTube
Masahiro SakaiさんはTwitterを使っています 「過大近似と過小近似で双対的なんだけど、意外と直観が 働かなくて、でもテスト、記号実行、バグ発見ツール等で使われている概念をうまく捉えることができるよう形式化されていて、面白いな。 #POPL2020」 / Twitter

main.pdf
prg.pdf

ミーリーオートマトン・意味論

2019-5-4-4.pdf
ムーアマシンとミーリーマシン - Google 検索

直観主義論理

summer2013.dvi - summer2013.pdf
jms.dvi - jms.pdf
cm_of_mell.pdf
直観主義論理入門 - resume.pdf

直観主義論理 停止性

summer2013.dvi - summer2013.pdf
直観主義論理 - Wikipedia
4.pdf
40_1.pdf
62_0621115.pdf
msj07.dvi - msj07.pdf
ko0307.pdf
ppl2020.pdf
winter05.pdf

証明支援系・直観主義論理・圏論

Shinji KonoさんはTwitterを使っています 「最近の学生は定理証明支援系から数学に入る。それはつまり圏論から入るってこと。Agdaがお勧めだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「最近はすっかり 排中律込みの一階述語論理? だめだめ、あんなの。やめとけ。 って気分だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「学生の頃は「選択公理使わないとどうなんですか」ってな感じで、吉田先生が「微分方程式の解の存在とかが出ませんね」で そんなのいらね だったんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「今は排中律=選択公理で、非構成的な仮定の一つだというくらいの気分なので いや、別にいいから、どんどん仮定して使えよ って感じ。排中律でも選択公理でも。どこで使ったかがわかるなら問題ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そして、排中律の証明があると思った瞬間に矛盾。それは不完全性定理に当たると思っても良いし、圏論的な問題だと思っても良い。あくまでも 仮定 だとすれば問題ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「排中律を完全に排除して議論するのはAgdaならそうなるが、煩雑であることも確か。常に二重否定がかかってるみたいな逃げ道もある。つまり排中律を気にせず議論して、あとから、どこに非構成的な推論があるか調べても良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので直観主義論理で微分方程式の解の存在が証明できないというのは間違いで、非構成的な仮定から存在を導くことはできる。そもそも非構成的な命題なんだから、それで良い。だから 数学は全部、直観主義論理で良い ってことね。非構成的な仮定/公理も躊躇なく導入して良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「排中律込みだと非構成的な仮定が曖昧で探す羽目になる。例えばドモルガン。片方向が非構成的。高階論理でないと公理の有限性とかに気を使うことになる。それは時間の無駄。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、圏の圏とかはlevelの抽象化が必要なので、ちゃんとはできないらしい。このlevelがhigher orderってことなのだが、圏論本には出てこない。Agda/Coqの問題。Level合わせは結構めんどい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「公理はえてして矛盾するのだが、解消は矛盾した公理のループを切れば良いのでわりとたやすい。切った部分は構成的な推論として正しい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、うちの学生を見てるとあんまりわかってない感はあるよな。自分でも学生の頃に学んだLKは面白いなくらいだったので、その感じはわかる。」 / Twitter

意味

Sho YokoiさんはTwitterを使っています 「何かを知り何かを作ろうとする諸科学はむしろ意味(形式的な表現から現実世界や興味の対象への対応付け;解釈)に強く興味を持っており意味をできるだけ切り捨てて形式的な体系を追い求める数学が特例的という状況で相手方に discipline を強要してしまった、というよく見る悲しい案件に見える。」 / Twitter
Sho YokoiさんはTwitterを使っています 「数理統計はきっとつらい分野で、人間の活動や科学の言語として用いられるときは意味の問題は不可分なのに、一見数学なので「意味を持ち込むな」マンが登場してしまうのかもしれない。 (勿論数学として深められるのは良いことだと思う。論理学が人の論理的推論から離陸して新しい世界を作ったように)」 / Twitter
A. OkunoさんはTwitterを使っています 「@sho_yokoi 自分は意味を持ち込むな派ですが,解釈が大事だからこそ解釈をする回数や範囲を絞るべきだと思っています.数式と解釈の変換(語の対応)には十分気を使うべきで,件のプロレスなど既存の語の定義を日常語からの類推に置き換えている時点で語るに落ちている・・・」 / Twitter
A. OkunoさんはTwitterを使っています 「@sho_yokoi AICが未来を予測している,みたいな話もそうなんですが,(伝言ゲームは必ず失敗するので)情報はできるだけ正確な形でだけ変換して最後にだけ解釈するのがよさそうに思うところです・・・」 / Twitter
Sho YokoiさんはTwitterを使っています 「専門外の話だと書き放題だな わっはっは(死」 / Twitter
Sho YokoiさんはTwitterを使っています 「専門に近い話題ほど、普通の人よりずっと正確な知識を持っているはずなのに「迂闊なことは言えないぞ」感が増し、公の場で書けなくなる。一方で専門から離れた話題では経験と直観に任せて「俺の思い」を綴れてしまう(教育とか心理とかね)。…そしてインターネットには今日も床屋政談が溢れる。」 / Twitter
Sho YokoiさんはTwitterを使っています 「病状が一歩進むと、ただの雑談であっても「この単語はどこかの世界ではテクニカル・タームなのでは?用法は問題ないだろうか?」などと疑いはじめ、ツイートの負荷はぐんぐん増加し、ついには駄洒落を言うか「にゃーん」とつぶやくだけのアカウントが爆誕する。」 / Twitter

確率論理

確率論理 - Wikipedia
ファジィ論理 - Wikipedia
砂山のパラドックス - Wikipedia
誤った二分法 - Wikipedia
ラフ集合 - Wikipedia
<30312D88CB978A985F95B62D927C93E090F290E690B62E706466>
論理的推論への確率論的アプローチ
反証主義に対してAyer50) やLakatos51) が繰り広げた批判の一つとして取り上げられたり,またそれらに答えるSir Karl Popperの議論2-4)でも注意されている事ではあるが,彼らの議論を待つまでもなく13),確率的言明はどの様な結
スライド 1
07.pdf

非古典論理

非単調論理 - Wikipedia
自己認識論理 - Wikipedia
無限論理 - Wikipedia
矛盾許容論理 - Wikipedia
中間論理 - Wikipedia
多値論理 - Wikipedia
クリプキ・モデル - Wikipedia

一階述語論理 一階命題論理 変換

一階述語論理 一階命題論理 変換 - Google 検索
数理言語 - ke-8-slide.pdf
知識工学 - ke.pdf
nyumon_logic.pdf
IBMが深層学習と記号論理をつなぐ技術、画像の内容を1階述語論理に変換しソルバで解く | 日経Robotics(日経ロボティクス)
Introduction to Mathematical Logic
1.dvi - 1.pdf
4.dvi - 4.pdf
21_622.pdf
CiNii 論文 -  Unsupervised Grounding of Plannable First-Order Logic Representation from Images
Microsoft PowerPoint - fol.ppt - fol.pdf

blog

含意の真理表はどうして決まるのか : tnomuraのブログ
論理包含の定義に関する違和感について - 七誌の開発日記
フィッチスタイルの自然演繹のやり方 - Yabu.log
タブローの威力 - 誰にも見えないブログ
論理学をつくる練習問題80(2)解答 - Yabu.log
今日の論理学:極大無矛盾集合に成り立つ5つの同値関係の証明 - 誰にも見えないブログ
今日の論理学:極大無矛盾集合の充足可能性補助定理の証明~APLの完全性証明 - 誰にも見えないブログ
今日の論理学:ハゲのパラドックス,連鎖推論のパラドックス,誤植など - 誰にも見えないブログ
今日の論理学:数学的プラトニズム、直観主義論理、排中律の廃止、NJ、誤植など - 誰にも見えないブログ
今日の論理学:直観主義論理続き,対偶の部分的な成立,排中律/背理法/二重否定除去の相互変換 - 誰にも見えないブログ
Avendia

Qiita

Scalaで論理体系を作る話 - 1. 命題論理その1 - Qiita
テクニクシャンマンさんはTwitterを使っています 「Scalaで論理体系を作る話 - 2. 命題論理その2 直観主義論理はカリーハワード対応に見て取れる通り、型付きラムダ計算ほどの単純なモデルが表現できるシンプルな論理ですが、制約も多いのでした。この記事は、より「強い」、つまりより強力な論理である古典論理… https://t.co/OnVeM2Od5F」 / Twitter
qiitascalaさんはTwitterを使っています 「https://t.co/jTuF0mz5cf Scalaで論理体系を作る話 - 2. 命題論理その2 #scala 直観主義論理はカリーハワード対応に見て取れる通り、型付きラムダ計算ほどの単純なモデルが表現できるシンプルな論理ですが、制約も多いのでした。この記事は、より「強い」、つまりより強」 / Twitter
Scalaで論理体系を作る話 - 2. 命題論理その2 - Qiita
基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita

Twitter

論理と型

Shinji KonoさんはTwitterを使っています 「型=論理式、λ項=証明で、仕様記述は証明を含んでる。 仕様を型なしλ計算で書くと矛盾する可能性はある。 型のない仕様記述が何かってのは面白い問いだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「testing typeless specification by type evaluation かな。まぁ、Unification だが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Prologは型なし。しかし、一階述語論理。それが面白いところ。型は一階述語論理には含まれてない。appendが書けるというのはPrologのアイデアから10年かかってる。appendの正しい仕様を書けなかったってこと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「型とは何かってのに戻ってくるな」 / Twitter
Shinji KonoさんはTwitterを使っています 「仕様記述は論理式なので、その変数は単なる記号。その中身にはあらゆる可能な値が入る。値とは、スコーレム関数を含む関数と値の任意の組だな。エルブランモデルの値ね。型がないとはそういうこと。型なしλ計算。Prolog」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は一階述語論理で展開するから型がない。集合ってなんでも入るからな。なので x∈A とかを毎回書く必要がある。それが型。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理は型付λ計算を使って、命題は型、推論は型付λ項、真偽は証明で決める。ベースになる型 Set にはレベルが付く。逆説的だがSetには型はないとも言える。レベル以外の型はない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので型のない仕様記述とは、一階述語論理のことだろうな。それに証明を付けると仕様記述が型になる。恒真あるいは充足可能な一階述語論理式は正しい型を持つ感じか。それを評価/evalとみなせるのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaで、a : ? みたいにして論理式を書くことはできる。ただし、関数型 f : ? → ? は書かないと f a とか書けない。その状態で論理式を書くと型のない仕様記述に見える。」 / Twitter
Shinji KonoさんはTwitterを使っています 「?の代わりにSetと書くと通るのかな。それはないな。全部?で型検査することはできる。その時点でも型のエラーは出る。」 / Twitter
Shinji KonoさんはTwitterを使っています 「関数の継続は関数のopenな部分になるのだが、データ型にも最後にSetを入れてopenなデータ構造にするというのを考えたことがある。その部分にメタな計算が入る。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの?は便利なのでプログラミング言語にも欲しいな。IDEが持つべき機能かも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「誰が考えたんだろ。初出は?」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は数学のC言語というのを提唱してる。集合のアドレスは取れて整列できるのだが、そのアドレスにある集合に何が入っているかは不明。SEGVあり。」 / Twitter
Shinji KonoさんはTwitterを使っています 「圏論はもちろん関数型言語」 / Twitter

ホーア論理

uint256_tさんはTwitterを使っています 「ホーア論理って実用的(?)に使われてるんですか (この問いが意味あるものなのかすらわかっていない)」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t Eiffelにホーア論理にそって、事前条件、事後条件、不変条件何かを指定してチェックできるんですけどね。そういうの流行らないですね。」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 面白そうなので調べています」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t 有用だと思うんですけどね。型を書くのすら避けたい私にはいらないものですけど。それでも、assertを一杯入れるのはやろうとしたことがある。」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 そういうことがコンパイラ基盤レベルでできると面白いかなと思ったのです」 / Twitter
Miura HidekiさんはTwitterを使っています 「@uint256_t それ面白い。コード生成の正当性のチェックとか事前条件・事後条件だけ指定してコードを推定させるとか夢が広がる」 / Twitter
uint256_tさんはTwitterを使っています 「@miura1729 絶対に便利だと思うので頑張って実装します」 / Twitter
病気の美少女さんはTwitterを使っています 「@uint256_t 実用面だと、既存の重要なプログラムの verification などの話は一時期ぼちぼち耳にしました。テクニックとしては、coq などでは素朴な state monad が使い物にならないので hoare state moad と呼ばれる物を使ったり等があります。」 / Twitter
病気の美少女さんはTwitterを使っています 「@uint256_t hoare state monad もそのままの定義で使うと transformer(https://t.co/9sHABxeibp)が必要になったりするので、問題領域にあわせた独自の monad を作ることが多い、らしい、です。 software foundations(https://t.co/vgGPfKiz7x) でも扱われています。coq で記述する際は参考になると思います。」 / Twitter
IPSJ-TPRO0502002.pdf
Software Foundations

古典論理

古典論理 直観主義論理 排中律 - Google 検索
ytbさんはTwitterを使っています 「論理学を勉強しだした学生で、「真理表が難しい」と嘆く人結構多いじゃないですか。 最初は奇異に聞こえるんです、だってあんな表、小学生でも覚えることができるじゃないですか。 でも、そもそもあの表は何を表現し、なぜあの値に決まったのか、って誰も何も説明しないし、そりゃ分からないですよね」 / Twitter
ytbさんはTwitterを使っています 「入門的な教科書って日常言語との自然な類推で論理的概念を導入しますよね。初めはいいんです。 まず「真理値は1/0の値で、これは日常言語で『真』と『偽』を表します」って言うじゃないですか。一見自然に見えます。 実はここで古典論理を密輸していて、後で躓く原因になるんですよね。」 / Twitter
ytbさんはTwitterを使っています 「「かつ」 ∧ と「または」∨は問題がなくて、個々で躓く人はあまりいないと思います。「AかつB」が真なのは、Aが真で同時にBが真のときだし、その逆も成り立つ。そりゃそうだ、という感じで。 否定「でない」¬も実はきな臭いんですが、これも一応自然に見えます。」 / Twitter
ytbさんはTwitterを使っています 「だけど、「ならば」⇒、問題はコレなんですよ。 A, Bが真ならば「A⇒Bは真」、つまり「草が緑ならば安倍晋三は内閣総理大臣である」が真、明らかに変に見えます。さらにAが偽の時「A⇒Bは真」、「今日が晴れていれば今日東京オリンピックが開催された」、おかしいですよね。」 / Twitter
ytbさんはTwitterを使っています 「これ、排中律を仮定すると、直観主義論理上、A⇒Bと¬A∨Bが同値になってしまうために起こる現象で、日常的な「ならば」と意味的に大きくかけ離れているように見えるんですよ。 なんとなく自然言語の意味の類推で真理表を導入するると、ここで分からなくなるのではないかと思います。」 / Twitter
ytbさんはTwitterを使っています 「だから、私は、古典論理を教える時は、 ①自然言語における推論と関係がない、純粋な代数系のひとつとして教える ②証明論的に、直観主義論理+(便利な)排中律という体系として教える(でも変なことも起きるのは我慢してと言う) のどちらかにしないと概念的な混乱を招くと思うんです。」 / Twitter
ytbさんはTwitterを使っています 「そうですね、「または」というのは命題論理において実はあまり重要な結合子ではないので、たんなる言葉の定義の問題のように見えるからじゃないでしょうか。 一方、「ならば」はまさしく論理的推論の今回を表す言葉で、その意味のブレは看過できないからではないのだと思います。」 / Twitter
dorompaさんはTwitterを使っています 「@ytb_at_twt A∨Bも自然言語の排他的論理和とは違いますけど、初学者でもそれほど違和感なく理解できて、A⇒Bの方が圧倒的に誤解が多いのはなぜなんでしょう。」 / Twitter
ytbさんはTwitterを使っています 「今回→根幹」 / Twitter
Masaki HagaさんはTwitterを使っています 「真理値表は古典命題論理の意味(解釈)を定義しているわけだけれど,その意味の意味がわからないですよね」 / Twitter
Masaki HagaさんはTwitterを使っています 「日常生活で同じ記号(言葉)がもっと曖昧で異なる意味を持っているから「とりあえず古典論理ではこういう意味だよ」とか言われても困ってしまうんだろうか.なんで「りんご」はりんごって意味なんだろうとか普段過ごしてても思わないわけだし.」 / Twitter
Masaki HagaさんはTwitterを使っています 「いまは便宜上「りんご」と言われたら,現在目の前にあるこのりんごのことを意味することとします(現在スーパーに売られているりんごや,あなたが昨日食べたりんごは「りんご」ではありません)とか言われたらそりゃ「は?」ってなりますよね.」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「〈⇒だけの論理〉 古典論理において、 P∧Q ⇔ ¬(P⇒¬Q) P∨Q ⇔ ¬P⇒Q が成り立つため、命題論理の命題は、演算子を⇒と¬だけにしても表現できる。」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「【公理】(パースの法則)[古典論理] ((P→Q)→P)→P ※この公理は排中律と同値である。」 / Twitter
インターネットさんはTwitterを使っています 「古典論理の意味論の方で真理値を集合(ただしこのときクリプキフレーム上の順序の入った集合でも位相空間の開集合でもなく一般の集合)とすることもできて, 集合演算はブール代数になるので2値に帰着できる (話がとっ散らかってしまった)」 / Twitter
ukikagiさんはTwitterを使っています 「「古典論理(や直観主義論理)では仮定が偽の命題は自明に真だから反実仮想的な言明には意味がない」というのはナンセンスで、単にこれらの論理が自然言語のそのような側面を捉えられていない(あるいは意図的に削ぎ落としている)だけである」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「そういえば、僕はほとんど直観論理といっても意味論の方はやったことないんだけど、「Heyting代数意味論ぐらいは多少知っとくと良いよなあ」って感じで考えたら少し面白い直観が生えて、 古典論理だと二重否定をつけても「情報」が減らないからLKの右と左だけで議論できて矛盾(空シーケント)に対しての」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「強さを考えれば良くて、それがまさに「極大充足可能集合」というアイデアな訳だけど、直観論理はそういうことができなず「右シーケントを壊さない極大な左シーケント」みたいなのをシーケントごとに用意しなきゃいけないという風に考えると、妥当ですかね」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「s/壊さない/示さない」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「ex falso quodlibet 矛盾から任意の論理式が帰結されるという爆発律は、自明ではない気がします。 少なくとも、僕にとってはあまり納得感が無いのですが、皆さんはこれを素直に受け入れているのでしょうか?」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「尤もらしく思える二重否定除去を認めると、爆発律が導かれてしまいます。 古典論理では爆発律を認めざるを得ないし、直観主義論理も(納得できるかは別にして)爆発律を推論規則としています。 ¬や⊥の解釈、またはそれらに関する推論規則を変えることで、納得感のある説明ができるのでしょうか?」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「二重否定除去 ⇒ 納得できる ハイチュウ律 ⇒ 美味しそう もとい、排中律 ⇒ 納得できるけど、成り立たないのもアリだと思う 爆発律 ⇒ いまいち納得できない」 / Twitter
みくぺ ⍤⃝さんはTwitterを使っています 「@The_Maya_Hiker 私もすごい違和感あった どうやら、直観主義論理での証明図の''¬''と''⊥''がそれぞれ 最小論理での証明図(画像)の''→M''と''M''と入れ替えられるみたいで、 ¬の導入と¬の除去はそれぞれ→の導入と→の除去のひとつだと考えられる、というのが前原さんの論理学の本の付録で紹介されてた https://t.co/ImuMIeAgZe」 / Twitter
摩耶山 愛登家さんはTwitterを使っています 「@Cubism_FM ありがとうございます😃 なるほど、そういう捉え方もできますね。 僕の持っている戸次先生の本では、そもそも¬P をP →⊥の省略形と定義しています。 最小論理や直観主義論理では、古典論理とは否定の意味が違うので、確かにこう定義すると推論規則が上手く体系化できるようです。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Union自体にはsupは使わないのだが、Unionの公理で否定形を使う必要がある。 Union U = record { od = record { def = λ x → ¬ (∀ (u : Ordinal ) → ¬ ((odef U u) ∧ (odef (ord→od u) x))) } ... 古典論理なら、存在記号からsupが取れるわけだが、直観主義論理はそれを許さない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「似たような理由で選択公理と整列定理は直観主義論理だと別物になる。逆に正則公理は選択公理と同じになる。その差は存在記号の位置にあるのだが、直観主義論理では存在記号ないから。代わりにε-inductionを使う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この辺りは80年代に研究されたらしいのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理も連続体仮説もPowerを含む一部の命題の話なので、それだけ議論すれば良い気もする。ZFのモデルなのは自明なので… 真実性定理みたいなのは命題全体の中身に関係するから難しいかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ODに関してはNもMもまったく同じ(一対一な順序数を入れ替えただけ)なので真実性定理が成立してると言っても良いのか。そもそも選択公理も連続体仮説もODの外にあるから。」 / Twitter
エヌユルさんはTwitterを使っています 「多数の人間は古典論理で会話してないし古典論理で自分の命題を証明しようともしてないとTwitter論理学者たちは気がつくべきでは?」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「【公理】(爆発律) 間違った命題からはどんなことも証明できる。 ※これを採用しない論理体系を矛盾許容論理という。」 / Twitter

SAT

mr-csceさんはTwitterを使っています 「めちゃくちゃたくさんのものが命題論理式や一階述語論理式が充足可能かどうか、という問いに落とせること、凄いなという気持ちになった。 この間のn-colorable問題を充足可能性問題にreduceできるというのは単にNP完全の証明なだけではなくて、SATソルバでその問題を解けるということだしね。」 / Twitter
mr-csceさんはTwitterを使っています 「同様に他の多数の問題が充足可能かどうかという問題に落とし込めるということは、それらは全てSATソルバやSMTソルバで解けるということだから凄いなぁと思った。 こういう研究でもよかったかもしれない。笑」 / Twitter
ゆかたゆ@VRC&日常さんはTwitterを使っています 「@minagi_yu @zassouEX 計算機は「論理式」なんてものは知らず、単純な操作を繰り返しているだけですが、数学の定理の証明や、任意のNP問題の解決に使えます (SATはNP完全なので) こうして、命題論理において有限の項で構成される命題の証明は人間の手を離れ、計算機に任せられます。わーい! ということなのです。」 / Twitter
でぃぐさんはTwitterを使っています 「命題論理のコンパクト性を使ってなにか証明するの、計算の問題をSATに帰着させる過程に似ている」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理と直観主義命題論理だと普通に判定方法違いますからね。古典命題論理は証明図に沿ってやるならDavis-Putnamみたいになって、高速にやるならSATソルバー(はCDCL)ってことになるけど、直観主義だとその手ではうまくいかない」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「各原子論理式を命題変数でおき、全ての原子論理式の連言をFMで変数消去、生成された各制約条件(の命題変数)が元になった制約条件(の命題変数)の連言から含意されるという命題論理式を生成。すべての変数の消去後に、生成された命題論理式と元の論理式の原子論理式を命題変数にしたものをSATソルバに。」 / Twitter
quiver2kさんはTwitterを使っています 「@yuyabu2 すごく雑に言えば、元の問題をどんなに複雑でも命題論理式に変換すれば良いと言っているようなもので、SAT側も受けは広いですけどね。」 / Twitter
p進大好きbotさんはTwitterを使っています 「@j_tGAP またすみません。クラスモデルMでは論理式φの相対化φ^Mのメタな証明可能性ZFC⊦φ^Mは確かに独立命題があるのでφと¬φのどちらも偽になるかもしれませんが、φ^Mそのものと充足関係Sat(M,φ)は同値であり、こちらに関してはMが1つ与えられれば真理値が参照できるのではないでしょうか?」 / Twitter
なたがわさんはTwitterを使っています 「ふと思い出してTwitterで答えを得たいシリーズその2 「ちょうど片方のみが充足できる命題論理式のペアを受けるとどっちが充足できる方か教えてくれる神託付きの機械でSATを多項式時間で解く」(教えてください...)」 / Twitter
Masaki HaraさんはTwitterを使っています 「@mt_tilde 個人的にはHeyting代数も結構好き(古典論理におけるbool代数のように、各命題に1つずつ値を割り当てるだけでよいし、直観主義論理のLindenbaum代数になっている)なんですが、KripkeモデルのほうがSATに落としやすかったのでipc_botではKripkeモデルを採用しています。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Existential Quantification as Incremental SAT https://t.co/rIuuIC0OnW : 命題論理式の量化子除去をやるのにBDDとか使うのではなくSATソルバでという話。 https://t.co/wYypHYim6A」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologの胡散臭い宣伝をした後、Prolog入門の説明をわっとする。DCGでパーサ作る。ラムダ計算を作り、型を付け、型推論し、Fether Weight Javaを実装する。ホーア理論を実装して証明し、命題論理を変換し、SATで解く。」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologを使えばという話の流れを考える。 アフィン論理を理解するには線形論理等の基本となる命題論理を理解しないとー。 命題論理を解くにはSATで解くのが良くて、Prologを使えばSATも作れるし、変換も簡単に書ける。それで、、、なんだっけ?っていう。。。」 / Twitter
h_sakuraiさんはTwitterを使っています 「アフィン論理と線形論理を理解しようと思ったら、命題論理がわからなくてSATなら解けるらしく、Z3だと関数のnotを取ればいいだけなのでいちいち書き換えしなくてもいいっぽいので楽そうだけど、よくわかってないのでした。結構チュートリアル長くて眠くなってきた。」 / Twitter
h_sakuraiさんはTwitterを使っています 「PrologでSATとかSMTの実装も短く書けるみたいだけど中身わからないし、命題論理は奥が深いんだなぁ。ググると論文とかPDFが出てくるのは非常にいいかんじなので、twitterで俺が荒らしてる感じもするのでローカルなところで話したいけど、誰もいなくなると嫌だ。うううっていう。」 / Twitter
h_sakuraiさんはTwitterを使っています 「SATが完全かどうかとかもよくわからんのだけど、けっこう素晴らしいんだな。 完全ではないけど健全な命題論理言語をPrologで作るのは多分簡単なんだろうなぁ。 しかし、出来ない焦るイライラするw 日本シリーズ見るw」 / Twitter
h_sakuraiさんはTwitterを使っています 「命題論理を解くにCNFにするとよくてCNFを解くのはSATが便利で、SATのすごいのがZ3などのSMTなのだな。」 / Twitter
Akira SugiuraさんはTwitterを使っています 「あ。前見たスライドに載ってた・・・orz SATは命題論理。SMTは述語論理。&gt; https://t.co/kJEZt97V97」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理の問題に対して直観主義命題論理のソルバーを使うのは牛刀なので、もう少し良さげな方法としては、論理式の否定をとって充足可能性に帰着して、Tseitin transformationでCNFに変換して各種SATソルバに解かせるのがよい。これなら理論的な計算量も落ちるし速い」 / Twitter
yoriyukiさんはTwitterを使っています 「命題論理に限れば、SATがすごく速くなった。制限があるけど述語論理もSMTでなんとか。一般の量化や帰納法が課題。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理の証明可能性は、論理式の否定をとったあとに変数を増やしながらCNFに変換してSATソルバーに入れるのがいいと思いますけど、二重否定をとってipc_botに投げても解けます。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理は比較的簡単(SATの補問題なのでco-NP complete)だけど一階述語論理は決定不能で、そこをどうにかうまくやるソルバはいくつもある」 / Twitter
h_sakuraiさんはTwitterを使っています 「SATが論理命題で、SMTは算術演算があるやつで、z3はマイクロソフトの高速なSMTなんだな。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理のソルバー、判定するだけならSAT solverというソフトウェア群が知られている」 / Twitter
Masaki HaraさんはTwitterを使っています 「@ukikagi run {} for 8 なので、位数8以下という前提を立てて、そうするとドメインが有限になるので命題論理式に落とせて、あとはSATで解くという感じですね。必ずしも小さい方から出力されるわけではないようです。」 / Twitter
Masaki HaraさんはTwitterを使っています 「論文のネタにしようかと思ったけど明かしてしまうと、The ILTP Libraryの直観主義命題論理のデータセットのうち証明不可能なもののほとんどは、菱型のKripkeフレームを用いてSATに変換すると一瞬で反駁できる。」 / Twitter
Kenji YoshidaさんはTwitterを使っています 「SATとか詳しくないけど https://t.co/HEcex0YXbb 関係あるような話題として、sbtのAutoPluginのためのこんなコードが既に入ってるので https://t.co/UG7Y0TtfIZ 依存関係管理に命題論理が役立つ? #ScalaMatsuri」 / Twitter
mti@さんはTwitterを使っています 「充足可能性問題(じゅうそくかのうせいもんだい、satisfiability problem, SAT)は、一つの命題論理式が与えられたとき、それに含まれる変数の値を偽あるいは真にうまく定めることによって全体の値を'真'にできるか、という問題をいう。」 / Twitter
Masaki HaraさんはTwitterを使っています 「古典命題論理、解きなさいって言われたらSATソルバーにかけるだけなのに、証明図を書きなさいって言われた途端めんどくさくなるから理不尽ですね」 / Twitter

算術

Shinji KonoさんはTwitterを使っています 「不完全性定理は実際に決定できない命題pを構成するけど、p∨¬pの仮定とは両立する。それを場合分けすると、両方で⊥になる。あんまりよろしくない。でも自己言及してるはずだから直観主義論理での⊥の導出は停止性に引っかかるのか。対角線論法側は?」 / Twitter
数学&論理学bot(・ω・)さんはTwitterを使っています 「〈一階算術の公理系〉 有名な公理系を挙げる。 1.ペアノ算術:ペアノ公理+加法+乗法 2.ロビンソン算術:(1)-数学的帰納法 3.プレスバーガー算術:(1)-乗法 1と2は不完全性定理より真偽が決定不可能な命題が存在し、3は量化子消去ができるため全命題の真偽が決定できる。」 / Twitter
プレスバーガー算術 - Google 検索
プレスバーガー算術 - Wikipedia
プレスバーガー算術は本質的なのか? - martingale & Brownian motion
プレスバーガー算術の決定可能性 - 有限オートマトンを使う証明の形式化 - tpp2015.pdf
原始帰納的算術 - Wikipedia
原始再帰関数 - Wikipedia
初等関数算術 - Wikipedia
ペアノの公理 - Google 検索

無理数と集合

Miura HidekiさんはTwitterを使っています 「どうせ無理数は関数の結果から得るしかないから、式を式のままで扱えばよいと思う」 / Twitter
╹ω╹linguini.leanさんはTwitterを使っています 「@miura1729 式の結果で表せる実数の集合になんか名前付いてないんでしょうか」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 @1inguini なんらかの新しい表現(=式)を与えて新たに特定の数を示すことによって式の結果で表すことが可能になっていくため、集合としては成り立たない気がします。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 結局なんらかの「表現」を持って来て記号処理で、という話になりますよね。」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「“一般の無理数を表すデータ構造” をつくるのは無理なはずです(そもそもプログラムは可算無限個しかないのに対して無理数は非可算無限個ある)」 / Twitter
Shinji KonoさんはTwitterを使っています 「無理数には二種類あって、一つは述語論理的な記述を持つもの。そして、それ以外。まぁ、それ以外っていう記述は持つのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一つの実数と特定できるか、範囲を限定できるもの。」 / Twitter

集合論・位相・表示的意味論

histric-1

Shinji KonoさんはTwitterを使っています 「集合論使ってると、ポインタとキャスト使いまくりのCとSQLの組合せみたいで最低だな。でも、それは偶然ではなくて、当時、論理的な記述にしようと思うと、述語論理とそれに基づく集合論の記述を使うしかなかったってことね。既に圏論もあったのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論と排中律の組合せだと、まず、 x なんか集合がある A x B ∋ x かどうか排中律で調べる。そうだったら A ∋ a をxから取り出せる。どっかでみたCのプログラムみたいだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんかの集合Aから分出公理で select A (λ x → ... ) でいろいろ抜き出す。もちろん、それがSQLのselectの元なので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「置換公理のわけわかなのは、どんなに大きな集合で入れ換えても怒られないところ。まぁ、それ含めてUnionとれば良いじゃんってことなんだろうけど。構成主義とはほど遠い。でも、そこは上界があるのいう明示的な仮定で。上界はHODで取ってこれる仮定なので、まぁ、どうってことない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、置換公理は ε-inductionには関係しないはずだな。その辺りがHODの便利なところ。なので、いけそうな感じだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「V=Lって最近まで記号モデルに制約する的に読んでたんだが、VはあらゆるPower Setを含んでるので、むしろ、どんな部分集合でも完全に定義できるだけの定義可能な述語を持ってるって話なので、まぁ、無理っぽい。HODも同罪に見えるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「HOD自体にはPower Setを作る能力はなくて、そこはsup(上界)に押し付けてる。supは構成的ではないのだが、構成主義論理は寛容なので「それがあるとすれば」的なものは許してくれる。もちろん「矛盾しても知りません」なのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので HOD=V ってよりは HOD+ sup=V みたいな感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろ謎な部分は多いけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HOD=ORD的な仮定を入れてるのは田中先生の本に書いてあったからなのだが、かなり微妙。定義可能なものを数えた順序数を使います的な。なので可算に落ちてしまう。sup で入れたPower Setも「それは記述可能だからOk」的に入ってる。実際の部分集合すべて的な記述は超限帰納でしかアクセスできない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「基数も見かけは簡単に書けた。これがなんなのかは、これから調べる感じ。この手の存在量化は recordで書くべきだな。 Card : OD Card = record { def = λ x → (a : Ordinal) → a o&lt; x → ¬ Bijection a x }」 / Twitter
Shinji KonoさんはTwitterを使っています 「∃x∈A→P x は ¬ ¬ ( ∃x∈A→P x ) = ¬ (x∈ A → ¬ P x ) なので、二重否定を入れれば構成主義論理で問題なく議論できる。 この辺りが強制法で様相論理を入れる理由。なので構成主義論理でやる限り。必要ないらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は集合とその関係∈なので、Agda的には二つのLevelがある。圏だと対象と射と射の関係ななで三つ。ODは順序数とその方程式なのでLevelは一つ。つまり∈のLevelに制約が付く。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Trans finite induction は順序数と述語を含むのでLevelは二つ。可算順序数なら実際に証明できる。単なる帰納法に落ちるので。なんだが、OD側では一つしかLevelがない。足せば良いのだが、排中律と選択公理の関係で排中律の対象となる述語のLevelを限定する必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ってことはTrans finite induction の述語はn に相対的に決まるのでn、suc n、… ってことになる。可算順序数なら、そのどれでも証明できる。使用するのはnとsuc nの二つ。suc nが多いのだが、排中律から選択公理を出すのにnがいる。なので二つ用意してた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「超限帰納法TFが可算順序数に対して証明できるってのは面白い。整数論の整合性はTFで示せて、不完全性定理的には示せないのだが、それはTFは非可算順序数に対しては証明できないから。TF自体はモデルがあるから無矛盾。Pの無矛盾と証明があるのとは別なのか。 ¬ ∃ ¬ Pと ∃ P だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この辺りの議論のはぎれが悪いのは、メタ数学を議論するのに古典論理を使ってるからなのか。そこは直観主義論理を使うべきところなわけね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理の独立性でも、選択公理を否定しても無矛盾を先に示してる。え、それで証明終わりじゃないのと思ったものだが。」 / Twitter

histiric-2

Shinji KonoさんはTwitterを使っています 「古典集合論だと集合持ってきて、それをモデルにするとかやるのだが、ODによる連続体仮説だと直接Lを構築するので、それは要らないみたい。問題は集合と順序数との対応だから。V=Lから連続体仮説を出すのが既にできるはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理の方はよくわからない。排中律から行くのではないはずだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論の中からは∋があれば順序は決まる。対応するアドレス(順序数)の絶対値は知り得ない。問題は部分集合間の順序なので、Power Setの問題になる。もちろん、それらはODの世界では絶対アドレスがあるので順序がある。⊆も排中律がないので、どっちかは決まらない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「シェーンフィールドは、どうもZFでない自明な集合論があると思ってるらしく。選択公理は自分たちのsetでは正しいとか書いてる。yの部分集合の要素z(y)を&lt;y,z(y)&gt;の順序対にして、それ全体を取ると自明に選択関数になる。そのz(y)が取れないから泣いてるんですが。setは要素から徐々に作られる的。」 / Twitter
Shinji KonoさんはTwitterを使っています 「シェーンフィールドのsetは要素から順々に作られるので整列定理も自明。でも、それでは実数は作れない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「シェーンフィールドでは直接的にPower ωの選択関数を否定する感じか。ωの選択関数は最小値を取れば良いのでZFである。ωの部分集合なら帰納法が使える。Power ωだとそうはいかない。でも超限帰納法と排中律で見つけることはできる。整列してるから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「だったら排中律に制限を入れれば一発か。選択公理が成立しないような排中律の反例を入れておく感じかな。LではPower ω はL ωの要素でもあるから、L ωにそういうものを入れられるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もっとも、それが入るのはPower Setだけか。 (x : Power P ) → L P ∋ x ってだけだな。L P = Power P だと自明に成立する。他には影響しないから、ベキ集合の公理を邪魔しなければ良いってこと?」 / Twitter
Shinji KonoさんはTwitterを使っています 「ベキ集合の公理を出そうと思ったらネットが落ちてるんだった。github側があるな。 power→ : ∀( A t : ZFSet ) → Power A ∋ t → ∀ {x} → t ∋ x → ¬ ¬ ( A ∋ x ) power← : ∀( A t : ZFSet ) → t ⊆ A → Power A ∋ t 二重否定が入ってるのは直観主義論理だから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これはPower Aが構成的でないことが原因。なので、A ∋ x に証明がなくても許される。これは都合が良いかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ZFもだいぶ見えてきた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「排中律から選択公理を導出するところでは二箇所で排中律を使ってる。普通に使うところと ((x : Ordinal ) → A x ∨ B) → ((x : Ordinal ) → A x) ∨ B だな。x がないと、B を作れない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここで二重否定が入るのは Power Aが構成的である必要を外すため。そうでないと、Power AはA ∋ xを構成する方法を全部知ってる必要がある。A=ωとかなら良い。A = Power ω だとちょっと。 power→ : ∀( A t : ZFSet ) → Power A ∋ t → ∀ {x} → t ∋ x → ¬ ¬ ( A ∋ x )」 / Twitter
Shinji KonoさんはTwitterを使っています 「D : HOD → HOD つまり定義をHOD として Df x = Power x ∩ D x を使ってLを構成するってideaなんだが、 L ω = V ω なDでないとだめ。Lに自由度があるので V = L にも自由度がある。 V = HOD ⊇ L だがDをPower xにするとV=Lになる。 ても、そこからは何も出ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「record L : Set (suc n) where field ldef : (x : Ordinal) → odef D x ∧ Set n とするとDに適切な制約を入れれば D → ZF とできそうな気はする。Vとかωとかがちゃんとできれば。Dが強制条件でGeneric Filterとかになれば。もっと簡単な条件もありそう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なのだが、このV=Lから選択公理=排中律を出すのはなぁ。整列定理はHODでは成立してる。古典集合論だと排中律の方が仮定されてるから… 順序数方程式で排中律が成立する条件みたいなのを探さないとダメか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「連続体仮説の方はDをそういう風に定義できるできると思われる。もともと、それに近い仮定は入れてしまってるのだが。古典集合論のHODでもそれに近いは仮定はあるみたい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もしかして、Dの定義に排中律を書けるのかな。 lem : D lem x = record { od = record { def = λ x → &amp; (Power x )∧ (λ y → Dec ( odef x y )) }} うーん、どうかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「で、そこに対角線論法を書くと選択公理を否定できる的な?」 / Twitter
Shinji KonoさんはTwitterを使っています 「コーエン先生は「数学は選択公理と連続体仮説抜きで議論されるようになる」ってな考えだったみたいだけど、直観主義論理と圏論はそういうものだな。同じものだし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Dec は強過ぎるが、¬ ¬ Dec ってのもなぁ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「¬ ¬ Dec ( x ∋ y ) ってもしかして、何も言ってない?」 / Twitter

Shinji KonoさんはTwitterを使っています 「表示的意味論と集合論は、位相空間論の重要な応用」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、それはわかるんだが、論理そのものが可算に閉じてるので、いろんなものを自然数にencodeするのが数学ってことだと思うと少し虚しいところがあるな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そして数学者は数論に回帰するわけね」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、可算無限の本当の大きさを人は知らない」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論は、整列定理と選択公理が排中律で分離できるってのを最初に教えてくれれば、もっとずっと早く理解できたと思う。まだ、チコノフの定理やってない。」 / Twitter

自然演繹・原論

Shinji KonoさんはTwitterを使っています 「もともと集合論で数学自体論理自体に疑いが出てきた時に、論理とはこういうものと疑えない操作的意味論を持つ、つまり 単なる記号ゲーム として提案されたのが自然演繹、Natural Deduction 。そして今の定理証明支援系につながってる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「自然演繹以前の論理学は、単なるそれっぽい文学。もちろん、モデルがあれば整合性があるのだが。ユークリッドとかニュートンとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「吉田先生がいきなりユークリッドの原論を言語で読もうと言い出したのは、自然演繹を越える何かがあると思ったからだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「自然演繹NJは記号の処理だけだが、原論は図と作図操作がある。作図操作は物理制約なので記号的な操作とは異なる可能性がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「図に関する推論も結構研究されて補助線を導出するとかあった。回転とかの幾何学的推論を記号に落とす方法はデカルトの解析幾何、つまり、線形代数がある。確かにそれは原論のモデルになるのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「原論の推論に対応するものは自明には見えない。」 / Twitter

定理発見

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「定理発見は演繹操作では無理で、モンテカルロ法的な手法が必要。 数学の法則は無限に存在するはずだが、たぶん99.99...%がゴミ法則という罠。」 / Twitter
モンテカルロ法 - Google 検索

直観主義論理・一階述語論理

Shinji KonoさんはTwitterを使っています 「集合論と一階述語論理で数学を記述すると、∀ x . ω∋x → ... ってしつこく書くとこになるので煩雑。高階直観主義論理で書くと明確になる。要するに圏論/Dudective Systemでやれってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「数学的帰納法はAgdaではdataの分解になる。そこに、なんの曖昧性も出てこない。一階述語論理でやるとかなり悲惨。」 / Twitter
Shinji KonoさんはTwitterを使っています 「超限帰納法も教科書通り極めてsimpleに書ける。 TransFinite : { ψ : ord → Set (suc n) } → ( (x : ord) → ( (y : ord ) → y o&lt; x → ψ y ) → ψ x ) → ∀ (x : ord) → ψ x これは可算順序数上で証明可能。可算順序数は構成的存在物ってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理をAgdaで書いたので、今更、Model に関する理解が深まった。そして、等式述語を入れる難しさも理解した。」 / Twitter
Shinji KonoさんはTwitterを使っています 「All X =&gt; All Y =&gt; (( Exist Z =&gt; ( ( father ( X , Z ) ∧ father ( Y , Z ) ))) ⇒ brother ( X , Y) ) は brother ( X , Y) :- father (X , Z) , father (Y , Z) に正しく変換された。ちょっとうれしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理のinterpretationは個々の述語の審議値の定義。公理をすべて真にするのはModelという。矛盾があると命題は全部真になってしまうので、無矛盾性は偽な命題があること。あるいは非自明なModelがあること。公理がなくても恒真な命題は任意の interpretationに対して真。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの実装でこの辺りを調べるだけでも面白かった。Modelの構築で見落としがあると、なかなか公理が真にならない。公理には∀が入ってることが多いから。ってModelを手で作るからだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「恒真な命題は割と簡単に真になる。トートロジーと恒真を区別するのはやめろ〜 区別してるのはダメな本認定で。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理の∀と∃はカッコに対する位置に過敏で間違えやすい。初学者泣かせ。幸いなことにプログラミングには出てこない。節形式にすればなくなるので幸せになれる。∃を関数に置き換えるだけでも。εδも関数明示でわかりやすくなる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「εδでも実際の証明では関数使うが、一般的に∃が関数です置換え可能ってのに自力で気がつくのは難しいかも。ただしscopeがずれることがあって… 正則公理と選択公理の区別がなくなったり。」 / Twitter
Shinji KonoさんはTwitterを使っています 「正則公理のミニマルは自分自身との共通部分が空な自分の要素だから、空でない集合の要素を取ってきてるので確かに選択公理っぽいのだが、排中律があれば「取れるか取れないかどちらか」なので特になにも付け加えられないのでセーフ。直観主義論理では関数を作る必要があるのでアウト。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理の方がはっきりわかりやすしいし、定式化も楽。そういう風に記述するべきだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理はモデルを使って意味付けるが、直観主義論理では証明があることが真の意味になる。モデルの構築は面倒だが、証明は限定的。公理に矛盾があるとモデルは全部おじゃんだが、証明は無矛盾に触らない限り有効。証明があるなら恒真ってのはわかりやすい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理で非構成的な議論ができないわけじゃなくて、二重否定で包んで議論すれば良い。非構成的な存在物、例えば選択関数でも、明示的に仮定すれば良い。今の数学だと選択公理はそうなってる。排中律でもそうするべきだってのが一番の違いかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ゲーデルは排中律が成立しない命題を自然数を使って実際に構築するわけなので、排中律は明示するべきってのは説得力がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「整列定理と選択公理が同値なのは排中律があるからなのだが、整列定理は公理っぽい。実数でも右から左の順序あるし。二次元だとあんまり自明じゃないが…」 / Twitter
ゆかたゆさんはTwitterを使っています 「ところで慣れていない人が物事の「本質」をモデル化しようとする時にはunionを取ってしまいがちという偏見があるのですが、intersectを取った方が嬉しいことが多いです。」 / Twitter
intersect - Google 検索

histric-1

SUHARA Hiromichiさんのツイート: "アトミックな命題についてはその通りなのですが、Prologで定義できるすべての命題についていうと、無限再帰や無限バックトラックを起こすことができ、つまり、真偽の決定できない命題が書けるのですね。これをもって、Prologの不完全性をいうことができます。… https://t.co/Qjwk2ZomeB"
Тургеневさんのツイート: "Prolog(論理型プログラミング言語)においては、真であると明示的に宣言されていない命題はすべて偽として扱う(閉世界仮説と呼ぶ)ということを今日習ったんだけど、「そこになければないですね」って店員が言うのはダイソーが閉世界仮説を採用しているからだとわかってすっきりした"
yuyabuさんはTwitterを使っています: 「フレーゲの公理系すごいな。6つのトートロジーと2つの規則から任意のトートロジー導けるとかヤバすぎでしょ。」 / Twitter
yuyabuさんはTwitterを使っています: 「10章入った。任意のトートロジーを扱いたいので公理系をつくる、という話。公理=自明なトートロジーを置き換え規則を適用することで任意のトートロジーを導くことができる。例示されたフレーゲの公理系では6つ!のトートロジーから任意のトートロジーを導くことができることが証明されている https://t.co/3JD1gEMtFf」 / Twitter
チャーチ数 - Google 検索
帰納法と余帰納法の何がどう双対なのか(初等的に) - sumiiのブログ
Hisabumi HatsugaiさんはTwitterを使っています: 「Actor model でもデッドロック発見器的なもの(システムの状態遷移計算)を作ることはできる.λ計算のインタープリタを作る必要があるので少し規模が大きくなるかも.正常に動くモデルの振る舞いを観察するのは楽しいだろう.(続」 / Twitter
Hisabumi HatsugaiさんはTwitterを使っています: 「しかし問題のあるモデルの場合,actor configuration に含まれるメッセージのマルチセットが大きくなる一方(未処理のメッセージが溜まる一方)ということの方が多そうな気がする.この場合は計算が終わらない.閾値を設けて止め,溜まってしまうメッセージを分析するツールとすればいいかもしれない.」 / Twitter
Hisabumi HatsugaiさんはTwitterを使っています: 「モデル検査の習得でつまづくことの1つは時相論理.式が自分の意図とあっているか不安になる.プログラマは理解するためにプログラミングするという武器を持っているので,時相論理の処理部分を自分で書いてみればいい.そう考えて構成をくふうした.アルゴリズム実装と視覚的フィードバック. https://t.co/upEsUJgubz」 / Twitter
Hisabumi HatsugaiさんはTwitterを使っています: 「モデル検査では実行が無限に続くケースを対象にすることが多いけど,途中で停止するケースが含まれていても少し修正すれば適用できる.すると EX true でデッドロック状態を見つけることができる.でも AFφ の落とし穴に落ちることもある (^^;).」 / Twitter
Miura HidekiさんはTwitterを使っています: 「クリティカルパスを短くするのとカルノー図を用いた論理圧縮は独立な事象だと思うけど、HDLを使っていればその程度の論理圧縮はやってくれる気もする。」 / Twitter
解答略さんはTwitterを使っています: 「こういう図を見るたびに思うのですが、微細加工技術の進歩した現代の半導体回路設計の現場においては 「論理素子の少ない(面積の小さい)回路図」 はそれほど求められて無い気がする。むしろテクノロジーマッピングを考慮して 「動作速度の速い(クリティカルパスの短い)回路」 を作る方が重要なのでは https://t.co/FoBBISedMS」 / Twitter
論理回路学たんさんはTwitterを使っています: 「<論理回路学・要点のつながり> 論理関数の簡単化 複雑な論理式を簡単化すれば 回路の部品が減って,良い回路になる。 論理式の簡単化は方法が2つ ・ブール代数で計算して簡単化 ※下図(3)→(6) または ・カルノー図で出力をまとめて簡単化 ※下図(3)→(4)→(5)→(6) https://t.co/ZpXOK8f4Hl」 / Twitter
FadisさんはTwitterを使っています 「再帰は末尾再帰最適化が行われない場合1回まわる毎に少なくともリターンアドレスがスタックに積まれ、再帰回数が多すぎるとプロセスはスタックを使い切る。末尾再帰最適化はコンパイラの気分でかからない事がある為、ループ回数について予想がつかない場合の再帰への書き換えはおすすめできない」 / Twitter
FadisさんはTwitterを使っています 「再帰でスタックを使い切ってページ未割り当てのアドレスに値をpushしてSEGVしたメモリダンプは画像で見ると縞模様が出やすいので目grepビギナーにオススメ」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「一般論としてまったくその通りなんだけど、関数型言語の中には言語仕様で末尾最適化を保証しているものもあったり。Scheme (R5RS) なんかはその例。 ただし以下の階乗の例にあるように末尾最適化が可能なコードは、素朴な再帰的書き方よりもやや冗長になることが https://t.co/bSOFBzri9R https://t.co/3jTKm3opAn」 / Twitter
お気楽 Scheme プログラミング入門
きいねく@とりあえずやるさんはTwitterを使っています 「論理式って一行表記すると視認性わるいよなぁと常々思っていたので,これくらいはやりたい. (特に量化子の部分を小さくするのはよくやる) https://t.co/t62gffQuHR」 / Twitter
状態(の変化)*さんはTwitterを使っています 「JSONをunificationベースで扱う、とか、JSONに(論理学でいうところの)述語を突っ込むとか、あるにはあるけど https://t.co/KvRbb1fBTd これ使えばPrologはつくれるよね」 / Twitter
JsonLogic
状態(の変化)*さんはTwitterを使っています 「QuineのNF関連みてるとわかるけど、atom(集合論の界隈ではurelement=原要素、という用語を使う)が何であるかは論理型言語とかメタプログラミングの上では割とどうでもいい(処理系はそこに頓着する理由がない)」 / Twitter

histric-2

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分も「論理学をつくる」でフィッチスタイルを見て、これはわかりやすいと思った。今週末のセミナーでは同じ流れを Isabelle でやる。わかりやすい上に規則適用が正しいかどうかのチェックも入るので完璧。パズル的な楽しさもある。練習問題もたくさん用意した。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ゴール(仮定の列と帰結)を見たとき、どういうものがあったらどう攻撃するか(どの規則を使うか)というかなり確定的なヒューリスティクスがあるのでどんどん証明ができるようになる。1点、否定が難しくて、それはそれでパズルとして面白い。背理法を使うやつ。」 / Twitter
ぁゃιぃツイートをしないさんはTwitterを使っています 「え、もしかして古典論理の定理を二重否定した奴全部直観主義で証明できたりしますか」 / Twitter
Masaki HaraさんはTwitterを使っています 「@Kory__3 命題論理ではそうで(Glivenko変換)、述語論理では量化の付近にも二重否定をつける必要があります(Godelの二重否定変換)」 / Twitter
cutsea110さんはTwitterを使っています 「1階述語論理の論理式の真偽を自動判定するのは原理的に不可能…why? 後続の有界スコープ仮説を導入して命題論理式に変換すれば…SATソルバに云々はワカル!!」 / Twitter
26_3_78.pdf
アラクーさんはTwitterを使っています 「命題論理を項書き換え系とみなして完備化すれば自動証明システムを作れるクヌよ!」 / Twitter
アラクーさんはTwitterを使っています 「@yukeizuta 四色定理とかケプラー予想とかのように部分的にコンピュータに計算させたものから、それこそ論理式のレベルで命題を解くようなシステム(グレブナー基底などの項書き換えシステムを含む)の研究もなされていると思います」 / Twitter
ゆかたゆ@VRC&日常さんはTwitterを使っています 「@minagi_yu @zassouEX 計算機は「論理式」なんてものは知らず、単純な操作を繰り返しているだけですが、数学の定理の証明や、任意のNP問題の解決に使えます (SATはNP完全なので) こうして、命題論理において有限の項で構成される命題の証明は人間の手を離れ、計算機に任せられます。わーい! ということなのです。」 / Twitter
Sosuke MORIGUCHIさんはTwitterを使っています 「ゼミの準備として書いた単純型付きラムダ計算の項から対応する命題論理の証明が出せるっていう証明。要するにCurry-Howard対応(の一方向)。手抜き。 http://t.co/q84AlTrB @ideoneさんから」 / Twitter
gQUcZ - Online IDE & Debugging Tool - Ideone.com
ミノ駆動さんはTwitterを使っています 「「テストは『欠陥があること』しか示せない」 ソフトウェアテスト原則のひとつ。 テストでバグがあることは証明できる。 しかしバグがないことは証明できないのだ。 例の検査にも同じことが言える。」 / Twitter
広瀬香美さんはTwitterを使っています 「それが良いなら、 命題 -&gt; プログラム 直観主義命題論理の自然演繹において、 命題さえあれば、証明図は定まる 証明図は、型付け図に対応できるので、命題は項をエンコードしたものとみなせる。 プログラム -&gt; 命題 項が与えられたら、命題も得られる つまり 命題 = 項(プログラム) も言えないか?」 / Twitter
広瀬香美さんはTwitterを使っています 「~しくみのほうでは、型判断でターンスタイルを使ってたので、論理式で使う記号と分けて使いたいのかなとなった。 ~序説のほうでは、ターンスタイルはもっと上位の概念で使ってた(証明図が得られることをターンスタイルで表していた)から、まあ仕方ないのだろうけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「記号論理は interpretation とmodelだな。そして、それは自然演繹とは別。」 / Twitter

hagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ronri/5.txt
(PDF) CAPEレクチャー 論理学上級I 古典論理の推件計算と計算的内実(途中版) | Shunsuke Yatabe - Academia.edu
論理型言語に基づく構文解析システムSAX
Learn just enough about linear types

証明

証明

Prolog

Prologによる自動定理証明 - Qiita
Prologは定理証明系として、健全だが完全ではない - Qiita
CiNii 論文 -  Prologによる数学上の定理証明
2014Tokuyama.pdf
(81)並列定理証明器:MGTP/G Prolog版
宣言型プログラミングの可能性と限界 | Think IT(シンクイット)
shiryo2.pdf

利点

FadisさんはTwitterを使っています: 「ソフトウェアの動作を保証したければ、すべき事は新言語を作るとかコーディング規約とかじゃなくて証明なんだよな…」 / Twitter
FadisさんはTwitterを使っています: 「バグを直すにはしばしば職人のカンのようなスキルが要求される上に修正に要する時間は誰にも見積もることができない。一方テストや証明を使ってバグが出ないことを保証しながらコードを書くのは論理的な作業だし、要する時間もあらかじめ見積もることができる」 / Twitter
FadisさんはTwitterを使っています: 「経路が膨大になるとユニットテスト的な手法は難しくなってきて、相対的に証明が便利になってくるんだよな。つまり「起こってはいけないことが起こらないか確かめるんじゃなくて、起こってはいけないことが数学的に起こりえないような作りを心がける」 #boostjp」 / Twitter
FadisさんはTwitterを使っています: 「依存型と証明の話、conceptとconstexprに篭っている限りだいたいC++で解釈できて「実行時に決まる型でコンパイルできんだろ」っていう壁を隔てて同じ事をやりたがっている感が凄い」 / Twitter
FadisさんはTwitterを使っています: 「「その数式(略」、証明の歴史、形式主義の登場、ペアノの公理が来て20世紀に突入して 「第十章 プログラミングの基本概念」 でそういえばプログラミング本だった事を思い出す」 / Twitter
FadisさんはTwitterを使っています: 「ソフトウェアに不具合がないことを証明することは理論的に不可能なんでなかったか。不具合がないことを保証するということは確率の差こそあれ本質的に博打」 / Twitter
天使恵さんはTwitterを使っています: 「@fadis_ 「不具合がない」という言葉が既に抽象的なので,多分無理なんでしょうなぁ.ある実装と,別の何か(仕様記述言語的なもの)が完全に一致することは証明できる可能性はありますが...」 / Twitter
Tsukasa #01 [要出典]さんはTwitterを使っています: 「@fadis_ 誤解されがちですが、証明する一般化された手法がないというだけですよ。証明する部分を限定化して証明の一部を手動にしたのが Coq とかの証明駆動ですし。まぁ一般のプログラムの性質全般なら組み合わせ爆発を起こして現実的じゃないですが。」 / Twitter
梶本裕介さんはTwitterを使っています: 「@fadis_ 停止性問題とかの話ですかね?あれは任意のプログラムに対してそれが停止するかどうかは決定不能というだけで、多くのプログラムは(ループなら例えば整礎集合に依存することで)個別に停止性を証明できます」 / Twitter

型付きラムダ計算

言語実装

基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
Elm で作る TaPL のラムダ計算(その2)
C++で型なしラムダインタプリタを書いた - Qiita
型無しラムダ計算学習用ステップ評価器 Mogul を作っている話 - Qiita
自作ラムダ計算処理系「らむだフレンズ」 - Qiita

意味論

論理と推論・証明

Wikipedia

自動定理証明 - Wikipedia
数学基礎論 - Wikipedia
証明論 - Wikipedia
モデル理論 - Wikipedia
公理的集合論 - Wikipedia
再帰理論 - Wikipedia
操作的意味論 - Wikipedia
推論規則 - Wikipedia
シークエント計算 - Wikipedia
自然演繹 - Wikipedia
演繹定理 - Wikipedia
推論 - Wikipedia
公理 - Wikipedia
ペアノの公理 - Wikipedia
一階述語論理 - Wikipedia
原子論理式 - Wikipedia
Well-formed formula - Wikipedia
自由変数と束縛変数 - Wikipedia
論理的帰結 - Wikipedia
シークエント - Wikipedia
命題論理 - Wikipedia
古典論理 - Wikipedia
直観主義論理 - Wikipedia
様相論理 - Wikipedia
Structural proof theory - Wikipedia
部分構造論理 - Wikipedia
適切さの論理 - Wikipedia

PDF

第4回「証明」
gentzen-NK.pdf
lecture5.dvi
PowerPoint Presentation
lecture5-dist.pdf
3-print-nk.pdf
temporary.pdf
kikuchi1
kikuchi
ja

プログラマー向けの(?)数理論理学(1)数学的言明 - Qiita
プログラマー向けの(?)数理論理学(2)証明と推論規則と仮定 - Qiita
小学生でも分かる論理計算 (A22P11) - (保存用) 檜山正幸のキマイラ飼育記 メモ編
推論規則と定理、公理は違うもの? -推論規則というものがイマイチ何な- 数学 | 教えて!goo
ソフトウェア科学特論: 命題論理の推論体系
推論規則 | 命題論理 | 論理 | 数学 | ワイズ
推論規則
村上・泉田研究室 AI (人工知能)
4. 推論規則と証明
推論規則と証明
論理体系の解剖-1.3- ゲンツェン流とヒルベルト流 - 知識は永遠の輝き
論理学
Introduction to Mathematical Logic

公理的意味論

PowerPoint Presentation
Microsoft PowerPoint - MItoku2-04-hoare.pptx
Microsoft PowerPoint - PLT12.ppt

Wikipedia

プログラム意味論 - Wikipedia
操作的意味論 - Wikipedia
シークエンス - Wikipedia
Simulation preorder - Wikipedia
双模倣性 - Wikipedia
合同 - Wikipedia
再帰的定義 - Wikipedia
推論規則 - Wikipedia
シークエント計算 - Wikipedia
演繹定理 - Wikipedia
命題論理 - Wikipedia
カット除去定理 - Wikipedia
亀がアキレスに言ったこと - Wikipedia
ラムダ計算 - Wikipedia
抽象機械 - Wikipedia
SECDマシン - Wikipedia
CiNii 論文 -  SECDマシン再訪

PDF

H28-hasegawa.pdf
untitled
untitled
https://researchmap.jp/mu03gtcsf-1774112/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=68269&metadata_id=39541
NKNJ.pdf
https://researchmap.jp/muxqtr6ru-1787519/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=29962&metadata_id=48743
(PDF) 証明論的意味論入門 | Shunsuke Yatabe - Academia.edu
コンパイルの論理学的基礎:次世代言語構築の基礎理論紹介
プログラム言語論 意味論
「論理学入門」講義ノート - abelard.flet.keio.ac.jp / abelard-flet-keio-ac-jp.pdf / PDF4PRO
https://researchmap.jp/?action=cv_download_main&upload_id=37475
Microsoft PowerPoint - proglang_09_semantics.pptx
Microsoft PowerPoint - 2017-L06-Syntax and Semantics-20170518.pptx
PowerPoint Presentation
Microsoft PowerPoint - PLT12.ppt
untitled
Introduction.pdf
resume5.pdf
j-1-2.pdf
_pdf
_pdf
ppl4-2.pdf
nyumon_logic.pdf

2018年度 | ソフトウェア検証論 - TOKYO TECH OCW
Introduction to Mathematical Logic
プログラミング言語の規則の書き方と読み方 - Qiita
誰でも動かせるPrologで操作的意味論を書こうぜ - Qiita
突発簡単チュートリアル2:λ計算の操作的意味論 - sumiiのブログ
操作的意味論 vs 表示的意味論 - sumiiのブログ
プログラムの3つの意味論のまとめ - 射撃しつつ前転 改
プログラミング言語を形式的に取り扱う – ゴミ箱
なぜ僕は操作的意味論に傾いたか - 檜山正幸のキマイラ飼育記 (はてなBlog)
操作的意味論と、不純な表示的意味論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
評価シーケントの論理計算と操作的意味論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
Isabelle による並行プログラミング言語の操作的意味論と表示的意味論の同値性証明 - Think Stitch - PRINCIPIA
TAPLを読む会(~7章) - 忖度
CiNii 博士論文 - 言語Rubyの操作的意味論と型解析
スモールステップ意味論 - mrsekut-p
tapl ch 1 - 3
命題論理について
プログラミング言語として考えたTensor flow
ja

型なしラムダ計算

H25-hoshino.pdf

PDF

計算機ソフトウェア工学
計算機ソフトウェア工学
構造化プログラミングと データ抽象
構造化プログラミングと データ抽象
構造化プログラミングと データ抽象
構造化プログラミングと データ抽象
5.pdf
typed.pdf
stlc.pdf
typedlmd.pdf
lambda.pdf
sou19.pdf
Computersoftware 20-2
intro-lambda05.pdf
selfref2006.dvi
cs2015_hoshino.pdf
lambda.pdf
2.pdf
lambda
dependent.pdf
5.pdf
RelevantTheories
main.pdf
_pdf

カリー=ハワード同型対応にびっくり - うつし世はゆめ / 夜のゆめもゆめ
カリー=ハワード同型対応 - Wikipedia
型付きラムダ計算 - Wikipedia
ラムダ・キューブ - Wikipedia
二階述語論理 - Wikipedia
System F - Wikipedia
型付きラムダ計算 構文論 再入門 1/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
型付きラムダ計算 構文論 再入門 2/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
型付きλ計算と単純な拡張 – ゴミ箱
Stlc_J: 単純型付きラムダ計算 — ソフトウェアの基礎 1.0.2 documentation
MoreStlc_J: 単純型付きラムダ計算についてさらに — ソフトウェアの基礎 1.0.2 documentation
ラムダ計算ABC - Sendai Logic Homepage
不動点定理 - Wikipedia
不動点コンビネータ - Wikipedia
不動点とfix演算子 - 一歩前進
論理と計算のしくみ 5.3 型付きλ計算 (前半)

tkrさんのツイート: "false→Aは ¬false∨Aより常に真だからfalseの仮定をすると任意の命題を証明可能まじかすげえ"
ミドリムシ+さんのツイート: "1=2から全ての命題が導けるわけです… "
tkrさんのツイート: "1=2の力すげえ… "
Fadisさんのツイート: "ソフトウェアの動作を保証したければ、すべき事は新言語を作るとかコーディング規約とかじゃなくて証明なんだよな…"
Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|若手Webエンジニアのキャリアを考える!
証明最高! じゃあテストは糞なの? ― テスト談義 - プログラムモグモグ
証明プログラミング超入門
自動定理証明の紹介
Coq と定理証明
第14回 型=命題,プログラム=証明 | 日経 xTECH(クロステック)
自動定理証明 - Wikipedia
Basics_J: 関数プログラミングとプログラムの証明 — ソフトウェアの基礎 1.0.2 documentation
構造化プログラミングと データ抽象
定理証明支援の紹介 - Qiita
環境スタック 定理証明 - Google 検索
ホールドリブンで探索 定理証明 - Google 検索
定理証明支援系と依存型プログラミング勉強会 - PukiWiki
_pdf
モデル生成型定理証明系MGTPの要素技術 - hasegawa.pdf
mizutani07222007-30.pdf
FLOPS2014報告 – DSS Tech Blog
en
en
圏論とプログラミング読書会#2 資料
圏論的指数の周辺:ラムダ計算、デカルト閉圏、ノイマン型コンピュータ - 檜山正幸のキマイラ飼育記 (はてなBlog)
hatsugai@PRINCIPIAさんはTwitterを使っています 「定理証明支援ツールの力を借りずに数学的帰納法を使うのは難しい.仮定が弱いとか前提が足りないとかいつも落とし穴に落ちるのだけど,それはツールを使っているから気づけるので,紙上の証明では見落としてしまいそう.ツールの支援は自動証明だけでなく証明管理とチェックの面もとても大きい.」 / Twitter

証明(直観主義)

https://twitter.com/shinji_kono/status/1308575213785763840
https://twitter.com/shinji_kono/status/1308575483680833536
https://twitter.com/shinji_kono/status/1308576073110544384
https://twitter.com/shinji_kono/status/1308576530474303488
https://twitter.com/shinji_kono/status/1308577332232216576
https://twitter.com/shinji_kono/status/1308577520174784512
https://twitter.com/shinji_kono/status/1308577921750065152
https://twitter.com/shinji_kono/status/1308578429663506433
https://twitter.com/shinji_kono/status/1308578857176293379

論理式の証明

j-1-2.pdf
記号論理学と情報科学の研究集会'97の開催のお知らせ
148784513.pdf
4.pdf
main.pdf
エルブランの定理 - Wikipedia
DPLLアルゴリズム - Wikipedia
充足可能性問題 - Wikipedia
ユニフィケーション - Wikipedia
導出原理 - Wikipedia
冠頭標準形 - Wikipedia

仕様を「定理」とみなし、「公理」と「推論規則」を使って証明

入門!論理学 - Heat-Hazeの日記
Prologで自動定理証明? - atoprolの日記
_pdf
数理言語
lecture19-dist.pdf
20051018_agent3.dvi
resolutionprinncipleの応用(東芝RM).iml
104-koukyuroku.pdf
untitled

証明図・証明木・探索木

digidepo_8559157_po_r6-2-7.pdf
0716-06.pdf
Microsoft PowerPoint - logic05-Chap3-1.ppt
1539paper.pdf
直観主義命題論理におけるタブロー法による定理証明器
3-print-nk.pdf
2008grad13.pdf
述語論理知識を扱う全解探索仮説推論の高速化

証明探索

@keigoi

Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep たとえば https://t.co/HJZq4qeoti の p.13 にある含意の推論規則は、変数や型環境を加えればそのまま関数適用の型付け規則であるように見えてくる。例えば P -&gt; (P-&gt;Q) -&gt; Q の型付けの導出木を書こうとすると、この型をもつ fun x f -&gt; f x というラムダ項(プログラム)しかあり得ないことに気づく」 / Twitter
gentzen-NK.pdf
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep この導出木は証明木と同じ形をしている。一方、型がつくプログラムを書くと導出木ができる。つまり、型のついたプログラムを書けば証明ができたことになる。その逆に、証明ができればそこからプログラムを抽出することもできる。例えば Djinn https://t.co/j0EdLg0Tts は、型を書くと、」 / Twitter
Djinn
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep その型がつくプログラムを自動生成してくれる。これは、その型に対応する論理式を自動証明して、その証明からプログラムを取り出すような動きになっているはず。タプルは「かつ」、Either は「または」、関数型は「ならば」に相当するので色々やってみるとよい」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep たとえば fst :: (a,b) -&gt; a は、A /\ B =&gt; A に、left :: a -&gt; Either a b は A -&gt; A \/ B に相当する。 Djinn に型を入れれば実装が出てくるはず。」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep CH対応の考え方は多相型や依存型だけでなく線形論理-線形型、古典論理-継続渡し計算などに適用されているのが面白いです。上のも雑な説明なのでもしわからなかったらまた気軽にオンラインやローカルで聞いてください。」 / Twitter

情報系彼女botさんはTwitterを使っています 「論理型言語Prologは、深さ優先の探索をするから定理証明系としては不完全よ。 それに、実行速度のために単一化のOccures Checkを省いた場合は健全性も失われるわ。」 / Twitter
Kohei SuenagaさんはTwitterを使っています 「.@ksuenaga 「深層学習によるプログラム生成の高速化」はディープラーニングを使って直観主義命題論理の証明を効率的に探索する話.(すなわちプログラム生成を効率的にやる話.)@asi1024 と @skymountain_ と @nushio との共同研究.#PPL2017」 / Twitter
市川雄二/New 3 RsさんはTwitterを使っています 「論理って、多分、命題作成能力が重要だと思う。 フェルマー予想も1つの命題作成。 手割りも1つの命題作成。 これができると、自動証明をくっついて解ける命題については結論が出せる。探索が省略できる。」 / Twitter
戸次大介/Daisuke BekkiさんはTwitterを使っています 「@ytb_at_twt (承前)ようになったのですかね。そして単なるパラメータ最適化ではない問題は相変わらずどう解いて良いか分かってないと思います。一方、碁のような問題でも、探索の過程で論理的というか証明探索に近い推論をしてるわけで、発見と正当化の区別は自明ではない気がします。」 / Twitter
市川雄二/New 3 RsさんはTwitterを使っています 「証明というのは、距離空間の中で生成される多発的なシークエンスをつなぎ合わせる探索努力という気がする。 命題に対して良い距離空間を持って、長いシークエンス(論理展開)を出力できて、不断の探索努力をする人が人類の叡智となる定理を証明する。」 / Twitter
ytbさんはTwitterを使っています 「推論主義的な古典論理の証明論的意味論を持っているとき、そこからどのように「指示」概念が自然に生まれてくるかと言う問題、ようは ①古典論理の証明論的意味論 ②証明探索木で論理式の極大無矛盾集合をつくる ③スコーレム化して「指示対象」をつくる(個別化する) という流れでいいのかな。」 / Twitter
HiroshiさんはTwitterを使っています 「これはあくまで物理学の中で扱う数学的な手法であって、数学それ自体とはまた異なる。数学の営みは、数学的概念に対する性質を探索する、と言える。また、論理のギャップなく証明することが求められる。」 / Twitter
ytbさんはTwitterを使っています 「これ、面白い話で、述語論理の証明探索樹のによるモデルの構成とかは、まさしくモデルの「無限の長さの証明」で、モデルだから偶然的真理についても語ってる訳だよね。」 / Twitter
KojimaさんはTwitterを使っています 「論理と計算のしくみ、シーケント計算が証明探索を意識した作りになってて、述語論理のカット除去にエルブランの定理使っててびっくりした」 / Twitter
tenthsublevelofsuicideさんはTwitterを使っています 「こっから2ヶ月は論理学ちゃんとやりたい。述語論理の完全性証明を探索法でやるのがわからなくて挫折した。ヘンキンモデルはわかった」 / Twitter
てけてけ坊主さんはTwitterを使っています 「新幹線乗れた 遅刻しそうで気が気出ないけど、でも午前中のセミナーは出てよかった イメージとしては証明探索木による完全性定理の証明を述語論理の場合にも拡張するにはWKLぐらいで十分だよねって話をしてて、全てはチェックできてないけどちょっと納得した 完全性定理は選択公理より真に弱い」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Automated Theorem Proving in Intuitionistic Propositional Logic by Deep Reinforcement Learning https://t.co/S1heVqRruM 深層強化学習で直観主義命題論理の証明探索する論文(@ir5 さん @skyrunner_01 さんとの論文。自分の貢献はあまりないけど)。 昨年の https://t.co/9J3HOxRAvw の続きです。」 / Twitter
あきやま🐾さんはTwitterを使っています 「@kz_suzuki 探索的テストは広いからどちらもあると思うけど。 経営者は『販売を開始して良いか』の可否判断をする必要があります。その可否判断を演繹的にできるかというと、できません。帰納的に動くしかなくて、『それでいいんだよ』というのが、帰納法だと思います。 数学的帰納法は論理的に証明しているので。」 / Twitter
КазяさんはTwitterを使っています 「g3cの証明探索がかけてしまった(古典命題論理なので簡単なのはそれはそう)」 / Twitter
ytbさんはTwitterを使っています 「今日の論理学補講は古典論理の完全性定理と健全性定理。証明探索樹はやっぱりいい。」 / Twitter
h_sakuraiさんはTwitterを使っています 「@sitositositoo たとえば、プログラミング言語の変数表を作る際の最も簡単なアルゴリズムは線形探索ですよね。 ラムダ計算の型システムを一階述語論理で記述するとmapデータを使わずに線形探索を使うことになるわけです。結果的に赤黒木などを使ったmapの実装より遅くなります。しかし証明は可能で短く書けます。」 / Twitter
大妖精botさんはTwitterを使っています 「証明探索木、いろんなところで見るが命題論理の真理の木と違うのだろうか」 / Twitter
p進大好きbotさんはTwitterを使っています 「@Alwe_Alwe ↑の定義は論理式のゲーデル数しか取ってないです。ZFC等が矛盾する際のルール違反を避けるために、述語|-をゲーデル数上限付き証明探索に変えればOK的な話でした。」 / Twitter
Masaki HaraさんはTwitterを使っています 「まあ実態としては、ちょうど直感主義命題論理の証明探索のことを調べていて面白かたから実装しただけで、さらに追加の工数をかけて古典命題論理の証明探索を実装するほどでもなかったからですね (必要なら ~~P を証明させればだいたい所望のものが得られるので)」 / Twitter
AlweさんはTwitterを使っています 「@uu7t_u 私の言葉ではないのであれなんですが、古典論理の定理の多くが証明探索的なことで示せる事だからだと思います」 / Twitter
足跡45(羃等)さんはTwitterを使っています 「いや証明が探索できるとか表現能力とか何を対象とする論理かとかあるけど」 / Twitter
ytbさんはTwitterを使っています 「本日の非常勤授業論理学は古典命題論理の完全性定理と健全性定理について。証明探索樹を使ったけど、まあタブローだよね。」 / Twitter
p進大好きbotさんはTwitterを使っています 「命題論理の方の完全性って実際に意味論側で真理値全探索するより統語論側で証明探索する方が優位に高速になるのか知らないんですけど、やっぱり早いんですかね? 漠然と「命題変数が少ないけどめっちゃ長い論理式」とかは意味論の方が強そうな気がしちゃいます。」 / Twitter
ℕ𝚒𝚔𝚘𝚜𝚊𝚒: unit → tweet listさんはTwitterを使っています 「#w2019progLang そもそもFLとPolymorphic FLは別の言語なので、 FLのプログラムの型に関する証明木を作りたいときはFLの型体系の推論規則・公理を、 Polymorphic … 続きは質問箱へ #Peing #質問箱 https://t.co/FOIRuR1ceM」 / Twitter
スマートコンさんはTwitterを使っています 「@alg_d 正規な証明木というのは、公理から出発して前半でに置換規則(P(A) から P(x) を推論するような)を、後半でModusPonensと汎化規則を適用するような証明木です。」 / Twitter
amylase伯爵さんはTwitterを使っています 「集合の帰納的定義を公理と推論規則に落とせば導出木の存在によって集合を形式的に扱える。 #言語モデル論」 / Twitter
あもさんはTwitterを使っています 「いくつかの公理といくつかの推論規則を使い、いくつかの前提から一つの結論を導き出す。その過程は、公理と前提を葉、推論規則を枝、結論を根とした木構造になる。」 / Twitter
底灯天徐嶺依さんはTwitterを使っています 「あと推論と逆方向(公理に向かう方向)に証明木を伸ばす操作を英語で何と言うのでしょうか。reduntion?」 / Twitter
底灯天徐嶺依さんはTwitterを使っています 「reduntion ってなんだよ reduction」 / Twitter

証明木生成の停止性

画力・博士号さんはTwitterを使っています 「「命題Aから命題Bを証明しなさい」と入力して,実際には証明できない場合でも,証明木生成プログラムは必ず停止するのだろうか」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 古典命題論理はco-NP完全.直観主義命題論理はPSPACE完全.つまり,解けることが知られている.古典一階述語論理や直観主義一階述語論理は決定不能.線形論理については https://t.co/Vuyn0MG2fT」 / Twitter
画力・博士号さんはTwitterを使っています 「@qnighy 有難うございます! まだまだ無学なので精進します……」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 下から上に行くほど式が小さくなるようにすれば,証明木の探索は停止するようにできる.直観主義論理の一般的な推論規則はこの条件を満たしていないので,証明力が変わらない別の推論規則で置き換えるというのが基本的な戦略.」 / Twitter
画力・博士号さんはTwitterを使っています 「@qnighy ほぉぉぉ巧く置き換えられるんですね!」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn そういうこと.で,その戦略の第一歩となるのが,シークエント計算とそのカット除去定理.シークエント計算は除去則がないのが特徴.つまり,A/\BからBを導出するというような推論規則は線の下より上のほうが大きいので使いたくない.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn その代わりに,シークエント計算では左導入則というのが使える.これは目的の式ではなく仮定側の命題を分解する.このため,自然演繹のように目的の式だけを表示するのではなく,「仮定 |- 目的の式」の形で書く.これをシークエント(推件式)という.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 自然演繹では,(下から上に進むときに)仮定が増えるのは含意の導入則と選言の除去則だけで,仮定が減ることはなかった.シークエント計算では左導入則で仮定が減ったり増えたりする.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 具体的には,連言の例で考えるとわかりやすいだろう.「A /\ B |- G」 の形のシークエントは,「A, B |- G」の形のシークエントから導出できる.つまり,下から上に進むと,仮定A,Bが増えてA/\Bが減っている.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn こうすると「A, B |- G」は「A /\ B |- G」よりも「小さい」.そういう点でシークエント計算は良い性質を持っている.しかし,一般的な直観主義シークエント計算(LJ)ではまだ不足で,縮約規則とカット規則という鬼門が残っている.」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn で,それをてんやわんやしてうまく取り除いて,結果として単調減少(無限降下列を持たない)であるような推論規則を作れると勝利というわけ.」 / Twitter
画力・博士号さんはTwitterを使っています 「@qnighy なるほど…… 華麗だ……」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero ちなみに直観主義論理でもcut除去は成り立っていて、これを使うと直観主義で排中律を証明出来ない事の証明が出来たと思います。cut除去は証明論の基本定理みたいなもので、これがあると色々出来ます...色々...cut除去出来ない論理もあってこれをやっている人達もいます」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero 確かcut除去する度に枝が3倍くらいになるのでcut除去の個数回冪乗した3^...^3倍くらいの大きさの証明図になったと思います。正直証明図は読むためのものではないし、何より縛りプレイなので証明は排中律を認めるモノより難しくもなりますね。実装を視野に入れるなら構成的にやるべきですが...」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero 要するに証明図の上に行くと必ず小さい論理式になるというやつで、これより証明図を上に辿るという操作は必ず停止します。なので出現する排中律を全部調べることは可能で、与えられた排中律が直観主義で証明可能であるかどうかを判定するアルゴリズムがあれば可能です。あるかは知りませんが...」 / Twitter
はかりさんはTwitterを使っています 「@aer0aero 変換アルゴリズムがあるかは知りませんがcut除去定理というのはあります。証明図からcutという規則を除去した証明図を得るアルゴリズムがあるよって定理で、その証明図では“AからB”が証明されたらAはBの部分論理式になっているという性質があります。」 / Twitter

公理と推論規則

公理 - Wikipedia
推論規則 - Wikipedia
命題論理 - Wikipedia
一階述語論理 - Wikipedia
推論 - Wikipedia
論理式 - Wikipedia
原子論理式 - Wikipedia
論理演算 - Wikipedia

推論規則

h_sakuraiさんはTwitterを使っています 「bnf(G,E):- (G::=G1),G0∈G1,bnf(G0,E). bnf(i,I):- integer(I). bnf(G,E):- G=..[O|Gs],E=..[O|Es],maplist(bnf,Gs,Es). というような推論規則で木に対する構文検査が大体できるようになる。 Prologを使うと木に対するBNFで構文定義が簡単に論理的に定義できる。」 / Twitter
Sosuke MORIGUCHIさんはTwitterを使っています 「二重否定除去が使えても、Coqerには非常に証明しにくいので、最初に二重否定を(除去規則を使って)つけてしまったほうがCoqでは楽。本来の古典論理の推論規則に基づく証明木に比べると冗長になりがちではあるけれど・・・」 / Twitter
あもさんはTwitterを使っています 「いくつかの公理といくつかの推論規則を使い、いくつかの前提から一つの結論を導き出す。その過程は、公理と前提を葉、推論規則を枝、結論を根とした木構造になる。」 / Twitter
amylase伯爵さんはTwitterを使っています 「集合の帰納的定義を公理と推論規則に落とせば導出木の存在によって集合を形式的に扱える。 #言語モデル論」 / Twitter
スマートコンさんはTwitterを使っています 「@alg_d 正規な証明木というのは、公理から出発して前半でに置換規則(P(A) から P(x) を推論するような)を、後半でModusPonensと汎化規則を適用するような証明木です。」 / Twitter
病気の美少女さんはTwitterを使っています 「∧∨ってそんなに覚えにくいのかあ。特別な覚えかたとかはしたことないけど、∧のほうが閉じてる感じする(逆さまのコップみたいな)。あと今思い付いたけど、推論規則的には∨なんて分かりやすいんじゃないのかなあ。そのままの形で証明木が別れるし」 / Twitter
Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 下から上に行くほど式が小さくなるようにすれば,証明木の探索は停止するようにできる.直観主義論理の一般的な推論規則はこの条件を満たしていないので,証明力が変わらない別の推論規則で置き換えるというのが基本的な戦略.」 / Twitter
画力・博士号さんはTwitterを使っています 「新しい証明木の記法を考えてみた(とりあえず推論規則だけ) http://t.co/FQ2slKencN」 / Twitter
もすさんはTwitterを使っています 「式木で論理式書いて推論規則を適用して変形していくとか考えたけど、 ⇒(ならば) が書けないという問題が」 / Twitter
友利奈緒ちゃんさんはTwitterを使っています 「証明木を作る問題、こうゆう状況だったらこの推論規則を使うというのが決まってる感じがする。」 / Twitter
Sosuke MORIGUCHIさんはTwitterを使っています 「α等価の推論規則の形成。λの引数を複数にして、その形に関してのみ議論(0でも可)。このとき、α等価なものの示す証明木がα等価な項全体を代表する元として扱える。 #TPP2014」 / Twitter
h_sakuraiさんはTwitterを使っています 「推論規則を使えば導出のルールを決めることが出来て、導出木が書ける。 評価規則はプログラムの動きを決める推論規則だ。 型付け規則は型を決定する動きを決める推論規則だ。 評価規則も型付け規則も推論規則の1つなので、導出木が書ける。」 / Twitter
トビーネットさんはTwitterを使っています 「読書してたら抽象構文木という単語がでてきたので、思わず推論規則に沿って導出してしまった」 / Twitter
かーや (kaya)さんはTwitterを使っています 「ラクエンロジックは、命題カードと推論規則カードを組み合わせることで、自分だけの最強の証明木を作って戦うカードゲームです。」 / Twitter
Masaru HITOMIさんはTwitterを使っています 「したがって、例えば人間関係においても経験的に正しかろう原則と経験的に正しかろう推論規則さえあれば、論理の木というのは構築しうる。」 / Twitter
nisizakiさんはTwitterを使っています 「結局のところ、法律や大学が制定した規則に基づいて、ゴールを入力して、推論木を構築している感じ。変なローカルルールがキャッシュにたまってて、奇妙な推論木を構築することがあるし、場合によっては制定された法律・規則の目的の斜め上を行っちゃう感じ (´・ω・`)」 / Twitter
soujiさんはTwitterを使っています 「会社で少しアジャイル開発についての勉強会に参加した後、自宅最寄駅に最近出来たスタバで型システムの勉強中 公理やら推論規則やら木やら帰納的定義など懐かしい言葉たちと再会出来て楽しい」 / Twitter
画力・博士号さんはTwitterを使っています 「ウオー推論規則や導出木を書くマクロが定義できるようになった #SATySFi https://t.co/dz80AUVD9l」 / Twitter
浅瀬さんはTwitterを使っています 「型の導出木の推論規則と述語論理の推論の対応ってことよね」 / Twitter
kodai (▶)さんはTwitterを使っています 「LaTeX の ebproof パッケージを使う練習も兼ねて、CoPL に載ってる導出システム Nat の推論規則を使って判断『S(S(S(Z))) times Z is Z』の導出木を書いてみた コマンドの使い方がだんだん分かってきた https://t.co/z6lOSq0ZFf」 / Twitter
kodai (▶)さんはTwitterを使っています 「キタ━━━━(゚∀゚)━━━━!! ペアノ自然数の加算・乗算・複数回簡約をする導出システム ReduceNatExp の推論規則(1,2枚目の写真)に従って、判断 S(Z) * S(Z) + S(Z) * S(Z) -*-&gt; S(S(Z)) の導出木(3枚目)を自力で記述できた!! https://t.co/d6XwKOztAF」 / Twitter
kodai (▶)さんはTwitterを使っています 「推論規則E-Appお前絶対許さんからな… 導出木がクソでかくなるのだいたいお前のせい https://t.co/oaurdZD1q8」 / Twitter
チェシャ猫さんはTwitterを使っています 「Deep Neural Network を利用して、最小論理の論理式に対する自然演繹による証明を生成する研究。ただし対象となる論理式が証明を持つこと自体は仮定。証明木全体を一度に生成させるのではなく、各ステップごとに適用する推論規則を DNN に当てさせる。 #jssst_ppl2019」 / Twitter
kentoさんはTwitterを使っています 「ってやれば、 ・ 規則の各適用段階での型推論の木の状態を見ながら ・ 各規則が本当に正しく動くかを確認する ってのができそう」 / Twitter
AlweさんはTwitterを使っています 「PAの順序数解析(の上限)を簡単に纏めるとPAの証明を無限の長さを持つω論理に埋め込む。埋め込むと、超限帰納法を証明できると仮定するとω論理上でも当然証明できて、それに関する推論規則を導入できる。その上でcut除去を行い、証明木の高さがわかるため、木の高さで順序型が抑えられればよい」 / Twitter
sp4ghet@すぱげっとさんはTwitterを使っています 「どうでも良い話なんですけどゲーデルの不完全性定理とかで出てくる論理学とか型理論で出てくる推論規則/導出木とかそういうやつって「論理学」というキーワードで勉強進めていけば全体観が見えてくるんでしょうか」 / Twitter
はかりさんはTwitterを使っています 「型付けの導出って推論規則の定義から導出図が一意に定まっちゃう~ってことあると思うんですが、こういうやつを計算量に気を付けつつ求めたい~とかなったらどうするんですかね。結局導出木を上るしかないのでは??みたいな話」 / Twitter
cutsea110さんはTwitterを使っています 「siteswapの証明木は下から上に展開されてて、証明と思うと向きが逆になるもんだからモヤモヤしてたけど、推論規則によって元々はどういう状況だったか、この状況を説明する証拠が下に来ていると思えば分かった気になれる。」 / Twitter
尾形学士さんはTwitterを使っています 「こっちが推論規則から導出木をつくるやつ。 https://t.co/dSrsJQQ82o」 / Twitter
EvalNatML1.hs
振込さんはTwitterを使っています 「推論規則をたくさん用意して気合で推論木を構成するのか」 / Twitter
ケ゜ンミジンコさんはTwitterを使っています 「@LDScell この本自体は大学院でやりました ただ学部の頃に似たようなことはやってました、推論規則の木を作ったりという」 / Twitter

ソフトウェア検証・論理・計算・帰納

07gun_01hen_02.pdf
記号論理学
y-slide-ss06.pdf
4.dvi
kk-ieice02.dvi
https://eprints.lib.hokudai.ac.jp/dspace/bitstream/2115/50090/3/000000272912.pdf.txt
論理と計算 講義ノート
Theorem Prover in Java
TRonso33_Kukita.pdf

定理証明 木構造 - Google 検索
プレスバーガー算術の決定可能性 - 有限オートマトンを使う証明の形式化 - tpp2015.pdf
きけんぴんさんはTwitterを使っています 「健全性・完全性って、証明とか判定する体系自体についての話という認識。別のツイートのリプライツリーの例を借りれば、「単純型付きラムダ計算の項であるか」を判別することで「計算が停止するかどうか」を判定するというシステムならば、停止性を判定するシステムとして健全と言えそう。」 / Twitter
ytbさんはTwitterを使っています 「LL Toyという証明支援ツール、ゴールとなる証明したい論理式を入力すると、そこが結論となるような推件計算の証明図を生成してくれるんですが、ゴールとして証明できない論理式(たとえば直観主義論理上で((A→B)→A)→A)を入力すると挙動が面白いですね。無限後退。 https://t.co/5hoTti0pzm https://t.co/bZCHKUB3Ej」 / Twitter
LL Toy
ytbさんはTwitterを使っています 「直観主義論理上の二重否定除去の「導出」に挑戦したのはこちら。見事な無限後退。 https://t.co/oDasR54fna」 / Twitter
slide.pdf
general4-3.pdf
sakigake03.pdf
コンパイルの論理学的基礎:次世代言語構築の基礎理論紹介 - zengakuKyoutsu2014-07-18-2.pdf
Coq/SSReflect/MathCompで解析入門の1章の命題を全て証明 | Mathlog
ドッグさんはTwitterを使っています 「Rust プログラムがクラッシュしないことの証明の話や Unsafe Rust の安全性の証明の自動化フレームワーク (Isabelle で書かれてる) の話,借用チェックをモデル化するコアライブラリ Polonius の話などなど」 / Twitter
ドッグさんはTwitterを使っています 「Rust コードの検証をしてくれる Prusti 知らなかった.panic-free かどうかや overflow check の他,属性に事前条件・事後条件,副作用の有無などを書くと検証してくれる.VS Code 拡張もあるのか https://t.co/iDZGFo8rPC」 / Twitter
viperproject/prusti-dev: A static verifier for Rust, based on the Viper verification infrastructure.
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合はやはり GC がらみかなあ。シングルスレッドでもマーク漏れはつらかった。並行 GC のバグは最終的にコードからリバースモデリングしてモデル検査で問題点を見つけた。」 / Twitter

型レベル計算・コンパイル時計算・依存型

PureScript型レベル計算入門 - Qiita
Haskell 型レベル計算で継続渡し - keigoiの日記
Type-level TypeScript - ryota-ka's blog
Scalaで型レベルのラムダ計算 - 貳佰伍拾陸夜日記
Scalaで型レベル”だけ”でクイックソート | POSTD
欲望の赴くままRustで型レベルPeano自然数とサイズ付きベクトルを書いた - konn-san.com
ソフトウェアの基礎

名前付けの遅延

アイドル焼肉さんはTwitterを使っています 「僕が今やりたいことをあえて言語化すると意味付けの遅延なのかなって気がしてきた。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「性質と実体、認識論と存在論、統語論と意味論、代数と空間のような双対性はいろいろな領域にあって、これらのうち前者から徐々に後者を導いていくっていう方法論をソフトウェア開発の分野で構築できないかなって考えている。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「プログラミングではとにもかくにも名前をつけることは崇高な行為と見なされがちで、それ自体は別にいいんだけど、とにかく意味付けを急がされる感じがする。もっと無味無臭の構造があっていいと思っていて、ユーザが使い続けることによってそこに意味が生まれてくるのではないかと。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「「無味無臭の構造」っていうのは具体的な言語機能でいうと、たとえば構造的部分型とか無名関数とかそういうのです。それ自体にどういう意味があるかはわからんけど、とにかくその構造には価値があるみたいなやつ。」 / Twitter
アイドル焼肉さんはTwitterを使っています 「念のために言うと、意味論の側を軽視してるつもりはまったくなく、構造よりも意味のほうが見出すのに時間がかかる(ことが多い)っていうだけです。」 / Twitter
尾崎隆大さんはTwitterを使っています 「@a_suenami % Prolog 何が書かれているか想像しながら読むことになりますが. 'スケルトン的なコードはどうなのでしょうか'( 'https://t.co/vtuEFoqyhC') :- 何が書かれているか想像しながら読むことになりますが.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog スケルトン定義はこちら '1'([_1|_2],[_3|_4]) :- select(_3,[_1|_2],_1,[_5|_4]), forall(member(_6,[_5|_4]),_6 @&gt;= _3).」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '問題はこれで何をやっているか判るかですが、 select forall @&gt;= この三つの組み合わせで最大値か最小値絡みであることは瞬時に分かる。 次に、selectが4引数なので、最大値または最小値となにかを交換しているのだろうなと。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは、 https://t.co/Ay9pM3DV0F の方は どうかと云うと、 「ならびの最小値要素を求め先頭要素と入れ替える」 より後は読みません。 これは本気の話しで、一度書かれたPrologプログラムの本体部分を読むことはありません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '既にtwitter上で度々記した通り、 述語名がABCでA,B,Cがおよそ句を意味するとき、述語の分割は倒置を省略すると、 ABC :- A,B,C. ABC :- AB,C. ABC :- A,BC. となり、ABCでその内容を一望できてしまいます。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '実際には ABC :- DE. と再定義される場合もあります。再定義されれば、ここから始まるわけですから、ABCを読むだけでは情報が不足である心配は大いにあるわけです。 ですから、あくまで作法に従って書くことに努めればという条件付きの話と思って下さい。'.」 / Twitter

動的型

Shiro KawaiさんはTwitterを使っています 「REPLで実行する→エラー出る→データはメモリ上に残ってるので出力ルーチンだけ書き直して再実行 https://t.co/qWsCAGMuu3」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「動的型の言語でクソ重い処理をしてその結果をファイル出力するプログラムを書き,ファイル出力のコードにミスがあったためにクソ重い処理をした後に動的にエラーが出て何も得られず終わったときの瞬間最大感情消失速度は光速をも超えると言われている.」 / Twitter
Shiro KawaiさんはTwitterを使っています 「もっと言うと、メモリ上のデータの方がコードよりも長生きするという使い方をしないと動的にしてる意味が無いと思う。メモリにデータを載せたまま、コードが扱う型を変えれば、データの型も変わってくれる、という。」 / Twitter
Toru HisaiさんはTwitterを使っています 「@anohana なんかそれってデータベースのコンソールで SQL を叩くのに似てますね。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@torus 永続的なデータがあってそれをいろいろいじりながら考えるイメージですね。伝統的なLispのワークフローはやっぱりそっちだと思います。GaucheはREPLでのエラー時にローカル環境を捨ててしまうのが不便なんですが、いずれ何とかしたいと思ってます。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@cutsea110 動的型付け指向だとメタプログラミングのレイヤを縮退させて考えがちかも。例えば「任意のサイズのタプルをシリアライズ/デシリアライズするコード書きたいじゃん」というのは動的型付けだと同じレイヤで書けるけど静的型付けだと型をパラメータとしたひとつ上のレイヤになる、みたいな。」 / Twitter
cutsea110さんはTwitterを使っています 「@anohana ええ,lisp/schemeだとリストとタプル区別ない感じで,イテレートできるかどうかはアタイ(値)が決めるわみたいなね.」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@cutsea110 ちょっとおもしろいのは、CLOSだとスロットごとに名前を指定したアクセスしかできないけど、メモリ上はどうせスロットの列で持ってるんだからイテレートさせろや、とPaul Grahamが言ってたやつ。抽象化の壁をどこに設定するかの違いかなあ。」 / Twitter
cutsea110さんはTwitterを使っています 「@anohana あれれ,MOPってスロットの登録部分とか(クラス継承時のメソッドで)手を出せたような記憶があるんだけどできないんでしたっけ??」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@cutsea110 直接インデックスで低層にアクセスする仕組みは規格外じゃないかな。実装によっては可能だけど(Gaucheも内部的には可能)。あと自分でベクタをストレージにしたクラスをMOPで作ることもできるけど、ネイティブオブジェクトに関しては…」 / Twitter
cutsea110さんはTwitterを使っています 「@anohana あーそうか勘違いかも. AMOPではそのあたりアクセスしてた記憶があったんだけど,最初の部の説明はもしかしたらCLOSの仕組みを実装で説明してたからMOP使う側からではなかったかもしれないです...うう.」 / Twitter
島鉄雄さんはTwitterを使っています 「&gt; 動的型付け言語には初期の開発スピードが速いという微々たるメリット 静的型言語はコンパイルが通らないと実行する事が出来ないけど、複数(5とか10)人以上で開発してると、ソースを更新した時にコンパイルが通らない事がたまにある。 それが納期間近だと殺意すら芽生える事があるw 続く https://t.co/TGAnbONggS」 / Twitter
島鉄雄さんはTwitterを使っています 「あと、静的にバイナリを作成すると実行中にコードを修正して、停止箇所から再開するという事もやりにくくなる。 要するに静的型のメリットは重要だけど、動的に実行出来る(担当箇所以外でエラーが有っても実行出来たり、実行中にコードを変更出来る)事も非常に重要になってくる。 続く」 / Twitter
島鉄雄さんはTwitterを使っています 「なので、最近のゲーム開発はゲームエンジン上で、C#を自前のVMを使って動的に実行出来るようにしてる事が多くなってる。 これは動的型ではないけど(C#なので)、動的である事のメリットは計り知れないと思われる。」 / Twitter
島鉄雄さんはTwitterを使っています 「コンパイル通らないコードを書いてはいけない縛りをすると、一度公開したインターフェースは二度と変更してはいけない事になる。 なので、インターフェースの実装者は変更した時に、ソース変更しといたよと言って他人のコードをいじる事になるけど、そこは今まさに自分がいじってる最中とかある。 https://t.co/EaLpRDGR6H」 / Twitter
島鉄雄さんはTwitterを使っています 「.NET&amp;Windowsプログラマのためのデバッグテクニック徹底解説 だと、 &gt; チーム全員にドーナツを奢らせるw 多人数開発だとコンパイルエラーはどうしても避けられない。 https://t.co/EaLpRDGR6H https://t.co/qouwp80Bvp」 / Twitter
島鉄雄さんはTwitterを使っています 「それを突き詰めると、バグを出すコードを書くのが悪いってところまで行きついてしまう… 間違いなく正論ではあるけど… https://t.co/EaLpRDGR6H」 / Twitter
島鉄雄さんはTwitterを使っています 「動的型言語の方が、動的に開発する環境が整ってるのは間違いない。(一例として、ブラウザに備わってるJavaScript用のデバッグ環境とか) なので、後は型の整合性をチェックする仕組みがあればいいだろう。 TypeScriptは大規模なものだけど、RubyやPythonも型宣言が出来るからそれで十分だと思われる。」 / Twitter
島鉄雄さんはTwitterを使っています 「動的型言語(RubyやPython)は、型宣言を全部ちゃんと書いて、エラーも全く無くなったからと言って、Cと同等の効率の実行ファイルを作成出来る訳じゃない。 そこが静的型言語を越えられない壁だろう。 逆に言うと、型のエラーが無い時にCと同等の実行ファイルを作成するコンパイラが有れば究極だろう。」 / Twitter
島鉄雄さんはTwitterを使っています 「そう考えれば、RubyやPythonはまだまだこれからの言語だと思うけどね。」 / Twitter
島鉄雄さんはTwitterを使っています 「少し前に似たツイートをしたけど、軽くまとめると、静的型言語の弱点は多人数(5〜10人以上)での開発で、コンパイルが通らない事が起きたり、フルビルドが掛かるとPC1台の場合に30分以上掛かる事がある。 (分散ビルドで解決出来るけど、それでも5分程度掛かるだろう) 続く https://t.co/0rATXeJKsa」 / Twitter
CubbitさんはTwitterを使っています 「動的型付けな言語を好む人が何故それを好んでいるのか、うまく言語化されたものを未だに見たことがないので、誰かに書いて欲しいです」 / Twitter
島鉄雄さんはTwitterを使っています 「だから、ゲーム開発みたいにイテレーション回数がクオリティに直結するような場合は、動的型言語が好まれている(いた)。(Luaとか) しかし、型のメリットも必要だから、最近はC#のような静的型言語を動的に実行できるようにしている事が多いだろう。」 / Twitter
島鉄雄さんはTwitterを使っています 「Emacsの70%はLispで出来てるけど、それでも本体はCで書かれてるから、1行書き換えただけでもコンパイルして起動し直さないといけなくて、これがスゲー時間が掛かる。 (自分のやり方がまずいのか…?) だから、Cの方はいじる気になれない。」 / Twitter
島鉄雄さんはTwitterを使っています 「結局、動的型⇔静的型、じゃなくて、Haskellの様な暗黙の型変換が無い代数的データ型⇔それ以外、という構図なんだよな。 動的に実行(修正・変更)が出来るという事自体はメリットしかない。」 / Twitter
島鉄雄さんはTwitterを使っています 「複数人開発でコンパイルエラーが起きる事例 1. 条件ビルド 2. ソース上げ忘れ 1.はreleaseとdebugでビルドを分けてて、debugの方で関数の引数を追加したのに、releaseの方のソースを直し忘れるとか。 どっちも当人の環境ではビルドが通ってるので気付かない。 CIでかなり予防出来ると思われる。」 / Twitter
神速さんはTwitterを使っています 「動的型付け言語はmockが楽なのでテストを書きやすいし、単体テストを素早く実行できるメリットはある。 まぁ、どっちもメリット・デメリットあるので、どちらも書けるようになって、案件の特性にあわせて使い分けられるべきじゃないかな。」 / Twitter
kmizu_v2さんはTwitterを使っています 「これはあくまで私見なのですが、動的型付き言語が流行った時代には、特に、主流の静的型付き言語がそこまで柔軟でなかった(パワフルでなかった)という背景も考慮する必要があるかなと思います。現代は、型がパワフルになったし、メタプログラミングも静的に(マクロ等)でやることができるから、」 / Twitter
kmizu_v2さんはTwitterを使っています 「ただ、一方で、いったん普及した言語はそうたやすく消えないし、コミュニティも変化していくので、部分的に静的型を取り込もうという動きが多くの動的型付き言語(Ruby 3、Python 3、JS -&gt; TS)で起きているのかなと。Gradual Typingのようなものの発展も関連してそうですが。」 / Twitter
Miura HidekiさんはTwitterを使っています 「逆に、静的型付け言語の知見を取り入れた動的型付け言語が再び席巻する可能性もあるってことだな。1980年代までのLispを考えるとありえる」 / Twitter
sumimさんはTwitterを使っています 「ぱっと思いつく範囲でSmalltalkが人気動的型言語と少し違う点は ➀原則として変数宣言が必須なのでタイポはある程度検知可能(ただしワークスペース変数は例外なのでこれは便利な反面、他言語並みに苦痛を伴う) ②デバッガーそれ自体が独立したIDE(な…何を言っているのかわからねーと思うが)続く」 / Twitter
sumimさんはTwitterを使っています 「③基本、簡易オブジェクトストア内でのプログラミングみたいなものなのでIDEがシンプルな仕組みながら多機能&IDE無しでも全情報にアクセスできる(広い意味で➀もその範疇)  …あたりだろうか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「そう言う意味なら、Rubyでも最初の代入(正確に変数の出現)が宣言で未使用ならワーニングが出るから一緒だと思うんだけど &gt;RT」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 retrun で何の警告もエラーも出ないの辛い...」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki あ、たしかに。retrunというメソッド呼び出しととらえられますね。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「静的型と実行時型検査の話を見かけるとなんとなく距離を置きたい気持ちになるけど、自分も違うテーマで似たようなことをしているわけで…だから何というわけでもないけど。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「静的型付け批判には「完全に型をあわせるパズルを解くまで実行させてくれない」みたいなのがあるけど、それは必ずしも当たらない。例えばVDMの型検査は、型が網羅的に一致していなくても実行可能な値が1つでも存在していれば(共通部分があれば)型エラーにはならないし実行可能なように設計されている。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そして処理系の作り方次第で、動的型付けのような柔軟な実行が可能。例えばViennaTalkでは、評価実行の最中に型の定義を変更することさえ可能だぜキリリ。念のために言っとくけど、VDMは由緒正しい型付集合論ベースの静的型付き言語だからな。(プログラミング言語じゃないけど」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「で、VDMの型システムのオレオレ解釈は、静的型はモデリングの道具の1つに過ぎない。正しいことを前提にしない。型付けが不完全でも、わかることは沢山ある。型は門番じゃない。型は目的じゃないってこと。型と格闘するぐらいなら、さっさと別のことをしろ。ってこと。そしたら型は後で湧いて出てくる。」 / Twitter
Island Life - 型付けと変更の時定数
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 例えば「静的に強い型付をするプログラミング言語が開発生産性が高い」という言説ですが,ソフトウェア工学的な観点で厳密に評価すると,本当にそうなのか?というのは昔から疑問に思っています。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t というのは,静的に強い型付をするということは,型検査をクリアするのにそれなりに苦労するので,その知識・スキルを持つ人材を揃えるというところまで視点を広げると,アドバンテージが本当にあるのか?というのはよくわからなくなるんじゃないかと思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「動的型付けで静的に型を得るType Profiler話は、どこまでやればいいのかが一番問題になるな(処理速度との絡みで)、と再認識した次第。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 通常のVM実行と静的な型推論、動的に行われる型プロファイル収集とJITコンパイルをどう組み合わせるかという話ですね。難しい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 いえ、この話はあくまで抽象実行でどのレベルまでシミュレートするかという話を意図しました。確かに範囲を広げるともっと難しんですが」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 あ、そうか。抽象実行だから静的だけどtype profilingなのか。」 / Twitter
動的型付けインタープリター言語 Haskell - 趣味はデバッグ……

型注釈生成

Miura HidekiさんはTwitterを使っています 「https://t.co/hd4NdBAB7H 抽象実行ではなく本当に実行するのか。これはこれで現実的なアプローチかもしれんな」 / Twitter
Instagram/MonkeyType: A system for Python that generates static type annotations by collecting runtime types
Yusuke EndohさんはTwitterを使っています 「@miura1729 自分は当初は動的解析だったんですが、やってみると意外と大変(オーバーヘッドが巨大、カバレッジ高いテストがないとダメ、など)で、抽象解釈に切り替えたんですが、結果的にはもっと大変な道を選んでしまったなあという感じです。」 / Twitter
Yusuke EndohさんはTwitterを使っています 「@miura1729 動的解析でメソッドの型シグネチャを作って、メソッド単位で型解析する(抽象解釈でも伝統的型システムでも)、というのはakrさんとかが推してて有望そうです。手が足らないですねえ」 / Twitter
Miura HidekiさんはTwitterを使っています 「@mametter なるほど、計算量爆発しないし現実的ですね。インスタンス変数とかどうするのかが問題かなって思います。」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「@mametter @kmizu @keke_moto 抽象解釈のエントリポイントとしてのシグネチャはもちろんあった方がいいのですが、やはり抽象解釈で拾えない部分が多く、推論を助ける補助的な注釈を行いたくなる場面は当面の間まだまだありそうっていうのが最近の認識です (具体的にはこんな作業が必要になってます… https://t.co/TYLJtpj8p6)。」 / Twitter
improve various minor inferrabilities by aviatesk · Pull Request #38832 · JuliaLang/julia

型理論

型理論 - Wikipedia
階型理論(かいけいりろん)とは - コトバンク
階型理論
階型理論の補足説明
プログラマのための簡単な型理論入門 - Qiita
型理論 | 黒曜の吹き溜まり
型理論 なんて自分には関係ないと思っているあなたへ
型理論と型システムは違うらしい - 木下修司研究所
「型」の定義に挑む | POSTD
ml_module_type_theory.pdf

型システム

“型”を語る際の7つの重大な誤り | POSTD
danwakai2015.pdf
型システム - Wikipedia
ポリモーフィズム - Wikipedia
型システム 〜プログラムの安全性を支える数学〜 - Laborify
型システムを学ぼう!
型システム-プログラミング CapmNetwork
ogiwaraさんはTwitterを使っています: 「TaPL、数学的な前提知識はそこまで求められない 順序理論がちょっと難しい程度」 / Twitter
ogiwaraさんはTwitterを使っています: 「@ei1640 TaPLがキツイ理由としては、 - そもそも論理学か、集合論における順序理論の習熟度が低い - いきなりの計算論理学がキツイ という二つの理由があると考えてます 前者についてはまあ頑張るしかないですが、後者についてはこの本(CoPLと言うらしい?)をオススメします https://t.co/2nG4zWzcjs」 / Twitter
プログラミング言語の基礎概念 ((ライブラリ情報学コア・テキスト)) | 五十嵐 淳 |本 | 通販 | Amazon
ogiwaraさんはTwitterを使っています: 「SKIコンビネータとかChurch-Rosserの定理とかは面倒見てくれなかった記憶」 / Twitter
ogiwaraさんはTwitterを使っています: 「ラムダ計算にしたって別に前提知識は求められない、その場で分かりやすく(実用向けの)解説してくれる」 / Twitter
ロビン・ミルナー - Wikipedia
リスコフの置換原則 - Wikipedia
Future パターン - Wikipedia
h_sakuraiさんはTwitterを使っています 「型システムはPrologでさくっと作るのが簡単なのになぁ t(I,int):- integer(I). t(E1+E2,int):- t(E1,int),t(E2,int). :- t(1+2+3,int). ってだけで作れる。 これを認められない人が多すぎる。」 / Twitter
h_sakuraiさんはTwitterを使っています 「構文木をクォート無しで扱うことは古くて終わっているわけではなく、型理論で実用され続けている。その世界を素直にコンピュータ上で扱いたい。 そのために必要なのが昨今研究が盛んにされている集合論的型システムなのだよな。Union Types あたりがPrologのプログラムを検査するのに使えるといい。」 / Twitter
多段階計算の型システムの基礎
TypeScript の便利な型変形を なんとかして Scala.js で使う / Emulating TypeScript Utility Types in ScalaJS - Speaker Deck
effectful subtyping - lilyum ensemble
Introducing Type Providers - Google スライド
A Journey to Type-safe Vectors in F# - Speaker Deck
山本和彦さんはTwitterを使っています 「素敵な型システムがあるプログラミング言語では、実装の問題を型のレベルの問題に簡略化して考えることができる。この意味が分からないのに、「型注釈は書きたくない」と主張するのは、実にもったいないことだ。(分かって主張しているならは、好みの問題なのでOKですよ。)」 / Twitter
hindley-milner型推論を持つ言語で、アドホック多相を扱う方法について、教えていただけますか?に対するJunji Ueharaさんの回答 - Quora
井山梃子歴史館さんはTwitterを使っています 「型システムのChurch styleとCurry styleを逆に覚えてたっぽい」 / Twitter

合併型

tk0miyaさんはTwitterを使っています 「プログラムの型付けで Union 型のことを「合併型」と呼び始めたルーツが気になっています。だれか情報お持ちではありませんか。 (適切な訳語を調べていたのがきっかけです。こちらのほうが適訳だ、という情報もお待ちしております)」 / Twitter
Koji MiyazatoさんはTwitterを使っています 「@tk0miya 私にはルーツはわからないのですが、CやC#にあるunionは共用体という訳語に落ち着いていると思います。TypeScriptの(number | string)のような型を指しているなら「合併型」という訳語が私には一番しっくりきます。」 / Twitter
tk0miyaさんはTwitterを使っています 「@beatnik_t5r @kaoriya コメントありがとうございます。型付け(typing)としての union と、C の union(共用体) とは異なる概念だという認識です(Java は詳しくないのでコメントできません)。前者はメモリ領域を共有/共用してはいませんし、共用型という訳は適当ではないと考えます。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@tk0miya @igrep ルーツはわかりませんが、とりあえずこの論文は1980です。 https://t.co/oI3csWAOP5」 / Twitter
IPSJ-MGN211109.pdf
tk0miyaさんはTwitterを使っています 「@tomooda @igrep ありがとうございます!古くから使われていた訳語だろうと思っていたのですが、1980年からとは!文字通り歴史を感じますね。」 / Twitter
Masaki HaraさんはTwitterを使っています 「本当に脈絡のないただのリマインド: 直和型 (sum type) と合併型 (union type) は別概念です。」 / Twitter

型推論

OCaml-meeting0908-revised.pdf
型推論機構の実装
型推論 - Wikipedia
型推論を実装してみる | Kludge factory
Hindley-Milner型推論アルゴリズムをGroovyで書いてみた - uehaj's blog
SML# - ランク1多相性の理論
型推論のしくみ : KLabGames Tech Blog
型推論機構を備えたインタプリタをRubyで実装した - 鴨川の怪物
プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~ - Google ブックス
hs2bf - 謎の型推論 - ⊥=⊥
連立方程式の解き方
Algorithm W入門を攻略してきた - osiire’s blog
Prologでλ→の型検査のプロ グラムを書いてみただけの話 // Speaker Deck
yūkiさんのツイート: "自作言語で型推論実装したいなあと思いちょっと経ったけどどんな感じのステップで型推論されていくのかわかってないので手を付けてない"
ヒトでもわかる型推論 - Qiita
uint256_tさんのツイート: "なんだかんだ言って、英語版Wikipedia が一番わかりやすい気がした: https://t.co/i0SYbiNoWi… "
Hindley–Milner type system - Wikipedia
So you still don't understand Hindley-Milner? Part 1 - Amit's Blog
OCaml-meeting0908-revised.pdf
Prologで様々な多相型推論 - Qiita
型推論に関する最近の話題への雑感 - Qiita
静的型付「き」言語(@seitekibot)さん | Twitter
JavaScript による型推論器の実装 - takuto_hの日記
Swiftの型システムを読む その1 – ukitaka – iOS開発とかのメモ
7.pdf
TypeScriptのタプル型推論使って型を改善 - Google スライド
5 分ではわからない HM 型推論 - 型システム祭りオンライン 2020 4/17 - Speaker Deck
Lispにおける型推論 - Qiita
ISLispにおける型推論コンパイラ - Qiita
ISLisp Home Page
κeenさんはTwitterを使っています 「自分はやったことないけど踏みそうではある。自分ならHashMap::&lt;usize, u64&gt;::new にして型を決めてしまうかな。 Rustの型推論のおかげで逆にデバッグに苦労した。 - Qiita https://t.co/0x0dW7sGAi」 / Twitter
Rustの型推論のおかげで逆にデバッグに苦労した。 - Qiita
C# 9: newキーワードの型推論
╹ω╹腕が震えてGPUを茹でた1inguiniさんはTwitterを使っています 「型、たしか突き詰めるとλx.xの型がΛx.x(記号これで合ってたっけ)みたいなことになる筈なので方が複雑になると型推論ができなくなるというのがよくわからない」 / Twitter
Juliaの型推論アルゴリズムを実装する
[PDF] A Graph-Free Approach to Data-Flow Analysis | Semantic Scholar

漸進的型付

型システム 〜プログラムの安全性を支える数学〜 - Laborify
漸進的型付け言語の時代に必要なもの - mizchi's blog

型クラス

型クラスはインターフェースとどう違うのか | POSTD
まともな型クラス への入門: 関数型とオブジェクト指向の垣根を越えて - 檜山正幸のキマイラ飼育記
入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) - 檜山正幸のキマイラ飼育記
インタフェースと型クラス、どちらでもできること・どちらかでしかできないこと - Qiita
型クラス - ウォークスルー Haskell
型クラスの真の力を見せる - kmizuの日記
TypeClass.pdf
Scalaで型クラス入門 - still deeper
κeenさんのツイート: "「定義を」分離できるのが型クラスの一番の利点で、実行時の「データと辞書オブジェクトを」分離できるのはあまり利点を感じない。文脈によって同じ型に対する型クラスのインスタンスを使い分けたい場面ってとほんどないでしょ。"
まともな型クラス への入門: 関数型とオブジェクト指向の垣根を越えて - 檜山正幸のキマイラ飼育記 (はてなBlog)

代数的データ型

Haskell と Scala

エヌユルさんはTwitterを使っています 「Haskellだったら単に値を持たない代数的データ型を定義して関数でパターンマッチして挙動を変える所だけど Scalaだと代数的データ型自体がobjectとしてメソッドを持てるから多態みたいな感じに書けるので どっちで実装しようか迷ってます」 / Twitter
エヌユルさんはTwitterを使っています 「Haskellだと引数でのパターンマッチがその場で書けるけどScalaだとmatchでネストが増えるからtraitのoverrideとして書くか」 / Twitter
エヌユルさんはTwitterを使っています 「待てよ条件が直行するからそのまま1次元で書き下すと大変なことになるのでは」 / Twitter
エヌユルさんはTwitterを使っています 「やっぱりパターンマッチで変えるべきか」 / Twitter
エヌユルさんはTwitterを使っています 「フラグがいくつかあって特別な奴は全部無視する」 / Twitter
エヌユルさんはTwitterを使っています 「いやそんなことないな」 / Twitter
エヌユルさんはTwitterを使っています 「でもこれだとかなりの条件わけになってメソッドの実装がめっちゃ重複するしやっぱりメソッド多態よりデータでの区分けにするか」 / Twitter
エヌユルさんはTwitterを使っています 「Scalaって引数部分でタプルの分解出来ないのか?」 / Twitter
エヌユルさんはTwitterを使っています 「case object作った時明示的に最初あたりはtraitの型であることを明示しないといけないのがもにょるな メソッドの返り値で型書いてるからそのへんは推論して欲しい」 / Twitter
エヌユルさんはTwitterを使っています 「Dottyでenum入ったらそのへんも改善されるんだろうか?それともsyntaxだけ?」 / Twitter
エヌユルさんはTwitterを使っています 「Haskellのdataと違ってコンストラクタに値するやつもtypeを持つのが悪いんだろうなあ」 / Twitter
エヌユルさんはTwitterを使っています 「あーもうScalaで代数的データ型使うと一々型注釈が必要で面倒だなあ」 / Twitter
エヌユルさんはTwitterを使っています 「組み合わせ爆発を回避するために色々条件を入れて頑張ってフィルタリングした結果 4万件の間違いデータが 120件の間違いデータに減った! 正しいデータは1つもなし! クソが」 / Twitter

代数的データ型 - Wikipedia
Algebraic data type - Wikipedia
代数的データ型と初等代数学 - ryota-ka's blog
Haskell 代数的データ型 超入門 - Qiita
Scala 代数的データ型 超入門 - Qiita
代数的データ型 - ウォークスルー Haskell
何で走っているのだろう: Scalaでの代数的データ型のしくみと使い方
代数的データ型を使わないリスト - maoeのブログ
TypeClass.pdf
代数的データ型と直和型と直積型とTypeScript - Togetter
データ構造 – Haskellの代数的データ型 - コードログ
輪 (数学) - Wikipedia
代数的構造 - Wikipedia
「ADT, 直和・直積, State Machine」 - Qiita
ワンランク上の関数型技法による Command パターンの置き換え - Qiita
続くといいな日記 – type family を使って再帰的 ADT をオープンにする
D言語で,(ゴリゴリの)コンパイル時メタプログラミングでADTを実現した話 - alphakai’s tech blog
keiichiro shikano λ♪さんはTwitterを使っています 「計算機のニーズに合わせるための型宣言は人間の認知にあっていないからしたくないけど、自分で作った代数的データ型を使い始めればそれは自分という人間の認知にほかならないし宣言するのはやぶさかでないよなあ」 / Twitter
Nobuo YamashitaさんはTwitterを使っています 「もうすこし,そのあたりが一般的になることを期待します. が,Function typeがあるなら,それはもう,単なる認知云々ではなくて,プログラミングそのもの. 「型宣言できない=プログラミングできない」 といっていいと思いますねぇ. https://t.co/3MC73qO81t」 / Twitter
Nobuo YamashitaさんはTwitterを使っています 「まともな型システムがあるなら,おねがい型宣言書かせてくれるよね.という気分.」 / Twitter
06gun_03hen_04.pdf

依存型

依存型 述語論理

依存型 - Wikipedia
10.pdf
証明プログラミング入門2
nori_Coq3.pdf
logic.pdf
938.pdf
Idrisで遊んでみた (0) | 雑記帳
calculus of constructions (CoC) の勉強 - よーる
トポスと高階論理
Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł
20160114wba.pdf
はてなブックマーク - Prologに関するsyaminoのブックマーク
d.y.d.

様相論理 依存型理論 述語論理

「再帰的定義を可能にする述語論理の証明支援系上の実装」 - あいまいな本日の私 blog
Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł
新・あいまいな本日の私: 一階述語論理と集合論は循環している?

依存型 - Wikipedia
コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD
依存型入門
実世界を扱う依存型プログラミングのたぶん基本~外界から安全な世界までの道 - ぼくのぬまち 出張版
プログラミング言語 idris - wkwkesのやつ
安全かつ柔軟な依存型 -
私と型システムとポエム - The curse of λ
証明プログラミング超入門
関数型プログラミング – 依存型とは何ですか? - コードログ
2017年注目していきたい技術 | κeenのHappy Hacκing Blog
idris環境構築 | κeenのHappy Hacκing Blog
Idris入門: 数当てゲーム | κeenのHappy Hacκing Blog
イマドキと言われる言語機能について | κeenのHappy Hacκing Blog
🈚️うひょ🤪さんのツイート: "TypeScriptはちゃんとした型レベル自然数があったら楽しそうなんだけどいい感じに入らないかなあ(ぇ"
tkrさんのツイート: "型レベル文字列と型レベル自然数で闇がさらに深くなるTS #いろいろなTS"
tkrさんのツイート: "実際文字列周りは何とかしてほしいみたいなとこあるけどまじで沼になりそう ほら、 "a.b.c" みたいな事してプロパティ取得するthe 動的言語感なライブラリとか"
F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam
Idris入門: 二分木 | κeenのHappy Hacκing Blog
Idris入門: リファレンス | κeenのHappy Hacκing Blog
Effective Idris: Lazy | κeenのHappy Hacκing Blog
Idrisで依存キュー | κeenのHappy Hacκing Blog
Effective Idris: Effects | κeenのHappy Hacκing Blog
Dependent Types と Refinement Types の違い - SevenColoured
Kory(公式)(非公式)さんのツイート: "「型書いたら実装が生えてきて欲しい」を実際に解決してるの、GHCのGenericしか見たことない"
Sarashino(晒野)さんはTwitterを使っています: 「@public_ai000ya Genericが例に上がってるので趣旨が違うかなと思ったんですが、 idrisの補完はハマると「型書いたら実装が生えてくる」感じだった気がします https://t.co/fP7jFuLEXk」 / Twitter
Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ
Idrisの話とIdris2のウワサ | κeenのHappy Hacκing Blog

Refinement Types

Dependent Types と Refinement Types の違い - SevenColoured
Refinement type - Wikipedia
型をさらに拡張するーーRefinement Typesについて - Line 1: Error: Invalid Blog('by Esehara' )
Racket 6.11で篩型(refinement type)と依存関数型(dependent function type)が安定機能に
refinement_types_for_haskell.pdf
abstract_refinement_types.pdf
MSR-TR-2009-147-SP1.pdf
Refinement Types
Programming with Refinement Types
refinement-2-bengtson08.pdf
Liquid Haskell で普通の型システムの上を行け #NGK2017B
main.pdf
Dependent type、refinement typeおよびHoare Logicの違い
LiquidHaskell 入門 その1 - 存在と一意性の証明
LiquidHaskell 入門 その2 - 存在と一意性の証明
LiquidHaskell 入門 その3 - 存在と一意性の証明
LiquidHaskell 入門 その4 - 存在と一意性の証明
monochromeさんはTwitterを使っています 「Refinementsってグローバルメソッドキャッシュにとっては迷惑でしかない気がする」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「形式検証されたコード、refinementのがまだ早そう」 / Twitter

MPST

Keigo ImaiさんはTwitterを使っています 「ECOOP 2020 (https://t.co/YR8JbvCIjn) に論文が採録されました。"Fully Static Multiparty Session Programming with Global Protocol Combinators" マルチパーティセッション型の初のライブラリ実装です。OCamlの型システムに支援された並行プログラミングが可能に: https://t.co/Fpi6xKNorP (整理中」 / Twitter
keigoi/ocaml-mpst: Multiparty Session Types in OCaml
Keigo ImaiさんはTwitterを使っています 「マルチパーティセッション型(MPST)は、デッドロックフリーな多者間通信が保証できる反面、既存の型システムとのギャップが大きく、汎用言語でのライブラリ実装がありませんでした。今回MPSTのwell-formednessとサブタイピングの関連を見出し、多相ヴァリアントやレンズ等でライブラリ実装しました https://t.co/MMfgxha9v6」 / Twitter
Keigo ImaiさんはTwitterを使っています 「これと、一昨年ガリグ先生 (@garriguejej ) とPROで発表した線形型の実装 LinOCaml を組み合わせて、MPSTの型をOCamlの型検査器だけで静的に検査できている…はずです。(デッドロックフリーがOCamlで保証できることの証明は今後の課題になってしまいました…無念。これでも十分面白いと信じてますが」 / Twitter

Either

エラー処理を書いてはいけない
関数型の考え方: Either と Option による関数型のエラー処理
Eitherについて調べてみた - Qiita
ScalaのOption型とEither型を使う - Qiita
はじめてのOption型とEither型(Scala) - yoshikit1996’s diary
haskellのMaybeとEither理解した。気がする。 - think and error
Either 型に関数を適用する。 - sirocco の書いてもすぐに忘れるメモ
エラー処理 · Scala研修テキスト
ScalaのOptionとEitherで例外処理を行う方法 - $shibayu36->blog;
Haskell教養としての関数型プログラミング - 重城良国 - Google ブックス
すごいHaskellたのしく学ぼう! - Miran Lipovaca - Google ブックス

Haskell

Hiroyuki Miyoshiさんのツイート: "Haskellが圏論をベースにして作られたプログラミング言語であるという誤解があるようですが,次の論文にあるように歴史的にはそうとは言えません。 P. Hudak, J. Hughes, S. Peyton Jones, P. Wadler, A History of Haskell: Being Lazy With Class (2007) https://t.co/MSHszYxSO4"
history.pdf
Hiroyuki Miyoshiさんのツイート: "1980年代末頃,lazyな強い型付き関数型プログラミング言語が乱立して議論しづらいので一つ共通の仕様を決めようという動きがありHaskellが策定されました。当時のlazyのコミュニティでは言語全体の意味論には一部を除きあまり強い関心がなく,基本的には代数的意味論を採っていたと思います。"
Hiroyuki Miyoshiさんのツイート: "それとは独立に,1989年にMoggiが副作用を含む言語の表示的意味論をきれいに扱うのに,圏論のモナドが使えるに気づき計算モナドの概念を提唱しました(LICS'89)。Moggiは説明する言語としてはeagerなML系言語を用いていました。"
Hiroyuki Miyoshiさんのツイート: "Haskellの初期の仕様ではI/Oは遅延リストを用いていましたが,P. Wadlerらを中心に計算モナドを使う方がいいという意見が強くなり,Haskell1.3 (1996)で正式仕様として採用されました。Haskellに圏論を強く結びつけて言及されるようになったのはそれ以後です。"
Hiroyuki Miyoshiさんのツイート: "ついでにいうと,圏論を起源に持つという意味ではむしろCaml系言語の方が直接的起源を持っています。P.-L. Curienらにより1985年に提唱された圏論を抽象機械として使うCategorical Abstract Machine (CAM)というアイデアがあり,https://t.co/HU5JDPjcCb それに基づき実装したのがCAML言語です。"
Hiroyuki Miyoshiさんのツイート: "ただ,当然ながら実行効率が良くはなく,今でもOCamlの実装を担っているX. Leroyが,言語はおおむねそのままに実装をZincというシステムに設計し直したのが今のOCamlの直接の元になっています。"
nisizakiさんのツイート: "(・∀・)つ Chairty、Hagino's categorical programming language https://t.co/eIJiqJ8gSj… "
Charity (programming language) - Wikipedia
Hiroyuki Miyoshiさんのツイート: "ええと,Cockett & FukushimaのCharity言語は知っていますがどういう文脈で持ち出されたのでしょうか(困惑)。圏論をベースにしたプログラミング言語の例ということでしょうか? まあ萩野先生のCPLは圏論的な帰納的&余帰納的データ型を備えた最初の実装された言語なので言及すべきかもしれません。… https://t.co/qeFOUkN1SI"
nisizakiさんのツイート: "単に、圏論を(なんらかの意味で)ベースにしたプログラミング言語ということです。おさわがせいたしました。(そういえば、学生さんに「OCamlのCはcategoryのCだよ」と以前話したら  (´・ω`・)エッ? という顔をされてしまいました)… "
Hiroyuki Miyoshiさんのツイート: "了解です。まあCAMのことを知っているのは我々と同世代ぐらいまででしょうね。Curienはまだお元気なようですが。… "
Kory(公式)(非公式)さんのツイート: "「型書いたら実装が生えてきて欲しい」を実際に解決してるの、GHCのGenericしか見たことない"
Sarashino(晒野)さんはTwitterを使っています: 「@public_ai000ya Genericが例に上がってるので趣旨が違うかなと思ったんですが、 idrisの補完はハマると「型書いたら実装が生えてくる」感じだった気がします https://t.co/fP7jFuLEXk」 / Twitter
Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「なんでFree AlternativeのAltFとFree ApplicativeのApって別の型にしてるんだろう https://t.co/23GlhOvPG5 https://t.co/R8l5RezwqD」 / Twitter
Control.Alternative.Free
Control.Applicative.Free
Koji MiyazatoさんはTwitterを使っています 「@igrep よく読んだら地味に違いますよこれ、AltFは Ap :: f a -&gt; Alt f (a -&gt; b) -&gt; AltF f b で、Alt f x は [AltF f x] のnewtypeです。左分配律 (x &lt;|&gt; y) &lt;*&gt; z = x &lt;*&gt; z &lt;|&gt; y &lt;*&gt; z は認めて、右分配律を認めないとこの形になるんだと思います。」 / Twitter
そろそろ線形型をかじっておくか - lilyum ensemble

Datatype-Generic Programming

まっちゃらさんはTwitterを使っています 「Datatype-Generic Programming https://t.co/3ggYFezYPB」 / Twitter
ssdgp.dvi - dgp.pdf
まっちゃらさんはTwitterを使っています 「generic programming自体は人によって意味合いが違う(parametric polymorphism, data abstraction, meta-programming,など)ので、 datatype-generic programmingという新しい言葉を作ったよということか」 / Twitter
まっちゃらさんはTwitterを使っています 「ListとTreeに対するfoldLで普通は別々に実装する(コンストラクタが違うし、そもそもバリアントの数も違う)けど、バリアントごとに関数を適用して、残りを再帰していけばいいという構造は同じなので、ここを抽象化するぞってのがdatatype generic programmingということらしい(理解があってれば)」 / Twitter
まっちゃらさんはTwitterを使っています 「polytypism, structural polymorphism, typecaseなんかも同じことを指していて、Generic Haskellにおけるgeneric programmingというのもこの意味らしい」 / Twitter

blog

言語処理系勉強会に参加してきた | κeenのHappy Hacκing Blog
代数的データ型とパターンマッチの補遺: 赤黒木 | κeenのHappy Hacκing Blog
n月刊ラムダノートにパターンマッチについて寄稿しました | κeenのHappy Hacκing Blog
リソースを管理する型 | κeenのHappy Hacκing Blog
手続き型脳で型推論を実装してみた | κeenのHappy Hacκing Blog
なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
Island Life - 動的型のメリットは「決断の遅延」かもしれない
OCaml でも採用されているレベルベースの多相型型推論とは - はやくプログラムになりたい
OCamlの型検査は決定不能
問題を解決するつもりでキッチリ型を付けた先にある高い壁 - ぼくのぬまち 出張版
Hindley-Milner型推論をCで実装した話 - malloc(sizeof(MRM));
暗黙の型変換を嫌わないで!(暗黙の型変換がなぜ嫌われるのか、暗黙の型変換で数学的同一視を自然に表現する、暗黙の型変換もどきを自作する、暗黙の型変換で遊ぼう(BNFを表す型)) - 算術の夢の楽園
Yusuke EndohさんはTwitterを使っています 「「既存の型を超える」みたいにも読める身の程知らずなポエムを書いてしまったけど、TypeProfもライブラリや難しいコードにはRBS手書きしてもらう前提だし、TypeProfが失敗してもSteepやSorbetはとても堅実で成功確実なアプローチだし、実際にはわずかに冒険してみてるだけです。わずかが難しいんだけど」 / Twitter
Rubyと型についてのポエム - まめめも
Yusuke EndohさんはTwitterを使っています 「TypeProfの期待を上げすぎてしまったか。ライブラリのRBSが揃ってない現状ではライブラリのコードも解析するのでめっちゃ解析遅いし、推論はすぐuntyped(TSでいうany)に落ちるし、そのくせエラー発見ツールとしてはfalse positive多すぎます。改善は続けるので、期待しすぎずに長い目で見てね……」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「Elixirで型が欲しかったらDialyzerとかdialyxir,あるいはGleamをどうぞ。」 / Twitter
ntaooさんはTwitterを使っています 「一旦現在主流の型システムを言語に統合してしまうと、将来に渡って言語の可能性がその型システムに束縛されてしまうので、Rubyのこの方針はとても正しいと思う | Rubyと型についてのポエム - まめめも https://t.co/xkFDEDVe5l」 / Twitter
Miura HidekiさんはTwitterを使っています 「Rubyと型についてのポエム - まめめも https://t.co/56TaP4Zdyg 自動車の例えがいい。将来的にはどんな言語でも内部で使う型はプログラムにより解析され型を書くのはドキュメントのため、と言う形になると思う。ライフタイムや型が取りうる値とかも型に含まれてくると人間が書いていられなくなるから。」 / Twitter

Twitter

histric-1

静的型付「き」言語(@seitekibot)さん | Twitter
Eijiro Sumiiさんのツイート: "@tenpoku1000 「静的に型付けされた言語」なら何の問題もないと思います"
市川 真一さんのツイート: "共立出版の「新しいプログラミング・パラダイム」1989 年初版1刷には「静的に型付けされた(statically typed)言語」と書かれているのですが、これは今は亡き bit 誌の連載を本にしたものです。少なくとも、この頃から「静的型付け言語」という訳語が存在していた模様です https://t.co/YHBdaSaUoH"
Eijiro Sumiiさんのツイート: "・「静的型付き言語」を誤って「静的型付け言語」という ・「部分適用」を誤って「カリー化」という の両方を踏んだ発表者が光の速さで(私より先に別の人から)つっこまれていた:-)"
まろ@関数型言語作曲機械学習勉強してないさんのツイート: "「型推論」だと型がないと思う人が出てきてしまうので、「自動バッチリ型決定機能」とかにした方が良いと思う"
Kota Mizushima(まったり)さんのツイート: "型推論をするなら動的言語という勘違いをまたひとつ、別件で検索していたら見つけてしまった。やはり、型を明記することと省略することと、型が静的/動的の区別は案外難しい、のかもしれない。あと、特にこの勘違いは、古い世代の人間に多く見られる気がする。"
Keisuke FUKUDAさんのツイート: "MicrosoftによるPythonの型チェッカー。node.jsで書かれていて、mypyより5倍高速で、常駐&インクリメンタル更新モードがあるらしい。https://t.co/tzxgoDuePF"
Microsoft/pyright: Static type checker for Python
米Microsoft、Python向けの高速な静的型チェッカー「Pyright」を公開 | OSDN Magazine
Shinji KonoさんはTwitterを使っています 「動的型付け静的型付けは、昔っから動的型付けを強力に罵る人が多くてうんざり。無限LISP地獄にでも落ちろ。そもそも型があってれば万々歳ってわけでもない。動作を規定するのは値であって型はあくまでも手助けだけ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ML系な人が静的型付けでないとみたいなこと言ってたので「その上でTuring Machine を書いたら、そのTMのプログラムには型は無力。ドメイン向けに何かを作るとだいたい同じようなことになる」と言ったら、険悪なムードになっちゃって。」 / Twitter
Miura HidekiさんはTwitterを使っています 「コンピュータでは型の話とエディタの話はケンカの元だからなー」 / Twitter
Miura HidekiさんはTwitterを使っています 「Julia で CIFAR-10 データを画像として表示してみる(外部パッケージ無しで) https://t.co/UImWB5Kh5M Juliaのprimitive typeって何が嬉しいんだろう?って思って調べたら出てきた。なるほど、これは嬉しい」 / Twitter
Julia で CIFAR-10 データを画像として表示してみる(外部パッケージ無しで) - Qiita
画力・博士号・油田さんはTwitterを使っています 「ところで “type inference” と呼ばれる問題も3種類ある: 1. * 入力: 型環境 Γ,項 M * 出力: ∃τ. Γ⊢M : τ か? 2. * 入力: 型環境 Γ,項 M * 出力: Γ⊢M : τ なる τ のうち主要型(存在すれば) 3. * 入力: 項 M * 出力: Γ⊢M : τ なる (Γ, τ) のうち主要型つけ(同上)」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「個人的にはこのうち 1 を “type inference” とか「型推論」と呼ぶのは若干違和感があるけれども,「X は型推論が決定可能」と言ったときは 1 の意味で使われていることも結構多い感じがある」 / Twitter
El Pin AlさんはTwitterを使っています 「1は型推論ではなく型付け可能性だと思っています (これ前にも言ったけど)」 / Twitter
κeenさんはTwitterを使っています 「型推論が決定可能よりも型システムが決定可能の方が言う気がする」 / Twitter
El Pin AlさんはTwitterを使っています 「必ずしも同意するわけではないし、普遍的な定義だとも思わないけど、[Rémy 2005]にこのような記述があるのを見つけた https://t.co/6fXXLc1IqB」 / Twitter
El Pin AlさんはTwitterを使っています 「Didier Rémy. Simple, partial type-inference for System F based on type-containment. ICFP 2005. https://t.co/39g8rMjJhv」 / Twitter
fml-icfp.pdf
El Pin AlさんはTwitterを使っています 「とちゅう https://t.co/JYqkAKwgLU」 / Twitter
画力・博士号さんはTwitterを使っています 「“型が嫌い” な人,「型という概念が “計算機の都合で仕方なく” 使われている」と思い込んでいる気がするので,「型とは “ヒトの直観を反映した不変条件の簡潔な記述” だ」という認識に上書きできたらML系言語と深く和解できるんじゃないかという豫感がする」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「思ったんだけど、静的型付き/動的型付き言語の区別は全ての表現式に静的型がつくかつかないかで決まるんだけど、むしろ、全ての値に実行時型情報がつくかどうかで決める区別もあって欲しい気がする。言語というより処理系の特性ではあるのだけど、多くの言語は言語仕様でだいたい決まるよね?たぶん。」 / Twitter
Miura HidekiさんはTwitterを使っています 「たしかに、その観点で分類するの面白そうだけど、実行時型情報が付かない言語って意外と少ない気がする。(DWARFがフルサポートされたC言語ってどっちになるだろう? &gt;RT」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 実行時型情報が全く付かない言語はML系とかCとかぐらいでしょうけど、「全ての値に実行時型情報が付いた」を満たさない言語は結構多いと思います。Javaのようにprimitiveな値がある言語は基本的に入ると思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda デバッグ情報とかは考えないのですか?」 / Twitter
画力・博士号さんはTwitterを使っています 「ほぼ「型つきAlt​Erlangの処理系を実装したい」という動機だけでそれまであまり理解のなかったπ計算やsession typeについて半年弱くらいサーヴェイしたり自分で型システムを弄ったりしているの十分正気ではない気がしてきた」 / Twitter

Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@bd_gfngfn @a2uky 先行研究,はたまたライバル?こんなのがあります。 https://t.co/POjzybtn9O」 / Twitter
Hello, Gleam! - The Gleam Book
画力・博士号さんはTwitterを使っています 「@zacky1972 はい,Gleamの存在は認識していました.ただ現状だとメッセージの送受信に型をつける方法は言語機能そのものから提供されているわけではなかったり純粋な計算と非純粋な計算とが型で分離されたりはしていないという点で自分が欲しいものとはややギャップがありました」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn 凄い!既にFowlerの論文を辿ってご存知かもしれないのですが線形型とi/o型によるセッション型のエンコーディングは https://t.co/iKQaiHtNwL が良いです。なのでセッション型は言語から排除できるかも?OCaml での実装例は (線形型やサブタイピングは無いですが) JFP のhttps://t.co/SFdtNBsZjl とか。」 / Twitter
Session types revisited - ScienceDirect
A simple library implementation of binary sessions* | Journal of Functional Programming | Cambridge Core
画力・博士号さんはTwitterを使っています 「@keigoi はい,Fowlerの博士論文と Session types revisited は最近軽く目を通して読んでいました(ありがとうございます)」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn GV系だとデッドロックフリーがあるのでいいですね。もっと古いのだと Pucella &amp; Tov の Haskell'08 https://t.co/JgDyrtFHVU の方法が単純でよいかもしれません。2つの型の duality の witness があれば特殊なエンコーディングは要らない(この論文では型クラスでwitnessを作っています)」 / Twitter
Haskell Session Types with (Almost) No Class
ホテルバルティック(クローン)@築26年さんはTwitterを使っています 「そういえば,情報系の人間が「数学は型を明示してほしい」って言うのをそこそこ観測してるんですけど,x in Xとかf:X-&gt;Yってのは彼らの言う型とは別なんですかね?」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaでは何でも型があるから上限があるけど、集合には型がないからな。Agdaでは型を明示したpairしか作れないが、集合だと限定されないpairがクラスとして定義できて、それは集合にならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの中で順序数を作って、それで議論するからそうなる。関数型言語の中でCを書いて、それでプログラミングするようなもの。Seg Vあり。」 / Twitter
N743327さんはTwitterを使っています 「いわゆる型とよばれるやつ、syntacticalなやつとsemanticalなやつとがあるんでは」 / Twitter
画力・博士号さんはTwitterを使っています 「プログラミング言語やプログラム検証の研究では「大体理論・手法ができてから実用上の認知度が上がるまでに20年くらいかかる」という謂れがあったりするけれども」 / Twitter
画力・博士号さんはTwitterを使っています 「それによるならそろそろ90年代半ば頃の研究成果が実用に供され始めていい頃なんだけどな,パッと思いつくものでは多段階計算とかsession typeとか」 / Twitter
画力・博士号さんはTwitterを使っています 「gradual typingとかは理論の提案から実用化が異様に早い気がする(提案が2006年で,2010年代前半のAltJS戦国時代みたいな頃にはもう実用化されていたんじゃなかったかな)」 / Twitter
4869さんはTwitterを使っています 「TypeScriptでバックエンド書くと型が間違ってても値が入ってくることを考慮しないといけない場面で急激に面倒になるな……」 / Twitter
Miura HidekiさんはTwitterを使っています 「mmcを作っていて思った。抽象実行で推定される型って人間の直感とは異なる型になるような気がする。特にエスケープ解析とかも含めてくると。これが将来は型宣言がドキュメント以上の意味が無くなると私が考える根拠の一つ」 / Twitter
Miura HidekiさんはTwitterを使っています 「あれ?ツイートが途中でぶった切れてた エスケープするかという情報は型に含めるべきか分からないけど、実装上は型に含めるのが何かと合理的にできる。たとえば、エスケープするしないでデータ構造が異なるから関数を変えなければならないけど、それはオーバーロードで対処できる」 / Twitter
たっくまんさんはTwitterを使っています 「TSで0-100の整数値なことを型で制約かけたいな〜って思ったけど、これ type T = 0|1|2|...|100 みたいに頭の悪い union type 以外でスマートにやる方法ないのかな」 / Twitter
Masaki HaraさんはTwitterを使っています 「そういう性質を型でちゃんと表現するのは無理筋なので、検査を通った整数だけが名乗れるbranded typeを作るのが次善策かなあ」 / Twitter
Miura HidekiさんはTwitterを使っています 「抽象実行ならその辺が出来る可能性があるな。TSも抽象実行モジュール持っているんじゃないかな?または、flowとかあるし」 / Twitter
Miura HidekiさんはTwitterを使っています 「ちなみにmmcにはFixnumには負にならないことを保障する属性があります。配列のindexに使う時に正負を判別する処理が省けて便利です (隙あれば自分がたり」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「コンパイラ内部で使う最適化のヒントを無闇に型として表現するのは悪手だと思うんだけど、線形型なら分かりやすいしいける気がする」 / Twitter

計算ファースト vs. 型ファースト / Computation First vs. Type First - Speaker Deck
A brief introduction to type inference - Speaker Deck
PureScriptで存在型を試す - Qiita
text.pdf
Phantom Type - Google 検索
データクラス 型クラス 代数的 - Google 検索
Swiftのassociatedtypeとtype erasure - sambaiz-net
Shiro KawaiさんはTwitterを使っています 「おもしろい。型のパラメタライズは個人的にはHaskellの構文がコンパクトで好き」 / Twitter
Masaki HaraさんはTwitterを使っています 「いい機会なのでジェネリクス引数の曖昧性について各言語がどうしてるか調べつつまとめてみる https://t.co/IgszcsoAMx」 / Twitter
ジェネリクス引数の構文的曖昧性まとめ

ラムダ計算・CPS変換

CPS変換

κeenさんはTwitterを使っています 「CPSしてる部分をIsoみたいに同型で抽象化できないかなって思ったけどあんま意味ないか」 / Twitter
データ型のCPS変換について - Just $ A sandbox
κeenさんはTwitterを使っています 「type (-'s, +'t) fn = {f: 'r. 's -&gt; ('t -&gt; 'r) -&gt; 'r} type (-'s, +'t, +'a, -'b) t = ('a, 'b) fn -&gt; ('s, 't) fn としとくとeta展開なしで書けはする。app, (&gt;&gt;), idまで特有でそれ以降は同じコードで動く(多分)」 / Twitter
κeenさんはTwitterを使っています 「(&gt;&gt;), id はむしろ -&gt; をそのまま -&gt; として使えるので普通の(&gt;&gt;), idと言った方がいいかも」 / Twitter
BiwaSchemeのためにCPS(継続渡し形式)でマージソートを実装した話 - yhara.jp

Y, Zコンビネータ

06gun_03hen_02.pdf
5-3. Recusive Functions
lambda2.pdf
不動点コンビネータ - Wikipedia
コンビネータ論理 - Wikipedia
不動点コンビネータを用いた無名再帰関数の実行(C#, F#) - Qiita
TypeScriptで不動点コンビネータに型をつける - Qiita
RubyでYコンビネーターとZコンビネーター - Qiita
不動点コンビネータで無名相互再帰 - Qiita
誰得UNIX: Schemer のための「すぐ理解できるYコンビネータ」
Scheme:初心者の質問箱
不動点と不動点コンビネータ | 黒曜の吹き溜まり
ネタ記録庫/不動点コンビネータ - ocaml-nagoya
コンビネータ - mrsekut-p
techlunch1.md
Haskell+タグレスな型付きDSLで楽々!C言語コード生成 - keigoiの日記
不動点とfix演算子 - 一歩前進
YコンビネータとZコンビネータ(Ruby) - Camera Obscura
Haskell Language - ファンクタ | haskell Tutorial
プログラミング言語 - 型なしラムダ計算で量化子を定義できるか|teratail
哲学
F#入門
ブロックチェーンの新たな言語 Simplicityの論文を読む −Core Simplicity編− | GMOインターネット 次世代システム研究室
第5章 パーサコンビネータ―小さなパーサを組み合わせて大きなパーサを作る:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
Z - コンビネータ : tnomuraのブログ
2009-04-09
型システム入門 5章のメモ
Combinatory Logic 0
C++でラムダ式を再帰させる – 日和見荘404号室
楽しいプログラミング
🙂コンピュータサイエンスと魔法のYコンビネータ
yコンビネータ 型 - Google 検索
Zコンビネータ - Google 検索

型消去

Simply typed lambda calculus - Wikipedia
Type erasure - Wikipedia
type erasure typed lambda - Google 検索
type erasure - Google 検索
LangSpec2.8-ja_JP.pdf
types23.pdf
TaPL9

ラムダ計算・書き換え

Lambda calculus - Wikipedia
How is Lambda Calculus a specific type of Term Writing system? - Theoretical Computer Science Stack Exchange
REWRITE SYSTEMS AND LAMBDA-CALCULUS
() - 1208.0515.pdf
[0904.4120] On Constructor Rewrite Systems and the Lambda-Calculus (Long Version)
On Constructor Rewrite Systems and the Lambda-Calculus | SpringerLink
final.dvi - open-final.pdf
Term rewriting systems | Programming languages and applied logic | Cambridge University Press
The Origins of lambda-calculus and term rewriting systems - Inria
The Lambda Calculus, General Term Rewriting and Food Nutrition | Beckman Meijer Overdrive | Channel 9
Rewriting - Wikipedia
lambda_en.pdf
syntax.pdf
hor-fct.pdf
LNCS 4098 - A Terminating and Confluent Linear Lambda Calculus - rta06.pdf
148675853.pdf
PII: S0304-3975(96)00173-9 - 82509885.pdf
lambda.pdf
syntax.pdf
H8-garrigue.pdf
IPSJ-TPRO4416006.pdf
21_73.pdf
CoffeeScriptで理解する『ラムダ計算入門』 - slow living in the sky

項書き換え系

ppl2-3.pdf
26_2_76.pdf
32_1_179.pdf
KJ00003124054.pdf

継続

限定継続・CPS・EPS・停止性

浅井研

sakaue09.pdf
masuko09.pdf
kitani09.pdf
kitani10.pdf
ppl10.dvi
tsushima10.pdf
ueda10.pdf
masuko13.pdf
kaneko13.pdf
sou14.pdf
ueda15.pdf
sou15.pdf
sou17.pdf
ishio18.pdf
CPS 変換の正当性の Agda による証明
sou18.pdf
sou19.pdf
uehara17.pdf
ishio19.pdf
hirota13.pdf
限定継続処理の抽象機械導出のためのプログラム変換
情報学広場:情報処理学会電子図書館
限定継続命令をもつ依存型付き言語の設計
sou18.pdf

typedlmd.pdf
研究会 - 継続渡しスタイルの関数型プログラミング言語における分散処理の記述
CB-002.pdf
Implicitly-Typed Deadlock-Free Process Calculus
技術者/プログラマのためのラムダ計算、論理、圏 第3回に行ってきた
第14回 型=命題,プログラム=証明 | 日経 xTECH(クロステック)
構造化プログラミングと データ抽象
_pdf
d.y.d.
Asai Laboratory, Ochanomizu University
shift/reset と control/prompt の違い - まめめも

限定継続

限定継続 | κeenのHappy Hacκing Blog
examples/README.md at master · krdlab/examples
限定継続でモナドを後付けする - Qiita
sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す - 標高+1m
SMLで継続を使ってprintf/scanf | κeenのHappy Hacκing Blog
36_2_47.pdf

型付きラムダ計算・CPS

型付きラムダ計算 CPS - Google 検索
sou17.pdf
sou19.pdf
B-021.pdf
ppl5-3.pdf
KAKEN — 研究課題をさがす | λμ計算の表示的意味論に関する研究 (KAKENHI-PROJECT-14540119)
1569jabstract.pdf
jssst2000.pdf
ラムダ計算 - herp-technote
ppl2005.pdf
_pdf
MSJ20120328Fujita.dvi
0992-24.pdf
saika_21_3-nakazawa-takuji.pdf
PPL 2019カテゴリ1,2,4採択論文・発表リスト
Suzuki.pdf
マイポータル - researchmap
プログラミング言語理論・設計|法政大学シラバス
「計算論」を(中途半端に)読んだ
d.y.d.
継続とかの話題サーベイ | κeenのHappy Hacκing Blog
「ソフトウェア基礎論」講義計画 佐藤、亀山 - Programming Logic Group

CPS・再帰

【関数型言語】CPS(継続渡し)と末尾再帰最適化 - kzono's diary
継続渡しスタイル - Wikipedia
再帰関数のスタックオーバーフローを倒す話 その1 - ぐるぐる~
6-3. Continuation Passing Style
ppl8-2.pdf
なんでも継続
evaluatorの再帰実装→CPS化→Continuationのde-functionalize→ループ化 - ラシウラ
Javaでフィボナッチ数を求める関数を末尾再帰最適化する
Asai Laboratory, Ochanomizu University

CPS・並列

Continuation Passing Style 並列処理 - Google 検索
コールバック不要:Javascript に逐次プログラミングを取り戻す StratifiedJS
Javaの非同期処理を,シングルスレッドのようにシンプルにコーディングするための設計パターン (並列処理を逐次処理にする) - 主に言語とシステム開発に関して
継続渡しスタイル - Wikipedia
CPS - mrsekut-p
非同期と継続と私 - 技術日記@kiwanami
JSDeferred Sample
JSDeferred -> Promise 置き換え方法 | tech - 氾濫原
JSDeferredで,面倒な非同期処理とサヨナラ:特集|gihyo.jp … 技術評論社
言語によってちょっと違うFuture/Promiseをまとめてみた(2) - Qiita
Scheme 入門 16. 継続
並行プログラミングと継続モナド
CB-002.pdf
B-021.pdf
cps.pdf
6J-05.pdf
ppl8-2.pdf

CPS

継続渡しスタイル - Wikipedia
継続渡し形式(CPS)
PHP で継続渡し - Sarabande.jp
データ型のCPS変換について - Just $ A sandbox
CPS というプログラミングスタイルの導入の話 - ゆずとみかんといちご
お気楽 Scheme プログラミング入門
なんでも継続
cps.pdf
CPS.pdf
時の羅針盤@blog: CPS変換
情報科学実験II資料 (4) CPS変換のアルゴリズム
CPS変換と二重否定のカリーハワード対応の話 - Togetterまとめ
Haskell で継続渡しスタイル (CPS) | すぐに忘れる脳みそのためのメモ
非同期処理の「その後」の話。goto、継続、限定継続、CPS、そしてコールバック地獄。 | κeenのHappy Hacκing Blog
CPS変換 カテゴリーの記事一覧 - にわとり小屋でのプログラミング ブログ
トランポリン化でStackOverflowの回避 - Qiita
BiwaSchemeのためにCPS(継続渡し形式)でマージソートを実装した話 - 近&況
chikoskiさんのツイート: "https://t.co/J93pxgLT47 「CPSとはコールバックのファンシーな呼び名だ」"
RustでCPS変換が簡単になったよという話 | κeenのHappy Hacκing Blog
hatsugai@PRINCIPIAさんはTwitterを使っています: 「並行 amb を実装した.amb に出会うと引数の分だけ VM が分裂して並行に実行する(かっこいい).(amb) に出会った VM は消滅する(かっこいい).これだと CPS 変換は必要ない(以前作ったものは CPS 変換してスレッド化した). https://t.co/jRsberSc3z」 / Twitter
hatsugai/Finesse: Tiny Scheme implementation
hatsugai@PRINCIPIAさんはTwitterを使っています: 「最近 LISP 成分が不足ぎみだったので作った.例はいつもの N-Queens.VM の足並みがそろうのですべての解が出る(たまたま).まー実質コンパイラが CPS 変換相当のことをしているじゃないかという話もなくもない…」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「スレッドをサポートし call/cc で取得した継続を別スレッドからも起動できるようにして(ここポイント高い),並行 amb をマクロ,call/cc,スレッドで実装する形にした.よりかっこよく整理された(amb 専用命令は廃止).apply や call/cc はトランポリンで対応できるけど thread-exit はいまいち.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「amb を手続きにすれば apply できてうれしこともあるけど,別に並列オペレータがなくて簡便に並列化したい場合はこの方がいいかな.そもそも目的はなんだって話だけど.書いてたら並列オペレータ作ればいっかという気持ちになってきた…」 / Twitter
ジェネレーターを簡易的にCPS変換してみた - Qiita
kontlang-shift-reset-lisp - Speaker Deck
zehnpaard/kontlang: Language with Clojure-like syntax and semantics based on EoPL + Shift/Reset
継続モナドについて - Qiita
CPS変換はじめてみた - Arantium Maestum

Algebraic Effects

Algebraic Effectsであそぼう / lilyum ensemble
Yosuke FURUKAWAさんのツイート: "Facebook の人は3年くらい前からどうやって Algebraic EffectをJSで書くか検討してたみたいなんだよなー / “one-shot-delimited-continuations-with-effect-ha…” https://t.co/RKWE8n20CL"
One-shot Delimited Continuations with Effect Handlers

CbC

Kono's paper list
継続を基本とした言語CbCのgcc上の実装
Continuation based Cを試す - Qiita
Shinji KonoさんはTwitterを使っています 「CbCは巨大なswitch文として実装する方法もあり得るので、当時やるならそれだったかもな。ただ、今でもプログラミングには苦労してるので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「先祖返りなんだよな。今までの方法論が使えないっていうか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Susman はHewittのActorを見て「Lispじゃん」で片付けたらしい。もっとも、その時に並列処理のいろいろがどうなるのかはよくわかってなくて…」 / Twitter
Shinji KonoさんはTwitterを使っています 「まあでも、Smalltalkの実装を見てる時にもLispじゃんと思ったので、そんなもん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CbCは a → ( b → t ) → t の形のみでプログラミングする言語だとも言える。これはCurry Howard対応的には否定に相当するような構造らしい。Actorの並列化で欲しかったのはそれってこと。自動的に並列処理を抜き出すみたいなのとは相性はよろしくない。まったく優しくない。」 / Twitter
Monad と OS
Shinji KonoさんはTwitterを使っています 「@wtakuo @miura1729 Apertosには入れなかったんじゃないかなぁ。なのでApertosのドキュメントはないかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Muse/ApertosをやるはずでソニーCSLにいたのだが、まぁ、あんまり手伝えず。T先生が「CS界で相対性理論に相当するようなものを発表したい」というので考え出したのがCFMだった。そういうの嫌いじゃないし、そういうのを期待されていたのだろうし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「その時には今のCbCの基本はあったのでメタ計算的な感じで計算場みたいなものがあるのだろうなという感じ。その頃はまだクラウドはなかったのだが… 90年でしょ? ノートPCクラスタみたいなの作ってた人もいたし、それほどはずれではなかったのだが… まぁ、残念な方向に。」 / Twitter

StackThreads

Fine-grain multithreading with minimal compiler support—a cost effective approach to implementing efficient multithreading languages | Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
PowerPoint Presentation - DNaward.talk.jp.final.pdf
StackThreads
Top
spaghetti stack - Google 検索
ppl5-1.pdf

Wikipedia

継続 - Wikipedia
クロージャ - Wikipedia
アクターモデル - Wikipedia
無名関数 - Wikipedia

Twitter

Shiro KawaiさんはTwitterを使っています: 「@hatsugai GaucheはSchemeスタックがCスタックと別管理なので、「CからSchemeを呼び出している」箇所に戻らない限りは別スレッドでの継続起動は可能です。ネイティブスタックを共用する実装だと厳しそうですね。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「Chez scheme 9.5.2 で,call/cc で取得した継続を fork-thread で 起動したスレッドから呼び出したらなにやらおかしくなった.最近どこかで実装についての解説を見かけたが,スレッドをまたぐのは難しそうな作りだと思ったっけ.他の処理系はどうなんだろ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「Gauche で call/cc とスレッドを使った並列 amb を作ってみた.今回は手続きとして実装したので apply が使える. https://t.co/D1leRJfUxY」 / Twitter
parallel-amb-callcc.scm
hatsugai@PRINCIPIAさんはTwitterを使っています: 「手続きということは eager 評価になるので,以下のような書き方はできない. (define (req p) (if (not p) (amb))) (define (an-element-of items) (req (not (null? items))) (amb (car items) (an-element-of (cdr items))))」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「@anohana ありがとうございます.やってみました. https://t.co/q8Qmip3JUA」 / Twitter
Miura HidekiさんはTwitterを使っています: 「https://t.co/wkfp0gEcK8 懐かしい、修論で作った言語がこんな感じで実装した。当時は、トランポリンを apply like functionって呼んでいた。こうすると、継続が常に取れるので軽いグリーンスレッドを作るのに有利で、これで並列オブジェクト指向言語を実装した。」 / Twitter
Niyarin's blog
Toru HisaiさんはTwitterを使っています 「https://t.co/SwdVuy6QDn Scheme で継続を使って非同期の API を同期呼び出しっぽくするラッパーを書いてみた。」 / Twitter
async.scm
monochromeさんはTwitterを使っています 「async/await、コルーチン、継続、ジェネレータ、統一的に概念を理解したい」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理の方では Skolem化のところで継続を使うと良かった。いろいろ発見があって面白い。」 / Twitter
https://twitter.com/shinji_kono/status/1308052561576906753
https://twitter.com/shinji_kono/status/1308052219183247362
ふ''れいすさんはTwitterを使っています 「akkaというかactor modelはつまるところ継続だな、となったので取っつきやすかった。そういうたぐいの解説を読んだ記憶がないんだけど、みんなactor modelはどう理解しているんだろう。ステートマシン?」 / Twitter
ふ''れいすさんはTwitterを使っています 「CSPというかgoroutine/channelはアレは結局よくわからん。いくつかイディオムちっくなものを覚えれば応用もできるようになるんだけど、actor modelのように腑に落ちる何かではないんだよなぁ」 / Twitter

めざそう言語処理系の沼 カテゴリーの記事一覧 - Arantium Maestum
第2回 「単一代入」と「末尾再帰」 | 日経クロステック(xTECH)
chap11.pdf
chap12.pdf
D_Ugawa_Tomoharu.pdf
25_1_167.pdf
SLACS98 program

意味論

d.y.d.
katsumata.pdf
並列論理和の続き - sumiiのブログ
並列論理和 - sumiiのブログ

ラムダ計算・System F

ラムダ計算

Prologでラムダ計算

Koromo/Prolog-lambda: ラムダ計算のインタプリタみたいなの
prologでラムダ計算 - 計算機と戯れる日々
Prolog Advent Calendar 2016 - Qiita
Prologよいよ - Qiita
TAPL5-3. 型無しラムダ計算(λ) - Qiita
_pdf
ラムダ計算はHOAS - Google 検索
インタプリタ · shiatsumat/wiwinwlh-jp Wiki

証明木・ラムダ計算

ahuさんはTwitterを使っています: 「論理式が型ってのはわかるけど、証明がプログラムってののイメージがわかない」 / Twitter
gentzen-NK.pdf
sakurai10.pdf
20191109_C-3_resume(Tsunoda_Kentaro).pdf
ppl3-4.pdf
ch.pdf
ppl1-3.pdf
パースの法則 - Google 検索
Glivenko の定理の代数的証明 - 論理とか計算機とか数学とか
パースの法則 - Wikipedia
排中律、二重否定の除去、パースの法則 - Qiita
命題論理の自然演繹 : 定理 [数学についてのwebノート]
パースの法則 - Skinerrian's blog
3. Peirce - airoboの日記
call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
Introduction_to_Modal_Logic.pdf
継続 | haskell
vol1.indb
84jGENP2.pdf

項書き換え・ラムダ計算

98ss_intro_trs.pdf
agora-2005s-cd-b.pdf
IPSJ-TPRO4416006.pdf
21_73.pdf
ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記
正規化 (項書き換え) - Wikipedia
Jacques Garrigue : Home Page
lambda.pdf
H8-garrigue.pdf
trs.pdf
23_3_35.pdf
51237311.pdf
IPSJ-MGN240207.pdf
クヌース・ベンディックス完備化アルゴリズム - Wikipedia
合流性 - Wikipedia
コンビネータ論理 - Wikipedia
SKIコンビネータ計算 - Wikipedia
04mm004.pdf
agora-2005s-cd-b.pdf
研究の紹介

項書き換え・操作的意味

3aa6257094ed385200cd3c7cd7f1a277622a.pdf
ppltut.pdf
116_103.pdf

形式仕様 操作的意味

Miura HidekiさんはTwitterを使っています 「本来はアプリケーションごとにDSLが作られてその上でアプリケーションが作られるべき」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 そしてDSL毎にそのための言語VMとIDEが作られて然るべきなのですキリリ」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda さすがにこの辺は自動生成にしてほしい...」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 でしょ?カタログから命令セットを選択して、少数のカスタム命令の動作を MUL reg1, reg2, reg3 : reg3 ← reg1 * reg2みたく操作的意味を書いたら、各命令の前提が相互矛盾しないかとか、定義に穴がないかチェックした上で、自動的にVMを生成して欲しいでしょ?で、現状それに近いのって、形式仕様。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda なるほど。 * の操作的意味って自明じゃない気がしますが、どうなんでしょうか?」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 そうなんですよ。*は仕様記述言語側の意味論に帰着させるわけですが、bignumとかしんどいわけですよ。さらに割り算で泥沼ですよ。VMが提供する他の操作セットによって最適な定義もきっと変わるので、色々な*の操作的定義が必要になるかもしれません。こういう体験を積み上げている途中なんです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda 割り算は泥沼ですね。CPUの定義によるでは形式的な検査もあったもんじゃないでしょうし。確かに、このあたりの最適解は机上では分からないでしょうね。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 何度Nan-boxing教に入信しようと思ったことか。実際、IEEE754なfloatをVDMのrealに帰着させて定義したので、比較的簡単にNan-boxingな仕様を書けるはずです。そのうちこれもやりたい。いろんな数表現をポチリと選択してVM合成できるようにしたい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda 数のビットパターンもそうですけど、割り算だと負の場合の丸め方とか言語によって仕様が違うところをどうするのか気になります」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 ので、仕様記述言語が定義する演算を組み合わせてそのDSLでの割り算を一意に定義し、それを実行する命令を実装を生成するという皮算用です。もちろんホストCPUやホスト言語が提供する割り算によって最適な実装は異なるので、適切なものを自動的に導出可能にする、または選択可能にする必要があります。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda なるほど。なかなか茨を感じますが面白そうです」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 autoconfのようにネイティブ/ホスト言語の演算のセマンティクスを自動検出できたら面白いかなと、今思いました。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda それいい研究テーマかも」 / Twitter

λ-lifting

Lambda lifting - Wikipedia
ラムダ計算から Grass へのコンパイラ作ったったwWWwwwwWWww - Object.create(null)
Lambda lifting とは – 計算機科学Word
Implicitly-Typed Deadlock-Free Process Calculus
ヒビルテ(2006-09-12)
amylase/コンパイラ課題メモ - IS2011 Wiki

Twitter

muratakさんはTwitterを使っています 「Curry-Howard 同型対応、「論理と計算の間に対応がある」という説明をされると非常に非自明なことだけど、たとえば核となる(と思われる) 単純型付きラムダ計算と直観主義命題論理の間の対応は、シンプルすぎて当たり前というか、単にデカルト閉圏の具体例を2つあげただけという気もするんですよね。」 / Twitter
🌙さんはTwitterを使っています 「単純型付きラムダ計算を導入するためにラムダ計算を書いたのか」 / Twitter
🌙さんはTwitterを使っています 「あ、あと無名再帰のためによく使われるYコンビネータですが、再帰型の概念のない単純型付きラムダ計算では型付け不可能でしたねやっぱり」 / Twitter
🌙さんはTwitterを使っています 「単純型付きラムダ計算が正規化可能(停止性が保証されている)ってのはすごかった」 / Twitter
🌙さんはTwitterを使っています 「というか、単純型付きラムダ計算だと再帰関数が定義できないわけで、再代入もなければループすらかけないのだから停止性保証はある意味当たり前だわな」 / Twitter
かすてらふぃさんはTwitterを使っています 「実は単純な型付きラムダ計算みたいな簡単な言語だと関数の引数の型だけ書けば良かったりするんだけど、型システムを拡張すると完璧な型推論は計算不能な問題になってしまうらしい」 / Twitter
戸次大介/Daisuke BekkiさんはTwitterを使っています 「研究室合宿で那須塩原に来ている。今年はゲーデルの不完全性定理、型付きラムダ計算の停止性、シーケント計算の証明探索の三本立て。」 / Twitter
h_sakuraiさんはTwitterを使っています 「e(Γ,i)::=integer|e(Γ,i)+e(Γ,i)|e(Γ,i)*e(Γ,i). e(Γ,b)::=true|false|e(Γ,i)&lt;e(Γ,i). e(Γ,T)::=if(e(Γ,b),e(Γ,T),e(Γ,T)) | λ(x:e([x:T1,Γ],T2)),{T=T1-&gt;T2} | x,{x:T∈Γ} | e(Γ,T1-&gt;T) $ e(Γ,T1). と単純型付きラムダ計算の文法及び型付け規則を記述可能だ。」 / Twitter
粗製伍長さんはTwitterを使っています 「純粋な型付きラムダ計算 GCありきだし参照としてのポインタを剥き出しにすると阿鼻叫喚の地獄絵図になりそうという気づき」 / Twitter
gatetogoさんはTwitterを使っています 「一階論理で量化子のドメインが非空であるとみなしてよくて(i.e. 「(∀x. P) → P」が導出可能)、一階論理を表現できるはずの依存型付きラムダ計算でそうみなせないのはどういうこと?」 / Twitter
あわねずみさんはTwitterを使っています 「wikipediaにλPωのことλΠωって書いてあったが依存型付きラムダ計算のPってΠ(Pi)のことだったのか 前から気になってた」 / Twitter
watcherさんはTwitterを使っています 「やべこれ「Lispは値渡しが基本なものの、 quoteマクロで名前渡しを実現しています。違いは何でしょうか」で済む話でしたorz 50年代にラムダ計算をモデルに実用言語として拡張されたLispと、 80〜90年代、型付きラムダ計算や純関数型言語の重要性が認識された後の、ラムダ計算処理系は何が違うんだっけ」 / Twitter
小林聡@京都産業大学さんはTwitterを使っています 「ほほう、命題論理の implicational fragment の話か、それとも単純型付きラムダ計算の話なのかな(なんでやねん」 / Twitter
kannkyoさんはTwitterを使っています 「昔勉強したカリー・ハワードの対応と型付きラムダ計算がここに来て役立つ日が来るとは・・。 JavaScriptのカリー化について味見してみる https://t.co/AcYz1vun6x #Qiita」 / Twitter
kentoさんはTwitterを使っています 「ソフトウェアの基礎では単純型付きラムダ計算が実装されてるんですが、依存型を追加するにはどうすればいいかわからない…」 / Twitter
kentoさんはTwitterを使っています 「具体的には 単純型付きラムダ計算→ソフトウェアの基礎で定義されているのでパクる 依存型→がんばる 単純型付きラムダ計算の型チェックの関数→ソフトウェアの基礎で定義されているので、各規則にわけてパクる 依存型の型チェックの規則たち→↑の関数を参考にしてがんばる」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn primitive type algorithmっていうなら単相型の型付きラムダ計算に(メタ的に)多相性を導入できることを指しますから、その言い方は誤解がある気がします…」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn えーと、型注釈なしの単純型付きラムダ計算においてtypableなラムダ式につけうる型(これは無数にある)のうち、出現するatomic typeに他のtypeを代入することでつけうる全ての型を表現できるものをprincipal typeとして、これを先に言った構文木の解析(とunification)で求めるものを指しています」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn これが可能な事は、単純型付きラムダ計算が明示的には単相であるにも関わらず、型注釈がない場合にはメタ側からはあたかもオーバーロードしているかのように見える、ということなのかと思っていました」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn ちょっと復習かねて時間取ってました。やはりその言い方は語弊があるのでは?(少なくとも(単相な)単純型付きラムダ計算の元では)aをconcrete typeとして具体化したらもう他の型として具体化できないですよね?それだと恒等関数を表現できていないのでは?」 / Twitter
MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn それは同名の関数が同じ型をもつとは限らないというだけでは? そもそもラムダ計算には名前をつける文法はないので名前はあくまで略記であって、「ラムダ式の略記」と「型付きラムダ式の略記」を別々に用意しておけば問題はなさそうです?」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn 考えてみましたが、やはり無理なような。型推論をしようが、単純型付きラムダ計算上の型式だと適切な型を与えられないと言うか。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn 示唆する、というのは明確ではないですが、単純には無理というしかないような。ちょっとここから先は実際の型付きラムダ計算の体系と、その上の特定のラムダ式を例にして議論した方がいいような気がしてきました…(Twitter上だとつらひですが)。」 / Twitter
黒澤亮二さんはTwitterを使っています 「「プログラムの実行と定理の証明が対応する」というカリーハワード対応を理解したかったが、最後の章の内容で全然到達しなかった。とりあえず「圏論の歩き方」も読んでカルテシアン閉圏と型付きラムダ計算が対応するという事がわかったつもりになれたのでいいことにしたい・・・」 / Twitter
kentoさんはTwitterを使っています 「実は論理式として型付きラムダ計算の型が使えるんだけど、なんで使えるかはカリー・ハワード同型対応でググってネ!と言ってしまえば証明論の話も回避できるので便利(?)」 / Twitter
ayustateさんはTwitterを使っています 「ラムダ計算に型付きから入門した人は「プログラムをラムダ式で表現してラムダ抽象式は関数だから関数型A→Bを持つということにして関数適用はA→Bの型を持つ式とAという型を持つ式との間でしかできないとすると、そういったプログラムは必ず停止する」ことの感動を味わえないという煽りを思いついた。」 / Twitter
ayustateさんはTwitterを使っています 「今は「ラムダ計算の入門書は何がよいですか?」という質問にTAPLとか大堀本とかが答えに挙がるんだなぁ。そんなに最初から型付きがよいのだろうか。昔は(世界の多くの人がイエローブックやクリーニ本で勉強している一方)母語が日本語である偶然に感謝して高橋本を読めといったものだが。」 / Twitter
緑に戻りたい!さんはTwitterを使っています 「@_Iwancof 型の安全性の照明とかに使われるらしい。 例えば型付きラムダ計算を理解すると一定の条件下で無限ループ判定が出来るので無限ループをしないソースコードをかける」 / Twitter
ねこむらこねこさんはTwitterを使っています 「@_nabbe 単純にS x T x U → Vという型は、単一の引数しか扱わない(扱えるとしたら、それはカリー化しているから)型付きラムダ計算では取り扱えないでしょ。 だから、単純に理論上の取り扱いが楽になるからS x T x U → VとS → T → U → Vを同一視して欲しい。 さらにプログラマーも部分適用できるおまけつき」 / Twitter
╹ω╹腕が震えてGPUを茹でた1inguiniさんはTwitterを使っています 「ラムダ計算のチャーチエンコーディングされた整数は全部型が違うから型付きラムダ計算では使えないのか」 / Twitter
重城良国さんはTwitterを使っています 「HaskellのCore言語は、だいたいSystem FCだということ。僕はいまのところ(数学的にではなく感覚的に)untypedなラムダ計算は、わかる。つぎは単純型付きラムダ計算を学び、多相性を取り込んだSystem Fを学び、さらに「型変換をあらわす型」を明示的に引数にとるSystem FCを学ぶ必要がある。」 / Twitter
重城良国さんはTwitterを使っています 「あ、あと(たぶん)単純型付きラムダ計算だと再帰が表現できなかったと思うのだけど、そのあたりはSystem FCだと解決されているのだろうか。」 / Twitter

ユーザーブログ:Hexirp/(2020-05-03) 計算可能関数と型付きラムダ計算 | 巨大数研究 Wiki | Fandom
基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
ラムダ計算 述語論理 - Google 検索
項書き換え系 述語論理 - Google 検索
ラムダ計算 文字列 - Google 検索
チャーチ数 sub - Google 検索

resume4-rev.pdf
resume5.pdf
resume6.pdf
main.pdf
de bruijn ラムダ - Google 検索
alpha 変換 ラムダ - Google 検索

不動点コンビネータ

std::variantと不動点演算子 - in neuro
In C++, how to make a variant that can contain a vector of of same variant? - Stack Overflow
不動点コンビネータ - Wikipedia
コンビネータ論理 - Google 検索
TypeScriptで不動点コンビネータに型をつける - Qiita
d.y.d.
不動点コンビネータで無名再帰を作る流れをおさらい - 無駄と文化

8_1_34.pdf
lambda.pdf
5.pdf
cs2019muroya.pdf
私を SKI に連れてって
cormoran's note - LazyK HelloWorldを目指す
SKIコンビネータ AGAIN
combinatory logic in nLab
sou19.pdf
66_0661078.pdf
MSJ20120328Fujita.dvi - MSJ20120328Fujita.pdf
画力・博士号さんはTwitterを使っています 「値呼びの型なしラムダ項をTeX言語コードにコンパイルし,それをTeX言語上に構築したVMで完全展開で評価できるようになった: https://t.co/OKy0aEYXXC 1枚目: 入力 2枚目: 処理の様子 3枚目: 出力コード 4枚目: LaTeXで処理した結果出てくるPDF https://t.co/Ufm4L1A0RX」 / Twitter
IPSJ-SE93097013.pdf
完全展開形 ラムダ - Google 検索
stlc.pdf
sakaue.pdf
ラムダ計算インタープリタ : tnomuraのブログ
ラムダ計算 : tnomuraのブログ
カテゴリー理論とプログラミング : カルテシアン閉カテゴリー
メタリックはんぺんさんはTwitterを使っています 「カリーハワード同型の基本的なアイデアは「型付きλ計算の型の推論規則と直観主義論理の推論規則は対応関係が付くから実質『同じ』だよね」で、後半第五回の課題は「与えられた命題の証明木を見ればそっから与えられた型のλ式が作れるよね」っていう話だったはず」 / Twitter

カリー=ハワード同型対応

木原 貴行 | 名古屋大学 | 大学院情報学研究科 | 数理情報学専攻
computation-fall1.pdf
カリー=ハワード同型対応にびっくり - うつし世はゆめ / 夜のゆめもゆめ
継続と反証はカリーハワード対応するか - Qiita
直観主義論理の「自然さ」(1) 自然演繹 - 再帰の反復blog
直観主義論理の「自然さ」(2) シーケント計算 - 再帰の反復blog
直観主義論理の「自然さ」(3)古典論理のシーケント計算と自然演繹 - 再帰の反復blog
直観主義論理のカリー・ハワード対応 - 再帰の反復blog
call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
古典論理のカリー・ハワード対応のためのラムダ計算 - 再帰の反復blog
古典論理のカリー・ハワード対応での証明の書き換えと簡約 - 再帰の反復blog

SPIN・Promela

形式手法

「形式手法」をものづくりへ ─ 高品質・高効率な製品開発に向けて - NII SEEDs / 国立情報学研究所
形式手法のこれまでとこれから - ヾノ*>ㅅ<)ノシ帳
Scaling symbolic evaluation for automated verification of systems code with Serval | Proceedings of the 27th ACM Symposium on Operating Systems Principles
uw-unsat/serval-sosp19: This repo contains the artifact for our SOSP'19 paper on Serval
ウワサのVeronaを眺めてみる | κeenのHappy Hacκing Blog
リージョンについて | κeenのHappy Hacκing Blog
仕様記述テクニック「Promotion」の紹介 - DeNA Testing Blog
Program Synthesis - Microsoft Research
rosette.onward13.pdf
osdi16-sigurbjarnarson.pdf
Hyperkernel: Push-Button Verification of an OS Kernel
Simple and Precise Static Analysisof Untrusted Linux Kernel Extensions
一人Computer Science Advent Calendar 2017 - Qiita
Proof Assistantを作る・理論編 その1 - The curse of λ
ゼロから学んだ形式手法 - DeNA Testing Blog
CSP-Prover
電子情報通信学会知識ベース |1編 ソフトウェア基礎
電子情報通信学会知識ベース |2編 計算論とオートマトン
電子情報通信学会知識ベース |3編 アルゴリズムとデータ構造
電子情報通信学会知識ベース |7編 ディペンダブルコンピューティング
01gun_08hen_02.pdf
モデル検査器を作って学ぶマルチスレッドプログラミング - connpass
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「モデリングはかんたんです。送受信するプログラム書くのと変わらないから。検査も自動なので全く問題なし。唯一"受理"の読み方が壁だけど、道具って使ってるうちにわかっちゃうもんです。とにかく仕様との違いを見つけてくれるという点が大きい。ずはりこれです。」 / Twitter
07gun_01hen_01.pdf
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Enterprise Architect のモデルから Promela を生成して Spin で検査、反例を読み込んで分析、という理解で正しい? https://t.co/6sdGxwNCZo」 / Twitter
スパークスシステムズ ジャパン ニュースさんはTwitterを使っています 「構造計画研究所様 モデルベース形式検証ツールDynaSpec販売開始のお知らせ https://t.co/0niVmzNqtE」 / Twitter
スパークスシステムズジャパン フォーラム - ニュース
構造計画研究所 | モデルベース形式検証 | DynaSpec | 日本
Category:形式手法 - Wikipedia
Category:プログラミング言語理論 - Wikipedia
seminar_tokyo_20140916-02.pdf
000049838.pdf
Tsukasa #01さんはTwitterを使っています 「暗号ライブラリの実装において、形式的検証が成されたプリミティブを C やアセンブリ言語の形態で出力する研究プロジェクト。 HACL* https://t.co/erpdiyzBET」 / Twitter
project-everest/hacl-star: HACL*, a formally verified cryptographic library written in F*

SPINによるモデル検査-1 - S2-a-material-nonaka.pdf
0.PROMELAの基本文法
Microsoft PowerPoint - RS2010-spin1.pptx - RS2010-spin1.pdf
xv6から始めるSPIN入門
猫でもわかる! モデル検査器 SPIN 入門
31_4_40.pdf
UMLとモデル検証 | オブジェクトの広場
B_020.pdf
CiNii 論文 -  上流設計からモデル検査プロセスまでの一貫設計検証環境 : UML記述からSPINモデル検査器用プロセス定義及び線形時相論理式への自動変換手法

PDF

Microsoft PowerPoint - esci.pub.ppt [互換モード] - e-sci111122-4.pdf
computer software Vol.22, No.2 - 22_2_22.pdf
untitled - 21_3.pdf
ppl2-2.pdf
hirai-thesis.pdf
26_doc3.pdf
CB-002.pdf
ambient-calculus.ppt - ambient-calculus.pdf
IPSJ-MGN270905.pdf
25_3_49.pdf
IPSJ-MGN300605.pdf
game_and_set_theory.pdf
現代論理学の諸問題 | 慶應OCW|
講義一覧 | 現代論理学の諸問題 | 慶應OCW|
JOKIHY-14_22117.pdf - 13_ishii.pdf
Formal languages and Pervin spaces - JEP.pdf
Agda 上でのZF集合論の構成
06gun_03hen_05.pdf
01gun_08hen_02.pdf
untitled - semantics.pdf
Microsoft PowerPoint - 04SyntaxSemantics.ppt - 04SyntaxSemantics.pdf
www.comp.tmu.ac.jp/yosihiro/teaching/how-to-read.pdf
<4D6963726F736F667420576F7264202D20834D838A8356838395B68E9A82CC93C782DD95FB>
paper.dvi
170221_yoshizoe.pdf
26411.dvi - 26_462.pdf
chap13.pdf
コンパクト開位相と写像空間の位相
dd_nat_jp.pdf

H8-garrigue.pdf
lambda.pdf
THE KYOTO
THE KYOTO
cartesian closed category in nLab
排中律やPeirce’s lawの挙動: chiguriの生態
論理と圏論のオイシイ話 | | 数学・統計教室の和から株式会社
d.y.d.
26_2_3.pdf
20191109_C-3_resume(Tsunoda_Kentaro).pdf
Computersoftware 20-3 - 20_285.pdf
Kohei SuenagaさんはTwitterを使っています 「プログラミング言語処理系とは?OCaml の基礎や,高階関数型言語のインタプリタの書き方,型推論アルゴリズムの実装方法を解説!簡単なコンパイラの書き方や,字句解析や構文解析アルゴリズムもまとめてみました!https://t.co/dSZmD1KExq」 / Twitter
IoPLMaterials | Materials for the class “Implementation of Programming Languages” in Kyoto University.
Haskell/Denotational semantics - Wikibooks
120901fp key
mltext.pdf
Miura HidekiさんはTwitterを使っています 「面白いけど、Java, Python, RustでSymbolic Executionで検証できるだけの情報量を含んだ中間言語なんて作れるものなんだろうか?」 / Twitter
Viper – Programming Methodology Group | ETH Zurich

リフレクション

itp-interpreter.pdf
自己反映計算 (計算機科学) - Wikipedia
メタサーキュラーエバリュエーター - Meta-circular evaluator - Wikipedia
c - メタサーキュラー通訳の正確な定義は何ですか? - ITツールウェブ
c - メタサーキュラーエバリュエーターを使用してLispインタープリターをブートストラップする方法 - ITツールウェブ
インタプリタとは
メタサーキュラーエバリュエーターを使用してLispインタープリターをブートストラップする方法 - Javaer101
Clojureのメタサーキュラーエバリュエーターで「true」を評価する - Javaer101
S8

computed goto

DSAS開発者の部屋:インタプリタ型言語を高速化する computed goto
computed goto - MEMO:はてな支店
Goto - Wikipedia
Labels as Values (Using the GNU Compiler Collection (GCC))

Property-Based Testing

proptest - Google 検索
Shinjuku.rs#10を開催しました│FORCIA CUBE│フォルシア株式会社
Rust の Proptest の紹介 - Qiita
Rust の proptest-derive の紹介 - Qiita
proptest - Rust
AltSysrq/proptest: Hypothesis-like property testing for Rust
Introduction - Proptest
Proptest
(PDF) Proptest: A Property Based Test Pattern Generator for Sequential Circuits Using Test Compaction.
Property-based testing in Rust with Proptest - LogRocket Blog
proptest - crates.io: Rust Package Registry
Property-Based Testing in Rust - Speaker Deck
maguro.dev - 2020/06/30 に開催された Shinjuku.rs #10 に参加しました

error-tolerant parsing

井山梃子歴史館さんはTwitterを使っています 「Lossless Syntax Tree構築できて盛り上がっている https://t.co/dtqrtUWGtQ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「∀y. (fun x -&gt; y) = fun z -&gt; y のパース結果」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「参考文献: https://t.co/ENSRkFmgZB https://t.co/6vwxnPwhlj」 / Twitter
rust-analyzer/architecture.md at master · rust-analyzer/rust-analyzer
Persistence, façades and Roslyn’s red-green trees | Fabulous adventures in coding
井山梃子歴史館さんはTwitterを使っています 「repo: https://t.co/4ofcm40Y8T」 / Twitter
pratt/lib.rs at abec6651daf21d2a081c3d9026b08bd0c44b3dd1 · pandaman64/pratt
井山梃子歴史館さんはTwitterを使っています 「error-tolerant parsingで盛り上がっていけ https://t.co/SJoiUI5XYO」 / Twitter

関心の分離

関心の分離 - Wikipedia
関心の分離を意識した名前設計で巨大クラスを爆殺する - Qiita
責任(関心)を意識したアプリケーション設計 - Qiita
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
ryoheyさんはTwitterを使っています 「MVVMでモデルを頑張って分けすぎてモデル間の依存が多くなって良くない感じになるのと同じことが起きそう。最初のうちはあんまり分割しないで素直に書くのが良いかもな」 / Twitter

MVU

Fabulousにより、F#でiOS向けとAndroid向けの宣言型クロスプラットフォームUIが構築可能に

MVC・MVP・MVVM

Model View ViewModel - Wikipedia
MVVMパターンの常識 ― 「M」「V」「VM」の役割とは?(1/5) - @IT
ソフトウェアアーキテクチャー...?MVCやMVVMってなに!?
MVVMを勉強するときに参考になった 概要まとめ & アンチパターン & リンク集 - Qiita
» [WPF] MVVMパターンについて -入門編- 技術ブログ
Vue.jsが採用しているMVVMパターンとは【目的を重点に解説】 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
プログラミングな日々: MVVMとは何か
いまさら学ぶMVVMパターン
MVVMとはなんぞやを公理から求めてみる - 滅入るんるん
【C#活用】WPFでMVVMパターンを実装する際の注意点 | .NETコラム
Webアプリケーション開発者から見た、MVCとMVP、そしてMVVMの違い - Qiita
現場で選ばれているiOSアーキテクチャ - Qiita
完璧なモデルビュー-どんなアーキテクチャでもRyanKay(MVP / MVC / MVVM)
ソフトウェアアーキテクチャー...?MVCやMVVMってなに!?
開発中のアプリをMVVMからMVCに戻した理由 MVVM×RxSwiftでの開発で得られた教訓 - ログミーTech
開発者が知っておくべき、6つのUIアーキテクチャ・パターン - @IT
MVPとかMVVMとか - ゆうなんとかさんの雑記帳的な。
Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する - エンジニアHub|Webエンジニアのキャリアを考える!
雑把の UI アーキテクチャー史(MVCからMVVMへ) | プログラマーズ雑記帳

イベント

その他

Mongo DBとS式検索 - Speaker Deck
Oracle Blogs 日本語のまとめ: [SOA/BPM] EDNを流れるメッセージを確認する
Oracle Blogs 日本語のまとめ: [SOA/BPM] Event Delivery Network (EDN) - A practical example
簡単なリアクティブシーケンス - Faith and Brave - C++で遊ぼう
リアクティブシーケンスのフィルタ - Faith and Brave - C++で遊ぼう
2020年8月5日 Linux 5.8がリリース,コーディングスタイルに"inclusive terminology"適用:Linux Daily Topics|gihyo.jp … 技術評論社
マイクロソフトが買収した「ThreadX」あらため「Azure RTOS」はまだ実体がない (1/3) - MONOist(モノイスト)
CNCFが策定するクラウドイベントの標準仕様「CloudEvents 1.0」が登場。サーバレスのクラウド間互換を促進するか? - Publickey
AxonDB - イベントストアの新たな実装
data Artisansがストリームデータ上の直列化可能なACIDトランザクション機能を発表
イベントストリームKafkaとワークフローエンジンZeebe
Badooのデータエンジニアリング:1日あたり200億のイベントを処理
高可用性ワークフローエンジンZeebeが実運用対応に
ワークフローにイベント駆動型の自動化を提供するPuppet Relay
tagomorisさんはTwitterを使っています 「“遅れたログを永久に受け入れていると、ロードシステムの負荷が非常に大きい” これなー、弊社のログマージジョブも大変……(どんな過去のデータも捨てられない / “データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クッ…” https://t.co/FvzF34MhGT」 / Twitter
データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クックパッド開発者ブログ
mumumuさんはTwitterを使っています 「Exploring the Performance of ROS2 ROS2のアーキテクチャを簡潔にまとめており,Pub/Sub通信を提供するミドルウェアの気持ちがわかった.さらに,ノード間通信の性能や,ボトルネックを調査していて非常に役立つ. 面白いな~と思って読み進めていたら共著者に来年~の指導教員いて笑ってしまった.」 / Twitter
LinkedIn、システムの複雑性低減のためにLambdaアーキテクチャを廃止
Event Driven Architecture
開発生産性と信頼性の両立を目指すための Event-Driven Architecture - より良いマイクロサービスアーキテクチャを求めて | Wantedly Engineer Blog
分散アプリケーションランタイム (Dapr) v1.0 が発表された
BBCの分析プラットフォームの失敗に備えた設計
OpenTelemetry仕様が1.0に到達、安定性の保証と新たなリリース候補を提供
OpenTelemetryがメトリック仕様のロードマップを発表
Grafanaで、マネージドな可観測性スタックにエンタープライズログを加わる
Linux FoundationがAsyncAPIのホストを発表
AmazonがS3 Object Lambdaを発表
GitHub用にブラウザで長大なログを表示する
HoneycombがRefineryを発表:トレース対応のサンプリングプロキシ
Microsoftは、Azure Web PubSubと呼ばれるリアルタイムWebアプリケーションを構築するためのプレビューサービスを発表
eBayは非同期API契約としてAsyncAPIを採用
OpenTelemetryがPythonおよびSwift Tracing API/SDKを1.0に移行
Amazon SNS、Amazon Kinesis Data Firehose経由でのメッセージのアーカイブと分析が可能に
MicrosoftがEvent Hubs Premiumのプレビューを発表
Mobx リアクティブ状態管理ライブラリバージョン 6がリリースされた
Svelteを使ったアニメーション、レスポンシブ、リアクティブなデータ視覚化
Dropboxがどのようにして大規模な分散非同期タスクフレームワークを構築したか

CQRS

DDDで設計するならCQRSの利用を検討すべき - Qiita
CORSまとめ - Qiita
Cutting Edge - CQRS とイベント: 強力なコンビ
Cutting Edge - 一般的なアプリケーション向けの CQRS
CQRS + ESについてのまとめ - Output!!
CQRSとイベントソーシングの使用法、または「CRUDに何か問題でも?」 | プログラミング | POSTD
CQRSとイベントソーシングでシステムを構築する
ドメインストーリテリングを使ってコンテキスト境界を見つけ出す
Living Documentation by design, with Domain-Driven Designを読んだ | Web Scratch
#teppeis_sushi でクライアントサイドDDDについて発表した | Web Scratch
CQRSとイベントソーシングのフレームワークであるAxonの基本概念と今後について
リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi
続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi
松岡@DDDブログ書いてますさんはTwitterを使っています 「#peingddd CQRSのよくある誤解で、導入したら参照系と更新系それぞれのモデルしか使ってはいけないというのがあります。(続) #Peing #質問箱 https://t.co/B2NSJ5ZhbW」 / Twitter
松岡@DDDブログ書いてますさんはTwitterを使っています 「しかし、そんなことはありません。 こちらの記事に書いたのですが、CQRSは「必要な部分だけ導入する」でOKです。 https://t.co/qHdB1EvQyy 今回のご質問だと、いくつかのテーブルを参照したような複雑なクエリ部分だけ、そこに特化したクエリモデルを使用して検索するぐらいで良いと思います。」 / Twitter
CQRS実践入門 [ドメイン駆動設計] - little hands' lab
松岡@DDDブログ書いてますさんはTwitterを使っています 「ただ、そのあとに更新処理を行う時には、リポジトリから取得したドメインオブジェクトを通じて行う方が良いでしょう。」 / Twitter
松岡@DDDブログ書いてますさんはTwitterを使っています 「なぜなら、重要なドメイン知識(ルール/制約)をドメインオブジェクトで表現し、そのコードを見ればドメイン知識が理解できることを目指したいのに、その他の部分に知識が分散してしまうとそれが見落とされてしまうことにあるからです。」 / Twitter
Manabu UenoさんはTwitterを使っています 「重要なのは、ユーザーに「オブジェクトを直接操作している」というイリュージョンを与えることである。 記事の例でいえば、Deactivate のタスクを切り出すこと以前に、Deactivate という動詞がユーザーの行為の中で十分な意味性を持つか、ということをまず考える必要があるだろう。」 / Twitter
タスクベースUIとCQRS - Qiita
Manabu UenoさんはTwitterを使っています 「OOUI 本の記述をひとつのきっかけに骨太な議題が掘り起こされている。意味性を排除したデータ操作のUIは滑稽だが、Windows の端々に現れる使役的な「リンク」がオブジェクトをタスクの後ろに隠しがちなのも事実。単純な構文論に回収されないデザインの暗黙知がありそうだ。 https://t.co/SPMk6SMaSi」 / Twitter
かとじゅんさんはTwitterを使っています 「CQRSはCとQを分離することなので、QからCに依存したら便利だとしても、そもそも分離にならないので、CQRSには該当しなくなると思います。これをCQRSと言ってしまうと論理的に矛盾すると思います。つまり、非CQRSとか、CQRSっぽいもの。たとえばこんな感じhttps://t.co/AcNDU2QITg」 / Twitter
ざっくりCQRS/Event Sourcingを解説する - Speaker Deck
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「最近僕は軽量CQRSとかクエリモデルの導入という表現をするようにしてたりします。前のCQRS解説記事も更新したいのですが…本を書き終えたら…orz」 / Twitter

オープンソースのCNCF CloudEvents仕様、バージョン1.0のマイルストンに到達
DDD、イベントストーミング、アクターモデルを使用したリアクティブシステムの設計
RSpcket - SpringOneで発表された、リアクティブアプリケーションのための新たなアプリケーションネットワークプロトコル
JavaScripr言語にリアクティビティを実現するフロントエンドフレームワークSvelte 3 - 作者のRich Harris氏に聞く
イベントアーキテクチャとイベントストリーミング
イベントソースシステムにおけるイベントのバージョン管理
イベントはいかに現代のシステムを変えたか - Jonas Boner氏の講演より
イベントは開発者の第一級ツールであるべきだ
イベントは分散システムの将来を変えるか - Jonas Bonér氏のQCon Londonでの講演より
イベントファースト思想はなぜ重要か
イベント駆動システムに対する批判的見解 - Bernd Rücker氏のQCon Londonでの講演より
イベント駆動からイベントソーシングへの移行 - MicroCPHのFangel, Ingerslev両氏の講演より
イベントソーシングシステム開発時の間違いとリカバリ
イベントソースシステムにおける過去と未来のイベント
AWSがEventbridgeサービスにイベントリプレイとアーカイブ機能を導入
AWSはAmazon MQがRabbitMQをサポートすると発表
Amazon EventBridge Schema RegistryがAWSで一般向けに提供開始される
GoogleがEventarcをプレビュー版で発表
O'Reilly Software Architecture Conference NYで発表されたイベント駆動型マイクロサービス
QCon London: 非同期イベントアーキテクチャにおけるアクタ導入の可否
Kotlinの新しい非同期処理 - QCon SFでのRoman Elizarov氏の講演より
C# 8の非同期ストリーム
IAsyncDisposableとIAsyncEnumeratorの更新
マイクロサービスからワークフローへの移行
フレームワークは善か悪か,その両方か?
アーキテクチャと設計 InfoQトレンドレポート - 2019年1月
「AsyncAPI Initiative」がLinux Foundationに参画、イベントドリブンなAPIの記述標準化を目指す - Publickey

デザインパターン・DI

コンポジション

継承とコンポジションをどう使い分けるか
コンポジションとは : JavaA2Z
やはりお前らのコンポジションは間違っている - Qiita
クラスの「継承」より「合成」がよい理由とは?ゲーム開発におけるコードのフレキシビリティと可読性の向上 | POSTD
プログラミング 継承とかインターフェースとかコンポジションとか - はかせのラボ
合成と委譲ってなに? | 民主主義に乾杯
0.デザインパターンの基本 2 | TECHSCORE(テックスコア)
継承 (プログラミング) - Wikipedia
プログラマー育成コース for Java Web開発のためのJava入門:7章 : 富士通アプリケーションズ
【23日目】オブジェクト指向プログラミング⑦コンポジションな関係を作る - 目指せ!Pythonプログラママー

NAKAMURA AtsushiさんはTwitterを使っています 「DIコンテナを使う理由はそうなんだけど、なんでDIするか?の答えにはなっていないような 個人的には依存の解決はPullするかPush(Injection)するかしかないと思っていて、PullはStaticなリポジトリへ依存しないといけなくなるからDIするんだけど 前にこの辺にかいた https://t.co/LCSUv3Yzrm」 / Twitter
Service LocatorとDependency InjectionパターンとDI Container - nuits.jp blog
Takuto WadaさんはTwitterを使っています 「依存の注入はコンストラクタでやろう ↓ 依存と生成知識がシステム中に散らばる ↓ 生成知識をファクトリーで隠蔽しよう ↓ 今度はファクトリーがシステム中に散らばる ↓ ファクトリーはシステム中にDIコンテナひとつでよくね? ↓ DIコンテナが依存と生成知識を一括管理し、秩序と調和が訪れる(完)」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「この流れで考えたら、唐突に「プリミティブ型の断片的な設定パラメータをinjectする」ことへの違和感と抵抗感の理由がわかった。 それだと整合性の担保や変更時のレビューが大変になるから、Abstract Factory相当のオブジェクトがほしかったんだ。」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「diconファイルをモジュール化すれば自然にそういう単位になるけど、GuiceやDaggerで同じことをやるにはもう少し工夫が要る」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「という発想が、デザインパターンを知ってるとできるようになるって話を書いた気がした。 https://t.co/R7mwTo9YDA DIコンテナでこの問題を解くときの実装はGoFのAbstract Factoryとはぜんぜん違う形になるはずだけど、状況と問題設定は同じ。」 / Twitter
一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか?に対するYuki Sonodaさんの回答 - Quora
Kazuho OkuさんはTwitterを使っています 「そうなんだよね。結局、GUIフレームワークプログラミングで「発見」されたAbstract Factoryパターンをサーバサイドのフレームワークプログラミングで「再発見」したのがDIというか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「で、IoCについては、設定ベースではなく規約ベース(convention over configuration)でやる手法もあって(libcが呼ぶユーザプログラムの関数名がmainと決まってるのが端的な例)、サーバサイドフレームワークでも後々、規約ベースの手法も取られるようになった」 / Twitter
Kazuho OkuさんはTwitterを使っています 「IoCが、規約ベースなのか、コードベースなのか、専用言語を使うのか、という点はそれぞれ得失がある(クライアントサイドGUIでもしばしば専用言語を使う)けど、規約ベースやコードベースでやることの敷居が高い言語ほど、ごついDIになりがちなのはしょうがないよね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「デザインパターンについては Pree のメタパターンについての本が一番記憶に残ってるし、いい本だと思う。Amazon 見ると2009年に買い直してるから、部屋のなか探せば出てくるかな。 https://t.co/nuMeSzv5hX 内容については https://t.co/HTDBSCXQOd が参考になると思う」 / Twitter
オブジェクト指向におけるデザインパターン
伊津野 英克さんはTwitterを使っています 「共有するドメインモデルと個々のメンタルモデルのギャップをMVCで回収するという解釈はいい気がする>DDDに関する論の主戦軸を整理してみた(2020年版) https://t.co/k61ltvIfbp #Qiita」 / Twitter
DDDに関する論の主戦軸を整理してみた(2020年版) - Qiita
ドメイン駆動設計 - Wikipedia
GRASP - Wikipedia
Abstract Factory パターン - Wikipedia
Observer パターン - Wikipedia
Flyweight パターン - Wikipedia
Command パターン - Wikipedia
nishio hirokazuさんはTwitterを使っています 「WebアプリのためのフレームワークがGUIの部品をクラスで作るようになった…しかしメジャーどころのReactが「クラスで部品を作るのはやめて関数で作る方向に移行します」と宣言(2019年)この状況において20年前のオブジェクト指向的設計はどの程度有効なのか?どういう修正を加える必要があるのか?」 / Twitter
Tetsuya KaneuchiさんはTwitterを使っています 「これぞ「継承」の問題。 #オブジェクト指向」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「言葉の意味が時代と共にズレていくのはありがちな現象だけど、技術用語についてはそれは大いに問題であって、少なくとも意味を拡張する時には元の意味に矛盾しないようにしないと論理性に欠けるよね。ましてや元の意味は捨てるなんてダメでしょう。元の意味と矛盾するものは別の言葉を充てるべきでは。」 / Twitter

形式化されないもの

極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「っていうか、値クラスとか、そんなこといわゆる設計で考えるようなことじゃないと思うのだけど。いわゆる設計界隈、プログラミングに引き摺られすぎじゃない?より重要な、構造に対する制約、機能に対する制約、後の改変が許される範囲、許容されるべきバリエーション、みたいな辺りがお留守に見える。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「つまり、デザインにおいて大切なものは形式化されないのですよ。でも、それらは然るべきスキルを持った人がプロダクトを見れば明らかなんです。ここがデザインと工学の衝突点。いちばんワクワクするところ。 https://t.co/Ex2AHF83eD」 / Twitter
杉本啓さんはTwitterを使っています 「いままさにリリースするプロダクトに、必要かつ十分な設計配慮が織り込まれているということ。不足もなく余分もなく。これが大事。あとは些事。」 / Twitter
杉本啓さんはTwitterを使っています 「ということは、リリースを重ねる都度、その新しいフィーチャを実現するためのコードだけでなく、関連する他の部分のコードも見直して、全体として最適なアーキテクチャにしなければならない。この点を見落としていると、増築を重ねた温泉旅館みたいなプロダクトになると思う。」 / Twitter

モデリング

ソースコード生成機能・ソースコードの読み込み機能について - UML/SysML/BPMNモデリングツール Enterprise Architect
ステートマシン図からのコード生成 - UML/SysML/BPMNモデリングツール Enterprise Architect
コード生成 - MATLAB & Simulink - MathWorks 日本
RGen: Rubyのモデリングとコード生成フレームワーク
E4-3.pdf
MetaEdit+ 各種資料と動画デモ
11種類のソースコードを自動生成できる新UMLツールが登場 | 日経クロステック(xTECH)
codegeneration | astah in 5 min
SelexES_CaseStudy.pdf
まちカドおるみんさんはTwitterを使っています 「結局オブシェクトの相互関係でモデリングできて何がうれしいのっていうのは何かしらの問題をオブシェクトでモデリングするという practice なしで伝わらない気がするし、」 / Twitter
まちカドおるみんさんはTwitterを使っています 「その上でこういう問題はこうモデリングする、という定式化がデザインパターンとして存在してる、という組み立てじゃないとわからないと思うし、わからなかった」 / Twitter

モデルベーステスト

モデル検査はモデルを検査するものではない

S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「大手IT業者の方が講演で「モデル検査では分散システムはモデル化できない」とか言ってて「並行プロセス計算とか…」と言ったらキョトンとしていた。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「現在コンピュータを応用したシステムの多くは計算だけじゃなくて通信も大事な仕事の1つであるわけですが、通信するシステムを設計するときに基礎となる理論はあまり知られていないと思うのです。大学以外ではほどんど聞く機会がないんじゃないかと思うので、日曜日のセミナーは特におすすめなのです。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ここで設計といっているのは、システムの振る舞いを記述すること、つまり仕様を書くことと、システムを構成するコンポーネントを定めて、全体としての振る舞いを知ること、そして検証することです。それぞれの点で、計算を主とするプログラムとはだいぶ違ってきます。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「どういうシステムなのか誤解があるようですね」とか言われて、大学院情報系の数十人の教員の前で小一時間問い詰めようかと思ったけど自粛した(しないほうが良かったかも」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「(そもそも「モデル検査」を「モデルを検査すること」だと思ってる時点で典型的な間違いですが。」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/zhxftFnVR3 https://t.co/hLlfPib9mr &gt;We used the term Model Checking because we wanted to determine if the temporal formula f was true in the Kripke structure M, i.e., whether the structure M was a model for the formula f.」 / Twitter
The Birth of Model Checking | SpringerLink
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「&gt;Some people believe erroneously that the use of the term “model” refers to the dictionary meaning of this word (e.g., a miniature representation of something or a pattern of something to be made) and indicates that we are dealing with an abstraction of the actual system」 / Twitter

形式手法 定理証明 と テストベクタ生成 T-VEC Tabular Modeler
IPSJ-JNL5302010.pdf
37136500.pdf
ソフトウェア信頼性の向上のための形式手法・開発支援ツールの研究 - sss2012-software-oiwa-pub.pdf
テスト駆動開発から証明駆動開発へ #JTF2019 / July Tech Festa 2019 - Speaker Deck
バグ0の資産を積み上げるための証明駆動開発入門
62_134.pdf
自動テストに限界を感じた私がなぜ形式手法に魅了されたのか - 若くない何かの悩み
000049838.pdf
Information for Prospective Students
研究テーマ/検証 - Takatalab
モデルベーステスト - Wikipedia
7594591200220899443さんはTwitterを使っています 「「自動テストとはこの文脈ではコンピュータ・プログラムが想定通りに動くかテストする工程を自動化するもの」っていう定義でいうと、多分その作業を自動化するのはV字とか関係なくほとんど誰もできないと思うよ、それは自動テストというかもはや自動検収に近い https://t.co/lXX1MLCRQE」 / Twitter
なぜ自動テストの導入は失敗するのか? - プログラマーの脳みそ
7594591200220899443さんはTwitterを使っています 「いわゆる関数とかの粒度のユニットテストは別に想定通りに動いているかの確認ではないと思う。スタブしまくった環境下でコードカバレッジ上げれば想定通りに動くだろうというのは幻想に過ぎない」 / Twitter
7594591200220899443さんはTwitterを使っています 「「プログラムの想定」とは一体全体なんだったのか、というのは、案外深淵な問題で、一筋縄ではいかないものなのですよ、いわんやそれを自動化するに及んでは…」 / Twitter

トポロジー

Dimensions 1 Japanese - YouTube
GeometryC.pdf
robert ghrist home page

blog

その他

Haskell

IO モナドと副作用 - Haskell-jp
GHCに初めてコントリビュートした/最近のGHC動向 | 雑記帳
Android むけ Haskell コンパイラをリリースしました!
HaskellのIOは他の言語でいうところの関数オブジェクトとよく似てるよ、という話 :: Igreque -> Info
data / newtype / type の使い方 - Haskell-jp
レンズの圏論的考察 — Avendia
Avendia
とほほのHaskell入門 - とほほのWWW入門
Haskell/Denotational semantics - Wikibooks

Elm

Elm で作る TaPL のラムダ計算(その1)

.NET

C# 9.0のTop-level statementsとその動作 | Yucchiy's Note
F*コードをF#でパーズして遊ぶ | teqblog
Writing high performance F# code
FStar Tips | teqblog

Rust

Rust structとenumの組み合わせ - yhara.jp
Rust に様々なスクリプト言語を組み込む - Möbius Flyer
A New Backend for Cranelift, Part 1: Instruction Selection - Mozilla Hacks - the Web developer blog
κeenさんはTwitterを使っています 「let _ = の話ですか? Idein Ideas — Rustにおけるirrefutable patternを使ったイディオム https://t.co/oBGsGgkijZ」 / Twitter
Idein Ideas — Rustにおけるirrefutable patternを使ったイディオム
κeenさんはTwitterを使っています 「これ読んでも釈然としない部分は残る。参照外しじゃなくて参照外しした値がunsafeとかなのかなぁ。」 / Twitter
κeenさんはTwitterを使っています 「mirの時点で参照外しが消えてるのでearly dead code eliminationで参照外しが消えた結果unsafeにならなくなったとかかなぁ。しかしそれをやるには無効なポインタの参照外しがundefined behaviorであることを使うはずで、なんかビミョーにsoundnessにケチが付きそうな気もする」 / Twitter
Writing Interpreters in Rust – GitHub 出張所 – プログラム関係のブログはここに
Frequently Asked Questions · The Rust Programming Language
2021年3月18日 Rustを学ぶためのプロジェクト―Debian開発者,coreutilsパッケージをRustで実装中:Linux Daily Topics|gihyo.jp … 技術評論社

OCaml・ML

Real World OCaml が出ました - camlspotter’s blog
min-caml を Mac で動かす
Leaving OCaml
OCaml で書かれた Python のサブセット実装 ocaml-minipy のソースを読む - DEV
ニューラル株式会社|ハイブリッドOS|File System|ARM|Android|Java|制御システム|オープンシステム
自作SML処理系進捗:Hello world | 雑記帳
自作SML処理系で 1 + 2 がコンパイルできた | 雑記帳
my-sml-compiler.pdf - Google ドライブ
minoki/DamepoML: A non-working implementation of Standard ML
自作SML処理系進捗:Hello Lua! | 雑記帳
LunarML進捗:signatureの実装に向けて | 雑記帳
Standard ML雑学 | 雑記帳

TypeScript・JavaScript

10 年前に JavaScript で Flash Player を開発し買収された話
大統一 Node ツールチェイン Rome の野望 現状の実装 - mizdev
「Node.js 16」が公開 ~Apple Silicon向けのプリビルドバイナリを初めて提供 - 窓の杜
Chromeバージョン91は最大23%の高速化。JavaScriptエンジンを改良 - PC Watch
Chromium Blog: Chrome is up to 23% faster in M91 and saves over 17 years of CPU time daily

Java

Oracle、「Java 14」を発表 ~Recordクラスがプレビュー導入、switch式が正式機能に - 窓の杜
Java言語の誕生から25周年 ~Oracle、「Java 15」を発表 - 窓の杜
Oracle、「Java 16」を発表 ~パターンマッチングinstanceofとrecord型が正式機能に - 窓の杜
Java、MySQLなどに390件の新しいセキュリティパッチ ~Oracle、2021年4月定例更新を実施 - 窓の杜
「Microsoft Build of OpenJDK」が一般公開 ~無償で「Java」の長期サポートを提供 - 窓の杜
マイクロソフト製Java 11ディストリビューション「Microsoft Build of OpenJDK for Java 11 LTS」正式リリース。無償長期サポート、コンテナイメージの配布も - Publickey
AWS LambdaのJava 8ランタイムがAmazon Correttoへ。OpenJDKから移行するとAWSが発表 - Publickey
Red HatはどのようにしてOpenJDKを64ビットのArmに移植したのか:コミュニティの歴史 - 赤帽エンジニアブログ
Javaの外からJavaにチェックポイントを設ける - 赤帽エンジニアブログ

Ruby

MemoryView: Ruby 3.0 から導入される数値配列のライブラリ間共有のための仕組み - Speee DEVELOPER BLOG
KibelaにRBS / Steepを導入しようと考えています | bitjourney Kibela
TypeProfを使ってみました - あしたのチーム Tech Blog

Python

「IronPython 3」が登場 ~Python 3をターゲットにした初めてのIronPython - 窓の杜
Pythonの再帰回数の上限を確認・変更(sys.setrecursionlimitなど) | note.nkmk.me

Egison - ブログ
Nervesの新機能mix firmware.patchの(偏った観点からの)ご紹介 / An Introduction to mix firmware.patch from my own view point - Speaker Deck
またまたまがる: どうして Julia を作ったか
7594591200220899443さんはTwitterを使っています 「Rubyみたいな古い言語が嫌われるのは当然ですよね(それは劣っているからというよりも古いからだ)、という話。定量評価つき https://t.co/0uyHfoVubq」 / Twitter
Green Vs. Brown Programming Languages - Earthly Blog
ブログ: 継承はパフォーマンス・ハックとして発明された
Googleの並列ログ解析向け言語「Sawzall」が公開されたので使ってみた | Preferred Networks Research & Development
Sawzall (programming language) - Wikipedia
本の虫: うっかりチューリング完全になっちゃったもの
関数型プログラミングとは結局何なのか | 黒曜の吹き溜まり
形式手法でデータ構造を記述・検査してみよう:Alloy編 - DeNA Testing Blog
競技プログラミングの問題を自動で解きたい - うさぎ小屋
AWS Lambdaの裏側をなるだけ詳しく解説してみる - Sweet Escape
システムの複雑さはどこから来るのか – Out of the tar pitを読む - Uzabase Tech
[WIP] 処理系Slackのミートアップに参加しました - yhara.jp
「さよなら Flaky 。不安定なテストの探し方」というお話 - Cybozu Inside Out | サイボウズエンジニアのブログ

κeenのHappy Hacκing Blog

Rust

Rustで作るインメモリキャッシュ | κeenのHappy Hacκing Blog
Rustでインメモリキャッシュ作った話 | κeenのHappy Hacκing Blog
言語自作を通して学んだRust | κeenのHappy Hacκing Blog
Rustのconst fnって何? | κeenのHappy Hacκing Blog
Rust with Fearless Concurrency | κeenのHappy Hacκing Blog
RustのMutexのPoisoning | κeenのHappy Hacκing Blog
RustからCPU拡張命令を使ってみる | κeenのHappy Hacκing Blog

Idris

依存型のあるHaskellことIdrisってどんな言語? | κeenのHappy Hacκing Blog
Idrisの基本文法 | κeenのHappy Hacκing Blog
Idrisのインストール | κeenのHappy Hacκing Blog
Idrisの型とデータ型 | κeenのHappy Hacκing Blog
REPLでIdris小旅行 | κeenのHappy Hacκing Blog
Idrisのインタフェースとモナドなどなど | κeenのHappy Hacκing Blog
Idrisと高橋君 | κeenのHappy Hacκing Blog
Idrisのモジュールとプレリュード、標準ライブラリ | κeenのHappy Hacκing Blog
Idris手習い: ビッットマップ画像の書き出し | κeenのHappy Hacκing Blog
Idrisの名前つきパラメータとGADT | κeenのHappy Hacκing Blog
Idrisのパッケージとipkg | κeenのHappy Hacκing Blog
Idrisdocの使い方 | κeenのHappy Hacκing Blog
IdrisのテストとCI | κeenのHappy Hacκing Blog
Idris面白機能:シンタックスシュガーとオーバーロード、あとユーザ定義構文 | κeenのHappy Hacκing Blog
Idris面白機能:with構文と依存型、View | κeenのHappy Hacκing Blog
Idris面白機能:文芸的Idris | κeenのHappy Hacκing Blog
Idrisで依存型を使った定理証明入門 | κeenのHappy Hacκing Blog
Idrisの依存型で高さが100%正しいAVL木を定義する | κeenのHappy Hacκing Blog
IdrisのFFIとCodegen(C、JavaScript) | κeenのHappy Hacκing Blog
IdrisのElaboratorリフレクションでメタプログラミング | κeenのHappy Hacκing Blog
Idrisで正しいモノイドを定義したい | κeenのHappy Hacκing Blog
Idrisの標準ライブラリを解説していくよ | κeenのHappy Hacκing Blog
Idrisといくつかの帰納法 | κeenのHappy Hacκing Blog
☔️leign☔️さんはTwitterを使っています 「これに似たものとして「空でない自然数の集合は最小値を持つ」(つまり自然数の普通の順序は整列順序である)はよく使う。今日も体の標数の定義に使った。」 / Twitter

SML

SMLでバッククォート記法を実現する | κeenのHappy Hacκing Blog
SML#に学ぶコンパイラ言語におけるREPLの実装方法 | κeenのHappy Hacκing Blog
SMLのDerived Forms | κeenのHappy Hacκing Blog
SMLの処理系組み込み例外ってなーんだ | κeenのHappy Hacκing Blog
SMLの処理系組み込み例外ってなーんだ | κeenのHappy Hacκing Blog
1ML - コア言語とモジュール言語の統合 | κeenのHappy Hacκing Blog

自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog
マクロやコンパイラプラグインの実装方法色々 | κeenのHappy Hacκing Blog
新しいコンパイラバックエンドcretonne | κeenのHappy Hacκing Blog
Graal/Truffleについて軽く | κeenのHappy Hacκing Blog
κeenさんはTwitterを使っています 「Standard MLのwithtypeの挙動 https://t.co/tv2kGfi26c」 / Twitter
Standard MLのwithtypeの挙動
Summary of proposed changes · SMLFamily/Successor-ML Wiki
F-ing Modules, yabaitech.tokyo vol.5
κeenさんはTwitterを使っています 「Erlangの歴史を紐解きつつJIT導入への道程を示している。過去に高速化の話はいくつかあったがそれぞれ問題を抱えていた The Road to the JIT – A Blog from the Erlang/OTP team – The Erlang/OTP team at Ericsson, the implementors and maintainers of Erlang/OTP. https://t.co/f1z09Cijsk」 / Twitter
The Road to the JIT – A Blog from the Erlang/OTP team – The Erlang/OTP team at Ericsson, the implementors and maintainers of Erlang/OTP.
シャドイングの嬉しさ | κeenのHappy Hacκing Blog
【プログラミング言語速度比較】Collatz数列ベンチマークを言語別比較しよー! - 関数型言語で競プロ精進!
論文メモ:The Third Homomorphism Theorem | κeenのHappy Hacκing Blog
2020年振り返り | κeenのHappy Hacκing Blog
2021年抱負 | κeenのHappy Hacκing Blog
プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog
今さら聞けないアヴィウムプルヌス入門 | κeenのHappy Hacκing Blog
今さら聞けないアヴィウムプルヌス入門のタネ明かし | κeenのHappy Hacκing Blog

井山梃子歴史館

『トポスと高階論理』を読んでいる - 井山梃子歴史館
どうしようもなくnaive realism - 井山梃子歴史館
数学に正解は一つしかないのか? - 井山梃子歴史館

Message Passing

Message Passingという内輪のブログ的な何かを始めた | なーんだ、ただの水たまりじゃないか
バグのはなし - Message Passing
言語のはなし - Message Passing
Re: Re: Re: 言語のはなし - Message Passing

FPGA開発日記

コンパイラのための新しい中間表現 MLIR の論文を読む - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(1. Getting Started) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(2. MLIRに関するコード生成を試す) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(3. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(4. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(5. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(5. MLIRに関する発表資料を読む) - FPGA開発日記
LLVMの新しい中間言語表現 MLIRを試す(6. MLIRに関する発表資料を読む) - FPGA開発日記
QEMUが分岐命令を処理する仕組み(Relocationによるラベルの解決) - FPGA開発日記

Sine Lite Dies

Computing/Orphosの実装Mullosを支える予定の技術 - Sine Lite Dies
Computing/Orphosの実装Mullosを支えつつある技術 - Sine Lite Dies
Computing/Truffle言語の実装例KinokoMLをつくった - Sine Lite Dies

ゆびてく

関数型つまみ食い: 関数型とはプログラミング言語ではなく、プログラムデザインの問題であることに気づく – ゆびてく
関数型つまみ食い: 関数型プログラミングの何が嬉しいのか? – ゆびてく
関数型つまみ食い: モナドが難しいと思われている理由 – ゆびてく
Elixir試飲録 (3) – マルチコア危機によるパラダイムシフト: オブジェクト指向から並行指向へ – ゆびてく
オブジェクト指向とは何だったのか? – ゆびてく

本の虫

本の虫: また初心者にプログラミングを教える機会があった
本の虫: Erlangについて思うところ

クックパッド開発者ブログ

Ruby に Software Transactional Memory (STM) を入れようと思った話 - クックパッド開発者ブログ
Ruby 3 の静的解析ツール TypeProf の使い方 - クックパッド開発者ブログ
Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート - クックパッド開発者ブログ
プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ
ruby/NEWS.md at v3_0_0 · ruby/ruby
プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ
プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ
Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ
ISMM 2019 で発表してきました - クックパッド開発者ブログ

Publickey

マイクロソフト、マイクロサービス開発を容易にする「Dapr」をオープンソースで公開。サービス間呼び出し、ステート管理、サービス間メッセージングなど提供 - Publickey
Ruby 3.0.0RC1が登場、型の記述や静的型推論ツールなど新機能。12月25日の正式リリースに向け - Publickey
Ruby 3.0正式版リリース。「Ruby 2の3倍速」到達、型の記述、スレッドセーフな並列処理など新機能 - Publickey
Node.jsの新LTS版となる「Node.js 16」正式リリース。Apple M1チップ対応、JavaScriptエンジン「V8 9.0」搭載など新機能 - Publickey
マルチプラットフォーム対応が進むKotlin。「Jetpack Compose for Web」登場、Webアプリ対応のUIフレームワーク - Publickey
JavaScriptツールチェインの統一を目指す「Rome」開発チームが起業、「Rome Tools, Inc.」を立ち上げ - Publickey
Rome Toolchain

はてなブログ

その他

Pony言語を触ってみよう前編 - 虎の穴開発室ブログ
新雑誌「n月刊ラムダノート」の『「コルーチン」とは何だったのか?』の草稿を公開します - まめめも
一緒に学ぼう,Rustで作る単相型システム - Explore cs in depth!
Big bag of pagesで型情報を節約する - 思考録++
compilium v2 (in progress)の工夫点 - /var/log/hikalium
仕様を変えられる言語bittnのメモ - Re:t0kが知ったこと
詳説コンピュテーション式 - ぐるぐる~
メタ関数のカリー化 - yaito3014のブログ
ループを使わず配列の和をとる方法 (日本語解説) - MoreBeerMorePower
自作プログラミング言語Malgoがかなりそれっぽくなってきた - ギークもどきの日記帳
世の中間言語を集める - ギークもどきの日記帳
多相からプログラミング言語を見る - 趣味はデバッグ……
Hanson & SussmanのSoftware Design for Flexibilityを読み始めた - Arantium Maestum
クライアントサイドのモデルとは何か 後編 ~ 単方向データフローと参照透過性 - mizchi's blog
NODE_MASGN / 多重代入 - ひとり勉強会
Deforestation で強連結成分分解を改善する - fetburner.core
nameofの罠 - ぐるぐる~
Notions of Computations and Effects - Just $ A sandbox
Call-by-needを採用した言語のインタプリタの実装 - fetburner.core
LLVMのAttributorというパス - 日記
monadからeffectへ - Just $ A sandbox
『形式意味論入門』を Haskell に書き下す (前編) - ryota-ka's blog
『形式意味論入門』を Haskell に書き下す (後編) - ryota-ka's blog
ユースケース層が投げうるエラーの型を「量化した open union」にしておけば複数のユースケースを合成したときに上の層でエラーハンドリングが楽にできて最高です! - ryota-ka's blog
Concurrent Cプログラミング言語―並行プログラミング入門 - hidemonのブログ
mRPC - mikutter blog
3imp ヒープ・ベース・コンパイラ/VM と CEK マシンの関係 (2) - Tociyuki::Diary
シンボル集合のリストによる安直実装 - Tociyuki::Diary
配列のスライスで cdr - Tociyuki::Diary
proper-list? 手続きのアセンブリ記述 - Tociyuki::Diary
Malgo開発記録:型シノニムとimport - 星にゃーんの日記帳
C++でファイルを後ろ向きに読み込むときはバッファリングに気をつけようって話 - Kampersanda's Blog

ドメイン駆動設計

なぜDDD初心者はググり出してすぐに心がくじけてしまうのか - little hands' lab
ドメイン駆動設計の定義についてEric Evansはなんと言っているのか[DDD] - little hands' lab
モデルでドメイン知識を表現するとは何か[DDD] - little hands' lab
ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か[DDD] - little hands' lab
ドメイン駆動 + オニオンアーキテクチャ概略[DDD] - little hands' lab
モデルとは"現実世界を正しく表現したもの"ではないという話 / 境界付けられたコンテキストの必要性[DDD] - little hands' lab
ドメイン駆動設計関連情報のググるときのコツ - little hands' lab
JJUG2017fall 「DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話」 - little hands' lab
境界づけられたコンテキスト 概念編 - ドメイン駆動設計用語解説 [DDD] - little hands' lab
境界づけられたコンテキスト 実装編 - ドメイン駆動設計用語解説 [DDD] - little hands' lab
オニオンアーキテクチャにておいて、ドメイン層とアプリケーション層の責務はどう違うのか[DDD] - little hands' lab
ドメイン駆動設計は何を解決しようとしているのか - little hands' lab
DDD基礎解説:Entity、ValueObjectってなんなんだ - little hands' lab
新卒にも伝わるドメイン駆動設計のアーキテクチャ説明(オニオンアーキテクチャ)[DDD] - little hands' lab
非エンジニアの方に「DDDって何なの?」と聞かれたときの説明[ドメイン駆動設計] - little hands' lab
ドメイン知識とユースケースの違いは何か?[ドメイン駆動設計][DDD] - little hands' lab
「DDDのモデリングとは何なのか、 そしてどうコードに落とすのか」資料 / Q&A - little hands' lab
CQRS実践入門 [ドメイン駆動設計] - little hands' lab
DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか - little hands' lab
ドメイン駆動設計を導入するために転職して最初の3ヶ月でやったこと[DDD] - little hands' lab
DDDで複数集約間の整合性を確保する方法(サンプルコードあり)[ドメイン駆動設計] - little hands' lab

テスト

テストコードのデザインパターン:Robotパターン - 千里霧中
テスタビリティ(試験性)を確保するための設計方針 - 千里霧中
テスタビリティ(試験性)の拡張を実現する実装 - 千里霧中
ソフトウェア・テストを再考する - hidekatsu-izuno 日々の記録

Rust

Rustの並列処理についての勉強 - FPGA開発日記
勝手にevalしない言語をRustで作ったら意外なものになった - 色の輪
大学でRustを教えた話 - 未完成な論を綴るブログ
Rustでもモナドは実装できるのか?(再) - Don't Repeat Yourself
rustでCで書いた関数を呼ぶ / Cからrustで書いた関数を呼ぶ - 睡分不足
RustでUnix Domain Socketを扱う方法 - 睡分不足
Rustのasync/awaitを使ったecho serverの実装 - 睡分不足
rustのArcの内部構造 - 睡分不足
rustのMutexの内部構造 - 睡分不足
rustのArcについてその2 - 睡分不足
rustのIteratorの実装 - 睡分不足
rustで動的にバッファを確保する方法 - 睡分不足
rustをnostdで使う - 睡分不足
rustのGUIライブラリconrodの使い方 - 睡分不足
rustでCで書いた関数を呼ぶ / Cからrustで書いた関数を呼ぶ - 睡分不足
nomによるnumpyデータのパース - 睡分不足
[rust]ZST/DSTによるflexible array memberの実現 - 睡分不足
Rustでグラフを表現するにはTyped Arenaが便利 - 簡潔なQ
Rust製のパーサコンビネータnomを解剖する(v6.0.0) - Explore cs in depth!
Rust製のパーサコンビネータcombineを"覗き見"する(v4.4.0) - Explore cs in depth!
knurling-rs のツールお試し Get a grip on bare-metal Rust! - 低レイヤ強くなりたい組込み屋さんのブログ
Rustで型を強めにつけ、バリデーション情報を型に落とす方法 - Don't Repeat Yourself

Haskell

エヌユルさんはTwitterを使っています 「これ早く使いたいし、Haskellのフィールドセレクタを全部自動生成すると言うのはフィールドを遅延評価にするのと同じぐらいの初期設計の誤りだったんじゃないかと思い始めた / “新しいGHC拡張、NoFieldSelectorsについて - モナドとわたしとコモナド” https://t.co/xguPEGOYqw」 / Twitter
新しいGHC拡張、NoFieldSelectorsについて - モナドとわたしとコモナド
TaPLの3章を読み,4章をHaskellで - Explore cs in depth!
System F をHaskellとPythonで実装した - yigarashi のブログ
自動printfデバッグ - モナドとわたしとコモナド

Egison

プログラミング言語Egisonの型システムを設計するインターンをした - a_kawashiroのブログ
Haskellライクな構文をEgisonに実装している話 - momologue

Coq・Isabelle

効率的な正規表現エンジンを Coq で検証する - fetburner.core
ML のサブセットの型推論器を Coq で検証する - fetburner.core
Isabelle ゆるリファレンス - 若くない何かの悩み

Go

Golangのgoroutine周りを気合で理解する - それが僕には楽しかったんです。
goroutineを調べたときに深掘りしたときに調べたまとめ - Flicker's Style++

Erlang・Elixir

Erlangのとても困ったところ:単一代入の思わぬ弊害 - 檜山正幸のキマイラ飼育記 (はてなBlog)
Elixir で non-programmer 向けに DSL を作り提供する - c4se記:さっちゃんですよ☆

Ruby

_ko1さんはTwitterを使っています 「これはrubyでは他言語を意識した変更です」 / Twitter
hnwさんはTwitterを使っています 「@_ko1 すみません、ようやく理解しました。リリース前のPHP7の変更をVladimir Makarovさんがキャッチアップしてたところから議論が始まったんですね。かつリリース前のPython 3.6も参照してますね。なるほどー https://t.co/fyIsbAGWOR」 / Twitter
Feature #12142: Hash tables with open addressing - Ruby master - Ruby Issue Tracking System
hnwさんはTwitterを使っています 「@_ko1 なるほど、コメントありがとうございます。Ruby2.0付近で順序を維持するようにしたのは他言語を意識した仕様変更だと思っていたのですが、Ruby 2.4の変更は高速化という理解でした。 https://t.co/pxsTkefmtE」 / Twitter
Ruby 2.4.0 リリース
_ko1さんはTwitterを使っています 「@hnw 目的は性能です(メモリ消費削減含む)」 / Twitter
hnwさんはTwitterを使っています 「@_ko1 Ruby 2.4の実装を議論していた時期はPHP7リリース前だったので完全に独立に実装を進めていたのかと思ったんですが、他言語での連想配列の高速化の流れの影響が間接的にあったということでしょうか。それとも、それ以前から他言語との比較で問題意識を持っていた箇所ということですかね?」 / Twitter
monochromeさんはTwitterを使っています 「Rubyの多重代入、辛すぎだろ。 最後の評価順の話は、現在のCRubyとは異なるようだ。 多対多の代入の場合、右辺を並び順に評価した後、左辺を順に評価している。 以前のYARVは左辺は逆順で評価していたようだ。(その気持ちはVMを自作すると痛いほどよく分かる https://t.co/djYeYkyScp」 / Twitter
Ruby 3.0の静的型定義をTypeScriptみたいにライブラリに書いてみた所感 - Narazaka::Blog
RBS基礎文法最速マスター - pockestrap

Python

Kazuho OkuさんはTwitterを使っています 「なんでモヤモヤするのか自分でもよくわからないけど、開発者の思考的に ・オープンアドレスでコリジョンさけたい ・ハッシュテーブルサイズは2の冪乗だし大きめに ・その場合、値はテーブル外に置いたほうが良い ・リハッシュのコストも下がるし ・キー比較とかもあるので間接参照コストは無視できる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「・さらに挿入順を維持できるオマケもついてくる みたいな感じなイメージがあるからなのかも」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あー、つまり、キャッシュミス減による高速化ではなく、省メモリ化あるいはコリジョン減少による演算量・分岐予測ミスの現象による高速化の可能性もありうるってことなんかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「pythonのが速度改善を目的にした実装(そして実際に速くなっている)という想定は正しいんだろうか。実際に書いた @methane さんが知ってそう / https://t.co/ptptdXVeJO」 / Twitter
Kazuho OkuさんはTwitterを使っています 「オープンアドレス法で作る時に、ハッシュテーブルと値をもつ場所を別にしても速度低下が少ない(あるいは無い)、というのはそのとおりだと思うんだけど、それが近年のCPUの特性だと言われると、えっそうなんかなーってちょっと悩む」 / Twitter
Inada NaokiさんはTwitterを使っています 「大きい理由はメモリ使用量削減です。 dictの作成、イテレートは明らかに速くなる一方、探索はほとんど変わらず、マイクロベンチマークによっては遅くなる場面もありました。 参考に当時(まだパッチ作ってる段階)の記事を紹介します。 https://t.co/TsJOFT5l49」 / Twitter
DSAS開発者の部屋:Python に現在実装中の Compact dict の紹介
Inada NaokiさんはTwitterを使っています 「BLOGにも書いている通り、キーワード引数などをOrderedDict(双方向リンクリスト+dictで実装されている)に置き換えることで順序を維持しようという提案があり、それだと速度もメモリ効率にもオーバーヘッドがあったのですが、新しいdictの実装ではゼロオーバーヘッドで実現可能」 / Twitter
Inada NaokiさんはTwitterを使っています 「生成&破棄は旧dictと比べてもかなり速いので、ベンチによっては確かに速いと言えます。 でもPython(Ruby, PHPも)にとっては探索速度の重要度が静的言語と比べて段違いで高いので、探索速度が同じか微妙に遅くなる変更の主目的が速度とは断言しづらい。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@methane ありがとうございます!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「オープンアドレスハッシュのメモリ使用量、値のサイズをs、間接表現のインデックスのサイズをi、ハッシュの最大充填率2/3、可変長配列のbackoff factorを2とした場合、 値埋込: 3s 値を別配列: 2s+3i とかなので、s&gt;&gt;i な状況においては値を別配列でもったほうがメモリ的に有利なんだよな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「backoff factor=1.5とかだとメモリ使用量半分になる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「64bit化にともなって言語処理系のsは大体2倍になったので、そのタイミングで値を埋め込むのをやめる処理系が続出したのは納得感ある」 / Twitter
Kazuho OkuさんはTwitterを使っています 「感想文続き https://t.co/YhkJeDlNA8」 / Twitter

PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記
SATySFiで数式を生成する ~ラムダ計算編~ - * *scrap*
小さなlisp処理系を作った - in neuro
Idrisとはじめる型駆動開発 - console.log( ME );

note

定理証明支援系とは何か、何ができるのか|森北出版|note
Ractorで並列処理を試みる|グロービスデジタルプロダクト開発組織|note
Rが好きすぎてRでJVMを実装したnoteエンジニアに話を聞いてみた|note株式会社

Medium

Ruby 3.0 JIT and beyond | by k0kubun | Dec, 2020 | Medium
OCaml でコンパイラに入門するための2冊. この記事は言語実装 Advent Calendar… | by zenwerk | Medium
任天堂 NPNS における Erlang/OTP. Erlang & Elixir Fest 2019… | by V | Medium
Erlang/OTP と ejabberd を活用した Nintendo Switch(TM)向け プッシュ通知システム 「NPNS」の 開発事例 - Speaker Deck

infoQ

その他

Crystal言語がRuby構文リリース1.0でCパフォーマンスを目指す
Crystal言語がRuby構文リリース1.0でCパフォーマンスを目指す
Jolie - 分散アプリケーションのためのサービス指向プログラミング言語
GitHubがすばやく安全にリリースを行うためにどのようにフィーチャーフラグを利用しているか

Rust

Rustが1.39でゼロコストAsync/Awaitをサポート
Rustの非同期ランタイムであるTokioが1.0に到達
Microsoftがメタデータを使って、Rustや他の言語からの慣用的なWin32相互運用を可能に
CXXが実現するRustとC++の安全な相互運用
MicrosoftがRust For Windowsをプレビュー
Rust 1.51がリリース - const genericsが安定化、Cargoとコンパイル時間が改善
Rust At Six:新しい言語エディションと広がる採用

Haskell

モナドを理解する - 迷える者への手引き
新しいHaskellベースのWeb App Specification Languageがアルファ版でリリースされた
Thrift for HaskellはRPCコードからバグを排除することを目的としている

GraalVM・Java・Kotlin・Scala

Kotlinのコルーチンを実装面から検証する
Java 注目の機能: パターンマッチング
GraalVM 21.0、Javaで記述されたJVMを導入
OracleデータベースのGraalVM
これまでのJava 16と17についてわかっていること
AppStoreのJavaFXとUIフレームワークの改善
Java 16がリリースされた
アプレットの終焉
Spring BootアプリをSpring Native BetaでGraalVMに変換
Kotlin 1.5への道
Kiは、新しい、より柔軟なKotlinインタラクティブシェルである
MicrosoftがMicrosoft Build of OpenJDKを発表
JDK Mission Control 8がリリース
OpenJDKはSecurityManagerの非推奨を提案
コンパイルとドキュメントの出会い
Kotlin 1.5がJava 15機能と新しいJVMコンパイラをサポート
GraalVM 21.1がJDK 16をサポート
Quarkus 2.0への道: 継続的テスト
Scala 3への道
MicroProfile4.0の新機能

TypeScript・JavaScript

RxJSの状態 - NgconfでのBen Lesh氏の講演
Next.JS 10は、自動画像最適化、国際化されたルーティング、およびWebバイタル分析をもたらす
TypeScript4.1にテンプレートリテラルタイプが追加された
新しいDenoモジュールによるVueアプリケーションのビルドとコンパイル
Denoは、自己完結型のスタンドアロンバイナリにコンパイルできるようになった
Aleph.jsを使用したDenoのサーバレンダリングWebアプリケーション
Vue 3は大規模な使用に取り組むための新しいAPIと共にリリースされた
Redwood - Ruby on RailsのエクスペリエンスをJavaScriptで実現
Vue3のネイティブCSS変数テンプレートとの統合検証
Deno 1.5、RustベースのJavaScriptコンパイラによりビルド性能が3倍向上
非同期コードのテスト - RxJS Live London
最新のJavaScriptによるパフォーマンスの向上
新しくリファクタリングされたVue.jsのビルダーVite 2.0は、依然としてスピードにフォーカスしており、フレームワークに依存しないようになった
Typescript 4.2 リリース。型と開発者エクスペリエンスが向上
Vuenion 2021の今 - Vue Amsterdam 2021でのEvan You氏の講演
React Native 0.64でHermes JavaScriptエンジンがiOSで利用可能に
SentryはフロントエンドをTypescriptに移行 - 教訓
BlockLike.jsがMIT ScratchからJavaScriptプログラミングへの移行を容易にすることを目指す
TypeScript 4.3がプロパティの書き込みタイプを改善
V8は、パフォーマンスを向上させるために最適化しないコンパイラステージを導入

.NET

Microsoftが .NET 5 をリリース
C#9 and .NET 5 - ブックレビューとQ&A
Azure Functionsの更新には、ランタイム外への.NETの移行が含まれる
Microsoftが.NET 6 Preview 1をリリース
Azure .NET SDK: Jeffrey Richter氏とのQ&A
Microsoftによる.NET Conf: Focus on Windows
C# 9がリリース - record型、init-onlyセッタ、パターンマッチングの拡張を提供
Visual Basic 16.9が.NET 5に
.NET 6:非同期の改善
.NET 6 LINQの改良
.NET 6では、WPFとWinFormsでBlazor WebViewコントロールが利用できるように
Mercuryは、C#と同等の機能をVisual Basicで提供し、新たに複数のプラットフォームをサポート
.NET 6: コレクションの改良
PythonとNodeに挑戦するASP.NET Core 6
EF CoreとASP.NET Core 6で非同期ストリーミング

Swift

データ競合のない並列言語を目指すSwift
Swift CollectionsはSwiftに新しいデータ構造をもたらす
Swift 5.4が複数の可変数引数、リザルトビルダなどをサポート
async/awaitとアクタをサポートするSwift 5.5

テスト

テスタは製品定義にどのように貢献できるのか
開発者がE2Eテストを書くことで得たもの
テストピラミッドを使って品質を左シフトする
マイクロサービスでのエンドツーエンドテストの課題
Mock Service Workerライブラリにより、復元力のあるRESTおよびGraphQL APIテストが可能に
Goがベータ版でファズテストをサポート

マイクロサービス

マイクロサービスアーキテクチャを再評価する - 影響、運用面での複雑性、代替案
モノリスからマイクロサービスへのマイグレーションで学んだ7つの教訓

API

UberがAPIゲートウェイのアーキテクチャを公開
Google Cloud、API管理プラットフォームの新メジャーリリースApigee Xを発表
AsyncAPIとPostman Partner、非同期API用の新ツールを提供へ

コンポーネント

Githubが複雑なアプリケーションでWeb Componentsの開発を容易にするCatalystをリリース
IonicのStencilコンポーネントコンパイラの設計に関する考慮事項 -- DotJS2019でのAdam Bradley氏の講演
効果的効果 - ソフトウェアコンポーネント間の双方向通信の統合

データ

データメッシュの原則と論理アーキテクチャの定義
PayPalは、次世代のデータ移動プラットフォームとしてApache AirflowとApache Gobblinを標準化

POSTD

13年分の未熟なゲームのコード | POSTD
開発者が知っておくべきSOLIDの原則 | POSTD

Zenn

その他

Juliaの行列・ベクトルを完全に理解すっぞ!!
サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 2 - 新機能と変更点の総まとめ
Language Server Protocol に対応したミニ言語処理系を作る
λ計算から始める Lazy K
オブジェクト指向におけるVisitorパターンは、F代数によるμ再帰を Church encoding したもの
複雑なアニメーションをプログラムする 〜Reanimate入門〜
Prattパーサであらゆる演算子をパースする
re2c の使い方
クラスメソッド、技術情報共有サービス「Zenn」の買収に関する契約を締結〜誰かのために、自分のために知見を共有するプラットフォームの開発を加速〜 | ニュース | クラスメソッド
Only My Rails Way
Miura HidekiさんはTwitterを使っています 「Only My Rails Way|yukito ohira https://t.co/uGGI1qHVC9 #zenn 大部分は分からいけど、「最初の記述と矛盾するようだが基本的にRubyは遅くないしRailsも遅くない。遅いのは99%自分が書いたIOかSQL」だけはものすごく同意した」 / Twitter
Miura HidekiさんはTwitterを使っています 「Rubyは遅くない、良く分かっているのだが、それでもマイクロベンチマークを数倍速くすると言う余り意味の無いことに貴重な余暇時間を溶かしてしまう性を持っているアカウントがこちらになります」 / Twitter
原理原則から適切なgoroutineの数を考える
Goから学ぶI/O
プログラミング書籍を10年ぶりに改訂して気がついたこと
プログラング言語Idrisに入門させたい(v0.9)
シェルスクリプトでLISP処理系を作ってみた
自作言語
gomockを完全に理解する
Schemeでdefineを使わずに超循環評価器を実装してみた
LISPの基本データ構造(コンスセル,連結リスト,連想リスト,属性リスト)
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「#Clojure の連結リストは配列構造じゃないよ,という御指摘を踏まえて大幅改訂.しかしその結果Clojureが消えてなくなったという.比較対象としては #Python の方がわかりやすいんだもん…. 連結リストのみのLISP処理系実装について考察した|TAKIZAWA Yozo https://t.co/U6dYaLU9n8 #zenn」 / Twitter
連結リストのみのLISP処理系実装について考察した
Shiro KawaiさんはTwitterを使っています 「@ytaki0801 メモリが希少だった時代には、連続してアロケートされるペアを配列にパックする(CDR coding)Lisp処理系もあったと聞きます(使ったことはないです)。パッキング/アンパッキングは暗黙に行われるのでユーザからは見えません。アクセスローカリティが性能に重要になった現代で見直す価値はあるかも?」 / Twitter
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「@anohana 情報ありがとうございます.確かにそうかもしれませんね.ただ,今はLISPも普通にベクタとかありますし,コンスセルを無理に効率化しなくてもLISPコード操作だけなら別にいいかな,などとも思ったりはします(^^;).効率化することでコンスセル一辺倒(?)に戻るのもアリかもしれませんが….」 / Twitter

Haskell

おすすめHaskellプロジェクト作成方法(ほぼ)2021年版
HaskellでのTDDを楽しくするライブラリ methodを作りました。
Type level mapを使ったpreload風関連リソースの取り回し。Indexed monad添え
lotzさんはTwitterを使っています 「Indexed Monad 氏、最近では Parameterised Monad と呼ばれてるらしい。Parameterised Monad から Graded Monad を作るこの関係式は面白くて、実際のデータ型で便利に使えないかは気になってる https://t.co/AgDqPET1iN https://t.co/OzPALcLhJ2」 / Twitter
[2001.10274] Unifying graded and parameterised monads
lotzさんはTwitterを使っています 「@igrep どっちもモナドにパラメータがくっついたやつですよねw Graded モナドはパラメータにモノイダル圏が必要だったり、Indexed モナドはパラメータが2つ必要だったり微妙な違いがあるんですが、元のツイートに張った論文はこの2つの違いをより抽象的なモナドで吸収して統一しようというものなので(文字数 https://t.co/47rWuhw6k4」 / Twitter
Haskellの最近の乱数生成事情について
Haskellの森
「Haskellのモナド完全に理解した」試験問題

Idris

SnocList recursive viewを型駆動開発してみよう in Idris2
κeenさんはTwitterを使っています 「Idrisで型駆動開発でコードを半分くらい自動生成できる様子です。Emacs使ってますが他のエディタでもできます。 https://t.co/3VBQuSaAFb」 / Twitter
κeenさんはTwitterを使っています 「第2段。記事中で触れられてるコードをプログラミングしてる様子を写したよ。Twitterの尺の制約で標準ライブラリの再証明はなしと、一部コピペがある。急にコードが湧いてくるのはIdris処理系による自動生成。 https://t.co/1oQZfGd9R9」 / Twitter

Rust

Rustにおける関数ポインタやクロージャ
[Rust] Drop/dropあれこれ
Craneliftを歩く
GhostCell 論文を読む
Rust + LLVMで自作言語をセルフホスティングした話
llrl programming language

TypeScript

TypeScript 4.1による型レベルパーサコンビネーター
TypeScriptで型安全性を破壊する方法をまとめたリポジトリを作った
unsafety-zoo.ts/src at master · todesking/unsafety-zoo.ts
TypeScriptにはanyが4種類、undefinedが3種類、……
ドッグさんはTwitterを使っています 「なるほど型推論が2段階になっていて,上向きに型情報を収集しといてから下向きに推論していく時に単一化するのか | 'TypeScriptにはanyが4種類、undefinedが3種類、……' https://t.co/nByMZ4FhhJ」 / Twitter
ドッグさんはTwitterを使っています 「ループ時のフロー型の推論で繰り返すのもなるほどと思ったけど,これ収束したかの条件どうなんだろう.silentNeverType が現れたかでチェックしてるのかな」 / Twitter
そろそろ技術ブログで setCount(count + 1) と書くのはやめませんか
TypeScript で T 型と {...} の併用で型チェックが機能しなくなる罠
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「"「必須だけど絶対に値が存在しないキー」を作る" なるほどー! / 他6件のコメント https://t.co/RAzZm2lvNw “TypeScript で幽霊型っぽいものをつくる” https://t.co/uY8zcGdfO1」 / Twitter
TypeScript で幽霊型っぽいものをつくる
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「幽霊型、とはちょっと違うけど、使用しない型変数を使うことで、「この型はTであってほしいけど事前にチェックしろよ」みたいな意図を示す型がほしくなったのでやってみようと思う。 type Maybe&lt;T&gt; = unknown; みたいな」 / Twitter

V

開発者から見た V 言語とその(誇大)広告について
Memory Management in Lobster
The V Programming Language
vlang/v: Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. https://vlang.io
Volt | <1 MB desktop client for Slack, Skype, Twitter, Facebook, Gmail and more
vlang/vos
vlang/vbrowser: Upcoming browser written from scratch in V UI
トデス子'\さんはTwitterを使っています 「V言語が参考にしたというLobster言語のGCなしメモリ管理手法について。値型が基本、ヒープに確保されたメモリは静的な生存時間解析で自動管理、必要に応じてRCを挿入。循環参照はプログラム終了時に検出して叱る。 / “Memory Management in Lobster” https://t.co/ZhdfBfCayL」 / Twitter

ZennとClassmethod | Cat Knows

Qiita

その他

25年前の未来の言語の話 - Qiita
Hello World くらいしかできない言語のアセンブラをつくる - Qiita
最近見つけたおもしろ自作言語の紹介 - Qiita
ウワサのBlawnを触ってみた - Qiita
OneLang32の話でも - Qiita
TeX言語で型なしλ計算を評価するVMを書いた話 - Qiita
Qiitaでたぶんもっとも参考にしてはいけないPythonの導入方法 - Qiita
大学の数学の入試問題を量化子消去でサッと解く - Qiita
形式手法はなぜ流行っていないのか - Qiita
「形式手法はなぜ流行っていないのか」に対する異論 - interdb’s blog
000005272.pdf
000045158.pdf
swest13-S3-b.pdf
AWSにおける形式手法 - masateruk’s blog
Parallel Commits: An Atomic Commit Protocol For Globally Distributed Transactions
PGConf.Online 2021 - Consensus, Postgres, Multimaster
「HTMLはプログラミング言語か」問題に終止符を打つ - Qiita
素朴な自作言語Pricのコンパイラをセルフホストした - Qiita
無名相互再帰の記述例(各言語まとめ) - Qiita
共変戻り値と反変引数 - Qiita
スケールする要求を支える仕様の「意図」と「直交性」 - Qiita
10行LISP評価器の実装例(各言語まとめ) - Qiita
ラムダ式プログラミング一時間体験講座(Python/Ruby/JavaScript同時並行版) - Qiita

Rust

C++は本当にRustに速度で負けるのか 〜「RustがC++に速度で勝った話」のベンチマークを追試する〜 - Qiita
Rust から C++ のメソッドを呼ぶ方法をまとめてみた - Qiita
WSL2 (Ubuntu) で Rust のインストールがうまくいかない - Qiita
Rust でグラフ(petgraph) - Qiita
Rustで自己参照構造体が作れない理由と解決法 - Qiita
本家Rustコンパイラのソースを読もうとしてみる(1) - Qiita
XbyakをRustから使ってみた - Qiita
『みんなのデータ構造』を読んで Rust で実装した - Qiita
no_stdのRust on LinuxでHello, world!する - Qiita
Rustの型システムの恩恵:言語処理系としての観点から - Qiita
自作コンパイラ基盤の話 - Qiita
スペースによるパターンマッチの網羅性検査 - Qiita
レイアウト規則を独自実装してしまったお話 - Qiita
ガラスボーさんはTwitterを使っています 「repr(align(N))アトリビュートの紹介だけど、小さいサイズならalignedというクレートが便利だったりします https://t.co/ZOHGGe1eUg https://t.co/Z99iQvvuAE」 / Twitter
Rustでallocを使わずにページ境界に合わせたメモリアロケーションをするには - Qiita
aligned - crates.io: Rust Package Registry
RustのさまざまなDockerfileのビルド時間を比較してみた - Qiita
Rust で新しく struct や enum を定義するときに実装を検討する trait まとめ - Qiita

Julia

Juliaという速くて書きやすい言語をちょっとだけ覗いてみたんだが、なにやらワクワクするものがあったので報告しようと思う - Qiita
dc1394さんはTwitterを使っています 「このQiitaの記事のC++(Eigen使用)のコードを、Juliaに移植してみたら、かなり速くなった。具体的には、 C++(+Eigen): 166.81(秒) Julia: 14.240(秒) で、C++よりJuliaの方が12倍くらい速くなった。Julia優秀すぎる。今後もC++のコードをJuliaに移植していきたい。 https://t.co/SuUxyxGCoL」 / Twitter
水素原子に対するSchrödinger方程式を有限要素法で数値的に解いてみる(C++のソースコード付き) - Qiita
電子計算機の沼さんはTwitterを使っています 「面白がって最適化してみたけど,Julia版のコードが上がってないので比較はできない ただ調べた結果,固有値ソルバが全体時間の99%(それ以外は0.1秒)で,「速い固有値ソルバをコールするコンテスト」なので,言語の話じゃなくてリンクしてる物の違いとかだったんだと思います なので私はもう撤退.」 / Twitter
dc1394さんはTwitterを使っています 「@Hishinuma_t Julia版のコードはGitHubのこちらにあげています。 https://t.co/DVf0gUicD8」 / Twitter
dc1394/hydrogen_fem_julia: FEMで水素原子に対するSchrödinger方程式を解くコードです(Julia版)
nkさんはTwitterを使っています 「実はよくわからない押しつけがましい人がよくわからない主張を繰り返すのでjulia使うのうざくなってきた」 / Twitter

Elixir

Elixirで速度を追い求めるときのプログラミングスタイル PartⅡ,Pelemayの近況もあるよ - Qiita
大学でElixirを教えた話 - Qiita
Elixir / Pelemay 研究の背景と意義 - Qiita
ZEAM開発ログ: Elixir マクロ + LLVM で超並列プログラミング処理系を研究開発中 - Qiita
ZEAM開発ログ v.0.2.1 Node.js と同じ原理の軽量コールバックスレッドを Elixir に実装してみた (実装編) - Qiita
Elixirで速度を追い求めるときのプログラミングスタイル - Qiita
なぜ僕の中でElixirが一番であり続けるのか - Qiita
Elixir Wizards Dojo について - Qiita
忙しい研究者のためのテストコードとドキュメントの書き方、Elixir編 - Qiita
Enum.mapと再帰スタイルの比較、ふたたび(末尾再帰版) - Qiita
NervesJP #14 新年LT回 で話したこと (Elixir) - Qiita
Elixr:ラムダ計算インタプリタ(2)ーCatch/Throwの使い方ー - Qiita
[書評] プログラミングElixir第2版のインプレッションとアップデート - Qiita
リアルタイムウェブな観点からElixir / Phoenix について - Qiita
Erlang OTP 24.0.1 と Elixir 1.12.0 を asdf でインストールする - Qiita
WSL2でDB付きElixir/Phoenix/Nxを使う最短手順 - Qiita

Ruby

RubyVM::AbstractSyntaxTree::Node 詳細 - Qiita
Ractor超入門 - Qiita
Re: Rails を主戦場としている自分が今後学ぶべき技術について
「Railsは終わった」と言われる理由 - Qiita
Railsの趨勢についてTwitterで話題になっていましたが、このブログの内容に賛成ですか? - Quora
成瀬さんはTwitterを使っています 「取り出す方はその通りだけど、入れる方は、Rails以外のフレームワークってvalidationとかモデルの扱いとか、ぼくらが当たり前に使ってるやつが存在しなくて無限に設定書かないといけなかったりする」 / Twitter
ruruby: RustでつくっているRuby - Qiita
Rustでつくる(つくれるかもしれない)Ruby - Qiita
RubyをCに変換する話 - Qiita
Ruby処理系自作入門 - Qiita
Ruby 2.6 Advent Calendar 2018 - Qiita
サンプルコードでわかる!Ruby 2.6の主な新機能と変更点 - Qiita
Ruby 2.7 Advent Calendar 2019 - Qiita
サンプルコードでわかる!Ruby 2.7の主な新機能と変更点 Part 3 - 新機能と変更点の総まとめ - Qiita
Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 - Qiita
Ruby 3.0 Advent Calendar 2020 - Qiita

JavaScript・TypeScript

NestJS

NestJSのススメ ~Expressを超えてゆけ~ - Qiita
Next.js + NestJS + GraphQLで変化に追従するフロントエンドへ 〜 ショッピングクーポンの事例紹介 - Yahoo! JAPAN Tech Blog
NestJS入門~NestJSの基本構造を理解しよう~
NestJS触ってみたらいい感じだった! | cloud.config Tech Blog
TypeScript のサーバサイドフレームワーク – NestJS と Marble.js で書き比べ | DevelopersIO
NestJS - A progressive Node.js framework
Documentation | NestJS - A progressive Node.js framework
nestjs/nest: A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀
nestjs

TypeScriptの型レベル連結リスト活用術:型を変えられるコンテナを作る - Qiita
Deno触ってみた - Qiita
Denoの登場でNode.jsの時代は終わるのか? - Qiita
7万行のJavascriptコードをTypescriptに移行した話 - Qiita
TypeScript4.1から正式に登場したテンプレートリテラル型について - Qiita
TypeScriptで、class以外の型にinterfaceをimplementsする(型クラスとインスタンスのデザインパターン) - Qiita

Swift

Swiftコンパイラで採用されているパターンマッチの網羅性チェックの理論と実装 - Qiita

Go

Goコンパイラをゼロから作って147日でセルフホストを達成した - Qiita
プログラミング(IT)初心者がgoroutineを理解しようと頑張ってみた。 - Qiita
goroutineとチャネルの動きを図を使って理解する(和訳) - Qiita
goroutineとスレッドの違いって? - Qiita
goroutineのよさを理解するための低レイヤの話 - Qiita

Forth

並列処理対応 Forth 系言語 Paraphrase の 2020 年の開発状況 - Qiita
並列処理対応 Forth 系言語 Paraphrase を作る際に考えたよしなしごと - Qiita

Prolog

ロジバンでPrologプログラミングしてみた! - Qiita
Prolog で簡単に言語を作ってみる方法 - Qiita
Prologによる多相レコード計算の実装(2) - Qiita
アフィン型をPrologで実装してみた - Qiita
世界で一番ピュアな論理型プログラミング言語Hilbert(ヒルベルト)をRubyで作った. - Qiita

Lisp

Lisp系自作言語のx86_64コンパイラを作り始めたときの話 - Qiita
不変性を仮定した、環境をキャプチャしないクロージャ生成アルゴリズムとその問題 - Qiita
[AAAI16実況報告] MIT/CSAIL はCommon Lispを水中探査ロボットAIに実運用している - Qiita
elispのシェバング - Qiita
[Home] Emacs Scripts
JSONでLISPの超循環評価器を定義してみた - Qiita

Haskell

Windows環境でのStackのアンインストール - Qiita
Cats Effect の7つの型クラス - Qiita
Freer Effectsが、だいたいわかった: 12 OpenUnionを型によって安全にする - Qiita
モナド則がちょっと分かった? - Qiita
Haskellの例外処理事情 - Qiita
LLVM の Kaleidoscope を育てながら作る - Qiita
GHCの型レベル自然数を理解する - Qiita
10年間使ってみて見えたHaskellの闇と光 - Qiita

OCaml

OCamlでUninhabited typeを書くいくつかの方法 - Qiita
κeenさんはTwitterを使っています 「この命名方法、コンパイラ書いてるときの「関数の名前」という概念どうしようってときに参考になる OCaml Upcoming Changes 2020: __FUNCTION__ - Qiita https://t.co/2NgaAGnvXF」 / Twitter
OCaml Upcoming Changes 2020: __FUNCTION__ - Qiita
κeenさんはTwitterを使っています 「SMLだと関数を束縛するときに複数の文法がある。 fun name … = … val rec name = fn … =&gt; … val name = fn … =&gt; … val name = let … in fn … =&gt; … end このうちどこまでを「名前のあるfn」として扱っていいか迷ってた。」 / Twitter
構造的部分型と有界量化に関する型推論 - Qiita
subtyping.pdf
「構造的部分型と有界量化に関する型推論」について
再帰的多相バリアントそぞろ歩き - Qiita
OCamlでもLensしたい2020 - Qiita
続・OCamlでもLensしたい2020 - Qiita

2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita
DI って何のためにするのかわからない人向けに頑張って説明してみる - Qiita
プログラマーを惑わせる3種類の委譲(委譲・Delegation/転送・Forwarding/.NET Delegates) - Qiita
デバッグは「うまく動かないピタゴラ装置の原因調査」だと考えてみよう - Qiita
Linuxカーネルにおけるstrn系関数の挙動のまとめ - Qiita
形式言語理論における3つの『密』概念 - Qiita
コンパイラの中間表現いろいろ - Qiita
宣言型プログラミングとは何かをJavaとElmで考えてみる(前編) - Qiita
関数型言語のウソとホント - Qiita
CPS/DS変換 - Qiita
120行で書いた CPS変換/Prolog出力 while言語コンパイラ - Qiita

PDF

Homepage of Kazushige TERUI
五十嵐 淳 (Atsushi IGARASHI)
famc.pdf
module_patterns.pdf
Exception Handling and Classical Logic - PPDP19.pdf
Tronso_35_16.pdf
階層グラフ書換えモデルに基づく統合プログラミング言語LMNtal
Strong normalizability of the non-deterministic catch/throw calculi - ScienceDirect
simple_ml_modules.pdf
LR構文解析の原理
マルチコア時代の最新並列並行技術 Haskellから見える世界 - 141126_2.pdf
情報学広場:情報処理学会電子図書館
配信講義 計算科学技術特論A (2019)(4月11日~7月25日) | 理化学研究所 計算科学研究センター(R-CCS)
整数の不思議(その1) - prog_languages2.pdf
06gun_04hen_07.pdf
名称未設定 - part2.pdf
超限帰納法
超限帰納法 - transfinite-induction-20210725.pdf

Google 検索

二村射影 - Google 検索
多段階計算 - Google 検索
MIMD - Google 検索
double dispatch - Google 検索

スライド

Active Recordから考える次世代のRuby on Railsの方向性 / Directions for the next generation of Ruby on Rails: From the viewpoint of its Active Record - Speaker Deck
Ruby 3 の型解析に向けた計画
関数型言語ElixirのIoTシステム開発への展開
実行時のデータ型の表現手法
Swiftの関数型の実行時表現 - Speaker Deck
fukuoka.rb#202 RustでつくるRuby - Speaker Deck
Java 2021 - Speaker Deck
How to learn Embedded Rust Edition 2021 - Speaker Deck
20210530-meetup-unno - Google スライド
RustでつくるRubyのFiber - Speaker Deck
κeenさんはTwitterを使っています 「Rustのメモリ管理を図示した説明。途中にあるスライドが動く資料って感じで分かりやすい。 🚀 Visualizing memory management in Rust | Technorage https://t.co/Wq9V81YqPs」 / Twitter
🚀 Visualizing memory management in Rust | Technorage
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
テスト自動化 / Test automation - Speaker Deck
TruffleSqueakのnative imageをビルドする - Google スライド
Kmkm プログラミング言語処理系が好きな人の集まり 定期ミートアップ 第5回 2021.07.25 - Google スライド

GitHub

zx

Teppei SatoさんはTwitterを使っています 「UNIX的なシェルコマンド、パイプの強さを活かしつつ、プログラミング部分はJSで書けるっていういいとこ取りのバランスが良い。コンソールのアウトプットもきれいい / “GitHub - google/zx: A tool for writing better scripts” https://t.co/DFhZf07nr1」 / Twitter
google/zx: A tool for writing better scripts
Teppei SatoさんはTwitterを使っています 「チームで使うかっていうとあれだけど、JS系のプロジェクトでちょっとしたビルド系のスクリプト書くときは良さそう。特殊な知識なくても読めるし。npx zx script.mjs ワンコマンドでいけるし」 / Twitter

定理証明支援系

こたつがめさんはTwitterを使っています 「できた。とりあえず、正しくて単純な証明をやらせようとすると動く。 https://t.co/k5eUB8p0Jh」 / Twitter
kotatsugame/proof_assistant
kimiyuki@うさぎ🐇さんはTwitterを使っています 「定理証明支援系を書くの、いいよね」 / Twitter

ein-lang/ein: The functional programming language for scalable development
raviqqe/ssf: Structurally-typed strict functional core language
raviqqe/fmm
nikosai/lambda-friends: Web上で動作するラムダ計算のインタプリタ「らむだフレンズ」
セルフホスト可能なCコンパイラを書く – GitHub 出張所 – プログラム関係のブログはここに
自作コンパイラ基盤の内部構造を書くところ - uint256_t's blog
日刊Coroutines(0) コルーチンのおさらいと近年の動向(若干) - lilyum ensemble
先読み付き正規表現の微分について
ELVM Scratch 3.0 backend | Reinventing Square Wheels - algon's blog
Algebraic EffectsとExtensible Effectsの違いってなんや? 関係あんの? - lilyum ensemble
ML Advent Calendar 2020 20日目
GitHub - miura1729/mruby-meta-circular: mruby by mruby
yuk1ty/learning-systems-programming-in-rust: 「Rustならわかるシステムプログラミング」
ab25cq (DAISUKE MINATO)
maekawatoshiki (uint256_t)
mir/MIR.md at master · vnmakarov/mir
手を動かせばできるLLVMバックエンド チュートリアル
TypeScriptでカリー=ハワード同型対応(?)
aalhour/awesome-compilers: Curated list of awesome resources on Compilers, Interpreters and Runtimes
Alternative names · coq/coq Wiki
kousoz80 ( スーザン・キャルヴィン)
Program Analysis Resources (WIP draft)
hpi-swa/trufflesqueak: A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.
OpeLa Register Assignment · osdev-jp/osdev-jp.github.io Wiki
jonsequitur/dotnet-repl
Standard MLと型生成性
Yosuke FurukawaさんはTwitterを使っています 「最高かよ... Rust のライフタイムと所有権のメカニズムを可視化して見せてくれる本 / “GitHub - rustviz/rustviz: Interactively Visualizing Ownership and Borrowing” https://t.co/0fYBUNJtg6」 / Twitter
rustviz/rustviz: Interactively Visualizing Ownership and Borrowing
ytakano/baremetalisp

Wikipedia

論理

述語論理 - Wikipedia
様相論理 - Wikipedia
古典論理 - Wikipedia
非古典論理 - Wikipedia
様相論理 - Wikipedia
時相論理 - Wikipedia
計算木論理 - Wikipedia
線形時相論理 - Wikipedia
義務論理 - Wikipedia
直観主義論理 - Wikipedia
ゲルハルト・ゲンツェン - Wikipedia
Gerhard Gentzen - Wikipedia
論理記号の一覧 - Wikipedia
Microsoft PowerPoint - HITproplogic.ppt - HITproplogic.pdf

チャーチ=チューリングのテーゼ

チャーチ=チューリングのテーゼ - Wikipedia
Church–Turing thesis - Wikipedia
決定可能性 - Wikipedia
Decidability (logic) - Wikipedia

宣言型プログラミング - Wikipedia
制約プログラミング - Wikipedia
項書き換え - Wikipedia
第五世代コンピュータ - Wikipedia
Guarded Horn Clauses - Wikipedia
KL1 - Wikipedia
Concurrent Prolog - Wikipedia
並行論理プログラミング - Wikipedia
論理プログラミング - Wikipedia
量化 - Wikipedia
存在記号 - Wikipedia
全称記号 - Wikipedia
カリー=ハワード同型対応 - Wikipedia
パースの法則 - Wikipedia
ボトム型 - Wikipedia
垂直記号 - Wikipedia
Haskell/Denotational semantics - Wikibooks
自明性 (数学) - Wikipedia
プロセス計算 - Wikipedia
アクターモデル - Wikipedia
セル・オートマトン - Wikipedia
コラッツの問題 - Wikipedia
決定問題 - Wikipedia
ゲーデルの完全性定理 - Wikipedia
コンパクト性定理 - Wikipedia
コンビネータ論理 - Wikipedia
クワイン (プログラミング) - Wikipedia
値 (情報工学) - Wikipedia
無限降下法 - Wikipedia
数学的帰納法 - Wikipedia
契約プログラミング - Wikipedia
ボイラープレートコード - Wikipedia
ALTQ - Wikipedia
形式科学 - Wikipedia
Formal science - Wikipedia
スペースカデットキーボード - Wikipedia
LISPマシン - Wikipedia
シンボリックス - Wikipedia
Rust (プログラミング言語) - Wikipedia
Rust (programming language) - Wikipedia
Julia (プログラミング言語) - Wikipedia
Julia (programming language) - Wikipedia
TLA+ - Wikipedia

Twitter

users

その他

その他

histric-1

phenanさんはTwitterを使っています 「構文解析で印象深いのは * Adaptive LL(*): 先読みテーブルを実行時に作ればテーブルサイズが発散しないという神の発想。目から鱗だった。 * Valiant parsing: CYK parsing って行列積の冪乗だよねから始まり、最終的には行列積の計算量まで落としてしまう変態アルゴリズム。騙された気持ちになる」 / Twitter
すぱすぱさんはTwitterを使っています 「第一段階できた感 #mercari_intern https://t.co/wXvBj9jOMZ」 / Twitter
わいさわ 澤 良弘さんはTwitterを使っています 「Pythonいいなと思う点は、標準で集合(set)を実装していることかなって最近思う。差集合 {1,2,3} - {3,4} =&gt; {1,2} が数学で使うリテラルと演算子だけで定義されているだけで素晴らしい。そして、適切に使うことで条件式や繰り返しが減るし読みやすい。」 / Twitter
AzubnerさんはTwitterを使っています: 「母からのLINE。 卒論の研究でナンプレを扱っていた私が言えることはこれしかない。 「空いてるマスに変数x₁, x₂,...を対応させて、変数が満たすべき条件から連立方程式を構成し、各方程式の右辺を0としたときの左辺の多項式が生成するイデアルのグレブナー基底を求めればできるよ!」 https://t.co/5ARtN8qoXX」 / Twitter
白山風露@🔴👁️👁️🔴🔴👁️🔴さんはTwitterを使っています 「インターフェイスは継承して良い、データ構造は継承してはいけない、データ構造の継承に相当する処理はデリファレンスで実装しても良い なんだRustじゃん」 / Twitter
ラジオ2さんはTwitterを使っています 「任意の密着空間への写像は自動的に連続写像であり、連続写像は当然写像なので、忘却(位相空間→集合)と密着位相(集合→位相空間)は互いにそれぞれ左随伴と右随伴 https://t.co/a98TeSYaxL」 / Twitter
トデス子'\さんはTwitterを使っています 「TypeScriptの異様なときめきがある型システムがデファクトな選択肢として受け入れられている状況が直感に反するというのはある。ああいうことしてもユーザはついてくるという事実に勇気づけられる」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「純粋関数型言語が並列化に向いてるってのはどこから出てきた話なんだろう?(密結合になりがちなので雑に考えても難しそうなんだけどな)」 / Twitter
水無麻那さんはTwitterを使っています 「Haskell、データ依存でしか実行順序を制御できないわけで、IO アクションとか実行順序を明示的に制御したくなると困るわけだが、そこで phantom data の State 使ってデータ依存入れたら実行順序制御できるやんってなるの、何度見ても賢いなあってなる」 / Twitter
Hiroki FukagawaさんはTwitterを使っています 「数学を知っていると、数学に悩まないので、何かを勉強する時に障害が少ないってことかな。それと、それぞれの領域には、それぞれの考え方があり、数学にならない部分がある。それをそれとして学べることが重要で、定義がどうのこうのとか言っているようではダメ。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「わかる。数学にならない部分があるかどうかは証明できないので、数学になってない部分、かな(すぐに数学っぽくしたがる、だめ)」 / Twitter
mumumuさんはTwitterを使っています 「Lightweight Preemptible Functions [OSDI '20] Thread等より軽量に厳密なTimeout処理を実行できるように,Preemptible(Promiseのようにcooperativeではない)なユーザランドのライブラリを実装.launch/resume/cancelがIF.実はプ言語に詳しくなくて,十分理解できていないので,今度再挑戦したいわね」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t Elixirはtry catchよりも戻り値で:ok, :errorを返すか,プロセスごと落として再起動するという方針です。」 / Twitter
エヌユルさんはTwitterを使っています 「MLのことは知らないけどHaskellでトップレベルに型書かなくてもHaddockでドキュメントにした時には推論した型を出すから矛盾してないと思うよ まあ普通警告されるからGHCの提出する型を問題なさ… 続きは質問箱へ #Peing #質問箱 https://t.co/GMg2WmtgcN」 / Twitter
OSSタダ乗りおじさんさんはTwitterを使っています 「プログラミングやってて思うのは、すべてを副作用ありのStateと捉えてる人と、不変性を基礎においてる人の溝が大きすぎる」 / Twitter
弩.netさんはTwitterを使っています 「@mizchi 僕も似たようなことを感じることがあります。 やりたいことを処理の流れでとらえる人と、瞬間瞬間を切り出してとらえる人がいるようです。 脳内で動画を再生しているのか四コマを再生しているのかの違いといえるかもしれません。」 / Twitter
入田 関太郎(らむだ ふぁんたろう)さんはTwitterを使っています 「抽象化手法、継承とかミックスインとかインターフェースとか構造的部分型とか沢山あるけど、結局型クラス(Rustでいうトレイト)だけで良かったんだっていろんな言語を触って思うなどしている。 3年したら変わるかもしれないけど今はこれが一番だなー」 / Twitter
kaorutさんはTwitterを使っています 「かつて情報系学徒だったので、さまざまなプログラミングパラダイムが存在するのは承知しているけど、でも結局は最も低い層で機械語の「命令」を逐次実行しているだけやん・・・とも思ってしまう。」 / Twitter
Kazuki MoriyamaさんはTwitterを使っています 「Applicative Functor(2008)やExtensible Effects(2015)は関数型の近年の発展と言っていいのでは」 / Twitter
Kohei SuenagaさんはTwitterを使っています 「数学的ゾンビ:定義とステートメントが与えられると証明支援系を動かして証明はできるが,これらのお気持ちは分からない者のこと.」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「C++から半年ぐらい離れてErlangをやっている。いつ戻ってこれるかな。とりあえずC++にはネイティブtupleリテラルとパターンマッチがほしい。」 / Twitter
ICHIRO SATOHさんはTwitterを使っています 「pi-calculus自体は同期通信ですが、メッセージをプロセスでモデル化すると非同期メッセージも書けます。ただpi-calculus自体は副作用あります。基本的に名前渡し通信というのはポインタと同じなので。@ashigeru 同期やメッセージング関係を直感的に書けると言うのは…」 / Twitter
nemさんはTwitterを使っています 「数学書読んでてCoqで形式化したいときに集合論を自分で形式化していないと不便なので今日から夜は松坂集合位相を形式化をしていきたい。」 / Twitter
retrageさんはTwitterを使っています 「Rust、Cほどではないにしろstructとかがどう配置されるか想像しやすいし、値の参照とコピーが明示的なのでどこでコピーがされるかがわかるのでやっぱりシステムプログラミングに向いている」 / Twitter
7594591200220899443さんはTwitterを使っています 「Rubyではまさにその処理の名前が決まらずに4年くらいも名前で揉めた結果ごくごく最近になってtallyという名前で採用者された https://t.co/i8PC7V13xl」 / Twitter
高卒工員プログラマーさんはTwitterを使っています 「数学の弊害は数式の記述法と10進数かな もし数式が16進数逆ポーランド記述だったら数式=操作だからプログラム言語の制御構造と数式の違和感がなくなったという妄想。」 / Twitter
ぽんこつさんはTwitterを使っています 「再帰が問題なのは読みづらいではなく末尾最適化されなかったときに、意図せずStackOverflowする可能性がある方で、そこでScalaのtailrecでコンパイラに末尾最適化を保証させる手法が(単なるScalaのステマ」 / Twitter
mr-csceさんはTwitterを使っています 「偶にPrivateの関数をテストしたい時があるけど(テストがないコードのリファクタリング中に、ある関数の振る舞いを変えていないか確認したいなど)、Clojureなら#'付けるだけで良いのでこれもちょうどいい感じ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「.@EzoeRyou 氏がJulia民の逆鱗に触れておるgkbr (Juliaは数学・数値計算方面が大ユーザなので添え字の下限が 0 じゃなくて 1 の方が自然」 / Twitter

histric-2

tabasconianさんはTwitterを使っています 「oO(以前社内で使った形式仕様記述についての資料の焼き直しを晒しておこう・・・ https://t.co/7whT8Y21iU)」 / Twitter
yksym.github.io/memo.md at master · yksym/yksym.github.io
29さんはTwitterを使っています 「Promiseについて、端的な解説をみつけた。 https://t.co/jwm29dvU5R https://t.co/byS58dc6GE」 / Twitter
Promiseを使う - JavaScript | MDN
yutakang_jpさんはTwitterを使っています 「帰納法の自動化についての論文をTACAS2021へ提出しました。原稿はarXivで入手可能です。大雑把に説明すると、FMCAD2020で発表したソフトウェアと比べ、精度を90%向上させつつ、しかも計算に必要な時間が62%短縮できました。https://t.co/VMwi96gngJ https://t.co/IRvqUGIXME」 / Twitter
[2009.09215] Faster Smarter Induction in Isabelle/HOL
msyksphinz_devさんはTwitterを使っています 「除算が乗算に置き換わる話、LLVMを勉強したときに出てきた。b%12をllcが 0x2AAAAAABの乗算とシフト演算に置き換えたときは本当に頭が狂いそうになった。https://t.co/C0WeVzHRYS」 / Twitter
Arithmetic and logic instructions — Tutorial: Creating an LLVM Backend for the Cpu0 Architecture
fumieval/urgeopts: getopts (shell) replacement
ふみ(𓆑𓅱 𓅓𓏭𓇌𓅱𓄿𓂋)さんはTwitterを使っています 「コマンドラインオプションの定義をYAML形式で読み込んで与えられた引数をパースし、シェルスクリプト向けにevalできる形で出力する、単体で動作するclapのラッパーを作った(要するに超豪華なgetopts) https://t.co/POoZ8bP1UP #Rust https://t.co/Odg4tW2hRd」 / Twitter
kinabaさんはTwitterを使っています 「https://t.co/0NWgVox1bo λ計算の式を、値のレベルでなく型をとって型を返す的な型レベルの計算だと抽象解釈的に無理矢理解釈しちゃって最後まで計算できたら型チェック完了!!ってするスタイルと、普通のλの型システムとの等価性証明を、既知のプログラム変換7つに分解して完全理解する論文結構好き」 / Twitter
type-reduction-ipl12.pdf
o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「PFDS 5.2 章の刹那的純粋関数的キューを Haskell で GHC の線形型を使って実装してみた。値を複数回使うと償却計算量 O(1) が成立しなくなるので、線形型を使ってそれをできなくできたはず。 https://t.co/kNeIYgcMoX https://t.co/AfiP1u18k1」 / Twitter
ephemeral-linear-data/Ephemeral.hs at 998b768f27560fc1134685b14726de855c568465 · kakkun61/ephemeral-linear-data
ガラスボーさんはTwitterを使っています 「Rustが本当にメモリ安全性を高めているのかをCVEから分析するという論文。ちゃんとした会議に出したものではないっぽいけど、おもしろそう https://t.co/IhrfDkGc1J」 / Twitter
[2003.03296] Memory-Safety Challenge Considered Solved? An In-Depth Study with All Rust CVEs
mugiさんはTwitterを使っています 「自分が使いたくてRBSからTypeScriptの型定義に変換するgemを作ってるんだけど、超基本的な変換はできるようになった https://t.co/zdbfowngDo https://t.co/iIPu7YGn0C」 / Twitter
rbs2ts | RubyGems.org | コミュニティのGemホスティングサービス
艮 鮟鱇/うしとら あんこうさんはTwitterを使っています 「そういやLLVMバックエンドのチュートリアル記事を書く書くいいながら1ミリも書いていませんが、卒論が終わったらLLVM 11に対応させて書く計画があります。あとLLVM 9時代の下書きはすでに公開してあります。 https://t.co/y3eRf4w0kW」 / Twitter
ushitora-anqou/write-your-llvm-backend: 手を動かせばできるLLVMバックエンド チュートリアル(WIP)
akiraさんはTwitterを使っています 「ニューラルネットワーク(NN)は確率的にモデルのフィッティングを行うが、決定木系は決定論的にフィッティングを行う。画像のように0/1で表現できないものや自然言語のように曖昧で例外が多いものはNNが強いが、多くの事象はYes/Noで処理できるため決定木系が強い、と提議 https://t.co/P9c9odkGxA」 / Twitter
When and Why Tree-Based Models (Often) Outperform Neural Networks | by Andre Ye | Towards Data Science
α改さんはTwitterを使っています 「setjmp/longjmpでユーザーコンテキストを切り替えるのうまく行かなかったけど、ucontext_tと{get,make,swap}contextをつかったらうまいこと実現できた。 https://t.co/LFy8OTWfGV」 / Twitter
context switching using ucontext_t and context family functions
ruichiさんはTwitterを使っています 「“borrowシステムはその性質上、あるvが関数fによってborrowされていたら、fが処理を終えるまでvを保持しないといけない。そのため、tail-call eliminationができない” へえ / “HaskellのLinearTypes言語拡張について少し調べた - TSUGULOG” https://t.co/YZwUwg0dro」 / Twitter
HaskellのLinearTypes言語拡張について少し調べた - TSUGULOG
GHCの線形型プロトタイプを試すだけ - syocy’s diary
城戸 (Legalscape)さんはTwitterを使っています 「厳格に法を記述できるプログラミング言語を作った研究。F*を使った証明付きで、実際にフランスの税法関連のソフトウェアに法と食い違いがあるバグを発見できた。著者らはINRIAとMSR。 "[2103.03198] Catala: A Programming Language for the Law - https://t.co/gEZV4hZd7N" #みてる https://t.co/QZpzt9azqN」 / Twitter
[2103.03198] Catala: A Programming Language for the Law
ノーンさんはTwitterを使っています 「完全に決定論的に意識を計算できたら、 - 初期値を宣言する - 時間発展を宣言する であとは数学的帰納法によって、意識が任意の時間計算されたことになるので、宇宙の熱的死を回避(?)することができる。(イーガンの塵理論)」 / Twitter

入田 関太郎(らむだ ふぁんたろう)さんはTwitterを使っています 「オブジェクト指向はモジュール設計ぐらいにしか思ってないし、関数型はイミュータブルプログラミングぐらいにしか思ってないので人生がめっちゃ楽」 / Twitter
みんな大好き🐐ヤギのさくらちゃん🎯さんはTwitterを使っています 「@lambda_funtaro 一方は巨視的な設計手法で、もう一方は局所的な要素技術なのに、なぜか両立できないと思ってる人が多いですよね」 / Twitter

@qnighy

Masaki HaraさんはTwitterを使っています 「システムの正しさを還元主義的な部分と量的な部分に分けるという見方は重要そう。たとえばループなら不変条件とループ変量の2つの道具に分けられる。量的な問題として他にわかりやすいのはメモリリソース(スタックを使い切らないこと、ヒープを使い切らないこと)」 / Twitter
Masaki HaraさんはTwitterを使っています 「前者は余帰納的な証明、後者は帰納的な証明と対応してるとか考えられそう。」 / Twitter
Masaki HaraさんはTwitterを使っています 「RustコンパイラはそもそもノードにID振ってHashMap&lt;NodeId, RefCell&lt;SomethingResolved&gt;&gt; みたいなmapをそこかしこに持つという構造になっていて、構文木を純粋データとして扱う気がさらさらない感じでやっている」 / Twitter
Masaki HaraさんはTwitterを使っています 「なので、型推論とかでも制約作る段階でNodeIdに型変数のID紐付けといてあとで全部展開みたいな感じでできるはず」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「Rustのジェネリクスの文法 struct Point&lt;T&gt; { x: T, y: T, } let point = Point::&lt;i32&gt;{x:1, y:2}; なんでPoint&lt;i32&gt;じゃなくてPoint::&lt;i32&gt;ていう気持ち悪い感じになってるの?」 / Twitter
Hoshi NyanさんはTwitterを使っています 「@uchan_nos https://t.co/B76t5Jgc3i (f&lt;t,u&gt;(a))みたいなケースで曖昧になっちゃうから、らしいです」 / Twitter
Rustのturbofishを理解する | κeenのHappy Hacκing Blog
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@takoeight0821 @uint256_t さんからもその記事を教えてもらいました。(f&lt;t,u&gt;(a))は、2つのboolを持つタプル型なのか、t,uという型で具体化したジェネリック関数fの呼び出しなのかが分からないということですよね。ただ、fが値なら前者、型名か関数なら後者、と確定するような気がしますが。」 / Twitter
Hoshi NyanさんはTwitterを使っています 「@uchan_nos @uint256_t その通りです。ただ、それを許すと、意味解析をするまでASTが確定しないので、パーサを書くのがとても大変になります(実際、C++のパーサはかなり大変なことになってるはずです) このスレッドが参考になるかも:https://t.co/XiaSZgvsq5」 / Twitter
Turbofish operator `::<>`, why is it ambiguous? - help - The Rust Programming Language Forum
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@nishio 先読みが面倒というのはその通りだと思うのですが、しかしRustは関数を定義する前に使うのが合法なので、結局先読みしてるんですよね。」 / Twitter
Masaki HaraさんはTwitterを使っています 「「関数を定義するより前に使える」は2パスというだけで構文的な先読みではないからなあ」 / Twitter
Masaki HaraさんはTwitterを使っています 「あと曖昧な例として ( A &lt; B , C &gt; ( D ) ) が知られている」 / Twitter
Masaki HaraさんはTwitterを使っています 「コンパイラのアーキテクチャの話ってこういう「なぜ◯◯を実装しないのか」の理解に結構ダイレクトに役に立つんだなあ」 / Twitter
Masaki HaraさんはTwitterを使っています 「実例ベースだとC++とかいう力技の塊によって誤解を生んでしまうという……」 / Twitter
🍣さんはTwitterを使っています 「これ、逆にTypeScriptとかはなんでターボフィッシュなしでパースできてるんだよと思うようになった(実際めっちゃ大変そう)」 / Twitter
Masaki HaraさんはTwitterを使っています 「少し前にTypeScriptのBNF書こうとしたときにあの辺りが行きあたりばったりすぎて、宣言的に条件を書くのは厳しいなと思った」 / Twitter
Masaki HaraさんはTwitterを使っています 「これも出てくる例は同じで ( A &lt; B , C &gt; ( D ) ) やその亜種なんですが、ジェネリクスを持つことと比較演算の対象になることが両立することはほぼないので実際に動く曖昧なコードを構成するのは難しそうだなと思った」 / Twitter
Masaki HaraさんはTwitterを使っています 「修正って言ったけど「TSがJSの上位互換になっていない」ことが修正されたわけではない」 / Twitter
Masaki HaraさんはTwitterを使っています 「Rustコンパイラの &lt;&lt;, &gt;&gt;, &amp;&amp;, || などの分割処理はアドホックだけど、確かproc-macroのAPIでは独立したトークンにしておいて空白情報を保持するようになってたような記憶がある (これで貪欲な字句解析の振る舞いを再現するの大変そうだけどどうしてるんだろう)」 / Twitter
Masaki HaraさんはTwitterを使っています 「あの辺りは実際厳密にはJSの上位互換になっていない点があって、最近のTypeScriptで修正がありましたね (.js のときはJSのルールに忠実にパースする)」 / Twitter
Masaki HaraさんはTwitterを使っています 「https://t.co/pyO3cTPaQo」 / Twitter
Announcing TypeScript 4.2 | TypeScript
Masaki HaraさんはTwitterを使っています 「パーサーの先読み云々というのは実装の複雑性よりは仕様の複雑性の話だと思っていて、仕様を複雑化することのメリットよりも単純に保つメリットを取るという設計判断に対して無能って言ってしまうのは理解不足だと思う」 / Twitter
Masaki HaraさんはTwitterを使っています 「普通は「常に f&lt;T&gt; のほうが単純じゃない?」ってなりそうだけど、それで単純になるのはユーザーマニュアルであって仕様ではない。もちろんユーザーマニュアルが単純であるに越したことはないけどそこにはトレードオフがある」 / Twitter
Masaki HaraさんはTwitterを使っています 「少なくともRustの場合、ユーザーにより親切なエラーメッセージを出すために実装上は先読みをしていたと記憶している。これなら言語仕様の複雑性には影響しないので。」 / Twitter
kinabaさんはTwitterを使っています 「これはまあその通りだと思うんだけど、しかし人類の総体として考えてみると。自然にこうあって欲しいと思うような文法を定めると仕様が複雑になってしまうのは、現在の人類の持つ文法や構文解析記述のパラダイム(CFGとか)の無能感がすごいと思わなくはない。」 / Twitter
kinabaさんはTwitterを使っています 「形式的な記述言語(プログラミング言語とか)を人類に作らせると、なんかゆるく木構造を作りつつ、その木の親子構造に沿って宣言とか属性とかを伝搬させつつ、木の末端近くではその属性とかを大いに使って多少複雑な記述をする、みたいなものが自然と発生しがちなのであるが、」 / Twitter
kinabaさんはTwitterを使っています 「チョムスキーとかがいわゆる"""自然言語"""を分析したみたいに、"人類が設計しがち言語"をちゃんと分析して統一した理論にするみたいな話」 / Twitter
yukiさんはTwitterを使っています 「Turbofishはrustcのtestのところに物語が書いてあって面白いです。その名もBastion of the Turbofish(Turbofishの砦)。ある人が::&lt;&gt;を&lt;&gt;にしようとしたけど、結局こてんぱんにされてPRを閉じたので、後世の人が同じ過ちをしないように書いた、みたいな感じらしい(?) https://t.co/w5iXSekbVa」 / Twitter
rust/bastion-of-the-turbofish.rs at master · rust-lang/rust
FadisさんはTwitterを使っています 「テンプレート引数のカッコに&lt;&gt;を使うと演算子かどうか判断するのが難しくなる問題の解決に真面目に取り組んだD言語のことを覚えている人は居るだろうか」 / Twitter

@takoeight0821

Hoshi NyanさんはTwitterを使っています 「カリー化された関数や型は、あまり変わらない引数を前に、よく変わる引数を後ろにすると便利」 / Twitter
Hoshi NyanさんはTwitterを使っています 「カリー化されてないなら逆の方が直感的」 / Twitter
Hoshi NyanさんはTwitterを使っています 「でもprintfとかは前者だしな…」 / Twitter
Hoshi NyanさんはTwitterを使っています 「Q:なぜ? A:部分適用を多用するから」 / Twitter

@__pandaman64__

2020

2020-11-20

井山梃子歴史館さんはTwitterを使っています 「今回はMLスタイルの関数適用をバックトラック無しで書くことに成功したのでパーサが完全にpredictiveかつ線型時間になりました」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Rust Analyzerのinlay hints(型推論結果が見えるやつ)のフォントが小さく見やすくなってキュートだね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「こんな感じで変数の型とか引数名が分かる.メソッドチェインの途中型も分かったりする https://t.co/lF9lGKTeXM」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「こういう表示があれば型推論の問題とかキーワード引数欲しい!というのも低減されるよね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「https://t.co/OFHgCq7GTy」 / Twitter
pratt/lib.rs at 80e9bd67295602da91489ec18ddd34815ba442fb · pandaman64/pratt
井山梃子歴史館さんはTwitterを使っています 「空白の扱いでLL(2)かな」 / Twitter

2020-11-26

井山梃子歴史館さんはTwitterを使っています 「パーサのイベントとしてalternateイベントを吐く」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「パーサコンビネータのalt, とりあえず全部動かしきってからエラーの度合いでどれ選ぶか選択すればいいな」 / Twitter

2020-12-06

井山梃子歴史館さんはTwitterを使っています 「JITパーサコンビネーター発明してしまったかもしれん」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「これ筑波で研究してるやつっぽいな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「https://t.co/YMJdWEyLaM これかもしれん」 / Twitter
ry08-4.pdf

2020-12-18

井山梃子歴史館さんはTwitterを使っています 「証明はテストを代替できないね」 / Twitter
ノーンさんはTwitterを使っています 「@__pandaman64__ やっぱり実行時エラーの可能性ですか?」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@nkowne63 間違っている可能性が高いものに証明を与えるのはムズい 実用的にも重めのlinterぐらい(アノテーション無し、健全でなくてもok)じゃないとなあ」 / Twitter
ノーンさんはTwitterを使っています 「@__pandaman64__ 確かに、何でも証明できるほど人類は賢くないですもんね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「proptestか精々モデル検査ぐらいじゃない?」 / Twitter
proptest - Google 検索

2020-12-22

井山梃子歴史館さんはTwitterを使っています 「型システムとか実はいかに「ゆるい」かが重要なんじゃないかと最近思っている」 / Twitter

2020-12-23

井山梃子歴史館さんはTwitterを使っています 「参照カウンタを全く使わないBoxの方がRc/Arcよりも使われている Box: https://t.co/MlHhR5L0ib Rc + Arc: https://t.co/sZELuSyx2t」 / Twitter
YutakaAokiさんはTwitterを使っています 「@a4lg Heapから確保するメモリーの自動解放は、Rustでは参照カウンタで行っているだけで、所有権は余り役立っていません。所有権や(Rust独自の)ライフタイムなど、Rust独自の機構が役立っているのはローカルオート変数の参照型の危険防止にほぼ限定されていると私は思っています。」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「所有権システムは決定的なリソース確保・開放を提供する(PythonのwithやC#のusingを見よ) メモリに対して所有権を考えることによってGCレスのメモリ管理が可能となるので,所有権がGCを取り除くための重要なコンポーネントであるとはいえるだろう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「参照のライフタイム解析と可変・不変参照のエイリアス制限を組み合わせることによってデータレースおよびイテレータ無効化といった難しい問題(JavaやGoでは扱えていない)を解決しているという点も忘れてはならない」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「VecやStringも当然参照カウンタ(部分的な所有権)を使わずにメモリの自動解放を実現しており,Rustにおいて主要な部分は単一の所有権に基づいている」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ここでの話題はunique_ptrとshared_ptrのどっちがメジャーなのか(そしてC++ではshared_ptrの方が良く使われていることも多いでしょう)(C++の参照は弱いからね)なので」 / Twitter

2021

2021-01-01

井山梃子歴史館さんはTwitterを使っています 「Linear Haskellでin-placeな変更?ができてるっぽいのどういう理屈なのかきになる」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「RGAやCausal Tree, GHCに導入されたCompact Normal Formっぽいな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Linear Haskell論文にLinear functionでmutationをやる話があるっぽい」 / Twitter

2021-01-02

井山梃子歴史館さんはTwitterを使っています 「Isabelleのwf, inductionで直に定義されてるな」 / Twitter

2021-01-08

井山梃子歴史館さんはTwitterを使っています 「プログラミング言語の設計はトレードオフの集まりなので,デザインパターンは言語の欠点というよりも相補的な存在と捉えるのが良いと思うな. 例えばRustはxxx()とxxx_mut()の両方を実装する「パターン」を要求するけどこれも型システムをシンプルにして推論をtractableにするという利点もあるわけで」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「それはそれとして優れていることが知られてる言語設計(代数的データ型の採用とか)入れろや!!!となるのも最もとは思う」 / Twitter

2021-01-24

井山梃子歴史館さんはTwitterを使っています 「証明ではなくrefinementはいかが」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「開発コミュニティがデカくてモダンな環境の方がええ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「LeanかCoqやっとけ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「反例チェッカがとりあえず食い違うケースだけ探索するとか面白そう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ちなみに定理証明支援系(あとPony)では1/0=0だけどそれは利便性のためで人間の数学とは関係ないからね https://t.co/JzwzKbhBAx」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Irisには複製できる命題あったな」 / Twitter

井山梃子歴史館さんはTwitterを使っています 「機械学習ってやつで証明の「惜しさ」みたいのがわかんないかな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ポインタに対する様々な操作(キャスト,オフセット)を許容したまま最適化と組み合わせるとコーナーケースで爆発するのじゃ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「反証可能性は科学理論の必要条件でも十分条件でも無いよ(よさを見積もる指標ではある)」 / Twitter

井山梃子歴史館さんはTwitterを使っています 「「機能が正しいこと」のwitnessってどんなものなんだろう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「今日のIsabelle: definitionの等号がイコール2つ(==)を使うべき.イコール1つ(=)だとなぜか型がboolに推論されて物故割れる」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「簡約がいつまで経っても終わらない…STLCは停止性が証明されてるはずでは…?」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「定式化に対するロックインなる概念,初めて目にした」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Thus we are led to conclude that, although everything mathematical is formalisable, it is nevertheless impossible to formalise all of mathematics in a single formal system, a fact that intuitionism has asserted all along. とのこと」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「妄想が止まらなくて本業に支障をきたすので封印です https://t.co/c21ocd1wYR」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ぜひ作ってみてね ぼくがやるならまずRacketと継続触るとことからかなあ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「vtableとfat pointer, あとdirectory passingとかか?」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Dictionary」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「手書きパーサでML-style function application(f x)をパースするときの王道って何なのか気になる 今は式パースしたあともう一回式パースしてみて駄目だったらバックトラックしてる」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「MinCamlは引数に来れる式の形を制限してた」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「webml/parser.rs at master · KeenS/webml https://t.co/KFl2JLAPed やっぱ手モナに回帰するのか…」 / Twitter
webml/parser.rs at master · KeenS/webml
井山梃子歴史館さんはTwitterを使っています 「Intrusive list(という名前)広く知られてないんだなあ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「ところで正則性が成り立つ、って証明はどこにもないよね やっぱ論理学における実験と定式化のプロセス学んでから、機械学習の研究した方がいいんじゃないの?という気がしてならない」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「論理体系を考えるの一種の実験科学だと思ってるからね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「いやーバックトラックが必要ならもうLRに逃げちゃおかな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Haskellのundefinedはある意味矛盾を導入してるけどIsabelle/HOLのundefinedは無矛盾なの面白いな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「GCがない言語ではasync/awaitはただの糖衣構文以上の意味を持つのじゃ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「コンパイルエラーをチャンネルで集めてるのはエラーが発生しても中断したくないからじゃないかなあ(エラーは一度に出てほしいので) https://t.co/hH2pfry7cp」 / Twitter
Go コンパイラのコードを読んでみよう | ebiebievidence.com
井山梃子歴史館さんはTwitterを使っています 「関数を返す関数の階数が高くなるとカリー化と組み合わせたときにill-definedにならない? 例: int -&gt; int -&gt; intの階数は1っぽいがint -&gt; (int -&gt; int)の階数が2になる」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「カリー化しない言語ならいいが…」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「今でも判然としないな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「まあでもβ簡約でも保たれないしな」 / Twitter

@yhara

yhara (Yutaka HARA)さんはTwitterを使っています 「バックエンドはRubyでフロントはTypeScriptだけど、データの型はどっちから触る場合も同じなので共通のチェックをしたい。ということですね。なるほどなあ。」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「@tenpoku1000 そうですね、それがやりたいんですが、種類別にスタックを分けてしまったのでできなくなったなあという話でした。経緯→ https://t.co/SoFaN932M6 別の書き方をするとスタック分けなくて済みそうなのでちょっと試してみます。」 / Twitter
a.md
yhara (Yutaka HARA)さんはTwitterを使っています 「Rust、こんなに書き換えに厳しいのに、structの要素が全部書き換え可能なのはなんでなんだろう?ここも「mut付けない限りreadonly」で良かったんじゃないか。」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「・モナドを実装するには高階多相(かそれに代わるもの)が要る ・F#のコンピュテーション式ではモナドを実装できるらしい ということはF#には高階多相がある?と思ったんですが、どうやら無いっぽいんだよな。どうなってるんだろう。」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「Crystalがクロージャに対応するllvm funcの名前に「どのメソッドにあったか」みたいな情報を含めてるの、ふーんと思って見てたけど、含めないとデバッグの時に泣くことがわかったので #shiika もそうした https://t.co/unfQoowYSC」 / Twitter

@nalsh

成瀬さんはTwitterを使っています 「アランケイの「オブジェクト指向」は現代でいう「マイクロサービス」のこと定期」 / Twitter
みょうがさんはTwitterを使っています 「@nalsh アクターは?」 / Twitter
成瀬さんはTwitterを使っています 「@mrkn 確かにアクターと言ってもよいですね」 / Twitter
成瀬さんはTwitterを使っています 「オブジェクト指向プログラミング言語も「オブジェクト指向」の後に出来ているので、逆かはあんまり論点じゃなくて、アランケイの「オブジェクト指向」に合致するものは何かという問いに対して、マイクロサービスやアクターは該当するけど、OOPのオブジェクトは違うよねというおはなし」 / Twitter
天重誠二さんはTwitterを使っています 「「Smalltalkのオブジェクトはコンピュータの可能性全体の再帰」といっているので、彼の考える "Object" というのはコンピューティングリソースをメモリやらCPUやらに分解しないで「コンピュータ」という形に統合したときの全体性とその可能性のことを指している https://t.co/AgU5MlkAc1」 / Twitter
The Early History Of Smalltalk
天重誠二さんはTwitterを使っています 「&gt; Instead of dividing "computer stuff" into things each less strong than the whole—like data structures, procedures, and functions which are the usual paraphernalia of programming languages—each Smalltalk object is a recursion on the entire possibilities of the computer.」 / Twitter
天重誠二さんはTwitterを使っています 「このあたりの発言とマクルーハンからの影響などを考えたときに、彼の考えるコンピュータとは他のメディアをシミュレートするようなメタメディウムであり(これが「コンピュータの可能性全体」)、これに観念としてつけられた名前こそが"Object"だとおもう。」 / Twitter
天重誠二さんはTwitterを使っています 「メタ・メディウム特性をもった"Object"はおそらくコンピュータ以外にもいくつか考えることができ、それが彼のたとえで出てくる「細胞」であるとか「レゴブロック」であるとかだろう。このあたりが「オブジェクト指向」という観念の形成に影響しているだろうことはわかる。」 / Twitter

@bd_gfngfn

画力・博士号さんはTwitterを使っています 「OCamlのように高級に書く “モード” もあるしRustのように安全性を保証されて低級に書く “モード” もあるような計算機言語が創りたいような気もしてきた」 / Twitter
画力・博士号さんはTwitterを使っています 「モジュールごとに高級か低級かのモードが選べて,高級側から低級側を見るとインターフェイスとしては所有権など低級側の実装の都合による註釈が漏れていないことが保証されるような言語のイメージ」 / Twitter
Jun InoueさんはTwitterを使っています 「モジュール単位で切り替えだと、単にFFIが便利な二つの言語を使う感じになってしまいそうな気がする。 Staging的なインターフェースで低級層のメタプロを高級層からできるとすごく便利そう」 / Twitter
画力・博士号さんはTwitterを使っています 「ああーなるほど,やはり多段階計算最強伝説」 / Twitter
Jun InoueさんはTwitterを使っています 「@bd_gfngfn 結構挑戦した人はいるけど、大体中途半端で終わっちゃってます。あんまよく知らないけど、 二階層とも違う言語(heterogeneous staging)→型設計・FFI的部分の設計が大変+学習曲線が鬼畜に 二階層とも同じ言語(homogeneous staging)→被生成コードが低級層に上手くマッピングしない みたいです」 / Twitter
画力・博士号さんはTwitterを使っています 「@jun0inoue 情報ありがとうございます,現実的に使いやすい言語になるか以前に理論的にも型システムの「FFI的部分の設計」はかなり手間を要しそうだなと想像します」 / Twitter
Jun InoueさんはTwitterを使っています 「@bd_gfngfn そうですね。大体みんなEDSLにするような方向に進むんですけど(例: ETHのlightweight modular staging)、Haskellのモナドプログラミングみたいな煩雑さがつきまとってしまって、どうも上手くない。」 / Twitter
画力・博士号さんはTwitterを使っています 「OCamlでも低級に書く手段があることは把握しているけれども,あまり本格的に使ったことがないので “安全” なのかについては個人的に知見が足りてない」 / Twitter
画力・博士号さんはTwitterを使っています 「“複数の目的意識の言語が混合できる” 体系,少し前にこういうのを見つけていたんだった(まだ途中までしか読んでない): FabULous interoperability for ML and a linear language [Scherer, New, Rioux &amp; Ahmed 2018] https://t.co/XDVC3FKdBO」 / Twitter
[1707.04984] FabULous Interoperability for ML and a Linear Language
κeenさんはTwitterを使っています 「低級と高級を使い分ける話だとCommon Lisp最強ってずっと言ってる(gotoがある)(マクロでラップしてloop式とか提供できる)。安全かどうかは君の目で確かめてくれ!」 / Twitter
Miura HidekiさんはTwitterを使っています 「私も、「低級と高級を使い分ける話だとCommon Lisp最強」だと思うけど、その理由はコンパイラマクロとMOPだと思っている」 / Twitter

@blackenedgold

κeenさんはTwitterを使っています 「Rustで型レベルペアノ数からの証明。そうか、const proof: Type1 = Option::&lt;Type2&gt;::None;で Type1 == Type2が表現できるんだ。 Proving that 1 + 1 = 2 in Rust https://t.co/orBRi4KywG」 / Twitter
Proving that 1 + 1 = 2 in Rust
κeenさんはTwitterを使っています 「ん、違う。 const proof: Option&lt;Type1&gt; = ...だ。」 / Twitter
κeenさんはTwitterを使っています 「継続的にRustコンパイラを高速化してそのレポートブログを書いてきたNicholas Nethercote氏がMozillaの体制変更でブログを書く時間がとれなくなるからと、いままでの総括を書いてる。 How to speed up the Rust compiler one last time – Nicholas Nethercote https://t.co/pbs3CzbyFT」 / Twitter
How to speed up the Rust compiler one last time – Nicholas Nethercote
κeenさんはTwitterを使っています 「どのツールを使ってどういう変更をしたかとかのコンパイラに限らない高速化一般の知見がまとまってるのですごく参考になる」 / Twitter
κeenさんはTwitterを使っています 「propertyテストの表明をそのままsymbolic executionエンジンに食わせて証明できるよねって話。こういうのやってる人いるんだ。symbolic executionエンジンはLLVMのSEエンジンのKLEE。 Rust testing or verifying: Why not both? – Alastair Reid – Researcher at Google https://t.co/BzQgfwNeYa」 / Twitter
Rust testing or verifying: Why not both? – Alastair Reid – Researcher at Google
κeenさんはTwitterを使っています 「&gt; 興味を持った方はぜひこの命題の逆「(¬a)∧(¬b)⟹¬(a∨b)(¬a)∧(¬b)⟹¬(a∨b)」を証明してみてください。 鬼かな? Idris で理解するカリー・ハワード対応 - Qiita https://t.co/BMDHYxuU4Z」 / Twitter
Idris で理解するカリー・ハワード対応 - Qiita
κeenさんはTwitterを使っています 「排中律を仮定すれば em: {a: Type} -&gt; Either a (a -&gt; Void) em = assert_unreachable」 / Twitter
κeenさんはTwitterを使っています 「証明できる deMorganAnd : {a, b: Type} -&gt; ((a, b) -&gt; Void) -&gt; Either (a -&gt; Void) (b -&gt; Void) deMorganAnd {a} {b} h = case (em {a = a}, em {a = b}) of (Left pa , Left pb) =&gt; void $ h (pa, pb) (Right pa, _) =&gt; Left pa (_ , Right pb) =&gt; Right pb」 / Twitter
κeenさんはTwitterを使っています 「ブログ書いてるときのκeen「依存型使うと誤りがないことを保証できるんですよ、便利でしょう」 コード書いてるときのκeen「なんでベクタを操作したいだけなのに証明書かなきゃいけないの!」」 / Twitter
κeenさんはTwitterを使っています 「あー、plus n (minus m n) = mって成り立たないのか(m &lt; nのときminus m n = 0で定義されているため)」 / Twitter
κeenさんはTwitterを使っています 「うおー、悩んだ証明めちゃくちゃ簡単だった。定理がないと思ったらby definitionだった。定義はちゃんと確認しましょうね。」 / Twitter
κeenさんはTwitterを使っています 「あ、ステートメント勘違いしてた。普通に直観主義で証明できわ。 deMorganOrRev : (Pair (a -&gt; Void) (b -&gt; Void)) -&gt; ((Either a b) -&gt; Void) deMorganOrRev (na, _) (Left a) = na a deMorganOrRev (_, nb) (Right b) = nb b」 / Twitter
κeenさんはTwitterを使っています 「すわIdrisのバグか?と思った挙動を色々調べていったらautoの指定が抜けてた。」 / Twitter
κeenさんはTwitterを使っています 「n + (m - n) は成り立つ。何故なら m - nはn &lt; mの証明を要求するから。」 / Twitter

2020-12-06

κeenさんはTwitterを使っています 「自然数の加法の交換法則 by Idris - コラッツ予想がとけたらいいな2 https://t.co/m84SHZc44l」 / Twitter
自然数の加法の交換法則 by Idris - コラッツ予想がとけたらいいな2
κeenさんはTwitterを使っています 「xだけの分岐と再帰で証明できるね comm : (x, y : Nat) -&gt; x + y = y + x comm Z y = rewrite plusZeroRightNeutral y in Refl comm (S x) y = rewrite sym $ plusSuccRightSucc y x in rewrite comm x y in Refl」 / Twitter
κeenさんはTwitterを使っています 「標準ライブラリの証明も同じ方針。 https://t.co/Ro97lHgzkK」 / Twitter
Idris-dev/Nat.idr at master · idris-lang/Idris-dev

κeenさんはTwitterを使っています 「Idris面白機能:if then elseはオーバーロード可能 ifThenElse: Maybe a -&gt; (a -&gt; b) -&gt; b -&gt; b ifThenElse (Just a) f _ = f a ifThenElse Nothing _ b = b λΠ&gt; if Just 1 then (+1) else -1 2 : Integer λΠ&gt; if Nothing then (+1) else -1 -1 : Integer」 / Twitter

2020-12-24

κeenさんはTwitterを使っています 「すごく丁寧。DSTとかtransparentとかのメモリ表現もだけど、一通り使えるものを作るのに必要なプラクティスがまとまってるのって中々ないよね。 Rust で独自のスライス型や文字列型を定義する - 何とは言わない天然水飲みたさ https://t.co/sYzYFYNKym」 / Twitter
Rust で独自のスライス型や文字列型を定義する - 何とは言わない天然水飲みたさ
κeenさんはTwitterを使っています 「Tokio 1.0に対応したhyper 0.14もリリース。hyperもRustのデファクトといっていい(基礎的な)HTTPライブラリ。 hyperの方はまだやることが残っているので1.0ではないが、1.0へのロードマップは立てているとのこと hyper v0.14 - seanmonstar https://t.co/bHcDinZ5fk」 / Twitter
hyper v0.14 - seanmonstar
κeenさんはTwitterを使っています 「Rustのデファクトといっていい非同期ランタイムのTokioが1.0をリリースした 🎉 向こう3年は2.0のリリースはしないし、5年は1.0のメンテナンスを続けると約束。 来年はStreamやio_uring、トレーシング、Tokio周辺のエコシステムに取り組むらしい Announcing Tokio 1.0 | Tokio https://t.co/AwOJIKOI7V」 / Twitter
Announcing Tokio 1.0 | Tokio
κeenさんはTwitterを使っています 「Tokioは今のところネットワークIOを非同期化するのがメインで、ファイルIOについては裏でIOスレッドを作って動作し、それっぽく動いているだけだった。io_uringを使えばOSサポートによるファイルIOの非同期化ができる」 / Twitter
κeenさんはTwitterを使っています 「赤黒木が速いのでよく使われるとは聞くけど現実のライブラリではあんまみないなぁ。Rustはキャッシュパフォーマンス意識してB木だしOCamlはAVL木。Haskellもサイズベースの平衡木らしい。SMLのcmlibに入ってるくらい?」 / Twitter
κeenさんはTwitterを使っています 「Idrisは2-3木だった。これはギリ赤黒木判定していいのでは」 / Twitter
そすうぽよ(カス)さんはTwitterを使っています 「@blackenedgold C++の標準ライブラリの実装で使われていたりしますね 規格の制約上、B木を採用するのが難しいのが主な理由だと思います。」 / Twitter
k0kubunさんはTwitterを使っています 「@blackenedgold 🤔 https://t.co/pXsOihoOle」 / Twitter
Search · red-black
κeenさんはTwitterを使っています 「C++は知らないから仕方ないとして、Javaの実装に気づかなかったの草」 / Twitter
ぐらふぃさんはTwitterを使っています 「@blackenedgold https://t.co/lVD7BGQFG2 メジャーな C++ ライブラリの Abseil ではほぼ drop-in で使える B-tree があって、大体 std::map よりも速かったりはするみたいです」 / Twitter
abseil / Abseil Containers
あめ玉/もわもわさんはTwitterを使っています 「興味あったので調べてみただけですが、Linux KernelのComplete Fair Schedulerとか https://t.co/Z4g7Y2dzCD」 / Twitter
What are some real-world applications of Red-Black trees today? - Quora
あめ玉/もわもわさんはTwitterを使っています 「レーザプリンタだそうです。手元のアルゴリズム本では「2色木」となってました。 https://t.co/eXpByqtOlt」 / Twitter
Red–black tree - Wikipedia

κeenさんはTwitterを使っています 「パラドックスという言葉、理論的には正しいんだけど直感に反するものにも、理論的に正しくないんだけどマズいところをわかりにくくして上手くペテンしてるやつにも、直感に反するけど証明も反証もされてない未解決問題にも使われててカオス」 / Twitter
κeenさんはTwitterを使っています 「SMLのbefore演算子はe1 before e2のように書いて、e1を計算したあとe2の処理をして、e1の結果を返すんだけどこれOCamlだと定義できないことに気付いた。SMLは引数の評価順序保証があるけどOCamlはないからダメだ。」 / Twitter
κeenさんはTwitterを使っています 「「無名」オブジェクトをデバッグプリントすると名前が表示される話?」 / Twitter
κeenさんはTwitterを使っています 「個人的に数学の記号の過剰なオーバーロード、一文字変数/一文字関数、上付き/下付きのパラメータあたりはやめてほしいと思ってる」 / Twitter
κeenさんはTwitterを使っています 「AndroidプロジェクトがRustを採用へ。メモリ関連のバグや脆弱性を抑えるのが目的。バグは新規コードに多いので既存のコードはそのままで新規コードをRustにシフトしていくよう。 Google Online Security Blog: Rust in the Android platform https://t.co/KmlU4RuY7d」 / Twitter
Google Online Security Blog: Rust in the Android platform

@ytakanoster

2021-01-02

꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「async/awaitだいぶわかった気がした。コンパイラが状態機械に変換してる操作どうやってんねんこれとは思った。変換アルゴリズムつくるの大変そう。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「コルーチンあれば簡単だろうけど、無いためにすごく頑張っている。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「カーネル内async/awaitを使うにはスケジューラと処理系を自前で作らないとダメそう」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「スケジューラを作るにはロックフリーキューかRCUから必要かな。めんどくさすぎる。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「継続かコルーチンがあれば楽なのに」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Rustのasync/await、コルーチンもGCも無くて所有権という言う縛りプレイで良くつくったな。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「コルーチンが 1958年で、promise、futureが1976、1977年か」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「asyncがFutureのモナド でawaitがbindって感じかな。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「async/awaitのexecuterと非同期関数を作ってみたけれど、コルーチンが無いとやっぱり面倒だった。 https://t.co/tmXOTlG1e8」 / Twitter

@shinji_kono

2020-10

2020-10-26

Shinji KonoさんはTwitterを使っています 「田中先生の公理的集合論で学んだのに、あの頃は順序数定義可能集合の重要性に気がつかなかった。残念過ぎる話。自然演繹も学んでいたのに…」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODは今でもあんまり納得してないけどさ。bounded ODとして扱ってるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「pairからordered pairを導出するのは煩雑なのだが、Agdaは割とそのまま形式化できる。当時は、その必然性が良くわかってなかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなこんなで、学部生の頃は数学をまったくわかってなかったと思うよ。そして、それは集合論の古典的な構成ではわからないのが当然だとも思う。推移集合モデルで理解したのもかなりあと。VでもUnionとか使うので怪しいんだよな。それは公理で保証されていると言われても。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ガロア理論の五次対称群の交換子群が三次対称群を含むってのもアルティンあるいは他の本でも、わりとさらっと書いてあってさ。でも実際にはそれなりの計算が必要。まぁ、手で計算しなかったのがあほだったが。ガロアも計算しまくってたはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「圏論も登場する概念のレベル合わせがかなり大変。多分、証明しまくってるうちに頭にAgda的な回路ができる感じ。教科書見てても、そういう記号的な処理、特に、Unifucationが導入されてる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「合同則 x ≡ y → f x ≡ f y はSets以外では自明ではなくて、証明が必要とかはAgdaでないとわからない。これは選択公理にも関係してて、同値類が自明に取れるなら不要になる。なので、選択公理や同値類の構成に疑問を持ってると、そこで落ちてしまう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなこんなで、学部の数学(数学科のって意味だが)でも落ちる要素はたくさんある。チコノフの定理、まだ、片付けてないし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「線形代数や機械学習にはそういう集合論的、証明論的な問題はない。なので、そっちからやるのが良いね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「圏論的アプローチというよりは、直観主義論理で数学を構築していけば、選択公理や集合論は不要で、排中律や二重否定に気を付けて、非構成的な仮定を明示して議論するだけになる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そうすると選択公理と集合論は廻り道に見える。もちろん、それは時代的に必要な廻り道だったわけだけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「KunenにはODは極めて非構成的で得られるものがないと書いてある。田中先生の本ではODと順序数の準同型をゲーデル数を使って導入してるが、それは厳密にやる必要がある。まぁ、いろいろ面白い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そもそも集合はUnionで上界を取ってこれるので、極めて非構成的。集合の選択には任意の方程式を使えるから… なのにODが非構成的と文句を言うのは面白い。シェーンフィールドもそうなんだけど、どうも、集合をかなり具体的な既に存在するモデルとして認識しているみたいなんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「物理学者も数学者も普段は実在論者としてある方が便利だからそうなる。」 / Twitter

2020-10-27

Shinji KonoさんはTwitterを使っています 「これはちょっとあるな。何人かこのタイプを見た気がする。自分でないものになろうとしてる。コミュニケーションやコネクションを持ってる人がなりやすい感じ。プログラミングは極めて内向的な仕事なので… QT プログラマーになろうとしている時点で向いていない https://t.co/GJFYXN7TuD」 / Twitter
文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigai|note
Shinji KonoさんはTwitterを使っています 「プログラミングは操作的意味論を理解する作業があるのだが、それがなんなのかがわかってない。なにがプログラミング言語やAPIを理解する時のゴールなのかがわからない。そうすると、それらは無限に異なるものを覚える賽の河原になってしまう。そういう人がPythonを覚えてもすぐ使えなくなるとかいう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミング言語の操作的意味論がわかれば、大抵の言語は皮層的に違うだけなので、すぐにわかる。そういう人が初心者から、わからないと言われても「なんでわからないの?」ってことになる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、いっぱしのプログラマでもHaskell/Prologをやってみれば、その「操作的意味論がわかってないと、さっぱりわからない」感覚はわかるかも。1週間、触ったくらいでは、まったくの謎でしかない。そんな感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ところが、その手の言語を学んだばかりの人から手解きを受けると、これが信じられないくらい高速に習得できる。ほげほげnativeな感じ。そして、その人は他の人がわからないのが何故かさっぱりわからない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミングがまったくできない人に「まずなにをどういう手順でやるか日本語で書いてみて」といって、それをプログラミング言語に翻訳してみせる。ほとんどは関数に置き換えることになる。そうすると「あ、そういうことですか」ってことになる場合がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラミング言語は言語なのだが、それがわかってないわけね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Haskellの操作論的に意味論を聞いてみると、ある人はβ簡約とか言い出すかも。僕は計算のきっかけはcase文による分解から始まるとかいうだろう。それを知らないでプログラミングするのはかなり難しいのだが、雰囲気でなんとかなることもある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「HaskellのMonadを自分で書いてみた時の「まったくわからない感じ」は久しぶりだったな。Haskellは表示できない項とかあるし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Prologは最初のネックはBacktrackとcutで、それから単一化による差分リストの嵐に突入する。無限に巨大なリストの一部だけをみてプログラミングやデバッグしていく感覚は手続き型とはかなり違う。Stream型なわけなのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Prologで、どこにバックトラックするか聞いてみて、最も最近のチョイスポイントと答えればわかってることになる。そして、 p :- q, !, r. で、r が失敗した時にqのチョイスポイントはどうなるというのに答えられれば。 めんどくさいから全部の選択肢に!を一つ付けるというのはプロっぽい。」 / Twitter

2020-10-30

Shinji KonoさんはTwitterを使っています 「(可算)無限個の集合のUnionは、実は集合論の公理にはない。クラス、つまり述語ではかける。なので、それが集合であるかどうか(=集合論の公理から構築できるかどうか)を調べる必要がある。例えば順序数全部のUnionは集合じゃない。それはVだから。ℵωまでなら集合になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「上限が集合で抑えられれば集合になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「このクラスで書いて集合かどうか調べるってのは集合論の本では良くある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合でないクラスはProper Classとかいうのだが、最初に上がる例は順序数全体かな。ODとかLも全体は集合じゃない。その要素は集合。」 / Twitter
Shinji KonoさんはTwitterを使っています 「クラスと集合の区別はOD(順序数方程式)で考えるとわかりやすい。解に上限があれば集合、なければProper class。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ってわけなので集合論の本に{x| ...}と書いてあっても集合とは限らない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「その部分にODを写像すると、ODはある順序数以下になるので集合になる。この時、外のODと中のODの二つがあるが、それはもちろん同型にできる。これが集合で作った集合論のモデルになる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ、非可算ちゃんとやってないので、その辺りで矛盾が出る可能性がほのかにあるな。可算順序数の中で非可算順序数を定義する的なことをするので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「順序数は公理的に定義して良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微妙に順序数を公理的に扱うのを避けてるんだが意味不明。ここに出てくる性質を公理にして、可算順序数を構成してみせるので十分だと思うんだけど。ただ、注意しないと非可算を作れなくなるかも知れない。 https://t.co/ZBxpWyRbUa」 / Twitter
順序数 - Wikipedia
Shinji KonoさんはTwitterを使っています 「順序数は直後順序数ってのは出てくるんだが、直後極限順序数ってのは出てこない。いや、そういくのあるだろとは思うけど。直後順序数を無限個含む順序数があれば、それ以下の順序数は順序数の公理(性質)を満たす。なのて順序数の部分で順序数に対応するものがある。無限なんだからおかしくない。」 / Twitter

2020-11

2020-11-02

Shinji KonoさんはTwitterを使っています 「型検査はメタレベルでやるべきというしごく当たり前のことが降ってきた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「構文に型を入れるなってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「スローガンとしては良いかも」 / Twitter

2020-11-05

Shinji KonoさんはTwitterを使っています 「超速って、超実数な速度だよな」 / Twitter
Shinji KonoさんはTwitterを使っています 「超実数は無限小と無限大だけではなくて、普通の実数+無限小とかもある。なんと .99999... と 1 を区別できる。見かけが違うから違うと主張できる。なので、普段見てる速度と超速な可能性が。いや、見てる分には実数と変わらんのだが。」 / Twitter

2020-11-07

解答略さんはTwitterを使っています 「代数構造を習った時はハイハイそういう議論はやるべきですよねって思ったし、順序構造もまぁせやなって感じやったけど、位相構造は極めて奇異なものに感じられた。開集合を決めるだけで、近さとか連続性とか収束の概念がええ感じに定まるというのが、どうにも非直感的に思えた。今も怪しいと思っとる」 / Twitter
Shinji KonoさんはTwitterを使っています 「位相構造ねぇ。基本的には極限の概念の延長だけど… 今は圏論的な理解の方が普通?」 / Twitter
Kazunori ANDOさんはTwitterを使っています 「@shinji_kono 結晶として対称性を論じるなら空間群の話になる。X線結晶構造解析はそのまま3次元逆フーリエ変換なんで超格子構造なんかは衛星反射として見える。まぁ位相構造だわなw」 / Twitter
Shinji KonoさんはTwitterを使っています 「@ando_Tw 固体は量子力学的な扱いもあるからなぁ。フォノンとかバンドとか。」 / Twitter
Kazunori ANDOさんはTwitterを使っています 「@shinji_kono BE凝縮とか近藤効果とかもねw」 / Twitter
Shinji KonoさんはTwitterを使っています 「@ando_Tw 力学と数学で位相空間がぜんぜん違うのなんとかして欲しいです」 / Twitter
Shinji KonoさんはTwitterを使っています 「coinductionは全然勉強できなかった。構文的な問題だけだと思うんだが。Fresh Listには合うはずなんだが。」 / Twitter

2020-11-12

Shinji KonoさんはTwitterを使っています 「真偽にSetを使う方法、automaton はちょっと変くらいだったが、languageとNFAになって、level hellを食らってる。状態が Q → Set nなので levelが上がってしまうんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Q → Bool でできるんだが、Bool 演算とその推論をいろいろ入れることになるのがあれ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ証明の意味がわからない。DFA/NFAのtrace書かないとだめだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「automaton の trace (じゃないよな、状態の履歴)は一発で書けたが、NFA側が自明じゃないな。(Q → Set) → List Q が必要なのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「trace が自明じゃないのは気まづい。間違ってるかも。」 / Twitter

2020-11-13

Shinji KonoさんはTwitterを使っています 「昼間の証明はあれで良いってのが降ってきた。Automatonの有限性は (Q → Set) → Set という決定性。NFAを Automaton に変換した時 ((Q → Set)→ Set) → Set になるんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「去年は有限性をData.Finでやってたんだが、かなり煩雑。欲しいのはdecidabilityなので。で、→ Set を増やしても同じもので良いらしい。謎過ぎる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんか良くわからん。まだ、NFAのtraceが書けない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あ、そうか。subset construction して DFA として trace を出すのは簡単なんだ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かに出力は出たが、しかも正しそうだが、これはなんなの。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり逆順だな」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、そんなことはないな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Dec を引数で持ち歩くってのが降ってきた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それで、できそうだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「正確にはDecじゃないな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「NFAのtraceはあともう少しだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「恥ずかしいことに、subset construction してtraceするコードをNFAに書き直した。だって、合わないんだもの。subset construction という言い方は正しくなくて、状態集合のautomatonへの変換だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あとは二重リストに変換すれば良いのだが、それにはDecが必要。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Dec やっぱり、微妙に合わないな。割と良くある。」 / Twitter

2020-11-14

Shinji KonoさんはTwitterを使っています 「かなり、型が合ってきた。結果は簡単なんじゃないかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「だいぶ進んだ。しかし、まだ、どうすれば良いかわからん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「coinduction と違ってindictionは automaton のお尻から構築する感じになるのだが、traceは最初から辿る方が簡単。もっとも、まだ、Decが書けてない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一応、できた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Q → Set にすると、状態をリストで表すには Dec を書かないとだめで、しかも、前の状態に依存するのでかなりしんどいことがわかった。 List (Q → Set) を見たいだけなのに。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、subset construction の正しさの証明が少し微妙。」 / Twitter
Shinji KonoさんはTwitterを使っています 「このSetは実行時に指定してるので、それを工夫することができるかも。not empty な List Q とか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「継続で書くと良いのかも。」 / Twitter

2020-11-15

Shinji KonoさんはTwitterを使っています 「NFAは教科書では Automaton を言語/正規表現の結合に対応できないという理由で導入してる。NFAが結合に対して閉じることの証明は去年やったのだが、Data.Finでやったので、かなり煩雑。今回はどうなんだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Q → Bool ではなく、Q → Set なので、Data.Boolのめんどくささは消えてる。しかし、それはDecに押し付けられてる。Data.Finの代わりに (qs : Q → Set) → (q : Q ) → Dec ( qs q ) を定義する必要がある。Qが有限なら qs q の真偽を決定する手続きがある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「去年の証明だと、Aだけ、AとB混在、Bだけみたいな状態にわけてた。作るのは簡単なんだが、それが結合になってるのを示すのがしんどい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Listを二つに分割する組み合わせを全部生成するのはData.Fin抜きでできる。NFAからData.Finを落とせたので、簡単になる可能性はある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「教科書ではNFAの結合が言語の結合に対応するのは自明扱いなんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaのcoinduction はrecordの構成構文を使う。 p : AB → AB p ab = record { a = ? ; b = ? } の代わりに p : AB → AB a (p ab) = ? b (p ab) = ? という構文。」 / Twitter
Shinji KonoさんはTwitterを使っています 「induction だとデータ構造を分解して[]なったら終了。coinductionだと、[]から始めて、recordを大きくしていって、欲しい大きさで終わりな感じ。終了条件 Termination はAgdaの推論の外にあって、 あるデータ構造が常に小さくなってる なのだが、余帰納だと常に大きくなってるになるわけだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これをFresh Listに使うって話なんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「いきなり二重否定しか証明できない的な直観論理丸出しの話をもってきて欲しくはなかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、一応、正規言語の結合に閉じるのは、少し簡単になるっぽい。でも、本質は変わらんな。そこそこ長い。しかし、かなり、わからなくてびびりました。Set で受けるのは良し悪しなんだよな。そこに触れないので、何か作るしかない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「予想通り、Bool 代数関連の細かい推論は全部吹っ飛ばせた。Data.Finも出てこない。素晴らしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それを少し簡単になったというのは、あれだが、その分、個別の証明する自明なのが増えてるので… まだ、十分に複雑だしな。」 / Twitter

2020-11-16

Shinji KonoさんはTwitterを使っています 「terminatingで書いて、あとからterminationを付け加える方法があれば。」 / Twitter
Shinji KonoさんはTwitterを使っています 「こんな議論があるな https://t.co/yT86zAan9R」 / Twitter
functional programming - Assisting Agda's termination checker - Stack Overflow
Shinji KonoさんはTwitterを使っています 「やっぱりcoinduction 使え的な」 / Twitter
Shinji KonoさんはTwitterを使っています 「正規表現のderivativeは書けたが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「dfaからregexは「状態を一つとって」みたいなことをするんだよな。微分の逆だから積分できないの? accept dfa q [] を調べて accept dfa q t ⇔ regex t → ∀ x → accept dfa q (x :: t) ⇔ (add1 regex) (x :: t) で、無限にやるんだが、add1が変更なくなったら終わりとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「状態を取り除いていく方式は遷移関数を毎回手直しだからなぁ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ、結局、すべての状態についてやるので、おんなじようなものだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微分は正規表現を状態とする automatonを作るが、積分はautomaton の状態に正規表現を付加していく感じか。 add1 : (Q → Rex) → (Q → Rex) かな。 sumup : (Q → Rex) → Q → Rex sumup f q with dec f (add1 f) ... | yes _ = f q ... | no _ = sumup (add1 f) q 停止が見えない。」 / Twitter

2020-11-17

Shinji KonoさんはTwitterを使っています 「DFAからRegex変換はあんなのではできないので、Regexで遷移するNFAにして状態減らす方式なのだろうな。手計算ではやったことがあるが… 状態をListにして減らしていくのが良さそう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「遷移先の一つを融合するのだが、遷移関数を新しく作ることになる。 q1 → a → q2 → b → q3 を q1 → ab → q3 するみたいな。 q1 → a → q2 → b → q1 だと (ab)* が出てくる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「遷移条件がregexだから排他にはならないからNFAになる。でも状態は一つまで減らすので問題ない。遷移関数の書き換えのイメージがわかないが… (Q → Regex → Q →Set) → (Q → Regex → Q →Set) だよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「隣でないとだめ、関係ないものを一緒にしてはいけないってのがあるが… どうせつながってる部分しか意味はないから。 t : ( Q → Regex → Q → Set ) → Q → Regex → Q → Set t qs q1 ( a * ) q2 = qs q1 a q3 みたいに直接書き換えできるように見える。でも、q1は変数になるから…」 / Twitter
Shinji KonoさんはTwitterを使っています 「(Q → Regex → Q → Set) というdataを作るのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そうではないな」 / Twitter

2020-11-18

Shinji KonoさんはTwitterを使っています 「え、それ? 資源管理と同期が見えないHaskellの並列処理は結構厳しい。 Haskellによる並列・並行プログラミング」 / Twitter
Shinji KonoさんはTwitterを使っています 「昔書いたHaskell/MultiThreadなDB。今はどう書くんだろ。 https://t.co/xzca7Z4JeN」 / Twitter
Members/toma/Jungle-haskell: log
Shinji KonoさんはTwitterを使っています 「来週はNFA。」 / Twitter

2020-11-21

Shinji KonoさんはTwitterを使っています 「Boolで対角線論法やると面白いな。見つかった反例を加えて、もう一回とやりたくなるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「N→BoolはNのPower Setでℵ1なのだが、これと濃度が同じな順序数があると仮定する。Power Setは公理で存在が仮定されている。この二つの仮定には差がない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんとなく、超実数のモデルをやりたい気分もある。選択公理仮定することになるので構成的ではないけど。Nat → Nat → Bool に順序を決定する公理を入れれば良いだけ。これは超自然数になるけど、小数点と考えれば0から1の超実数に同相なの? 集合的にはℵ2でしかないが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「去年は集合論散々やったので、だいぶわかった気になってる。ただ、標準的な方法とはだいぶずれてしまった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「対角線論法やるには、双射をちゃんとしないとだめなんだな。散々やっただろと思うが… ℕ と ℕ → Bool の双射が矛盾することを示せば良いんでしょ。 ℕ → Set でもできるのかな。 これは集合の濃度の問題そのものだからな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ途中なんだよな。集合の濃度。 https://t.co/uoRLnPh2NA」 / Twitter
Members/kono/Proof/ZF-in-agda: 9b0630f03c4b cardinal.agda
Shinji KonoさんはTwitterを使っています 「AgdaのBijectionはPermutationでも使ってる。それとは別だが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaの標準のをそのまま使って問題ないはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「⟨$⟩ˡ とか inverseˡ を使うんだよな。上添字のrとlは厳しい。いや、標準を使うべきだというのはあるが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Permutation で散々やったので、もはや問題ないと思われる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「順序数は可算モデルを持つので無矛盾なのはわかる。極限順序数ももちろん。そのrecord、つまり公理系で定義される数学的構造物が ℕ → Bool にBijection を持つというのは要請だが、Power Setがあるという公理があれば許される。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それは自分のだと、順序数内のSupの存在になる。もちろん、それは構成的なものではない。けど、それは可算順序数に埋め込まれるわけだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「可算順序数自体はℕ→Boolを含むことはできない。含むのは公理的に定義された順序数で、しかもそれは仮定だ。順序数は超限帰納法を公理として持っていて、それは可算順序数モデルで恒真。なので無矛盾。それはℕの整合性の証明に使って良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ℕ→BoolはAgdaでは構成されるものだけを表す。それは可算なので可算順序数に含まれる。構成されないものは二重否定で言明できる。」 / Twitter

2020-11-22

Shinji KonoさんはTwitterを使っています 「で、レーベルハイムスコーレムはAgdaで書けるの? というか、Agda自体がレーベルハイムスコーレムの定理そのものなんじゃないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「¬ (Bijection ℕ (ℕ → Bool))を示せば良いのだな。 Turing : (Σ : Set) → List Σ → Bool で Bijection ℕ (Turing Σ) はUTM Bijection ℕ (List Σ) は数え上げ で halt : Turing Σ → Bool が Turing Σ だとすると、停止問題になるはずだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「UTMはこれなんだが、入力が0/1なので、任意の入力文字を受け入れるようにしないと自分自身を食えない。 https://t.co/sEh1bELmRA」 / Twitter
Members/kono/Proof/automaton: 4c3fbfde1bc2 agda/utm.agda
Shinji KonoさんはTwitterを使っています 「この辺りのTuring Machineの拡張は難しくはなくて、状態遷移を増やせば良いだけ。しかし、それを、証明する必要がある。この証明はHoare logicでやる必要がある。なので、継続形式にした方が良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなわけなので、Automaton は継続形式で書き直した方が良いんじゃないか説。」 / Twitter
Shinji KonoさんはTwitterを使っています 「record Turing ( Q : Set ) ( Σ : Set ) : Set where field tδ : Q → Σ → Q × ( Write Σ ) × Move tend : Q → Bool なのだが、 tδ : {t : Set} → Q → Σ → ( Q × ( Write Σ ) × Move → t) → t みたいな感じで。」 / Twitter
Shinji KonoさんはTwitterを使っています 「fresh list を sized にするのは簡単だったが...」 / Twitter
Shinji KonoさんはTwitterを使っています 「あれ、別にsize いらないんじゃないの?」 / Twitter

2020-11-23

Shinji KonoさんはTwitterを使っています 「a &lt; a' を要求しているのに a' &lt; a が出てきて、そもそも a = a' ならしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「別な方をやって、問題点が別なことがわかった。取り尽くしたことを確認して⊥を返さないとダメなのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「文系な人は、ちゃんとチェックすれば大丈夫みたいな信仰があるみたいなんだよな…」 / Twitter
Shinji KonoさんはTwitterを使っています 「有限二分木で定義して、それを深さ優先で取り尽くすみたいな。間になかったらおかしい的な。」 / Twitter

2020-11-25

Shinji KonoさんはTwitterを使っています 「普通に作ってソートされて、間に割り込まれない。なので、全部入ってる。それを示したいだけだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Natとのbijectionはどうだろう?」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも問題なのはAnyの型変換なんじゃないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「Anyなのにthereって書くと文句言ってくるのひどい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「n で再帰ですか? すでにやったはずだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、0からnまで含んでることを示せば良いのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「型の段階でhere/thereがわからないとだめってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Listを二段に展開してるな。それか。」 / Twitter

2020-11-26

Shinji KonoさんはTwitterを使っています 「まだ、証明が終わってない部分があるけど、計算部分はできたから良いかな。(良くない) できる自信がないが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いたるところ不連続な関数を積分して発散しなければ、いたるところで微分不可能な関数ができるじゃん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ、もっと劇的に簡単になるはず。CommutatorをFLで計算するとか。計算した結果をstaticに変換するとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Anyが簡単に示せないのも変なんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「1234をPermutationしたのを見てFLを生成とかできないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLだけで群を作ってそこで計算する方が速いが、計算表を生成して、計算させないことはできるのか?」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろ疑問はあるな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Fresh ListからAnyを作れない理由もよくわからん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLがCommの生成について閉じてるのを示すのはFLが群を構成してることをしめせばすむはずだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、もう時間切れなのでわからないままでいいか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、Anyが示せてないので、割と残念なことになってるのがなぁ…」 / Twitter
Shinji KonoさんはTwitterを使っています 「おっと、AnyのListを持ち歩くなんてのが降ってきたが… Anyを返す関数なら、まぁ。 x f&lt;?y → Any x L みたいな感じか。だから、時間切れなんだって。」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLを順列として0123を置き換える関数のinjectionを示せば良いだけなんだ。それでFLから順列へのinjectionが一発ででる。しかし、簡単に示せるとは言ってない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「しかも、それができてもAnyとは関係ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「五次はそこそこ時間かかった。五次が可解でないのをFLのListが不変から導出しても良い。良くわからないが可解でないという証明になる。不可解な証明だな。(ここ笑うところなので」 / Twitter
Shinji KonoさんはTwitterを使っています 「FLからList N 割と簡単そうな気もする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、やってないとは考えにくいんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かにめんどうなみたいだな。」 / Twitter

2020-11-27

Shinji KonoさんはTwitterを使っています 「今までで一番まともな気がする。どうせ Any の型変換の問題はでるだろうが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一昨年のOS9は結構楽しかったが、今年のTL/1 Self Compiler は、盛り上がりに欠けるまま放置中。」 / Twitter
Shinji KonoさんはTwitterを使っています 「定義おかしいじゃんと直してみたら、元のが正しいことを確認して終わった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「[ g , h ] = g ⁻¹ ∙ h ⁻¹ ∙ g ∙ h でしょ。 [ g , h ] [ i , j ] = g ⁻¹ ∙ (h ⁻¹ ∙ g ∙ h ∙ i ⁻¹ ∙ j ⁻¹ ∙ i) ∙ j = g ⁻¹ i ⁻(¹ j i h ⁻¹ g ⁻¹ ) h j = [ g , i ] [ j , h ] になるのか。でもそれでは足りないが…」 / Twitter

2020-11-28

Shinji KonoさんはTwitterを使っています 「[[a,b],[c,d]]は含まれてる。これは [b,a][d,c][a,b][c,d] のこと。これから前半を消すのは簡単だ。 [a,b][c,d]= [c,d][a,b][[a,b],[c,d]]ってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これでも足りんな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「[a,b][c,d]=[x,y]なx,yを見つけるのだが… 本見れば載ってるとは思う。対称群の場合をやれば良いけど、一般的に可能なのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「[ g , [h ,i]] = g ⁻¹ ∙ i ⁻¹ ∙ h ⁻¹ ∙ g ∙ h ∙ i = g ⁻¹ ∙ h ⁻¹ ∙ h ⁻¹ ∙ g ∙ i ∙ i = g ⁻¹ ∙ h ⁻¹ ∙ g ∙ i か。交換子だからi ∙ i=i。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、そういうことではないのか。欲しいのは [a,b][c,d]=e なので、[a,b]=[c,d]=eならそうなる。逆にその時に限るってのは必要なのか。いや、要らんのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ってことは手直しが必要なのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もしかして、単純に積を落とせば良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「交換子群は積が必要なんだが、交換子群が単位元になるのを示すには積は不要ってことね。なるほど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり、Any の型の問題にぶちあたった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ、リストを最後まで取り尽くさないと何が戻ってくるのか確定しないのだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので見つけた後も最後までたどる必要がある」 / Twitter

2020-12

2020-12-02

Shinji KonoさんはTwitterを使っています 「TMはUniversalityがあんまり自明じゃないんだが、もっと自明なものってあるのかな。あ、非構成的なものはかんべん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「むしろCPUの方が自明だよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「LISP 1.5 もそれほど自明じゃない。SKIはどうだろう?」 / Twitter
Shinji KonoさんはTwitterを使っています 「これだな https://t.co/SecYyDYSJC」 / Twitter
不動点定理が結ぶ ラッセルの逆理とYコンビネータの関係 - Qiita
Shinji KonoさんはTwitterを使っています 「対角線論法、今回も少し挑戦したんだが、あんまりよろしくなく。」 / Twitter
Shinji KonoさんはTwitterを使っています 「SKIだとSKI食ってSKI返す感じか。Y combinator でいいの? Agdaで即座に書けそうだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Y combinatorはAgdaでは型が合わない。合うと矛盾をくらうので。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Nat → SKI → Nat があるとY combinatorが構成できて矛盾みたいな感じか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「SKIは大雑把にSystem Fなので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、そもそもAgdaのUniversalityが使えるはずだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Nat → Set → Nat で良いってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり、NFAのSetは諦めるべきだな。Bool の方がまし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Set で受けると、bool 代数のめんどくささは避けられるが、そのかわり、Dec の嵐が降ってくる。おそらく、bool 代数のめんどくささを避けつつ工夫するのが良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「対角線論法はできた。でも、List BoolとNatの対応は割とめんどいのだった。上位に1を足したバイナリで良いのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「たしか、finite作ったな。あれはList Boolだろ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Vec Bool n だな。ゲロゲロに複雑だ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「List はexp 計算してた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ああ、そうか。足し算を定義して、それから作ってるんだな。勉強になるな。自分が昔書いたものだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「isoも足し算でやってしまうのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これをコピれば良い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習が予測する理屈は人間が理解できなくてもOK」っていうのは分からんでもない気がしますが、「理解」という事柄についてもう少し掘り下げる必要があると思います。続く」 / Twitter
Shinji KonoさんはTwitterを使っています 「TMは数え上げができるのでNと一対一になるのだが、それは対角線論法には引っかからない。その中に、TMの白黒を全部識別できる奴がいると引っかかる。でも全部白とか黒なら引っかからない。Bijectionだと、その条件は要らないのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「対角線論法経由と自己参照経由と両方の証明があり、異なるのだが、対角線論法は自己参照から導出できる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltとutmからBijection示すの面倒そう…」 / Twitter
Shinji KonoさんはTwitterを使っています 「片方で良いかもしれん」 / Twitter
Shinji KonoさんはTwitterを使っています 「複雑なのは Fin からBoolへの関数を作る方だった。List Boolはそれほどでもない。」 / Twitter

2020-12-03

Shinji KonoさんはTwitterを使っています 「NFAのSetにいろいろ入れてって思うがうまくできない。やっぱり、継続かcoinductionなのだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Data.Fin は扱いがあれなので、Bijectionを使うのだが、∨とかBoolへの関数とかのを作るのが結構大変。まぁ、できてるので良いのだが。でも、Subset construction では使わない。UTMのはFinじゃない。安易に書いたらTerminationくらったが、なんとかならんのか、あれ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Manna先生の本にdeductionがあって、Terminationばっかり書いてあった。そういえば実家に置いてきた。まだ、残ってるかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Size型の引数を追加して、それが単調減少していれば、止まるとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ああ、そうか。 TM : List Bool → Bool tm utm : TM encode : TM → List Bool で utm (encode tm ++ x ) ≡ tm x は言えるんだが、encode (utm x) ≡ x にはならない。しかし、 halt : TM ∧ List Bool → Bool を入れると、その違いが吸収されてしまってBijectionになるのだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「というのをAgdaで、ちゃんと書こうという話」 / Twitter
Shinji KonoさんはTwitterを使っています 「x ─── + z x + y ってのを定義できるパーサってのが降ってきたが。(実在するらしい」 / Twitter

2020-12-04

Shinji KonoさんはTwitterを使っています 「あ、なんかFLinsertから始めるってのが降ってきたよ。」 / Twitter

2020-12-05

Shinji KonoさんはTwitterを使っています 「Coq はintros がかなり許せなくてな… まぁ、変数名考えなくて良いってのはあるが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaはプログラミング言語なので良い。ホールも良いアイデアなんだが、いかんせん、それにあうUIがな。」 / Twitter

2020-12-06

Shinji KonoさんはTwitterを使っています 「Agda 、なんだこれ。 _430 != section of type」 / Twitter
Shinji KonoさんはTwitterを使っています 「なるほど。Any _ Q で there とかやる時には Q を cons に分解しないとだめっていうあれか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ということは、めどがついたってことか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんか今のを片付けて、抽象化すると、もう一つも片付くらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Zipは内積みたいなものだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんか、片付いたと思ったが、かなり微妙な感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「くそ、独立に書き出してみたが、やっぱり通らないじゃん。 Cannot instantiate the metavariable _491 to solution section since it contains the variable section which is not in scope of the metavariable when checking that the inferred type of an application」 / Twitter
Shinji KonoさんはTwitterを使っています 「何言ってるんだか、わからないんですけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ相談すると、internal parametricity だと言われるパターンだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ほぼ同じなんだが、通る時と通らない時がある。入力の型を明確にするとむしろ通らない。謎過ぎる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「workaround で良いんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんとかなるのかな、これ。割と致命的なんですが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いったん関数はさむと通ることがある」 / Twitter
Shinji KonoさんはTwitterを使っています 「この差か。 anyc07 : (x b : FL n) → (L : FList n) → Any (x ≡_ ) L → Any (x ≡_ ) (FLinsert b L) anyc07 a b L any = insAny L any anyc06 : (x y : FL n) → ( z : FList n ) → Any (_≡ x) z → Any (_≡ x) (FLinsert y z) anyc06 x y z anyz = insAny z anyz」 / Twitter
Shinji KonoさんはTwitterを使っています 「間違えてもいいのかと思ってたが、だめなのか。」 / Twitter

2020-12-07

Shinji KonoさんはTwitterを使っています 「57箇所以上なおしたところで力尽きてる。x ≡_ と書くのが正しいらしい。λ y → x ≡ y の意味。」 / Twitter
Shinji KonoさんはTwitterを使っています 「他に _≡_ x と ≡_ x の書き方があって、適当に書いてたので混在してた。一緒だろと思ったのが間違いだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「問題なく通るやん...」 / Twitter
Shinji KonoさんはTwitterを使っています 「順調だが、ここどうやるんだったかな。ちゃんと処理したはずだが。」 / Twitter

2020-12-08

Shinji KonoさんはTwitterを使っています 「また、振り出しに戻るをやってるな」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり、劇的に簡単になった。どうせ、そんなこったろうと思ってましたよ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここまで、一直線なはずなのに何故廻り道した。」 / Twitter
Shinji KonoさんはTwitterを使っています 「今日は進捗した気がする」 / Twitter
Shinji KonoさんはTwitterを使っています 「あと、もう少しでてきるはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ああ、確かに A x B だとBの方が攻めとみえるな。加群でしょ。」 / Twitter

2020-12-09

Shinji KonoさんはTwitterを使っています 「三ヶ月もかかったが片付いた。ガロア理論、むしろ、正規拡大とかの方がAgdaでは楽かもね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この三ヶ月かかった話はオンラインのプロシンで話します。」 / Twitter

2020-12-10

Shinji KonoさんはTwitterを使っています 「Fresh List 、mapとappendはあったような。だったら、それで書けるんじゃないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんか、All があれば append できるらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Any を作りたいので無意味だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、役に立たないらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、そうとは限らんな。[]から作っていけるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Any の append は、すでに自分で書いたやつだな。そんなもん。書いてからライブラリにあることに気がつく。わからんし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ようするに、Any の前後に append しても Any の性質は保存されると。Any ってのは「これを満たすものはすべて入っている」みたいな意味だから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「map もAny/Allに対して定義されてるので役に立たない。っていうか、自力で証明した部分だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やっぱり、任意のFLの組みから、全部のFLを導出することができるのか。もっと考えれば良かった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CommAny の問題に気がついたのは11/26なので、これを前に思いついてても、それほど時間の差はないな。でも9/13あたりに思いついてれば9月中に片付いてたかも。insert 書けた時にできたと思ったが、その後がな。ちゃんと考えろよ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Anyのappendに気づいたのが11/30なので、やっぱり、理解度が足りてなかったってことだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、そもそも「これでできるな」と思ったのでプロシンに出したのだが、思ったより時間がかかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Any の append とかドキュメントとかは一応見てはいたんだが、それが何かには気がつかなかった。そんなもん。自分で必要になると自分で再発見してしまう。それが理解ということなので、まぁ、そういうもの。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これでわかれと言われても。 https://t.co/zx918v5Cxg」 / Twitter
Data.List.Fresh.Relation.Unary.Any
Shinji KonoさんはTwitterを使っています 「まぁ、親切なドキュメントだこと... https://t.co/6TfTz2wQLs」 / Twitter
agda-stdlib/README/Data/List at master · agda/agda-stdlib
Shinji KonoさんはTwitterを使っています 「Coq 側では Fresh List はどういう扱いなんだろう? うまくググれない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「交換子群の定義を data で書くのは瞬時だったんだが、書けた後、どう使うかしらばくわからなかった。Agdaはそういうところがある。 data C (P : Carrier → Set ) : (f : Cr) → Set ) where comm : {g h : Cr} → P g → P h → C P [ g , h ]」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、なんだかわからないよな。Cr から始めて交換子を作るのを繰り返すだけ。 deriving : ( i : ℕ ) → Cr → Set deriving 0 x = ⊤ deriving (suc i) x = C (deriving i) x」 / Twitter
Shinji KonoさんはTwitterを使っています 「これとか面白い。普通の述語論理だと気にしない部分だが、照明が必要。 comm-resp : {g h g1 h1 : Carrier } → g ≈ g1 → h ≈ h1 → [ g , h ] ≈ [ g1 , h1 ] comm-resp {g} {h} {g1} {h1} g=g1 h=h1 = ∙-cong (∙-cong (∙-cong (⁻¹-cong g=g1 ) (⁻¹-cong h=h1 )) g=g1 ) h=h1」 / Twitter
Shinji KonoさんはTwitterを使っています 「群の等号と同じは違うので自明には置き換えできない。適用した関数(この場合は交換子)が、等号を保存するとは限らないから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「( f ⁻¹ ) ⁻¹ ≈ f とか意外に証明めんどくさい。equalizer 使わないとな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「[ h , g ] ≈ [ g , h ] ⁻¹ とかも証明したが使ってない。交換子群には必要なんだけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「可解の話には交換子群は必要ないってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一度できると、より良い方法が見えるようになるもの。もっとも、その前に見えるようになりたいものだ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「実際にやってみると n を合わせるのが面倒。具体例を入れておくべきだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「( f ⁻¹ ) ⁻¹ ≈ f f ⁻¹ ( f ⁻¹ ) ⁻¹ ≈ f ⁻¹ f ε ≈ ε で良いのだが、これは h f ≈ h g → f ≈ g を使っていて、これはequalizer。h ⁻¹ かければ良いだけだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かにできたが、ださい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「record AnyFin (n : ℕ) : Set where field allFin : FList (suc n) anyF : {i : ℕ} → (i&lt;n : i &lt; suc n) → Any (fromℕ&lt; i&lt;n :: FL0 ≡_ ) allFin ではなくで anyF : (x : Fin n)→ Any (x :: FL0 ≡_ ) allFin で良い。なにしてんだか。おんなじことなんだが。」 / Twitter

2020-12-11

Shinji KonoさんはTwitterを使っています 「まぁ、少しましになった。行数減るのは正義。でも、使わなくても自然数関係の証明は取っておくべきだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ガロア理論関係は、多項式、代数的拡大、正規拡大体とかやってないのだが、その辺りは、まぁ良いかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「All と append で書けるはずだが、まぁ、もう良いかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Allとappendは練習するべきではあるんだが。もう疲れたよ、パトラッシュ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなわけで一段落。コンパイラやらないと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Fresh.List に、appendとmapはあるが、insertはない不思議。型は書いてみたが、いろいろ謎だな。相互再帰で書くのは定番らしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「any? : (xs : List# A R) → Dec (Any P xs) こんなのがあるな。まぁ、そうだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「(P? : Decidable P) みたいにするのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そもそもなんでガロア理論に手をつけたのかよくわからない。Twitterになんか書いてたかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「予告なくいきなり交換子書いたが出てくる。そう言うやつなんだよ。集合論の時も演繹定理から唐突に始めたし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんかいまさら、置換を吸う時にしてからやると楽ってのが降ってきた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もっともPromiseは教えてないけど」 / Twitter
Shinji KonoさんはTwitterを使っています 「置換がbijectionなのがやっかいなので、0123を食わせて数字にすると楽。injection あるから。perm →FLが厄介だったので、それが簡単になるとかなり簡単になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「置換を一旦数字に変換して上手くいくとわかるのは、injectionがあると知ってるからなんだよな。自明な気がするのと実際に証明を書くのとは別だから。この場合は排他律使えるから構成主義は関係ない。なのでできて当然。なので思い付かない方がダサい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「injection/equalizerの大切さがわかった課題だったな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「モンテカルロで速度かぁ。確かに乱数の精度に依存するけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、そういうものに依存するものって微妙」 / Twitter
Shinji KonoさんはTwitterを使っています 「乱数のベンチマークとして使えるってことか。実世界の乱数の性質は?」 / Twitter

2020-12-12

Shinji KonoさんはTwitterを使っています 「示す必要があるのはFLとPermutationのbijection。 NatのListはbijection にはならない。しかし perm → List N はinjection。 FL → perm → List Nat (1 FL ← List Nat ← perm (2 でなんとかしようって話。」 / Twitter
Shinji KonoさんはTwitterを使っています 「List Nat は制約されないと置換に対応しないので、常にFL/permから作るってのが肝だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「おお、計算全然おわらね〜」 / Twitter
Shinji KonoさんはTwitterを使っています 「特定のプロセスが終わったことを通知するのはどうすれば良いんだろう? いや、まぁ、print するように書けば良いだけなんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Any の証明を短くしたら計算は長くかかるようになった気がする。メモリは増えないんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「普通に計算すれば瞬時に終わるものなんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「時間かかるのちょっと変なんだよな。証明は型検査だから実行時のoverheadにはならないはずなんだが。Fresh Listは余計な項を作るが、大したことはないはずなんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「余計な項を生成しないFresh Listってのはありえるのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「memonizationが有効だろうと思うが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、確かに組み合わせが二乗でFresh Listのinsertがnaiveなので二乗、合わせ技で4乗なんだが、たかだが5!だろ? 5. x! 120. x^y 4. = 207360000. ======================= あぁ、でも結構あるのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「4次だとこんなもん。 4. x! 24. x^y 4. = 331776.」 / Twitter
Shinji KonoさんはTwitterを使っています 「これ、insertをbinaryにしただけではダメでバランスさせる必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「計算結果は5!で抑えられるのでメモリが足りなくなることはないのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「最低でも100時間は動かさないとダメだな。Haskell生成するか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、あんまり意味はない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「こういうのなぁ。 https://t.co/n2b0w2IICV」 / Twitter
io - Agda: Reading a line of standard input as a String instead of a Costring - Stack Overflow
Shinji KonoさんはTwitterを使っています 「お、compile したら瞬時に終わった」 / Twitter
Shinji KonoさんはTwitterを使っています 「しばらく、AgdaのgetArgsと戦ったが動かないってことだけはわかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、List String までできてるから、いけるんじゃないの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「getArgsはしばらく戦ったが、あきらめた。」 / Twitter

2020-12-13_直観主義論理

Shinji KonoさんはTwitterを使っています 「AgdaのgetArgsは IOがcoinduction なので変換が必要。Data.Text.Textの問題もあるが、それはStringにできる。 なので頑張ればできそうではある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「来年はチコノフやるとか言ってたが、もうすぐ来年。位相の定義は有限と無限の微妙な違いを使う。結局は存在関数の問題になる。ついでに、基底の存在もやるべきだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これは Haskell の getArgs の Polymorhphism のエラー • Couldn't match type ‘[Char]’ with ‘Data.Text.Text’ Actual type: IO [String] System.Environment.getArgs」 / Twitter
Shinji KonoさんはTwitterを使っています 「あ、なんだこれ。 MAlonzo/Code/Agda/Builtin/String.hs: = ((Data.Text.append) :: Data.Text.Text-&gt;Data.Text.Text-&gt;Data.Text.Text)」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agda 側が Data.Text.Text なのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「動いた。 postulate getArgs : IO (List (List Char)) {-# FOREIGN GHC import qualified System.Environment #-} {-# COMPILE GHC getArgs = System.Environment.getArgs #-} main : IO ⊤ main = getArgs &gt;&gt;= (λ x → putStrLn $ toCostring $ sym5solvable $ getNumArg1 x )」 / Twitter
Shinji KonoさんはTwitterを使っています 「結論から言うと、Agda の IO String は実は Data.Text.Text なので、Haskell の getArgs は IO (List (List Char)) で受けろってことね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理をAgdaでやってわかったのは、意味関数は本当に真理値を任意に割り振るってこと。なんとなく、公理を真にするものだけを考えがちだが、全部の組合せが入ってる。直観主義論理では証明のあるものだけが真なので楽。」 / Twitter
Shinji KonoさんはTwitterを使っています 「もう一つは等号もあらゆる可能な項を含んでいるので否定を含めて巨大な無限だってこと。まぁ、たかだか可算無限だが。そして、その巨大なもの全部の組み合わせに対して真理値の組合せをすべて割り当ててるのが interpretation。これも構成論理だと避けられる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「自然数が入るだけで一階述語論理がもうダメってのはそういうわけだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「節形式への変換も書いた。さらに不動点意味論とfinite failureまで出すことも可能だろうけど、だから何的なところはある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そんなわけなので、集合論を一階述語論理でやるのはよろしくない。構成主義論理でやるべき。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理は普通に非構成的な仮定を扱えるので問題ない。Agdaの能力的な問題もあるが、仮定すれば良いじゃんってのはある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、メタ的なものを扱うなら、たぶん、Toposが必要になると思われる。そこはまだよくわかってない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Toposは圏にSubobject Classifierを入れただけだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「メタ的といえばLambekは合流性もやるんだよな。ただ、等号はやらない。単一化は入ってない。真に面倒なのはそこだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「単一化を取り扱うには変数をメタ的に扱うわけだが、番号割り振るってのが普通。それってアドレスでやるのとあんまり変わらん… でも、System Fの正規化もそれでやらないとできない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Prologはnumbetvars持ってるからな。Agda Haskell compilerもおそらくはそうしてる。読んでみないとわからんが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「すっかり直観主義論理シンパになってしまったが、もはや、大半の数学者は直観主義で、選択公理の使用には注意を払う感じ。実はもう少し広いのだが。」 / Twitter

2020-12-14

Shinji KonoさんはTwitterを使っています 「安易に書いたけど、普通、スコープは名前のスタックを使う。そんなの使ってないので、何か足りないかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あぁ、変数を同じ変数名の変数で置き換えるとよろしくないかも。でも、一階だから∀と∃の置き換えは値だし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まあなんかおかしくなるかもしれん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あら、やっぱり、ここでxを保護しないとだめだな。 (∃ x =&gt; y) [ n / v ] = ∃ x =&gt; (y [ n / v ])」 / Twitter
Shinji KonoさんはTwitterを使っています 「同じ変数名ならskipするで良さそうだが…」 / Twitter

2020-12-16_時相論理

Shinji KonoさんはTwitterを使っています 「正規表現からDFAの微分法は、時相論理のタブローとほぼ同じ。部分項の組合せになるんだが、それが有限になるかどうかは論理あるいは正規表現をどれだけ拡張したかによる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaでの停止性の証明はreduction に落とす必要がある。この場合は部分項が増えるので向かない。でも、これもcoinduction にできるのかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「増える場合は決まってるので、それを構文として固定する方法が降ってきた。左再帰の処理に似てるな。A*Bみたいにするわけね。 A unitl B だな。逆にLTTLに変更するわけか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微分した時にunitlのnestが起きなければ勝ちだ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「昔のITLの実装はPrologなので停止性は自明じゃない。ITLはa;bという演算子一つだけでaは必ず単調減少するが、全体の論理的組合せは任意に増える。それは線形にしか増えないが、項に真偽が割り振られるので指数的になる。それは変数の2^nで抑えられる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「平行プログラの検証の難しさは同期の変数の数の指数乗になるってことね。でもそんなにひどいことにはならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「LTTLでは部分項に真偽を割り振るという方法で検証が可能で多項式計算量になる。でも、所詮は変数に対する指数乗なので、まぁ、誤差みたいなもん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ITLはそれはできないのだが、部分項の指数乗で抑えられる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まあ、それは変数がintervalに依存しない場合で依存する場合は文脈依存文法になるので決定不能性になる。それが決定可能になる場合もあるってのがイギリスにいた時にやったことなんだが、まぁ、受けは悪かった。それを使ってプロセス代数方程式にしようって話。2ITLと呼んでいた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「つまりintervalに依存する変数を命題ITLの二階の変数とみなせるという話。実際、CDGの充足性の問題になる。あんまり調べなかったが、その辺りの研究はやまほどあるんだろうな。finite interaction とかを考えてた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「指数乗ってのは指を二進数的に使う数え方って意味」 / Twitter
Shinji KonoさんはTwitterを使っています 「このままだと停まらないのだが (Regex Σ ) until (Regex Σ ) にすると停まるんじゃないか。 https://t.co/Lz8yHduJLD」 / Twitter
Members/kono/Proof/automaton: 4c3fbfde1bc2 agda/derive.agda
Shinji KonoさんはTwitterを使っています 「なんかemptyかどうかを気にする必要があるのだった。 https://t.co/T3JE9kNNJu」 / Twitter
正規表現の微分でサブマッチング - Qiita
Shinji KonoさんはTwitterを使っています 「実装する気になれないな…」 / Twitter
Shinji KonoさんはTwitterを使っています 「一つは変換結果が正しいことを示すのが手間だからだな。concatが閉じてることの証明かなり面倒だった。というと、coinduction 使えってのが降ってくるのだが。どうなのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「しかし、Automaton 簡単しようと何かすると、裏目にでるな。」 / Twitter

2020-12-17

Shinji KonoさんはTwitterを使っています 「AnyでfiniteSetを作るってのが降ってきたが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「次はllvm版からsetjmp抜くのをやるか」 / Twitter
Shinji KonoさんはTwitterを使っています 「LLVMのsetjmpは何回かやぶれさってる。stack切り替えるだけなんだが、return valueを設定する必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「setjmp除去はどっかにコードがあったはず」 / Twitter
Shinji KonoさんはTwitterを使っています 「ソースコードに直接コメントで書いたのだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、専用のsetjmp/longjmpを作る方が簡単な気がする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CbCだとarchitecture に依存しないsetjmp/longjmpが書けるはずだと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「builtinにしてコード生成時になんとかする。llvmはアーキテクチャに依存しないコース生成できるから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「GCC側はnested function/closureを使ってるのでいじらない。LLVM/clangはnested function持ってない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「llvm/clangでのbuiltinなアプローチもやったんだが… なんかで挫折した。」 / Twitter
Shinji KonoさんはTwitterを使っています 「setjmpはsp/fpを構造体に入れるだけ。longjmpも基本的にはsp/fpを元に戻すだけ。ただ、そこでcaller/calleeの戻し値をちゃんと渡す必要がある。Cのreturnは複雑なのでcallerのreturnを使う必要があるが、値はcalleeにあり、sp/fpを消すとよろしくないことが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「builtinはなんかだめだった。llvm IR levelで処理しきれなかったはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「結局、builtin 探し回った結論は、LLVM IR level では setjmp/longjmp は表現できないってことだんじゃないかな。10年くらいここを回ってるような気がする。」 / Twitter

2020-12-18_位相・集合・一階述語論理

Shinji KonoさんはTwitterを使っています 「ガロア理論一段落したので、位相空間論やりたくなってる。まず、開集合の定義からだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論でもできるけど、違う方法があると思われる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも、集合論もそうなんだけど、位相空間論も集合論/一階述語論理べったりなので、適当に直す必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そもそも位相空間論を圏論で再構築したのがすでにありそうな気がする。集合論でもToposのがあったんだが、モデル論的で「公理論的にもできる」としか書いてなかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そもそも集合論の公理が構成主義論理と合ってなくてさ。存在のみを公理化するべき。まぁ、自分で作ったのが合ってるとは限らない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「AgdaのTopology一つ見つけたが、Data.Finは残念な感じ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開集合は二つ集合の∩が開集合かつ、任意の開集合の集合の∪が開集合で良い。Data.Fin は要らない。まぁ、使うことになるかも知れんが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ZFSet あるから、楽勝だな。 record Topology : Set where field OSet : ZFSet _o∩_ : {x y : ZFSet }→ OSet ∋ x → OSet ∋ y→ OSet ∋ (x ∩ y ) _o∪_ : {x y : ZFSet }→ OSet ⊇ x OSet ∋ Union x これをZFSet record下でやっても良いんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「フィルターの定義に似てるな。 Filter ( L : HOD ) : Set where field filter : HOD f⊆PL : filter ⊆ Power L filter1 : { p q : HOD } → q ⊆ L → filter ∋ p → p ⊆ q → filter ∋ q filter2 : { p q : HOD } → filter ∋ p → filter ∋ q → filter ∋ (p ∩ q)」 / Twitter
Shinji KonoさんはTwitterを使っています 「FilterはLatice 上で集合論抜きに書ける。集合演算をLaticeで定義してやれば良い。 _⊆_ : L → L → Set n _∩_ : L → L → L」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、束論で議論すれば良くて集合論要らないんじゃないの? あるいは同じだがBool代数上で議論する。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論の公理を振り回すより、HODの公理の方が直接的で楽。モデルが同じなので、HODで証明すれば、集合論側で否定されることはない。ただ、集合論側で証明があるかどうかはわからない。HODならZFの公理から構築できるってのを示さないと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「できるような気がする。ここでいってるHODは上限が順序数で存在するので、そういうのがあれば集合だってのがなんかあった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それは証明するべきものだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「でも書き方がわからんな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論だと集合xに属さない要素全部ってのは集合にならないのだが、ODだと両方ODになる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「目標はチコノフなので Coverを定義する必要がある。 record _Covers_ (C A : HOD) : Set where field nei : ( x : HOD ) → A ∋ x → HOD cover∋nei : {x : HOD } → C ∋ nei x is-cover : ( x : HOD ) → A ∋ x → nei x ∋ x ぐらいかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開被覆はOSet∋Cで良いんだが… そもそも開集合って集合なんだっけ?」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合なみたいだな。で、有限部分被覆なんだが… ある自然数があってとやるしかない。finiteSet は既に定義したので、それを使うべきかもな。中にいろいろ便利なものがある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直積が面倒なんだが、ordered pairはある。でも、directに直積にしたいところ。面倒なのは直積が集合だってところだけなのでskipできるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「積位相がいるじゃん。 有限個の i に対してのみ Ui ≠ Xi である 何言ってるのか意味不明だな。あ、そうか、無限個の直積を考えてるからか。 先に無限を書くのは数学者のくせか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「単に射影の有限部分被覆を考えても凸集合しか出てこないからダメって話。形は無限に複雑になるのだが… 所詮は可算モデルだから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「可算無限なのに有限と無限の差が出るのは不思議」 / Twitter
Shinji KonoさんはTwitterを使っています 「元の空間がないとだめなんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「結局、凹集合を数え上げる話になるのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「任意の積位相による開被覆は、結局は、各射影の開集合から構成されてるはず。問題はむしろ、凹の含まれてない点にあるんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開基から生成ってのもやらないとだめなのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろ面倒だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開集合には穴の空いたのもあるわけだから、別に凹でも良いじゃんという気がするが。いや、射影の有限被覆からは作れないって話か。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開被覆の開集合の構成の各段階で有限被覆を確認すれば良いだけな気がするが… 構成をとって来れるのかな。いやでも、積位相の作り方からして、生成手順がないとあれだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それですむなら、かなり簡単なんだけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、それは個々の開集合の話か。開被覆は無限個の開集合を含むから…」 / Twitter
Shinji KonoさんはTwitterを使っています 「有限交叉でやるのが普通らしい」 / Twitter
Shinji KonoさんはTwitterを使っています 「チコノフはこれがわかりやすいんだが、極大フィルター使うと良いと書いてある。極大フィルターの存在には選択公理を使うはず。 https://t.co/IevZBJWnnt」 / Twitter
チコノフの定理の証明の概略 - 再帰の反復blog

2020-12-19

Shinji KonoさんはTwitterを使っています 「この操作は集合の上限と順序と排中律があればいける。追加するのは直積の任意の集合かな? QT 与えられた集合族Sに対して、有限交差性を満たすようにしながらどんどん集合を追加して、これ以上もう追加できない状態(有限交差性についての極大集合) S' にしておけく」 / Twitter
Shinji KonoさんはTwitterを使っています 「極大フィルターってのは超フィルターのことか。 Xはコンパクト ⇔ Xの超フィルターは必ず収束する。 確かにこっちの方が楽かも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「超フィルターはこれ。収束と書いてあるが存在で良いんだろうな。 record ultra-filter { L : HOD } (P : Filter L) : Set where field proper : ¬ (filter P ∋ od∅) ultra : {p : HOD } → p ⊆ L → ( filter P ∋ p ) ∨ ( filter P ∋ ( L \ p) )」 / Twitter
Shinji KonoさんはTwitterを使っています 「結局、超フィルターの存在がコンパクトと同値で超フィルターがLnにあった時に、その直積に対して超フィルターを定義してやれば良いってこと?」 / Twitter
Shinji KonoさんはTwitterを使っています 「だったら、ZFの一部としてやるのが良いな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「お、確かに有限交叉性そのものな気がしてきた。なので、楽勝っぽいです。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ということはフィルターの filter2 : { p q : HOD } → filter ∋ p → filter ∋ q → filter ∋ (p ∩ q) これは実は有限性に関する言明ってことなのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「開集合ではなくトポロジーと呼ぶ方が良い気がする。ある集合族が開集合であることを要求するのがトポロジーなんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ZFからここまで来たと思うと胸熱だな」 / Twitter
Shinji KonoさんはTwitterを使っています 「ならNatとか使わずにコンパクトを定義できるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「多分、有限交叉性の定義をフィルターに並行するように書いて、それが*普通*のコンパクトに同値だと証明するのが良さそう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「つうか、ultra filter が有限交叉性だってのを示せば良いのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これは超フィルターの定義を書いた時に、これは有限交叉性だと一発で見抜けないとだめなケース」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合 X 上の集合族 S が有限交叉的とは T ⊂ S が有限族のとき ⋂T≠φ だと書いてあるがSはもちろんφを含まない。Sの要素二つの∩がSに含まれて、それがφにならないで良いのだな。Sから始めて∩とっていけば良いのかな。まぁ、そんな感じか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「数学科に聞くと「なんだ超フィルターが有限交叉性だって知らなかったの?」と笑われるパターンだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あら超フィルターが集積点を持つと書いてるな。なので超フィルターが直接、有限交叉性になるのではないのだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かに超フィルターはLか\Lがどちらかに含まれるだから、ちょっと違う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここで開集合が出てくるのか。 QT 位相空間 X の部分集合 S に対し、X の点 x が S の集積点であるとは、x を含む任意の開集合が少なくとも一つの x と異なる S の点を含むことを指す。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これはinitial objectってことか」 / Twitter
Shinji KonoさんはTwitterを使っています 「accumulation pointよりも、limit pointの方が直接的」 / Twitter
Shinji KonoさんはTwitterを使っています 「2011にも集合論とチコノフを復習してるな」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんでこの時期だったのかは不思議 https://t.co/QwZWYOKQ5e」 / Twitter
Seeker's eye: チコノフの定理
Shinji KonoさんはTwitterを使っています 「Programming Language Foundations in Agda https://t.co/btA0QXs4Fi」 / Twitter
Programming Language Foundations in Agda – Table of Contents
Shinji KonoさんはTwitterを使っています 「推論が繋がったら証明でしょ。なに言ってるの? 帰納推論と一緒にするな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ポパーの反証可能性とかも、推論と帰納推論の混同なんだよな。いや、偽の命題があったら無矛盾というあれなのかも知れんが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁでも、だいたい、tweetした感じでできるっぽい。かなり量が多いがファイル一枚に収まりそう。チコノフの定理はだいたい2ページくらいのが多い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、Generic Filterとか放置してるものも多いので…」 / Twitter

2020-12-20

Shinji KonoさんはTwitterを使っています 「Generic Filter もかなりめんどくさくて。できそうではあるが、くらい。Cardinal の方を優先するべきだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「どうも5次元以上の多次元になると、幾何学が単純になってしまうらしく、それで時空が4次元って話があるらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんかGeneric Filterには部分関数は関係ないってのがわかった。反例ででてくるHω2は別ファイルが良くて、しかも、それがNat→2の部分関数であることを示す必要もないらしい。単にそういう性質を持つωの部分集合の集合であれば良いらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この辺り、今やるといろいろ簡単かもな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ω→2は数え上げできないのだが、定義上限のある部分関数にすると数え上げできる。そういうトリックらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「可算モデルだと、中の非可算集合も結局は可算なのでωとのbijection がある。でも対角線論法があるので中の可算集合とのbijectionはありえない。問題は、そのbijection が集合かどうかだと思うんだが… 普通にbijection を定義するのではだめ。可算モデルの中でbijection を定義する必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、でも普通のbijection で集合であることを要求するのが簡単そうに思える。pairでも、単なる順序数のpairではなくて、それが集合に対応することを要求してた。でも、なぜ集合である必要があるのかが謎だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論の中がreal worldに対応するためには、そういうことが必要なのだというメタ公理みたいなものかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直接的には対角線論法と両立させるためか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「bijection が集合である時のみ、実世界のbijection と一致するみたいな感じか。これって、そういう言明は集合論ではあるのかな。まぁ、集合しかないから、それでやるしかないんだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Bijection はODでは書ける? そこでHODでないと矛盾するってのを出せるのか? 矛盾は出るが、ODで書けるのかって問題か。実世界ではBijection は常に存在するとは限らないってことだが。んー。」 / Twitter
Shinji KonoさんはTwitterを使っています 「対角線論法 record Bijection (R S : Set): Set where field fun← : S → R fun→ : R → S fiso← : (x : R) → fun← ( fun→ x ) ≡ x fiso→ : (x : S ) → fun→ ( fun← x ) ≡ x diagonal : ¬ Bijection ℕ ( ℕ → Bool ) ってわけだが。(レベルが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「HODでのBijectionは、こんなふうに書くのか。(昔の自分に感心してる https://t.co/uoRLnOZrp0」 / Twitter
Members/kono/Proof/ZF-in-agda: 28c7be8f252c cardinal.agda
Shinji KonoさんはTwitterを使っています 「この方法だと、可算順序数だと無限集合は必ずBijection があるになってるな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「やはり何かいるな。可算モデルでのPower ωは歯抜けだが、公理はω→2が全部入ってると主張してる。Bijection は歯抜けに対して成立しているが、公理の主張からはBijection があると矛盾になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「普通はPower ωはHODではないになると思うんだが… そういう解決方法もある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「排中律は絡んでいるのだが、選択公理下では使えるので…」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合論のBijection は普通のBijection より条件が多い。行き先が集合内にあるという限定がある。一度、順序数を経由するのでそうなる。Power ωだと、そこが乗り切れない感じか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それで良いみたいだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ω→2が可算順序数の部分集合で全部入ってないのがバレないのは、レーベンハイムスコーレム。対角線論法で実際に入ってないものが構成できるのだが、その入ってない範囲は内部のωであって、Power ωは値を指定せずに「その外にある順序数」を返す。構成できるものは可算なので問題ない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Bijection は中のωとの対応を要求するので矛盾するので存在しない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「record Injection (A B : Ord ) : Set n where field i→ : (x : Ord ) → odef (* A) x → Ord iB : (x : Ord) → ( lt : odef (* A) x ) → odef (* B) ( i→ x lt ) iiso : (x y : Ord) → ( ltx : odef (* A) x ) ( lty : odef (* A) y ) → i→ x ltx ≡ i→ y lty → x ≡ y」 / Twitter
Shinji KonoさんはTwitterを使っています 「このiBの部分が相手の集合に乗ってるのことを要求するのだが、ω→2だと、それが示せない。できるとすると対角線論法に引っかかる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろヒヤヒヤするよな。でも当時の集合論を作った人たちも矛盾を踏まないかどうか心配してたはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「この話は結局、可算モデルの中で非可算集合はどう定義されるかってことで、内部のωにInjectionがないって話に帰着するってこと。連続体仮説はInjection の制御の問題になる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁでも、まだ証明を遂行してないので間違ってるかも知れん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なのでbijection が集合かどうかとは関係なかった」 / Twitter
Shinji KonoさんはTwitterを使っています 「今のHODでは具体的な順序数の値を指摘できるのは空集合だけ。pairでさえどの値を持つのかわからない。ただ、一対一を仮定してるので詰められて入っていることになってる。まぁ、それはスカスカに対応させた後、詰めれば良いとも思えるんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「一対一はなんか変。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんかもうありとあらゆるものが可算集合の中に入ってるので、それで良いんですかっていう気分。」 / Twitter

2020-12-21

Shinji KonoさんはTwitterを使っています 「ベルンシュタインとバーンスタインっておんなじだよな。ちゃんと証明しないとな。」 / Twitter

2020-12-23

Shinji KonoさんはTwitterを使っています 「今年は、ZF on Agdaで「しまった」の大逆転があったのが面白かった。安易な仮定を入れて解決したが… 6/24に見つけて7/5には片付けてる。そのあと、わりといろいろ進んだが放置中。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そのあと、群論に転んだ理由は不明。でも、おかげでFresh Listを学べた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「置換をコンビネータで書いて、具体的な有限減少数列FLに対応させるわけなんだが… もっと簡単な方法がある。01234に置換を適用して、それからFLを計算すれば良い。bijection をいじるのは難し過ぎ。逆も可能。まぁ、やってみないとわからんか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まあ、でももうできてるし、今やる気はないな。変換したリストがbijection に対応するのを示す必要がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「割と簡単かも」 / Twitter
Shinji KonoさんはTwitterを使っています 「やろうとしたあとがあるな。やっぱり面倒なのかも。 ---FL→perm : {n : ℕ } → FL n → Permutation n n ---FL→perm x = plist→perm ( FL→plis x) -- perm→FL : {n : ℕ } → Permutation n n → FL n -- perm→FL p = plist→FL (plist p)」 / Twitter
Shinji KonoさんはTwitterを使っています 「微分法の状態の有限性は入力の長さで抑えられるので、ωオートマトンでなければ気にする必要はない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「有限性を示す方法は決まった形しか出てこないで良いはずなんだが… やり方がわからんな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微分法の状態の有限性は、元のsubtermのx &amp; y の形の部分集合になるので、 subterm x subterm → Bool でsubtermの有限性から出るらしい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「微分法が正しく正規表現の意味を保存するかどうかは正規表現同士あるいは、さっきの subterm x subterm → Bool が元のに等しいかどうかの問題になる。split 使えるから意外に楽かも。そこからDFAまでは、まだ距離があるけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これは院生時代にやったITLのtableau展開と同じで、いろいろ工夫すると速くなる。BDD使ったり。」 / Twitter
Shinji KonoさんはTwitterを使っています 「CFGとPDAはやったのだが、同等性の証明はやってない。CFGがリストとか使っててダサい。動いてはいるようだが。再帰下降法(+左再帰)で書いてやる方がAgda向きだろう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「来年はTuring Machine 。対角線論法は書けたが、halt 問題がまだ。」 / Twitter

2020-12-24

Shinji KonoさんはTwitterを使っています 「halt 問題、いまいちうまくできないな。 List Bool → Bool と List Bool のBijection なはずだが。 TM : List Bool → Bool TME : TM → List Bool UTM : (tme i : List Bool)→ Bool halt : List Bool → Bool」 / Twitter
Shinji KonoさんはTwitterを使っています 「なのだが、 (tm : TM) (i : List Bool) → halt (TME tm + i) ⇄ halt (TME (UTM (TME tm) + i TMEは元に戻らないのだが、haltが違いを吸収してしまう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ、halt 問題難航してる… TM と List Bool のBijection halt : TM → Bool は仮定して良い。 halt tm ≡ halt (utm (encode tm)) は万能性からでる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そこで、TMに任意のList Bool→Boolが入っているとするとBijection Nat (Nat →Bool)になるという風にしたい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「まぁ、halt と not halt でも良いのだが」 / Twitter
Shinji KonoさんはTwitterを使っています 「TMに任意のList Bool→Boolが入っているの否定は TMでないList Bool→Boolがあるか。実際それをnot haltで構築できるわけだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「全部trueとかは自明にあるのでだめ。haltは自明でない例になってる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なので、 halt : TM → Bool だけでは足りないのだな。真実性の問題。」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltはTMなのでencodingがある。この辺りを組合せて、List Bool → Bool とList Bool のBijection を作れるだろと思ったんだが、List Boolに戻すのにencodeを使うと元に戻らない。encodeのUnique 性を要求すると、そこで矛盾してしまう。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Unique なのはTMなので、 TM → Bool と TM でやるべきかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それがBijection にならないのはわかるが、haltの役割は?」 / Twitter
Shinji KonoさんはTwitterを使っています 「それがBijection にならないのはわかるが、haltの役割は?」 / Twitter
Shinji KonoさんはTwitterを使っています 「自己参照側をやってみるべきだな」 / Twitter
Shinji KonoさんはTwitterを使っています 「Bijection ではなくて、injection でやれ説も。」 / Twitter
Shinji KonoさんはTwitterを使っています 「halt自体には大した意味はなくて、Bijection の反例なだけ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「injection でやるのが良いような気がしてきた」 / Twitter
Shinji KonoさんはTwitterを使っています 「インジェクションだとできないな」 / Twitter
Shinji KonoさんはTwitterを使っています 「非構成的にでも逆射を作れれば。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あ、わかってきたかも知れない...」 / Twitter

2020-12-25

Shinji KonoさんはTwitterを使っています 「なんか書けたような気がする。 halting : (halt : TM → List Bool → Bool ) → (z : TM) → ¬ ((x : TM) → tm z ≡ (λ y → halt x y ) )」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ、微妙に違うか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「halt は∀じゃなくて、何か存在すれば良いから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltがTMの停止を見てるかどうかは関係なくて、TMからBoolへの写像なTMであることが矛盾なのだが、自明なものを排除する必要があると思うんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「いい加減、AutomatonのAgdaと教材を整理して、問題を足さないと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、直接的にhaltなTM的に書きたいんだが…」 / Twitter

2020-12-26

Shinji KonoさんはTwitterを使っています 「対角線論法、injection だけでもできるはずだが、逆射の構成が排中律なしにはできないっぽい。二重否定で記述すれば何とかなる可能性もある。まぁ、Bijection でやるんだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Turing MachineとList BoolとのBijection はUTMがあれば自明な気がするが、Agda特有の面倒なことはある。でも一応言える。これは、TMが List Bool → Bool を全部はカバーしてないってこと。halt は、その中の一つの関数に過ぎないのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「知りたいのはhaltの特殊性が何かってことね」 / Twitter
Shinji KonoさんはTwitterを使っています 「Bijection の構成はhalt 一つだけだと無理だよな。なので、たぶんInjection でやってる。つまり、排中律とかのなんか別な仮定がいると思われる。それは、まぁ、haltの特徴なのだろというわけなんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltを使ってBijection 書けるでしょってのが最初の目論見だったんだが… halt : TM →List Bool → Bool っだけ。常にtrueを返すとかだとだめなのはわかる。でTMが停まる時に停まらないってのは? そうか、そもそもTMが未定義を含むの忘れてた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltの特殊性は停まらないことがないところにあるのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観論理的な二重否定表現を使ってしまった。知らんけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「haltが常にfalseを返したりしないってのは仮定にあるはずなんだが、明示的に書いてる証明はみたことない。それは理論の整合性、つまり、解釈が無矛盾なら偽を含むってやつなはずだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「√2が無理数だってのはn/mでn*nが奇数はありえない。で、偶数の時はどうするの? 互いに素を要求するのはなんだかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「これは割と良いが… https://t.co/Mhlwvobqfe」 / Twitter
√2が無理数であることの証明 | Fukusukeの数学めも
Shinji KonoさんはTwitterを使っています 「偶数x偶数が偶数なのは、偶数+偶数が偶数を使うと再帰で簡単に示せた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「2の因数の個数ってのは結構複雑な概念だよな。互いに素よりはましだが。 record Factor2 (x : Nat) : Set where field i : Nat j : Nat xis : x ≡ 2^i * j oj : odd j かな。 (fx : Factor2 (x * x) )→ even (i fx)」 / Twitter
Shinji KonoさんはTwitterを使っています 「互いに素を使うのとあまり変わりがない」 / Twitter
Shinji KonoさんはTwitterを使っています 「div : (x y : Nat) → Set div x y = div1 x x y y where div 1 1 _ _ = T div _ _ 1 1 = T div1 (suc x0) x (suc y0) y = div x0 x y0 y div1 0 x 0 y = ⊥ div1 0 x y0 y = div1 y0 y0 x x div1 x0 x 0 y = div1 x0 x0 y y くらい?」 / Twitter
Shinji KonoさんはTwitterを使っています 「どちらか1になるまでか。で、 even x → ¬ div x 2 div x y → ¬ (¬ div x 2 ∧ ¬ div y 2) これを示せば良いの? いや、割り切れる方を定義した方が良いな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「2*n*n≡m*m→ div n m となってよろしい。 record Rational : Set where i j : Nat dv : ¬ div i j だが、掛け算を定義すると約分が必要なのか…」 / Twitter

2020-12-27

Shinji KonoさんはTwitterを使っています 「√2は佳境にきたところで電池切れした。 残ってるのは gcd n 2 ≡ 2 → gcd m 2 ≡ 2 → ¬ ( gcd n m ≡ 1) だけだが、再帰でやらないのかも。 全体に長くて汚い…」 / Twitter
Shinji KonoさんはTwitterを使っています 「gcd を n|mの代わりに使うのはな。https://t.co/XPROOjRJAmにあるから、それを使う方が良さそう。素数が無限にあるやつとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「gcd n 2 ≡ 2 → gcd m 2 ≡ 2 → gcd n m ≡ 2 とは限らないのがな。gcd n mでnを減らすのはまずい戦略。gcd n 2なら2減らせるのだが。 再帰でないとするとなんだろう?」 / Twitter
Shinji KonoさんはTwitterを使っています 「GCDはまだできてないが、automaton の Agda の整理はなんとかできた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「GCDは、間違ってる可能性もあるんだよな。(いまさら?」 / Twitter
Shinji KonoさんはTwitterを使っています 「GCDは引き算で互除法を実装していて、引数4つで回してる。引き算といっても一つ一つ引いていく。gcd n m でnがゼロになった時に同時に引いていた m に切り替えるのだが、gcd m 2 をgcd (m - n) 2に切り替える必要がある。結局、再帰を並行してたどれば良いだけなはず。」 / Twitter
Shinji KonoさんはTwitterを使っています 「終了条件はできてるのだから、あとはinduction stepだけなのだが。」 / Twitter

2020-12-28

Shinji KonoさんはTwitterを使っています 「GCDが通らない理由はバス停で降ってきた。型が違うから明示的なsubstが必要なんだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ここは今でもなれないな。値としては同じなのに。」 / Twitter

2020-12-29

Shinji KonoさんはTwitterを使っています 「gcd、まだ、よくわかってない。この辺りの証明技術は身につける必要があるのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「gcdが片付くと、素数が無限にある証明もできるだろうな。有限ならn!+1が反例になるだけだから。ちょっと書こうとしたのだが、割り算がめんどくて…」 / Twitter

2020-12-31

Shinji KonoさんはTwitterを使っています 「結局、GCDについていろいろ証明する羽目になってる。詰将棋的。」 / Twitter
Shinji KonoさんはTwitterを使っています 「GCD、要するに複数の引き算を追いかければ良いのだが、めんどくさすぎる…」 / Twitter
Shinji KonoさんはTwitterを使っています 「まだ、制約が足りないみたいだな。意外に固い…」 / Twitter
Shinji KonoさんはTwitterを使っています 「去年はWindowsのくそと戦っていたらしい… 今年はGCDか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「初期条件から来る制約が書かれてないのが問題なのかな。それを明示的に証明するべきだな。これは、一種のHoare condition だ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「引数4つi,i0,j,j0だが、最初は i=i0, j=j0。さらに、 i≦i0,j≦j0,i0≦j0 くらいの制約が可能だな。示したいのはgcdは割り切れるなら1じゃないってだけ。 gcd261 : (n n0 m m0 i i0 : ℕ) → 1 &lt; n → 1 &lt; m0 → gcd1 n n0 i i0 ≡ m0 → ¬ ( gcd1 n n0 m m0 ≡ 1 ) 簡単なはずなんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Agdaで集合論をやった結論の一つは 選択公理は排中律と同値 まぁ、ODなので集合に順序が最初から入ってるからそうなるわけなんだけど。でも、それで自分的には納得。」 / Twitter
Shinji KonoさんはTwitterを使っています 「可算順序数から作った実数が実世界に対応するかどうかは、また、別の話。それは一種のチャーチのテーゼではあるな。」 / Twitter

2021-01

2021-01-01

Shinji KonoさんはTwitterを使っています 「制約追加、意外に自明じゃない。順序入れ替えるだけではあるが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「おっと、制約増やすと止まらないのか。ありえんな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「引数を増やして止まらなくなるのはおかしいだろ。でも、まぁ、仕方ないかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「制約を外部的に出す方が良いのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「うーん、ちょっと難しいな」 / Twitter
Shinji KonoさんはTwitterを使っています 「再帰のステップの一部だけ抜き出して証明するってのはどうだろう?」 / Twitter
Shinji KonoさんはTwitterを使っています 「停止条件の継承みたいな推論があると良いのだが。そうすると引数を安心して増やせる。」 / Twitter
Shinji KonoさんはTwitterを使っています 「あ、なんか降ってきた」 / Twitter
Shinji KonoさんはTwitterを使っています 「&lt;-cmp をはさむと止まらないのか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いやだめだ。振り出しに戻る。」 / Twitter
Shinji KonoさんはTwitterを使っています 「おっと致命的な条件を忘れてたぜ」 / Twitter
Shinji KonoさんはTwitterを使っています 「いや、関係ありませんでした。」 / Twitter

histric-1

Shinji KonoさんはTwitterを使っています 「_⊆_ : ( A B : ZFSet ) → ∀{ x : ZFSet } → Set m _⊆_ A B {x} = A ∋ x → B ∋ x なので ⊆ の方が直観主義論理的に扱いやすい。真部分集合にすると等しくないという条件を追加する必要がある。フィルターの定義も⊆を使う方が自然。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ホモロジーは学部のどっかで少しやった。が、集合論/位相空間論に自信のない頃だったから。数学科の同期に「どこで選択公理使ってるかわかる?」とか言われてた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「学部の頃のいくつかの本にも選択公理は非構成的な概念だと言われていたのだが、その頃はまだわかってなかった。チコノフの定理の証明の難しさは乗り切れてなかったし。でも、まさか排中律のことだとは思わないじゃん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「選択公理抜きでやるのがどういうことかもよくわかってなかった。排中律なしの数学がどう言うものかは、やってみないと。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ただ、当時も大学の数学の厄介さは、量化記号のスコープがはっきりしてないことだとは思ってた。今の学生はそこをプログラミング言語として突破できるのだな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「整列定理から選択公理を導くのは排中律があればいけるのだが、使うのは一箇所じゃない。 ∀-imply-or : {A : Ordinal → Set n } {B : Set n } → ((x : Ordinal ) → A x ∨ B) → ((x : Ordinal ) → A x) ∨ B この微妙な命題に排中律がいる。避けられるかも。 https://t.co/khuE8t4kPf」 / Twitter
Members/kono/Proof/ZF-in-agda: 9b0630f03c4b LEMC.agda
Shinji KonoさんはTwitterを使っています 「OD baseだと、集合と順序数の対応は仮定してしまうので、選択公理から整列定理はやらない。排中律は選択公理から出るけど対応を使ってるので、それなしだと厳しい。選択公理から排中律抜きで整列定理が出るとは思えないな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「集合の整列には∈と⊆の二種類の順序数が入る。片方にできると良いが… x と {x} の関係によるか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「∈と⊆の二種類の順序の調整は、なんかトライした記憶がある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「{x}がxの直後順序数に対応するってのを入れると⊇だけで良いらしい。こっちの方を公理にする方が良いかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「{x}は (x,x) なので構文的な問題でしかないのだが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「data/datum だから axia/axiom みたいにならないの? axioms って書いちゃったりするけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「{x}とxの対応からはPower xとxの対応は出ないのでなんか仮定する必要がある。それが連続体仮説。少なくとも何かで抑えられるとしないとPower x自体が集合にならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Power ω は集合ではないでも良いんだが世間が許してくれない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「それで可算順序数がPower ωを含むっていうあほなことになるわけで… 可算順序数の可算性は中からは見えないので問題ないけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「pairを直後順序数にすると、そこに他のものが割り込めない。pairの上界と個々のpairの間には無限の隙間があるから、そこに順番に入ってしまうイメージだな。それは制限が強過ぎる気もするが問題ない気もする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「なんとなく、malloc的なイメージを持ってしまうので、型が違うものの配置が入り混じる方が自然な気がする。まぁ、あんまり関係ない。絶対アドレスはわからないから。」 / Twitter
Shinji KonoさんはTwitterを使っています 「V=Lや連続体仮説あるいは選択公理は、集合と順序数の対応、そして集合の要素に対応する順序数の上界に帰着されるようなので、あんまり制限を入れたくない。Filter抜きでもいけそうな気がするんだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Automaton 普通にSetを返すように書いて行ったら、バッチリ行き詰まった。いや定義は書けるんだが、acceptを証明にいかないとダメなので厳しい。acceptがBoolを返すようにする方が簡単だな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「TL/1 compiler はtranslator が思ったよりもめんどくさい。」 / Twitter
Shinji KonoさんはTwitterを使っています 「型整合はプログラムの正しさの一部でしかないのに、なんで偉そうにしてるの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「プログラムでヤコビ行列というとベクトル可算システムってのがあって、ペトリネットとかに使われてたが… 実用的かどうかと言うと。でも、今の深層学習はそういうものかも知れないな。」 / Twitter

Shinji KonoさんはTwitterを使っています 「掛け算の対称性を示すのに、長方形を縦に足しても横に足していっても同じってのがあるのだが、それらは記号論理的には別物。それが同じ値になることを示すのは容易なのだが、それでは対称性を示したことにはならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「無無矛盾は、直観主義論理だと、無矛盾を構成的に証明できたら矛盾な意味になる。それはなんと証明可能なんだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「可換環って、そんなにやることあったっけ。有限ならいろいろあるだろうけど。めんどくさいのは非可換で、さらに不定計量とか。いや、代数学、この前復習した時にも、いろいろあるなぁとは思った。」 / Twitter
shinji_kono 選択公理 - Twitter検索 / Twitter
Shinji KonoさんはTwitterを使っています 「cut eliminationは一通り追ったけど、証明は割と厄介。停止性がね。僕は重要性はいまだにピンと来てなくて。重要だという人は多いんだが。 理由はAgdaでトラブルのは推論よりも 単一化 だから。述語論理の問題はそっち。」 / Twitter
Shinji KonoさんはTwitterを使っています 「カット除去は完全性の証明の一つなので、完全性証明したなら不要な気もする。」 / Twitter
Shinji KonoさんはTwitterを使っています 「不完全性定理はいまだにうまくて定式化できてない。UTMは頑張ればなんとかなりそうな気もするが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「自然演繹は必須だし理解しやすい。 証明とは何か 証明されたものが何故正しいのか がはっきりわかる。記号ゲームとして。なので論理学では、それを重視するのが良い。」 / Twitter
Shinji KonoさんはTwitterを使っています 「一階述語論理とモデル論は、直観とかなりのずれがある。論理式の意味は あらゆる可能な変数と述語の意味の組合せ なので超巨大。そのうちのすべての公理が 正しいもの がモデルなのだが、さらに 意味付けと関係なく恒真な式 とかを受け入れるのは困難だと思う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「特に等式がな〜 等しいものを並べた無限個の式の集まりとか、なんとかならんの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理だと それは項の正規形が同じこと と主張できる。あるいは 勝手に定義した同値関係 だな。こっちの方が無限倍まし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「無限個の等式の話を聞いたのはμ代数からだが、その時に言われたのは 別に普通ですよ おいおいおいおい。その感覚、おかしいだろ。合同性は数学の基礎なのに、そこに無限をいきなり持ってくるのかよ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ところが正規化が有限かつ唯一なことを示すのは割と厄介でしかも 停止性には選択公理が必要 避けられそうな気もするが… なので直観主義論理の等式もたいがいではある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直観主義論理が証明可能な論理式を問題にするように、観測可能なものだけを問題にして、それ以外の仮定を排除するようなものが必要なのかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「直接的に自己参照矛盾を示しても良い。対角線論法は間接的な自己参照に相当する。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ゲーデルの構成可能集合Lは最小モデルなんだが、古典集合論での定義を見るとSAT使ってたりして、かなり複雑。ODも定義可能なのでHOD=Lとなりそうだが、そうでない場合がある。HODはODのSubsetなのだが自由度がある。一応、Lも書いたんだが、なんかズレてる感じもある。」 / Twitter
Shinji KonoさんはTwitterを使っています 「思い出した。このgalois理論の証明、地獄のように時間がかかる。それをネタにしようと思ったのだった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ゲーデル数があるので前半は正しいけど、後半は帰着の方法を見つけることは決定不能なのでね。 QT必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」 / Twitter
成田 悠輔さんはTwitterを使っています 「線形代数はなぜ重要な基礎なのか?一つの答えは「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というもの。データと向き合う統計学や機械学習で線形代数が活躍する理由もデータが映し出す世界の解けなさ故だろう」 / Twitter
Shinji KonoさんはTwitterを使っています 「線形代数/連立方程式は確かに強力なのだが、それは定式化の一つで、数学に必要なlong shotに向いてるかというとそうでもない。ガロア理論もアルティンは線形代数使うのだが、五次対称群が可解群でないのを示すのには使ってない。線形代数でできるってのが主張なはずだが…」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「線形代数の重要性は否定しないけど、連立一次方程式に関係しない決定可能問題なんて幾らでもありそうで、「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というのは、過度の一般化と感じる。 https://t.co/zRwZHGK325」 / Twitter
GengaQ SurvivoR@11/16返却さんはTwitterを使っています 「行列に変数入れたら途端に難しくなるのはそう 対角化は本質的には非線形の問題なので」 / Twitter
Shinji KonoさんはTwitterを使っています 「Haskellに対するdebuggerを定義できないなら、関数型言語の良さってなんだよ。」 / Twitter

@sinya8282

2020-11-04

Ryoma Sin'yaさんはTwitterを使っています 「数理科学実験の第5回目が終わった... 正規言語(=左線形方程式の解)から文脈自由言語に一般化し、さらに講義内課題でいくつかの文脈自由文法を書かせた. 学生さんは文脈自由文法の定義を知らない状態から講義を受けて課題に挑戦しているので簡単ではないけど何人かは解けてて良かった. https://t.co/mt9cDNsJKi」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「文脈自由文法はPyhtonでは「初期変数」と「書き換え規則の列」のタプルで定義できて、あとはこのフォーマットの文法を deriv 関数になげると各ステップの導出が見える感じ. https://t.co/TxOrKnOPIg」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「自分で与えられた文法から導出したり、文法を考えてみたりして文脈自由文法の感覚がわかってきたところで、先週の講義でガッツリやった「原始語」の全体の集合が文脈自由文法で書けるかどうか?問題が open である歴史を少しはなして終わり. 来週は無曖昧文脈自由文法から代数関数の話に入る.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「具体的には代数関数の定義をおさらいして、文法を可換化して関数方程式を作り、その解が(文法が無曖昧の場合は)言語の母関数となってることを説明していろいろありがたみを話して、SymPyで母関数を具体的に計算機で計算するってのをやる予定.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「自分が配布した文脈自由文法のプログラムの+アルファの部分(講義内では必要ない additional なコード)に素朴なバグが入ってたので恥ずかしいです...直します...」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ちなみに最後の写真にある 「"a"と"b"が現れる回数が等しい(例:"baabab")語」 は私の痛恨のミスです😱 数が数えられないオートマトン人間なんで.......」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「{ w ∈ {a,b}^* | |w|_a = |w|_b } は regular language ではないけど、regular language の収束列の収束先ではあるので簡単(?) (cf. https://t.co/ENDkbclaBw」 / Twitter
Asymptotic Approximation by Regular Languages - measure.pdf
Ryoma Sin'yaさんはTwitterを使っています 「文脈依存言語と一般の生成文法の記述する言語の最小不動点的な特徴づけ、難しいのかな(いずれ読むか)? Generalization of the Ginsburg-Rice Schützenberger fixed-point theorem for context-sensitive and recursive-enumerable languages https://t.co/q4RcFR49Qj」 / Twitter
Generalization of the Ginsburg-Rice Schützenberger fixed-point theorem for context-sensitive and recursive-enumerable languages - ScienceDirect

2020-11-10

Ryoma Sin'yaさんはTwitterを使っています 「今朝は数学基礎論序説の輪講で∀∃理論のチャン-ウォッシュ-スシュコの定理をやったんだけど、頑張って初等部分構造の列を作っていって最後に初頭鎖定理で決めるの痛快でしたね. わかりやすく説明してくれた学生さんに感謝. https://t.co/sPxpLPt8c3」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「間違いと真理: 解析学と集合論の場合」 https://t.co/HvMuKN3iYb」 / Twitter
間違いと真理: 解析学と集合論の場合 - susemi2018-x.pdf
Ryoma Sin'yaさんはTwitterを使っています 「正則環 1mm もわからん.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「諸事情あって3.3節(ホーン理論と約積)は私が担当することになったんだけど、フィルター大好きマンなのであっさり読めた(というか主定理の難しい方向の証明はomitされてたので技術的に楽な節だった)。」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「えっ正則環って色々あるの. https://t.co/SO1Q4cwED7」 / Twitter
ぴあのんさんはTwitterを使っています 「どの正則環だろう」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「基礎論序説に出てくる「正則環」は (可換ではない)環の公理 + ∀ x ∃ y xyx = x のモデルですね.」 / Twitter
ぴあのんさんはTwitterを使っています 「@sinya8282 https://t.co/KEQSQLzB2E https://t.co/2U9apmIcXQ」 / Twitter
Regular local ring - Wikipedia
Von Neumann regular ring - Wikipedia
Ryoma Sin'yaさんはTwitterを使っています 「@piano2683 なるほどー. 基礎論序説に出てきたのは後者でした. んで私が1mmもわからんといったのは前者でした(ややこしい笑). 普通に「正則環」でググったら前者が出てきたので...」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「正則という概念を比較不能な概念に変換する von Neumann とか言う接頭辞、強すぎん?」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「可換環論と非可換環論で regular って言うとそれぞれ違う概念(regular/ von Neumann regular)を普通は思い浮かべるのかな.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「N上の超フィルターに思いを馳せることでRamseyの定理がスパッと出せるの気持ち良すぎるな?」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「超フィルター  = なんか性質の良いデカいもんの集まり Ramseyの定理  = デカいもんの有限分割にはデカいもんがある なので両者には自明な深い関係がある(???)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「半群のStone-Cech完備化に思いを馳せることで(私の知る限りstate-of-the-artな) Hales-Jewettの定理までスパッと示せるらしくて完全に超filterジャンキーになりそう. 超filterキメたいぞ〜〜〜〜」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「10月から講義準備で忙しすぎて死んでるのでフィルターで組合せ論倒すやつ勉強できてない... https://t.co/99XcIua2V4」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「半群論で習った正則半群はまさにこの定義(∀x ∃y. xyx = x)だったなそう言えば. https://t.co/q9B55LGtAb」 / Twitter
Regular semigroup - Wikipedia
ぴあのんさんはTwitterを使っています 「モデル理論の文脈だと、「vN正則環の理論」とその∀-Horn partである「冪零元を持たない可換環の理論」は共通のモデル随伴を持つけど、一般にはTがモデル随伴を持ったとしてもT_{∀H}がモデル随伴を持つとは限らない、とかの面白い話がある←ここでlattice-ordered groupが出てきて無事死亡」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「モデル随伴」の時点で死亡しました😭(勉強します...)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「さらにこの y を「一意に存在する」に強めたのが inverse semigroup さんです. https://t.co/cbp8orgwb6 自由 inverse semigroup さんの語の問題は微妙に非自明(自由群や自由モノイドの語の問題は自明)なところがちょっとおもしろかった.」 / Twitter
Inverse semigroup - Wikipedia
Ryoma Sin'yaさんはTwitterを使っています 「Inverse semigroup だけで一冊の本が出てるので色々理論があるんでしょうね. https://t.co/Fakg3jwMb3」 / Twitter
Inverse Semigroups

2020-11-11

Ryoma Sin'yaさんはTwitterを使っています 「今日の数理科学実験では文法の曖昧性の話をして、ちょっと自然言語の例も出したりした. https://t.co/gqPfotcXT4」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「この "people people people see see see" という例は私は金沢先生の形式言語のオンラインテキストから知りました. (こういう読みにくい英文があるとは!! 非正規!!!) https://t.co/RsShu5kwTY」 / Twitter
lecture1.pdf
Ryoma Sin'yaさんはTwitterを使っています 「んで Chomsky--Schutzenberger の定理を通じて文法から代数関数の話に行って、最後はプログラミングパート. SymPyで簡単な代数計算. https://t.co/lw1RIgPjxs」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「来週は SymPy でもっといろいろな計算をやる予定. 「意外と計算機でできることって多いんだ」と感じてもらえると嬉しいっすね(準備ぃ...).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ちなみに "people people people see see see." を DeepL に食わせると壊れます. _人人人人人_ > People <  ̄Y^Y^Y^Y^Y^ ̄ https://t.co/R7i91xkQsB」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「講義ツイに「イイね」押してもらえると素直に嬉しいしなんか準備ももっと頑張れる気がする(ありがとうございます😭)」 / Twitter
す (終了)さんはTwitterを使っています 「一瞬何言ってるのかぜんぜんわかんなかったのだが、people see が people にかかるのか。」 / Twitter
す (終了)さんはTwitterを使っています 「訳としては適切じゃないけど「お前を見る人が見る人が見る人が見る」みたいな…… people see ってあんま自然な日本語にならん気がするのは私が英語と日本語ヘタだから?」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ちなみに日本語でこういう形の文章(すなわち X^n Y^n で XとYは日本語)の例が作れないか少し考えてみたんだけど作れませんでしたね... 良い例があれば皆さん教えて下さいm(_ _)m」 / Twitter
Chomsky--Schutzenberger の定理 - Google 検索

2020-11-13

Ryoma Sin'yaさんはTwitterを使っています 「コーディング開始してまだ2時間ぐらいだと思うけど、すでにThompon構成をほぼ書き終わらせてGraphviz形式で書き出してオートマトンの可視化とかもできてる人もいる. 良いペース. #seccamp #seccamp_z3」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「才才才してるのでパズルっぽい基本定理であるところのGreenの定理が形式言語理論に役立つことを見抜いてしまったのだよな...  勉強した半群論が使えて気持ちいい〜〜〜 (cf. https://t.co/ENDkbclaBw https://t.co/PHaiUl1SkE」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「田中先生の本(p. 97)には(約積とホーン理論の対応の証明の直後に) 「では,直積を保存する文全体がどのようなものになるかというと,容易には記述できない.実際,それが計算不可能であるという結果がマコーバー(1960)によって得られている」 と書かれていました. https://t.co/YO5peY62Qj」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「マコーバーの論文に目を通してないので「計算不可能」の意味が1mmもわかってないんですが,有限の文の集合Tを入力として「Mod(T)が直積に閉じているかどうか」が決定不可能ってことを言ってるんですかね?よくわからん. (上の問題が決定不可能でも特徴づけが難しいってことの理由にはならない気も)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「こう,なんか,形式言語理論でもモデル理論でもそうなんですけど「演算XXXらで閉じている」っていう抽象的な性質が「YYYで定義できる」っていうより具体的な性質で書けるの気持ちよくない???」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「代数的言語理論とかのきれいな世界を知っちゃうと,有象無象にある閉包性の低い言語クラス(しかし応用上は重要)みたいなものをわりと軽視しちゃいガチな感じはたしかにある. とは言え変な言語クラスにも理論的に重要なものがあったりするのはママあるのでニュートラルな感性を持ちたい.」 / Twitter

Ryoma Sin'yaさんはTwitterを使っています 「正規表現の基本から教えて、オートマトンの作り方、バックトラックベースのマッチングの動作、バックトラックで実行が遅くなる例をみっちり紹介してReDoSの検出アルゴリズムを説明(これは藤浪さんが担当)して、と非常に濃い1日だった...  講義の構成上、多分初回が一番濃ゆい回な気がする.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「ReDoSの原因となる正規表現の部分構造の検出、オートマトンの繊維関係に順序関係を入れた拡張を考えたり、オートマトンのリバースとか直積とか強連結成分分解とかある構造のサブグラフの探索とかやるのでフツーにめちゃめちゃ非自明&テクいんだよな. (論文になってるぐらいだからな)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「ReDoSの検出」というよりは正確には「ReDoSの対象になるような多項式・指数時間のマッチングがありえる正規表現」の検出だけど長いので省いた.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「強連結成分分解、Tarjanとか凝ったことしないで素朴に幅さ優先で到達可能関係を計算していく方針でやったら簡単に実装できるよね(それでもたかだか3乗オーダーとかじゃないか?).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「2乗オーダーも3乗オーダーもどっちも線形でない多項式、変わらへん変わらへん(炎上発言).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 せや DFS 2 回を 1 回にできるのが凝ったやつ、オーダーは変わらん」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany あ〜なるほど完全に理解.一回でできるってのが嬉しいのね. ってかグラフアルゴリズム界隈ぜんぜん知らんかったけど「線形」っていうと普通は辺の数で線形って意味なのか(点の数かと思ってた).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 「入力サイズ」に対して線形ですね グラフは頂点も辺も入力なので、正確には O(|V| + |E|) です」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany まぁそりゃそうか(職業上、|V| &lt; |E|なグラフを常に考えているのでO(|V|+|E|) = O(|V|)的に無意識に考えていた).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 (何かがおかしい)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany |V|と|E|また間違ってしまった.」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 もちろん素朴に 2 点間の到達可能関係を全部ゼロから計算しても求まるけど、それはさすがに線形ではない」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany (最初のツイで私が言った「素朴な方法」はそっちだった笑)(素朴すぎた)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「適当なつぶやきするとプロから即座に指摘&指導してもらえる、それがツイッター(ありがたい).」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 これ読んで勉強して https://t.co/DbbVZR5k4o」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「強連結成分分解のアルゴリズム、シンプルな魔法って感じがする https://t.co/W4ovNEW25T」 / Twitter
強連結成分分解の意味とアルゴリズム | 高校数学の美しい物語
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany サンキュー!高校数学やりなおすわ. (っていうか昔これ読んで勉強した記憶が笑)」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 (さっきのツイートふぁぼられてたしな…)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「@ygussany YYのツイート見て読んだかもそういえばw」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「みんな、どんどんオートマトン理論でテキトーなつぶやきしてくれよな!(優しく教えます)(まぁ全部観ることはできませんが)」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「VもEも同じ1文字やし同じようなもん(???).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「は?????? 指数爆発DFA投げつけるぞ???? (優しく教えるとは)(Rabin–Scott並感やめろ) https://t.co/QoSKNvASR0」 / Twitter
⚫️Y.Y.⚪️さんはTwitterを使っています 「オートマトンとか決定性でも非決定性でも実質同じでしょ」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「今日のセキュキャンZ3(ReDoSの検出)の講義では、先週のかるいおさらいして「とりあえず正規表現からオートマトン作るコード書きましょうか」という感じ. JSの正規表現のパーサーはチューターの開発してるRere.jsを流用して、純粋にThompson構成を実装する感じ. https://t.co/nnupaquALy」 / Twitter
MakeNowJust/rerejs at 0c2ac95d0f13b7c5acfc75fc2e0db6239058eb07
Ryoma Sin'yaさんはTwitterを使っています 「ほんと,こんな単純なメカニズムで文脈自由文法は定式化されているのに普遍性が決定不能なのヤバいよな.」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「文脈自由言語、こういうふう(→を⊃)に書くと完全に代数やってる感じ. https://t.co/teGhe6QxrK」 / Twitter

@masahiro_sakai

2020-10-30

Masahiro SakaiさんはTwitterを使っています 「Compiling with Continuations, or without? Whatever. https://t.co/GzSpSU3YrZ CPSベースとdirect style + 明示的な合流点のIRの双方の利点を活かせるIRとして、FelleisenのC的な機構で継続へのアクセスを選択的に許しつつ、エスケープするかとリターンするかを型システムで扱うようなIRを提案。」 / Twitter
Compiling with continuations, or without? whatever. | Proceedings of the ACM on Programming Languages
Masahiro SakaiさんはTwitterを使っています 「恥ずかしながら "CFG-based IRs in SSA-form are isomorphic to CPS" って知らなかった(それはそう)。 エスケープすべきでない値がエスケープしないことの保証は、一級・二級の型付けを区別し、ラムダ抽象の本体に対して一級の型付けを要求するだけでよく、そんな簡単に出来るんだと思った。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「ちょうど ICFP 2016 での Sequent Core の話 https://t.co/yXzKPUhNWc や、その前の Haskell Day での SPJ の講演 "Into the Core Squeezing Haskell into nine constructors" の話を聞いたのを思い出して、ちょっと懐かしくなった。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Sequent Calculus as as …: SPJがHaskellDay2016で言及して気になっていた発表。ラムダ計算の代わりにシーケント計算に基づいた中間言語。 "Continuations as Join Points" #ICFP2016 #hsd2016」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「@masahiro_sakai GHCプラグインとして実装 https://t.co/FgMyu8IXoo ; Sequent Core と Core は相互に変換可能。 case-of-case とかの最適化の際にjoin pointであることを保つように。 #ICFP2016」 / Twitter
lukemaurer/sequent-core: Alternative Core language for GHC plugins
Masahiro SakaiさんはTwitterを使っています 「@masahiro_sakai join point っぽい関数を見つけてjoin point化。 "Re-contification" ベンチマーク結果は大きく変わってるが、主な理由は(現在のCoreに合わせて調整されていた)inlinerの振舞の変化 #ICFP2016」 / Twitter

2020-11-18

Masahiro SakaiさんはTwitterを使っています 「Pure destination-passing style in Linear Haskell https://t.co/B2oVGyoHJo 書き込み先のバッファを渡して書いてもらうDPS(destination-passing style)に線形型を組み合わせると、純粋なコードのまま(fusionに依存せずに)低レベルな最適化までできて良いよという話。線形型いいなぁ。」 / Twitter
Tweag - Pure destination-passing style in Linear Haskell
Masahiro SakaiさんはTwitterを使っています 「DPSは以前に https://t.co/ZF07j2EC22 で紹介した関数型配列処理言語 F̃ で最適化を行うための中間表現とコード生成でも使われていたが、そういうのを表層言語で型安全に実現できる。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Efficient Differentiable Programming in a Functional Array-Processing Language https://t.co/FeSkAQjB7l ソースコード変換に基づく(スカラではなく)配列処理ベースのフォワードモード自動微分を備えた関数型DSLの提案。書き換え規則に基づく最適化で、リバースモードが得意なケースでも速い。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「Compact normal forms + linear types = efficient network communication https://t.co/3fz2eNSLPF 「コンパクトにシリアライズされた表現をデシリアライズせずにそのまま操作する」ようなコードを安全に書くための線形型の応用で、これも面白い。」 / Twitter
Tweag - Compact normal forms + linear types = efficient network communication

Masahiro SakaiさんはTwitterを使っています: 「Runtime Support for Multicore Haskell: a Retrospective https://t.co/T8ns3Rq7Ak ICFP’09の掲題論文のSIGPLAN ten-year most-influential paper award受賞を機とした振り返り。純粋関数型言語は並列化に向いていると思いきや色々難しい問題があり、その設計とエンジニアリングには当時感銘を受けた」 / Twitter
Runtime Support for Multicore Haskell: a Retrospective | SIGPLAN Blog

@KuniSuzaki

suzakiさんのツイート: "Concurrency二つ目。プログラミング言語GoではShared Memoryではなく、Communication (GoRoutine, Channel)を基本とするが、Concurrency Bugが起きやすい。この状況は調査されておらず、Goが使われているDocker, Kubernetes, gRPCを調べて171個のConcurrency Bug(Misusing Chanelなど)を見つけた。"
suzakiさんのツイート: "GoのConcurrency Bug調査のHP https://t.co/k9epibXBTT"
system-pclub/go-concurrency-bugs: Collected Concurrency Bugs in Our ASPLOS Paper
suzakiさんはTwitterを使っています 「形式検証がスケーラブルになることの論文 Scaling symbolic evaluation for automated verification of systems code with Serval [SOSP19] https://t.co/Y37WWQJyiY」 / Twitter
Scaling symbolic evaluation for automated verification of systems code with Serval - 3341301.3359641.pdf

@shima_tetsuo

島鉄雄さんはTwitterを使っています: 「数学でも a ← a + 1 みたいに書く事はあるけど、大抵 An+1 ← An + 1 のように右下に添え字を書く。(いわゆる漸化式) これは数学的に正しい訳で、関数型言語でもこうやって書けば再代入にはならずに合法なはず。 要するに関数型言語に漸化式を導入すれば…何かをひらめきそうな気がするw」 / Twitter
島鉄雄さんはTwitterを使っています: 「数学でも a ← a + 1 みたいに書く事はあるけど、大抵 An+1 ← An + 1 のように右下に添え字を書く。(いわゆる漸化式) これは数学的に正しい訳で、関数型言語でもこうやって書けば再代入にはならずに合法なはず。 要するに関数型言語に漸化式を導入すれば…何かをひらめきそうな気がするw」 / Twitter
島鉄雄さんはTwitterを使っています: 「昔プログラミングが分からないって人が a = a + 1 がおかしい言ってて、=は等しいじゃなくて a ← a + 1 って事だよと言っても理解されなかった。 これは良く考えたら再代入だから、関数型言語では有り得ない事で、マシン語レベルの理解が無いと何が起きてるかは理解出来ない。 そういう事だったのか!」 / Twitter

@esumii

S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/A2GeJ7CfzQ 抽象化はプログラム等価性。抽象化により実装が異なっていても等価になるので、その等価性が完全に保存(full abstraction)されない限り(されることは極めて稀)、チューリング同値な言語同士でも意味論は異なる。#いつもの我田引水だけど本当」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「あれ、「プログラミング言語はチューリング完全でも抽象化によって異なる意味論を持つので等価とは言えない」話をしたLL Futureのスライドがサイトごとなくなった?」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「なので「プログラミング言語はチューリング同値ならみんな等価」は(よくある)誤解。」 / Twitter

@yohhoy_@yoh2_sdj

yohさんはTwitterを使っています 「並列データ構造は本質的にテストできないと思うので 実装可能なテストだけ実施なのかなぁ 真面目にやるなら形式的検証を頑張るか あとはもう人力レビューなんじゃないかなー」 / Twitter
yoh2さんはTwitterを使っています 「上手い委譲の仕組みがあればホントに継承要らなくなってくるんだよなぁ (Lombok の @ Delegate を四苦八苦しつつ使いながら」 / Twitter

@kdwkshh

Shuhei KadowakiさんはTwitterを使っています 「仕事でScala書き始めてひと月くらい経つけど、やっぱりピンとこないや。 コード自体よりもビルドだの依存解決だの開発環境整備だのassemblyだので取られる時間の方が多くてモヤモヤする。あと静的型付け一般なのかもしれんけど、JSONとか扱う時型付けがアホくさくなる。」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「2年前Javaでアルゴリズムの勉強してた時は静的型(というよりそのおかげでenhanceされたIDE機能)好きだったけど、だいぶ見方変わったな。」 / Twitter

@helloyuki_

yukiさんはTwitterを使っています 「すごい全部盛りだ😳 動画を見てみたけど、IOの有無を効果に基づいて制御して副作用のない関数のみ受け取れるよう工夫した言語になっていた。/Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ https://t.co/gtQSP39i6E」 / Twitter
Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ
yukiさんはTwitterを使っています 「IOの制御が重要なのは、セキュアワールドにある機密情報を守るため、あるいはノーマルワールドへの不正アクセスから守りたいから。副作用を制御できると、ここを守ることができる。これを効果系を適用して解決している。」 / Twitter

@y_taka_23

チェシャ猫さんはTwitterを使っています 「今ふと思い付いたんだけど、configuration language のモジュール分割は最小カット問題として定式化できるんじゃないだろうか?」 / Twitter
チェシャ猫さんはTwitterを使っています 「世の中で言われる「コンピュータサイエンス」って異様に実装寄りな気がする。」 / Twitter

@MathWIllsOffice

MathWills運営事務局さんはTwitterを使っています 「位相空間って、学習したての頃は、こうやってお絵描きしながら学ぶもんなんだと思います。 そして、お絵描きして視覚的に理解できるというのが、現代数学を、集合論を基礎に組み立てる事の1つの大きな利点なんだと思います。 https://t.co/XRGNwGVkZE」 / Twitter
3元集合における29の位相 - MathWills

@Linda_pp

ドッグさんはTwitterを使っています 「Swift の並行性周りのロードマップが出てる.2段階で,まずは async/await や内部でキューを持って状態管理する actor class の導入.次にデータに特定の actor しかアクセスできないようにする actor isolation | 'Swift Concurrency Roadmap' https://t.co/C8cCzi5F5h」 / Twitter
Swift Concurrency Roadmap - Evolution / Discussion - Swift Forums
ドッグさんはTwitterを使っています 「一度だけしか呼べないメソッドつくりたい時,Rust だと self をムーブで取ってしまって返さなければ良いだけだから楽だな」 / Twitter
ドッグさんはTwitterを使っています 「テンプレートリテラル型がサポートされて,さらに型レベルのパーサが書きやすくなってるな… https://t.co/F5BMaSGowU」 / Twitter
Announcing TypeScript 4.2 Beta | TypeScript
ドッグさんはTwitterを使っています 「bool 以外の値が if の条件式に使えるのほんま要らんな… active というプロパティと activate というメソッドがあって,if (this.activate) ... とか書いてしまってた.まあ今回は条件文が恒真だったから lint が気付いてくれたけど」 / Twitter
ドッグさんはTwitterを使っています 「静的に1つの値しか取らないものを定数と呼ぶ勢 vs import 時に初期化されてそれ以降変更されないものを定数と呼ぶ勢」 / Twitter
ドッグさんはTwitterを使っています 「const PI = 3 as const; // これは定数 const ON_MAC = process.platform === 'darwin'; // これは定数?」 / Twitter
ドッグさんはTwitterを使っています 「JavaScript で複数のエラーを1つのエラーにまとめる AggregateError 知らなかった.Promise.any() で全ての promise が reject された時にエラーをひとまとめにするために定義されてるけど,汎用的にかなり便利そうだ https://t.co/Yd1NMCcQXp」 / Twitter
AggregateError() constructor - JavaScript | MDN
ドッグさんはTwitterを使っています 「Chrome で試してみた感じ,message プロパティは errors プロパティの中身を反映せず,トップレベルのエラーメッセージだけを出すのか.表示は自前でやらないといけないのちょっと微妙だな」 / Twitter
てらモス♋️さんはTwitterを使っています 「RefCell を使った事がほぼ無くて何も分からない…(´・ω・`)」 / Twitter
ドッグさんはTwitterを使っています 「同じくほぼ RefCell 使わないといけないケースになったことない.あれ必要なのかなり特殊なケースだと思うんだけど,どうして話に出ることが多いんだろう」 / Twitter
Booink🐽さんはTwitterを使っています 「@Linda_pp 私の場合だと、参照や借用の理解が甘くて上手く実装できない時にRefCellにたどり着いたりします。 ただ、理解が足りないので結局RefCellでも使いきれないんですが… 参照や借用のあたりでググると出てきてしまうので、とりあえず使いたくなってしまう病なのかもしれません。」 / Twitter
ドッグさんはTwitterを使っています 「@Booink4 なるほど.immutable reference は mutable reference よりかなり条件が緩いので,後者で怒られて前者で怒られなくなるため,解決したように見えるということかもしれないですね.実際には動的に borrow check するので,問題を実行時にすり替えてるだけだと思うのですが…」 / Twitter
Booink🐽さんはTwitterを使っています 「@Linda_pp そこまで理解して使えるのが理想ではありますが、よくわからないけど動きそうだから使ってみる、というのが私含め慣れない開発者の気持ちではあります。 もう少し使い込んで理解して「ああ、ここでは使うべきではないな」という感覚が身につくまで精進します…」 / Twitter
ドッグさんはTwitterを使っています 「もし RefCell を「borrow checker に怒られてどう直せば良いか分からないから RefCell 使って内部だけ可変にして表向き immutable ということにして回避しとこう」みたいな使い方をしてるなら考え直したほうが良いと思う」 / Twitter
ドッグさんはTwitterを使っています 「言語処理系でメモリ管理を実装したい場合はそもそも unsafe で GC 実装してしまう気がする.Rc でもパフォーマンス出るのかな…」 / Twitter
ドッグさんはTwitterを使っています 「あと Rc で単純にやると循環参照で死ぬよなぁ」 / Twitter
uint256_tさんはTwitterを使っています 「RefCellを使うような設計の時点で あまり好ましくないよね」 / Twitter
monochromeさんはTwitterを使っています 「確かにRefCell使うのってTLS使うときぐらいかなあ…」 / Twitter
monochromeさんはTwitterを使っています 「あちこちで参照するやつはid arenaにした方が局所参照性も上がって吉」 / Twitter
use ubnt_intrepid::prelude::*;さんはTwitterを使っています 「言語処理系みたいな木構造を扱う場合にRefCellが多用されるみたいな話を聞きますが、そもそも参照(あるいはRc&lt;RefCell&lt;T&gt;&gt;)を直接持ちまわろうとするのが良くなくてarena使ったほうが良いらしいです」 / Twitter
ドッグさんはTwitterを使っています 「Android では - 信頼できない入力を処理する - C, C++ で実装する - サンドボックス外で実行する のうち,2つまでしか同時に満たしてはいけないというルールがあり,現状では信頼できない入力を処理するときはメモリ安全でない言語(C, C++)で書くか,高価なサンドボックスで実行するしかない」 / Twitter

@kazuho

Kazuho OkuさんはTwitterを使っています 「演算子中置記法より、アラビア数字が気にくわんというか、桁数と最上位桁の数が重要なのに、末尾まで読まないとどちらも確定しないのウンコだと思ってる。ローマ数字や漢数字はこの問題抱えてないのに。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「だから、逆ポーランド記法loveな人たちは数値表現も「42」ではなく「1m42」みたいな記法使ってると信じてる(指数のあとにmantissaを書くなら、小数点すら不要になるはず)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「指数のあとに仮数を書く数値表現で教育すれば、概数計算とか皆自然とできるようになるんじゃないの」 / Twitter
Kenji RikitakeさんはTwitterを使っています 「@kazuho Cの文字列が最後まで読まないと文字数が確定しないのが嫌で、最初に長さのフィールド付けろ、っていってたDJBの論法を思い出した。 https://t.co/n0BVj5xdks」 / Twitter
https://cr.yp.to/proto/netstrings.txt
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これ、大半のC言語使いが思うことじゃないかな。 (終端不明な形は計算コスト高いので、jsonでSIMD最適化みたいな技が出たりなど)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「実際問題として、たとえばサーバプログラミングにおいてC言語を使うことの難しさはポインタにあるというより非同期処理を念頭に置いた言語じゃないという点にあると思うし、プログラミング言語を利用するドメインを意識せずにプログラミング言語の優劣を議論することは、あまり生産的ではないわけで」 / Twitter
Kazuho OkuさんはTwitterを使っています 「GoはdeferあるしRustもCPS変換してくれるみたいで(実用性は知らないけど)、言語乗り換える魅力ってのはそのへんだと思う」 / Twitter
Kazuho OkuさんはTwitterを使っています 「思い出したけど、h2o でコルーチン使わなかった理由は、パフォーマンスが多少落ちるであろうこと以外に、一本の接続上でストリーム多重化を行っているようなケースだと、どのみちストリームごとのイベントドリブンなコードかストリーム間同期が必要になり、どれだけメリットがあるか怪しいという点」 / Twitter

@ytakanoster

ytakanoさんはTwitterを使っています 「これ、やっぱりLiquid Haskellっぽい。予想が当たった。」 / Twitter
ytakanoさんはTwitterを使っています 「面白そう。 STORM: Refinement Types for Secure Web Applications https://t.co/5BB7dBVHKY」 / Twitter
STORM: Refinement Types for Secure Web Applications | USENIX
ytakanoさんはTwitterを使っています 「Refinement typeだとLiquid Haskellとか使うのかな。pre/post conditionぐらいならType Scriptにソルバ使えば行けるか?」 / Twitter
ytakanoさんはTwitterを使っています 「パフォーマンス評価が全く無さそう。これでいいんだなあ。」 / Twitter
ytakanoさんはTwitterを使っています 「GoJournal: a verified, concurrent, crash-safe journaling system https://t.co/e9CpGNZ6Uf これはCoqを使っているっぽい。Coqで実装をちゃんと出来れば論文になりそうなんだがなあ。」 / Twitter
GoJournal: a verified, concurrent, crash-safe journaling system | USENIX
ytakanoさんはTwitterを使っています 「Iris + Coqだった。Irisもまた難しいんだよな。」 / Twitter
ytakanoさんはTwitterを使っています 「SOSPで発表したやつを使ってOSDIで応用を発表しているというやつだった。」 / Twitter
ytakanoさんはTwitterを使っています 「Perennialはこれか。 https://t.co/38tMeOMe0a」 / Twitter
Verifying concurrent, crash-safe systems with Perennial | Proceedings of the 27th ACM Symposium on Operating Systems Principles
ytakanoさんはTwitterを使っています 「基本はソルバやらで自動で解いて、解けないやつはCoq or 動的検査にフォールバックして欲しい。」 / Twitter
ytakanoさんはTwitterを使っています 「組み合わせたツールがあんまり無さそうなんだよなあ。」 / Twitter
ytakanoさんはTwitterを使っています 「自作言語があるので組み込めという話か。」 / Twitter
ytakanoさんはTwitterを使っています 「LTLも使うだけなら簡単な気もする。裏側のアルゴリズムは良くわかってないけど。」 / Twitter

@keigoi

今井 敬吾
Keigo ImaiさんはTwitterを使っています 「非決定性オートマトンの determinization を遅延評価を使って Haskell で実装する Credit Card Transform という話がある。元は Oleg さんのメーリングリストの投稿 https://t.co/h7uBIFgwuY」 / Twitter
Tying the Knot - HaskellWiki
Keigo ImaiさんはTwitterを使っています 「これと同じものをCoqのCoinductiveで書けないだろうか?」 / Twitter
Keigo ImaiさんはTwitterを使っています 「これ、SWI-Prolog での (co-facts の) 実装が公開されてます。この co-facts は coaxiom に相当するように見えます。coinduction を詳細にコントロールするのにcoaxiom/corule が使えます 実装: https://t.co/iysPAfMFNO 論文: https://t.co/1zel0zgxLB」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prolog より何かすごいのかもw」 / Twitter
Keigo ImaiさんはTwitterを使っています 「Corule で意味論をつくるのが楽しい https://t.co/1jMoEuWPHe」 / Twitter
DROPS - Modeling Infinite Behaviour by Corules
https://person.dibris.unige.it/ancona-davide/Software/cofacts.zip
[1709.04901v1] Extending Coinductive Logic Programming with Co-Facts
Keigo ImaiさんはTwitterを使っています 「グラフが扱えるのでオートマトンの決定化に使えないか。既にありそうだけど、 ε-NFA を決定化するときにε遷移を追いまくるとラベルなしで自分に戻ってくるケースがあり、そこの扱いに使う…とか?」 / Twitter
h_sakuraiさんはTwitterを使っています 「@keigoi coFJもあるんですね。 https://t.co/iQ6VSNTTnd ソースも https://t.co/BxQ6XwHodc」 / Twitter
Sound regular corecursion in coFJ - 2005.14085.pdf
h_sakuraiさんはTwitterを使っています 「@keigoi 人間にしかできないと思っていたようなことができちゃってそうw」 / Twitter
Keigo ImaiさんはTwitterを使っています 「@h_sakurai regular な範囲ならループがあっても自動的に検出して止まってくれる…といいな…」 / Twitter
h_sakuraiさんはTwitterを使っています 「Prologの左再帰な無限ループ回避できる子ルールを決めるとか何かして数学的帰納法的なところからなんかうまくいくっぽいw なんかってなに?って感じだけどw」 / Twitter

@elpin1al

El Pin AlさんはTwitterを使っています 「誰得文書を書きました 『実践Phase Separation』 https://t.co/5wMnZagG9Z みんなも高階ファンクタを静的部分と動的部分に分離しよう!」 / Twitter
practical_phase_separation.pdf
El Pin AlさんはTwitterを使っています 「Phase separationの訳語、フェーズ分離とかでいいのでは、という気持ち」 / Twitter
El Pin AlさんはTwitterを使っています 「phaseを「段階」としてしまうと多段階計算のstageと被るし......」 / Twitter
El Pin AlさんはTwitterを使っています 「4ページ目は、1枚目が間違いで2枚目が正解だった https://t.co/Ep9iZVRNID」 / Twitter
El Pin AlさんはTwitterを使っています 「Finished reading: Keiko Nakata, Akira Ito and Jacques Garrigue. Recursive object-oriented modules. FOOL, 2005. https://t.co/NvVQNtJPC1 モジュールとクラスを統合。 ファンクタは1階(多分applicative)。 topological sortでwell-founded recursionを保証」 / Twitter
fool_2005.pdf
El Pin AlさんはTwitterを使っています 「再帰モジュールの前方宣言にシグネチャ注釈を一切必要としないモジュールシステムだと、 1階のapplicative functorが存在するだけで型検査を決定不能にしてしまう。 このことを、そのようなモジュールシステムにTuring machineがencode可能であることから示す。」 / Twitter
El Pin AlさんはTwitterを使っています 「Finished reading: Keiko Nakata and Jacques Garrigue. Path resolution for recursive nested modules is undecidable. 9th International Workshop on Termination, 2007. https://t.co/SKM9Y2rfmk」 / Twitter
wst2007.pdf
El Pin AlさんはTwitterを使っています 「可変参照をgenerative functorとして入れることにした。各型ごとに新しいref型を生成するので、値制限(や、それに類するもの)を入れることなく可変参照を導入できる (その代わりちょっとcumbersomeになる) 1枚目はRefモジュールの定義で、 2枚目はその利用例 https://t.co/pDqTqBSztZ」 / Twitter
El Pin AlさんはTwitterを使っています 「モジュールシステムに様々な機能が入っているのはむしろ良いことだと思っています」 / Twitter
El Pin AlさんはTwitterを使っています 「モジュラリティに関係ない機能が入っているならまだしも、それぞれの機能は全てモジュラリティのために入っているので、それらが1つのモジュールシステムとして提供されることには実用上何も問題がないのでは」 / Twitter
El Pin AlさんはTwitterを使っています 「理論的にどう扱えばいいのかわからないと言う意味であれば、 ストラクチャ: 依存和 ファンクタ: 依存積 シグネチャのtranslucency: singleton kind sealing: computational effect (effect system / monad) という風になっています」 / Twitter
El Pin AlさんはTwitterを使っています 「[Crary 2019]も"In other words, modules confer no fundamental expressive power absent in the core. On the other hand, the fact that the definitions are rather baroque shows that modules are nevertheless a useful feature for a language to support."と言っている」 / Twitter
El Pin AlさんはTwitterを使っています 「もちろん適切に拡張されたコア言語の元で、ですが」 / Twitter
El Pin AlさんはTwitterを使っています 「あとはファンクタによる分割コンパイル・code reuseも」 / Twitter
水無麻那さんはTwitterを使っています 「まだ触れて数ヶ月ぐらいですが ML module の雑感として, * 複数要素を複合できる * subtyping * type で depend できる * abstraction の4つぐらいの主要機能があって,それぞれ微妙に関係してるけど割と独立した機能な気がしてて,その話をブログにまとめるかと思って,モンハンに吸われてしまった」 / Twitter
El Pin AlさんはTwitterを使っています 「型システムの健全性の証明をTwelfで書いています https://t.co/CsvfrzFnse」 / Twitter
elpinal/twelf-proofs: Type soundness proofs in Twelf
El Pin AlさんはTwitterを使っています 「LKTの型健全性の証明が簡単すぎてfocusing最高!となっています」 / Twitter

@ytaki0801

滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「そういえば,レキシカルスコープの #ラムダ式 だけで超循環評価器定義したことなかったなあ,ということで定義してみた.無名相互再帰がひたすら面倒だった.ある意味当たり前だけど,ダイナミックスコープのラムダ式は簡単だったなあ. #Scheme #LISP #lambda #programming https://t.co/e6myIVPgeb」 / Twitter
ytaki0801/mcescheme: Meta-Circular Evaluator in Scheme by using lambda with lexical scope, without define special form
滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「ただこれ,あまりスマートな定義じゃないのだよな.ユーティリティ関数セットを引数たらい回しがイケてない感じ.jmc.lispみたいなリファレンス実装ないかな.#CommonLisp でもいいんだけど(などとタグ付きで投下する).#LISP #programming」 / Twitter

@miura1729

コンビネータ

Miura HidekiさんはTwitterを使っています 「SKIコンビネータでS演算はスタックの交換が無いと実装できないので(引数渡しをスタックで行う場合)、それは無いと思う。個人的にはスタックだけで完結していれば関数型言語、他の変数領域があれば手続き言語って所だと思う。」 / Twitter
Miura HidekiさんはTwitterを使っています 「というかYコンビネータみたいな奴は理論的に型がつけられないわね」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「おっと、Yコンビネータをそのままでは評価できないeagerな評価戦略な言語をdisるのはそこまでだ!」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda 無名関数があるから、それを無名関数にすればいいだけじゃん (マジレス」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 Yコンビネータ(λf . (λx . f (x x)) (λx . f (x x)))はそのままだとcall by valueで評価すると無限ループになるので、Zコンビネータとかにせんといかんです。lazyな評価戦略ならYコンビネータのままでいいのですが。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda eagerに評価すると困る所にlambdaをかぶせればいいのでは?って思ったけど(Schemeのdelay/forceのように)それではこの場合はうまくいかないわけですね。この手の話の勉強不足が良くわかりました。ありがとうございます。」 / Twitter

抽象解釈

Miura HidekiさんはTwitterを使っています 「抽象解釈ベースの解析器について、抽象・具体のバランスをメタレベルでカスタマイズ出来るべきとかねがね考えていたが、それが実装されたようだ。とても興味深い「」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「(To. 界隈) 抽象解釈ベースでコード解析する時に、どれだけコードを具体化/抽象化するかを、コードに対するパターンマッチを使用して調整できるようにしてみました。これによってmacroだのframeworkの外部設定ファイルだのがどれだけあったとしても、設定次第で効率的な解析を行うことができます。」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「JET.jl is a code analyzer that combines both concrete and abstract interpretations. Now it allows us to customize its "concretization strategy" using expression pattern matching (so we can configure it w/o any modification to the analyzed code itself !): https://t.co/M5J6YSX6Mb」 / Twitter
Configurations · JET.jl
Shuhei KadowakiさんはTwitterを使っています 「See attached documentation for more details if interested. --- Being able to configure how your code should be concretized/abstracted means that JET can analyze your code efficiently whatever your code is reflection heavy or relies on outside configurations, which are typical」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「which are typical obstacles to a static code analyzer for a program that involves complex/advanced language features. (needless to say there are so many useful and complex features in #julialang) The idea is heavily inspired by this paper: https://t.co/14zQaLushu」 / Twitter
Concerto: a framework for combined concrete and abstract interpretation | Proceedings of the ACM on Programming Languages
Miura HidekiさんはTwitterを使っています 「ここでいうメタレベルとは抽象解釈されるプログラムレベルの意。適当な言葉が思い浮かばなかったので暫定的に用いた」 / Twitter
Miura HidekiさんはTwitterを使っています 「Rubyの抽象解釈ベースの型推定において、抽象・具体のバランスを指定する情報が有効なのか、全くわからない。試してみる価値がとてもある」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 ここで言う抽象 vs 具象というのは、クラス(もしくはそのunion)vs 値という意味ですか?」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 ですです。」 / Twitter

抽象実行による型解析

Miura HidekiさんはTwitterを使っています 「抽象実行による型解析で精度と速度の両立を行う画期的なアイデアが思い浮かんだけど140文字では狭すぎる (嘘、次にその概要を書きます。まだ確かめたわけじゃないけど...」 / Twitter
Miura HidekiさんはTwitterを使っています 「抽象実行による型解析で悩ましいのは単なる型(Symbol)と具体的な値(:Ruby, :Pythonなど)のどちらを保持すべきかという問題がある。具体的な値を保持していれば何かと便利だが負担も大きい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「この件に関して、具体的な値を欲する状況・メソッド(例えばkernel#sendメソッドやkernel#define_methodメソッド)とそうじゃないメソッドに分けられることに気づいた。」 / Twitter
Miura HidekiさんはTwitterを使っています 「つまり複数回抽象実行のトラバースを行うとして、初めのトラバースで具体的な値が必要なpathかを判定することで、具体的な値を集めるか、型のみでいいのかを決定できるのではないかと気付いたわけです。」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「@miura1729 Juliaの型推論でもそれに近しいことをしていますね。まずキャッシュのために定数なしで推論して、そのあとに定数伝播させるかは簡単なヒューリスティックにしたがって決定してます。メソッドボディのIR全体を解析するとか高等なことはしてないですが。 https://t.co/5JjZv1GIoL」 / Twitter
julia/abstractinterpretation.jl at 676ccf4eaa9b6e6c6a53f75abb4bf3e1a2457426 · JuliaLang/julia
Miura HidekiさんはTwitterを使っています 「@kdwkshh ソース読んでみました。よくわからない所も多いのですが、いろいろチェックして問題の無い所は型ではなく具体的な値を渡して関数を呼び出すというふうに読めました。コメントとか見るとまだ実験的な処理っぽくてこの手の話はこれからホットになるのかもしれませんね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「抽象実行で型の代わりに値を用いるのを必要なメソッドで判定する問題 (長い)、通常の抽象実行とはルートが逆になるので思ったより大変と言うことが分かった。」 / Twitter
Miura HidekiさんはTwitterを使っています 「mmcではadd_sameで作られるレジスタの型に関する依存関係のグラフをトラバースすることで何とかなりそうだが、メソッドを超えるとうまくいかない。この辺を意識した再設計が必要なのかもしれない」 / Twitter
Miura HidekiさんはTwitterを使っています 「mmc、define_method, sendの第1引数など、抽象実行時に値を分かっていることが必要な場合は、その値を生成する処理についてだけ、型をマージするときに違う値を抽象的な型にまとめるではなく常に別々の型として扱うようにした。 https://t.co/5WlTnowEb6」 / Twitter
Support selective value level abstract interpretation · miura1729/mruby-meta-circular@af12a12
Miura HidekiさんはTwitterを使っています 「これにより、 class A %w[a b].each {|str| define_method(str) { 0 } } end p https://t.co/4lLfLQhlK0.a + https://t.co/4lLfLQhlK0.b のようなプログラムがほかのプログラムの効率を落とすことなく正しく解析できる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「ここの部分が肝になる場所で、 https://t.co/hf0OhqF99i レジスタに対してset_use_valueとすると、レジスタの値の依存関係を逆に辿ってそのレジスタの値を生成するのに関係した全てのレジスタ(メソッド内外を問わない)にレジスタの型を決定するのに値は決してまとめないようになる。」 / Twitter
mruby-meta-circular/type_mrule.rb at master · miura1729/mruby-meta-circular
Miura HidekiさんはTwitterを使っています 「抽象実行、末端のメソッドやコンテクストからそれぞれのデータパスにおいて必要な抽象度を解析してから抽象実行するアプローチがかなり有望そうなので、その方針で新しく抽象実行器を作ってみたくなった。」 / Twitter

8進数

いそぢさんはTwitterを使っています 「8進数ってどこで使うんやろなあ」 / Twitter
なぎせ ゆうきさんはTwitterを使っています 「古いコンピュータで3の倍数ビットがわりと使われたらしい。 0始まりが8進数なのは少なくともB言語(C言語の始祖)には見られる言語仕様であるようだ」 / Twitter
Miura HidekiさんはTwitterを使っています 「12bitマイコン、東芝でしたっけ?たしか、MacLispも8進数ベースだったような。Common Lispで10進数ベースになったけど。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 Unixの起源がPDP-7あたりからだったおかげで、現在にいたるまで od(1) のお世話になっているという... ごく最近 od -t x1 を覚えた :)」 / Twitter
ElectrelicさんはTwitterを使っています 「@y_futatuki @miura1729 od -t x1 -A x も良いですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@electrelic @y_futatuki なるほど。これないとオフセットが8進数になるんですね。勉強になります。」 / Twitter
ElectrelicさんはTwitterを使っています 「@miura1729 @y_futatuki です。片方だけ16進数にするのは間違いの元な気がします。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 IBM709が36bit wordで、(3bit tag + 15bit address) x 2 のコンスセルを1 wordに詰めたのがLISPでしたね。 ただ、LISP1.5の時点で整数リテラルは既に10進数です (8進数はQサフィックスをつける)」 / Twitter
zickさんはTwitterを使っています 「@anohana @miura1729 ふと思ったんですが、LISP 1.5の整数リテラルが10進数なのって、LISP Iが10進数表記の浮動小数点数しかサポートしてなかったのが原因だったりするんでしょうか。8進数をデフォルトに変えてしまうと過去のプログラムを移植するのが面倒そうだし。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana なるほど。MacLispの8進数とはなんだったんだろう?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 fixnumの入出力がBASEで切り替えられますが、そのデフォルトが8だったのは、セルの中身をダンプしたりする時に見やすかったからかな? 想像ですが。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana CLtL2を紐解いたらわかりました。MacLispのリテラルの整数はデフォルトで8進数のようです。2章データ型の2.1.1整数の互換性への注に書いてあります。」 / Twitter

C

電子計算機の沼さんはTwitterを使っています 「ま、「XXはCと同じくらい速い」とか言われるけど我々はCコンパイラが出すコードにも全く満足してないんでね、、、、」 / Twitter
Miura HidekiさんはTwitterを使っています 「その一言が聞きたかった &gt;RT」 / Twitter
電子計算機の沼さんはTwitterを使っています 「最終的にはCがどうとかJuliaがどうとかでなく、望みのアセンブリをコンパイラに吐かせるゲームになるわけで、それが1番楽な方法を選ぶだけ」 / Twitter
Miura HidekiさんはTwitterを使っています 「「望みのアセンブリ」、それは時間をパラメータとする関数で適宜される物の気がする &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「「XXはCと同じくらい速い」と言う前にCでCが出せる効率のポテンシャルの50%を出せる人がどれだけいるのだろう?と言う話かもしれないけど、意味の無い話な気もする。よくわからん。」 / Twitter
Miura HidekiさんはTwitterを使っています 「コンパイラ開発、想定していたプログラムが一通り動いて、さて高速化するかって検討する瞬間が一番幸せ。(高速化の作業はそれなりに不幸)」 / Twitter
電子計算機の沼さんはTwitterを使っています 「ほんとにこれで、コンパイラにプログラムのinputをいくつか与えてやったら勝手にトライアンドエラーして、一晩くらいほっといたら速くなってるオートチューンコンパイラ誰か早く作って」 / Twitter
uint256_tさんはTwitterを使っています 「PGOとOptunaとかで頑張れそう」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@uint256_t やれると思いますよね どう考えても個人が抱えられる沼を越えてそうだからやらないけど」 / Twitter
uint256_tさんはTwitterを使っています 「@Hishinuma_t そのうちやるかもしれません」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@uint256_t やりはじめたらgithub sponsorでコーヒー代くらい出します」 / Twitter

histric

histric-1

Miura HidekiさんはTwitterを使っています 「Juliaなら抽象解釈でデーターフローグラフが作ってあるだろうから、エスケープ解析もそんなに大変じゃないと思うんだけどな」 / Twitter
_ko1さんはTwitterを使っています 「@miura1729 再定義タイミングの話かな?」 / Twitter
Miura HidekiさんはTwitterを使っています 「@_ko1 いえ、変数をグローバル変数として定義されていても寿命解析してローカル変数のスコープだったらローカル変数として実装すると速いかな?って思いました」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「@miura1729 @_ko1 1.) エスケープ解析が大変(evalされたりとかとか) &amp; 2.) どのような形であれグローバル変数が再定義されたタイミングでそれに依存するjit済みコードをコンパイルし直さないといけない という理由で(定数じゃない)グローバル変数は問答無用で最適化されないんですよね」 / Twitter
Miura HidekiさんはTwitterを使っています 「mmc、例外処理が納得いくように出来た。抽象実行で例外オブジェクトの判定処理が潰れるので、ほぼたんなるsetjmpによるジャンプになる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「三浦 英樹さんによるデータフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?への回答 https://t.co/lJFDgeijrt 面白い質問なので思わず答えたのですが、これはぜひ識者の人の意見を聞きたいのでツイートします。」 / Twitter
データフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?に対する三浦 英樹さんの回答 - Quora
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「言語がオブジェクト指向していると、ユーザプログラムが言語機能に対して拡張や変更することができる。新しい言語機能を追加することができる。言語機能を実行時に変更することができる。言語機能をコンパイル時だけでなく実行時にも利用可能になる。言語機能を再帰的に分解し再構成することができる。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 いや、どちらもDynabook系ではあるけど、MVCの原発明者はSmalltalk-80の実装は「チョット違う」とのことです。 https://t.co/kUDzJ7zABV」 / Twitter
Trygve/MVC
Miura HidekiさんはTwitterを使っています 「そりゃーリファレンスカウントも深いかもしれないけど(特にマルチコア周り)、GCはもっと深い」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「アランケイのオブジェクト指向って、オブジェクトをオブジェクトから構成するという辺りが特にチューリング完全に依拠していると思うのだけど、チューリング完全でないオブジェクトを組み合わせた総体としてのシステムをチューリング完全にできたら、各オブジェクトの構成がとても楽にならないかなあ。」 / Twitter
Miura HidekiさんはTwitterを使っています 「純粋なアクターモデルってチューリング完全だったっけ?アクターの生成と他にメッセージを送るのとメッセージを受け取ったら反応することしかできないって奴」 / Twitter
Miura HidekiさんはTwitterを使っています 「Nimのmoveセマンティックスに基づくGCの軽減、画期的な話なのか、GCをサボるための言い訳なのか判断できないので後で読むためのリンク https://t.co/5zNAupwBpc (今酔っているし...」 / Twitter
Nim Destructors and Move Semantics
Miura HidekiさんはTwitterを使っています 「moveセマンティクスに基づくGCの軽減、Rubyでも出来そうだけど、プログラマがどこにアロケートされてどのタイミングで解放されるか知っているかを明示すべきかが分からない。明示するならなんらかの言語仕様の拡張か、コーディング規約が必要になる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「これ興味深い。getoptライブラリとシェルが連携する形で実現できないだろうか?コマンドラインの型情報はgetoptの設定情報として表現できそう。スクリプトを解析して設定情報を作ることも可能かもしれない &gt;RT」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「何がほしいかと言うと bashみたいに実行すべき外部プログラムと引数を指定して実行できる最もわかりやすい文法を備え 標準入出力を簡単に扱える文法を備え 変数、条件分岐やループなどはモダンな言語によくある見慣れた文法をサポート 数値や文字列は厳格に型チェックされる。」 / Twitter
画力・博士号さんはTwitterを使っています 「型つきシェルスクリプトは創りたいですねえ(特に可搬性のために sh にコンパイルできるとよい)」 / Twitter
でこれきさんはTwitterを使っています 「OCommand: OCaml上の型安全なシェルプログラミング のための領域特化言語 – 増原英彦研究室 https://t.co/nPenGkzMyC とか思い出した」 / Twitter
OCommand: OCaml上の型安全なシェルプログラミング のための領域特化言語 – 増原英彦研究室
Miura HidekiさんはTwitterを使っています 「型付シェルスクリプト、一言で型と言っても、スクリプトのレベルの型、コマンドラインで渡された文字列をパースする場合の型などいろいろなレベルの型が現れる気がする」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 shell scriptって立ち位置からするとわざわざ型付きのものをshell内に実装するより別言語、かなぁ。POSIXのshellの仕様大きくするってのはいやん。(インタラクティブではcsh使ってるけどcsh scriptは書きません)」 / Twitter
Miura HidekiさんはTwitterを使っています 「確かに言語によって違うと感じることが多いけど、逆に一見全く違う言語で類似点を発見することがあって、それが言語の面白さだなと感じる。たとえば、Prologは末尾再帰を駆使すると手続型言語のように見えるし、不完全リストを使うことでストリーム指向の言語っぽくも見える。」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog '確かに、 IF文がない IF文しかない この両方が成立するような不思議な言語と映るのかな。'.」 / Twitter
Miura HidekiさんはTwitterを使っています 「パターンマッチベースの言語なら全部そうなりそうだけど、今の所Prolog以外だとEgisonくらいか?あとごく初期のAWK」 / Twitter

histric-2

Miura HidekiさんはTwitterを使っています 「年寄りなのでこれからは絶対これ!という物言いがそうでもない話をいろいろ見ている。例えば、マイクロカーネル、RISC、Java、そしてRuby on Rails。だから、今の静的型付けに基づくプログラミング言語が絶対正義だという感じの風潮はとても疑問」 / Twitter
Miura HidekiさんはTwitterを使っています 「コンピュータサイエンスについて、時代が変わっても絶対正しいことは無い(数学的に証明されているものは除いて)というのが唯一絶対正しいことな気がする」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 というか、時代が変わって正解が変わるような部分ってのはscienceではなくてtechnologyなのでは...」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki そうでもないっすよ。ニュートン力学から力学がどう変わったか考えると。いまでも1960年代で要求されるとうな問題なら構造化プログラミングが最適解と言う感じじゃないでしょうかね?」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 制約条件下の最適解を正解というのか問題かなぁ...」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 あるいは、むしろ、その時代にあってさえ「正しい」と確信できている答を出しているか、という話。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki まあ、Scienceはもともと真実を明らかにする学問であって、ある近似解についてどちらが正しいかを判断する学問じゃないですからね」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 そういう意味で、制約条件下での「正解」をもとめるものをtechnologyと分類したわけっす。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki なるほど」 / Twitter
Miura HidekiさんはTwitterを使っています 「すげー、これこそアラン・ケイ氏やselfがやりたかったことじゃないの?」 / Twitter
任天堂株式会社さんはTwitterを使っています 「[任天堂HP]任天堂の開発室から生まれたプログラミングソフト『ナビつき! つくってわかる はじめてゲームプログラミング』の情報を公開しました。 #NintendoSwitch #はじめてゲームプログラミング」 / Twitter
ナビつき! つくってわかる はじめてゲームプログラミング | Nintendo Switch | 任天堂
Miura HidekiさんはTwitterを使っています 「どう見てもビジュアルプログラミングより、プロトタイプベースのオブジェクト指向に見える。特に障害物のくだり」 / Twitter
みさわさんはTwitterを使っています 「何度か言っているけれど、配列から [] を取り上げて () にして、代わりに [] を型に回すべきだと思うんだよな。」 / Twitter
Miura HidekiさんはTwitterを使っています 「配列のindexに()を使うのは、FORTRANやBASICを思い出すから控えてほしいんだよな。[], {}をユーザのためにあえて未定義にしたCommon Lispの慧眼が光る &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「まあ、コアメンバーのGLSさんがやっていた*lispの並列構文との整合性みたいな理由なのかもしれないけど」 / Twitter
Miura HidekiさんはTwitterを使っています 「でも、S式のパーサーって意外とめんどくさいんだよ (ungetcが必要だと思う)」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 構造エディタでしか編集できないようにしてしまえ(そうじゃない)」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「プログラミング言語界隈、いいかげんREPLの次の開発者UXに進もうよ。Workspaceっていうんだけど、一度経験するともうREPLなんていう不自由なUIに戻れなくなるよ?(Smalltalkが70年代に通過した道」 / Twitter
Miura HidekiさんはTwitterを使っています 「Oberonのようにテキスト中に関数を書いておくとボタンになるっていうインタフェースどっかで実装しないかな?」 / Twitter
Miura HidekiさんはTwitterを使っています 「Lispで楽しいのはrplaca./rplacdでリストを魔改造をすることだから、それを禁止している静的型付けの関数型言語はダメ (半分冗談」 / Twitter
zickさんはTwitterを使っています 「(rplaca (cadddr hoge) fuga) とか書いてるとちょっと楽しくなってくるので早くニートになりたい。」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 (1) コンパイラへの最適化のヒントとして型注釈を与える は、structの定義やオブジェクトの生成時には有効ですが、函数の引数の型については意味がなくなります。さらに、 (2) コードを読み易くするために型注釈をつけること はJuliaでは多くの場合に有害になり、~続く」 / Twitter
Miura HidekiさんはTwitterを使っています 「徹底的にコードを解析するコンパイラにとって型宣言ってまさに 下手な考え休むに似たり だと思うのだけど、型宣言のある言語って将来どういうポリシーを採るのか楽しみ。もちろん、コンパイラの実装とは別に言語の採用する型システムという面は独立して存在するのだけど。」 / Twitter
Miura HidekiさんはTwitterを使っています 「分岐を取り扱う方法、PrologやSmalltalkのように特別扱いせずに自身の持つパラダイムの延長で実装できるような仕組みを私も考えたい」 / Twitter
Miura HidekiさんはTwitterを使っています 「機械語のコンディションコードってのも誰が考えたか知らんけど、画期的な発明だと思う。今時のCPUでは嫌われているけど」 / Twitter
Miura HidekiさんはTwitterを使っています 「λ計算もある意味そうだね。あれコンピュータが無い時代に考えたの凄いよね。」 / Twitter

histric-3

大庭 慎一郎 / Shinichiro ObaさんはTwitterを使っています 「ノードベースのプログラミングは感覚がリアクティブプログラミングに近いと思ってはいたけど、レッスン5で出てきたワイヤーワープを変数として使う手法を取り入れるとよりそう感じる。左が元のプログラムで右がリファクタリング後。100倍わかりやすくなった。 #はじめてゲームプログラミング https://t.co/rbU676OgXG」 / Twitter
Miura HidekiさんはTwitterを使っています 「任天堂のこれの影響で一気にビジュアルプログラミングが進歩するって展開もありそうだな」 / Twitter
ニカイドウレンジさんはTwitterを使っています 「はじめてゲームプログラミング、人が作ったプログラムを読み解くのが難しすぎて参考にできない点もダメだと思った。 ・全てが1画面に収まっておりどこで何を処理してるか分からない ・コメントの量に制限がある ・検索ができず目的のオブジェクトが見つからない ・変数や定数に名前がつかない」 / Twitter
Miura HidekiさんはTwitterを使っています 「mrubyのJITのチューニングをしていて、コンパイルを始める実行回数の閾値はこれまで生成したバイナリのサイズやcaller/calleeのコンパイル状況とかでいい感じに変えるといい感じになるのではないかと思った」 / Twitter
Miura HidekiさんはTwitterを使っています 「とにかくホットスポットのコードは小さい範囲にまとまるようなコンパイルスケジュールが求められる」 / Twitter
Miura HidekiさんはTwitterを使っています 「マイクロベンチマークとは違う世界が広がっていることをmmcとmrubyのJITを作ったおかげで知ることが出来た。そうは言ってもmmcは1万行程度のものなんだけど」 / Twitter
Miura HidekiさんはTwitterを使っています 「ちなみにmrubyのJIT、メソッドの先頭で引数に型ガードを入れてメソッド内部はあたかも静的に型が分かっている如くのコードを出すようにしたのだが、mmcにはものすごく多様な型を引数にするメソッドがあってその方に特化したコード生成がボトルネックになっていた」 / Twitter
Miura HidekiさんはTwitterを使っています 「中間コード(IR)を機械語にコンパイルするようなJITコンパイラの場合、IRの命令の境界で何らかの処理を挟みこめるhookを用意するのは必須事項であるという知見をえた。」 / Twitter
Miura HidekiさんはTwitterを使っています 「そんなに難しくないしね」 / Twitter
Miura HidekiさんはTwitterを使っています 「ちなみにmrubyのJITではこんな感じ void gen_call_fetch_hook(mrb_state *mrb, mrbjit_vmstatus *status, mrbjit_code_info *coi) { emit_push(mrb, coi, reg_tmp1); emit_push(mrb, coi, reg_tmp0); emit_cfunc_start(mrb, coi); //emit_arg_push(mrb, coi, 3, reg_regs);」 / Twitter
Miura HidekiさんはTwitterを使っています 「// load_vm_var_read(reg_tmp0, VMSOffsetOf(pc)); emit_load_literal(mrb, coi, reg_tmp0, (cpu_word_t)(*(status-&gt;pc))); emit_arg_push(mrb, coi, 2, reg_tmp0); emit_load_literal(mrb, coi, reg_tmp0, (cpu_word_t)(*(status-&gt;irep))); emit_arg_push(mrb, coi, 1, reg_tmp0);」 / Twitter
Miura HidekiさんはTwitterを使っています 「emit_arg_push(mrb, coi, 0, reg_mrb); emit_call(mrb, coi, (void *)mrb-&gt;code_fetch_hook); emit_cfunc_end(mrb, coi, sizeof(void *) * 4); emit_pop(mrb, coi, reg_tmp0); emit_pop(mrb, coi, reg_tmp1); }」 / Twitter
Miura HidekiさんはTwitterを使っています 「ネイティブコードを生成するようなコンパイラのデバッグではprintfデバッグは人的リソースを食いまくる贅沢品なわけですわね」 / Twitter
Miura HidekiさんはTwitterを使っています 「プログラムのデバッグ、HDLによるLSIの開発のように片っ端からログを取って専用のViewerで分析するスタイルになるべきだと思うけど、私が知る限りそうなっていない。私は、環境が貧乏なのでそんな富豪なことはできない」 / Twitter
酔漢📻@黙って食べよう、マスクをして話そうさんはTwitterを使っています 「@miura1729 RTOS分野は時間軸の解析をするためにそっちに進んでいますね。組み込みはモニターのバンド幅とログの量の戦いがどこでも厳しいようです。 私のミドルウェアは専用のビューアーとまでは行きませんが、Syslog機能をつけたのでいろいろと楽に開発できるようになりました。」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「逆で、「論理型言語」という呼ばれ方が、Prologの応用を狭めてきたような気もする。何の根拠もない妄想だけど。ユニフィケーション言語とかのほうが良いような気がする。なんとなく。」 / Twitter
Miura HidekiさんはTwitterを使っています 「Lispも人工知能言語というレッテルを外してから(Schemeとか)の方が面白くなった」 / Twitter
Miura HidekiさんはTwitterを使っています 「私もふざけた言語を考えてみようと思った。かねがね考えているのだが、アクターモデルを採用した言語で最低限の言語仕様ってどういうものかってのは深く考えたい。もちろん、チューリング完全なのが前提で」 / Twitter
Miura HidekiさんはTwitterを使っています 「元もとのアクターモデルってメッセージを受け取ったアクターが出来ることってアクターを作ることと、別のアクターにメッセージを送ることだけだった気がして、これでチューリング完全なら私が欲しいものが得ていると言う感じなのだが」 / Twitter
Miura HidekiさんはTwitterを使っています 「メッセージを送れるのはアドレスを知っているアクターだけね。アクターモデルってこれが本質な気がする」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@miura1729 メッセージを受け取ったアクターは自分の状態を変えることもできます。状態を変えるというのは、次に同じメッセージを受け取った時に異なる反応ができることです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@wtakuo ありがとうございます。その状態って有限でしょうか?(勉強不足ほんとうに反省しています」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 trivialでつまらないけれど、TMエミュレーションはこれの「副作用無しバージョン」をCPSにすればできそうな気がする https://t.co/G43dkp9QF7」 / Twitter
Scheme:Brainfuck
Miura HidekiさんはTwitterを使っています 「@anohana 確かにアクターが内部状態を持っているのでこれで出来ますよね。というか、SchemeがActorをクロージャーでモデル化するところから開発されていたのを忘れていました。」 / Twitter

Masaki HaraさんはTwitterを使っています 「「デジタルの日」が制定された日本ではデジタルじゃない日は「12月14.35日の予定は〜」みたいな会話が行われる」 / Twitter
Miura HidekiさんはTwitterを使っています 「有理数なら結局デジタルで表せらるから、何らかの関数表記になるのではないだろうか? 1月√2日とか」 / Twitter
Miura HidekiさんはTwitterを使っています 「関数も関数をゲーデル数で表現すればデジタルで表せられるな。これは難しい問題ですよ」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @iruka3 {Re(z) | ζ(z) = 0} 、とか考えたけど、結局記述できるものはその記述をデジタル化できてしまうので、シンボルで記述し得ないものしか無理なのかも。」 / Twitter
Miura HidekiさんはTwitterを使っています 「犬の散歩をしながら、mrubyで最適なアロケータのアイデアを考えていたらよさげなものが思いついた」 / Twitter
Miura HidekiさんはTwitterを使っています 「忘れないようにメモ freeするごとにそのオブジェクトのクラスごとにリンクリストにつなげる。各freeされたメモリチャンクには世代を表すカウンタを設ける。リンクリストがいっぱいになったらリストの全要素をスキャンしてリンクリストのカウンタがある閾値になっていたら」 / Twitter
Miura HidekiさんはTwitterを使っています 「本当にfreeする。mallocの際にはそのクラスのリンクリストから適当なサイズのチャンクを切りだす。時々freeするのはmalloc時の切りだす検索時間を短くするため。より使用される頻度の高いチャンクが生き残ると期待できるし、上手く行くとワーキングセットを小さくすることも出来るのではないだろうか」 / Twitter

@mod_poppo

SML

だめぽラボ@技術書典9さんはTwitterを使っています 「SMLのrefのパターンマッチでの挙動はやはりイレギュラーだと言わざるを得ない。便利なのかもしれないけど https://t.co/1o8Uamt6Bk」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「パターンマッチの際に「参照セルの読み出し」という副作用が起こるのがイレギュラー感ある。まあパターンマッチにガードを書けるように拡張すると副作用が何でもアリになるんだけど」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「言語処理系が字句・構文エラーを吐く際に従っておいた方が良い規約とかってあるのかな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GCCもClangも &lt;file&gt;:&lt;line&gt;:&lt;column&gt;: のスタイルっぽいから真似しよう」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「カラム番号ってタブ文字が入ってたらどうすりゃいいの?まともな神経の奴ならタブ文字なんか使わないから考慮しなくてOK?了解!」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@mod_poppo goはインデントにタブを使うのを推奨してるのでgoがどうしてるか見ると良いかも知れません。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「@igrep なるほど。Goではタブ文字は1文字扱いのようです」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「今日の作業ではパースエラーのところでソース位置を表示できるようになったので、次はASTにソース位置を持たせてその後の段階でもエラー位置を出せるようにしたい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「モダンな言語処理系は親切なエラーメッセージを出すのが当然なので頑張っていきたい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/JiGuVEJcly これによるとSuccessor MLでrecとtyvarseqの順番が入れ替わるのは意図的っぽいな。構文解析の難易度はそんなに違わないと思うのだが」 / Twitter
Simplifying val rec syntax - Successor ML
だめぽラボ@技術書典9さんはTwitterを使っています 「SML97では val SOME f = NONE みたいな定義は一般化の対象になって let val SOME f = NONE in f (); f “foo” end みたいなコードはコンパイルが通る(実行時にはもちろんエラーになる)が、これは仕様バグだとみなされており」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Successor MLでは左辺のパターンが網羅的でない場合は一般化の対象にならず上記のコードはコンパイルエラーになる。今作ってる処理系ではこの部分についてはSuccessor MLの仕様を採用する。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「SMLのexceptionは実行(?)ごとにfreshな例外を定義するのでソース中で同一のexceptionであっても呼び出しが違えばキャッチされない。なるほど……(以下のプログラムではキャッチされない例外が発生する) https://t.co/xaEZ3n6Obm」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「SMLでval rec(脱糖後にval recになるものも含む)を使わずに再帰関数を書く例2つ。datatypeの定義で再帰ができるのでそれを使うと不動点コンビネーターに型がつくやつと、参照セルを使うやつ。 https://t.co/qBCwgjHQqJ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「コンパイラーを書くにあたってエフェクト推論とかで関数の停止性を(保守的に)判定できたら素敵だな〜〜と思うけど、停止性を扱うときはここに挙げたようなやつが正しく「発散する」と判定されなければならない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「エフェクト推論の参考にしようとKokaの論文を読んでたらその辺に言及されてて「面倒くさそ〜〜」と思った https://t.co/gVmuioDL2m」 / Twitter
Koka: Programming with Row Polymorphic Effect Types - Microsoft Research
川向薫さんはTwitterを使っています 「Inductive Rec (A : Type) := In : ((Rec A -&gt; A) -&gt; A) -&gt; Rec A. これがだめな理由若干わからないな。 直観的には contravariant の位置で再帰するのがダメって感じなんだけど。 (この場合は covariant)」 / Twitter
川向薫さんはTwitterを使っています 「やはり停止性を保証してかつ代数的データ型を導入するには、 Strictly positive を採用する必要がある……」 / Twitter
川向薫さんはTwitterを使っています 「けど、要するにこうだ。 論理では contravariance や covariance は negative や positive と呼ばれる。 再帰的な定義で、自分自身が positive な位置にのみ出現する場合、その定義は positive であるという。 しかし依存型のある言語では、 positive な定義でも矛盾が (cont.)」 / Twitter
川向薫さんはTwitterを使っています 「導かれてしまう場合がある。例: Inductive A : Type := | introA : ((A-&gt;Prop)-&gt;Prop) -&gt; A. そこで Coq や Agda では (positive より強い制限である) strictly positive という制限を課している。 ……ということらしい。」 / Twitter
川向薫さんはTwitterを使っています 「つまり依存型のある言語だと strictly positive が必要だけど、 System F レベルなら positive でいい……ってことらしいな。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ところで参照セルを使って書いたfix関数はvalOfという「例外を吐く可能性のある関数」を使っているわけだが、例外とかに頼らずに参照セルを使ったfix関数を定義することはできるのか?具体的な型のついた再帰関数だったらなんとかなるんだけど」 / Twitter

だめぽラボ@技術書典9さんはTwitterを使っています 「真面目に依存型をやると大変だけど、サイズ不一致を全部コンパイル時に検出するのは諦めて「型レベル自然数の等価判定は実行時に行う」みたいないい感じに手を抜ける落としどころがあったりしないかな https://t.co/DVPa7XevGo」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「最近の言語は何らかの形で静的な型を持つのが当たり前になってきているし[要出典]、これからは「動的な配列・行列のサイズを型で管理できる」みたいなのがセールスポイントになる(ほんまか)」 / Twitter
uint256_tさんはTwitterを使っています 「N(符号付)がn bitで表現できるかってビット演算で確認できるんでしょうか」 / Twitter
だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「@uint256_t Nがすでにmビット整数として表現できている場合は、左にm-nビットシフトしてから右に同じ数だけ算術シフトしたものが元の数と一致するか確認する、でどうですかね」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「その辺のプログラミング言語で無名関数/ラムダ抽象が「ラムダ式」と呼ばれるようになった経緯を調べようとしたときのログです https://t.co/Fflu2snbVy」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/VE8797qkKB」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「ラムダ式」問題、以前話題になった時に調べた感じでは「元ネタはScheme周辺で、Schemeの場合は無名関数の表記に "lambda" という文言を使うのでまだ正当性があった。後発の言語ではソースコード中に "lambda" が登場しないのに『ラムダ式』を名乗っているからダメ」という認識に至った」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptではFunctionExpressionに名前を与えられるので「無名関数」と呼ぶのはアレ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「キカイガクシューのエコシステムがPythonべったりなのは健全じゃないと思うけどじゃあどういう言語ならいいのと言われるとうーん(個人的にはshapeを型レベルで扱える言語を使いたいけど型システムが重い言語ってあまり流行らなさそう)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Pythonは型の問題の他に、「GILがあるので並列化しようとするとスレッド並列を飛ばしてプロセス並列にせざるを得ない」みたいな問題がある(うちの環境だとプロセスを跨いだGPUメモリの共有ができなくて詰んだ)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Coqで二項係数(帰納的に定義されているけど計算量が指数爆発しないやつ)を定義して漸化式を満たすことを証明した。適切に補題を切り出すのは大事。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellの型と項を繋ぐものとして 型クラス:型制約から項を得られる GADTs:項から型制約を得られる という関係になっていて、双対というかなんというかなんかそんな感じのものを感じる」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskell/Rust/C++のジェネリクス/テンプレートについて、自分の認識 https://t.co/bMUneNCu66」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellで型制約を大量に書くとどうしても関数の型が「頭でっかち」になりがちなのに対して、Rustが型制約を後置できるのは進歩っぽいな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「型レベルプログラミングの題材としては型レベル自然数が動機付け的にも難易度的にも適切なんだけど、GHCで型レベル自然数というと中身がブラックボックスなGHC.TypeNats.Natがあるのでアレ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「なんか勘違いしてたけど、データ構築子に型制約を引っ付けるのってGADTsがなくてもExistentialQuantificationで十分なのか。GADTsがあると制約として等価性を使えるようになるっていうだけで。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「TypeFamilies + GADTSyntax + ExistentialQuantification ⇒ GADTs? https://t.co/80ukeuyyYY」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GADTsなんもわかってないことが判明してしまったので修行の旅に出ないといけない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GHC.Exts.Any ってどんなカインドにもなるのか。型レベル undefined じゃん」 / Twitter
gyu-donさんはTwitterを使っています 「そんなに型で何でも解決できるんだったら、型理論を使って、NaNとかinfとかゼロ除算とかが発生しないようにしてくださいな。」 / Twitter
トデス子'\さんはTwitterを使っています 「"そんなに型で何でも解決できるんだったら、型理論を使って、NaNとかinfとかゼロ除算とかが発生しないようにしてくださいな"、単に知識不足とも取れるが「お前ら静的チェック最強と言いつつLiquid typesすら普段使いしてねえだろ」という鋭い指摘の可能性もある」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ではここで強力な型システムを持つCoqでゼロ除算を実行してみましょう https://t.co/C6lIqTRbhF」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「形式的証明をやる上では演算はtotalに定義しておいて演算に関する命題を記述する段階で色々仮定(この場合は割る数が0ではないこと)した方が良い、みたいな話が前にTLに流れてきた気がする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ML系の不変な束縛で右辺が別の変数名の場合 let val a = b in exp end はexp中のaをbに置き換えてaを消去することができるけど、aが元々のソースコード中に現れる変数名でbが脱糖の過程で導入された変数名の場合はむしろbの定義を遡って変数名bをaに置き換えた方が良い気がする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「コンパイル先の形態がソースコードの場合は変数名についても単一化みたいなことを行うと良いのかもしれない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「タプルの要素に名前をつけられるようにして順序も変えられるようにしたのがレコードだとすれば、カリー化された関数にも引数に名前をつけて適用順を変えられるようにする拡張は割と自然な発想に思える」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「SMLにせよHaskellにせよ数値リテラルの直後にアルファベットとかアンダースコアとかドットとかが並んでたら警告を出すべきだよ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「SML ‘97では単項マイナスはreal/intについてオーバーロードされていることになっているけどその後のBasisの更新(?)でwordにも単項マイナスが使えるようになったらしい。なお ~0w0 と書くと整数リテラル ~0 と識別子 w0 の並びだと見做される模様」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「某所の話題を見て「関数を返す関数も高階関数と言うんだっけ?」って思ったけど型システム入門を確認したらそういう関数も高階関数とされていた。higer-rankと混同してたのかなあ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「a → b → c みたいな関数は a×b → c と同型であって欲しくて、そうするとこれらの一方だけに当てはまる性質というのはあまり筋が良くない気がする(もちろんこれは純粋関数型言語での話で、関数が副作用を起こせると両者で違いが出てくるわけだが)」 / Twitter
mod_poppoさんはTwitterを使っています 「MLのabstract typeって他の言語にあるような実行時型情報と相性がよくない気がするな。 structure S = struct type t = int end :&gt; sig type t end のS.tの実行時型情報に割り当てられるべき値はintと同じか、freshな値か?」 / Twitter
mod_poppoさんはTwitterを使っています 「Haskellはこの点、抽象データ型を単にコンストラクターの可視性で実現しているのでこの問題はないし実際にTypeableがある。」 / Twitter
El Pin AlさんはTwitterを使っています 「@mod_poppo Rossbergがその辺やってますね〜 (Rossbergが関わっているAlice MLがdynamicさを売りにしているので) https://t.co/N3LrFCxkA1 / https://t.co/lcdkhe9YrB」 / Twitter
Rossberg - Generativity and Dynamic Opacity for Abstract Types.pdf
Rossberg - Dynamic Translucency with Abstraction Kinds and Higher-Order Coercions.pdf

@TakaoOzaki

尾崎隆大さんはTwitterを使っています 「% Prolog 非決定性に解を得るので構わなければ、 '重複のあるデータ列が与えられた時に、データ名:個数のペアを得る'(_重複のあるデータ列,_データ名,_個数) :- bagof(_,member(_データ名,_重複のあるデータ列),L), length(L,_個数). 'これだとbagofが表に出てきます。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog だとここまで。 '重複のあるデータ列が与えられた時に、データ名:個数のペアに持ち変える'(_重複のあるデータ列,_データ名_個数ならび) :- findall([_データ名,_個数],( bagof(_,member(_データ名,_重複のあるデータ列),L), length(L,_個数)),_データ名_個数ならび). https://t.co/BLPYNBBU2b」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'これは少し驚き。仕様が高階関数を要求するから高階関数を書くのではないのか。 Prologの場合は、論理学の中では高階述語を書く必要が出てくるが、日常的にはそんなこと人は考えないから、使うことはない。'. https://t.co/4XvKLpEHW8」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'しかも、実行時以前にコンパイルがなされるのだとすると、q1やq2が決定性に終了しているかどうか判断することは結構むずかしい。q2やq2が「決定性の述語」であると分かっているとは限らない。「非決定性の述語」が決定性に終了している場合だってある訳です。 コンパイルの難しさですね。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'それではコンパイラが末尾再帰を繰り返しパターンの変換する場合はどんな要件は何か。 先程述べたq1とq2が共に決定性である必要がある、この点は同じの筈です。もし別解がありえたらどうなるか?この場合はやはりスタックに情報を積んでいく他ない。スタックに関する最適化はできません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'ここまでの話は、所謂インタプリタ。実行時にProlog処理系のモニターが次に実行するべきGoalをスタックから取り出して、実行する際にモニターに付加的に存在しているロジックということになります。 コンパイラが末尾再帰を繰り返し手続きに変換するという話ではありません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'さて、 p :- &lt;&lt;停止節&gt;&gt; p :- q1,q2,p. 末尾のpが実行される時に、スタックが延びなくなる(上書きされる)ためには、条件があります。それは、q1,q2が決定性で終了していること。q1かq2にまだ別解の可能性が残っている場合はここでの意味での最適化はできません。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologに詳しくない方でもこれが末尾再帰であることは解ると思います。 p :- &lt;&lt;停止節&gt;&gt; p :- q1,q2,p. のようなパターンになっているのが末尾再帰です。第二節の本体の最後で自分自身を呼んでいる。このご利益は第一義的にはスタックオーバーフローの解消の可能性です。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog Wikipediaに 空積の規約のもと 0! = 1 と定義するとあり、やっぱり前のもダメ。 末尾再帰版階乗(0,1) :- !. 末尾再帰版階乗(N,X) :- M is N - 1,末尾再帰版階乗(M,N,X). 末尾再帰版階乗(1,X,X) :- !. 末尾再帰版階乗(N,Y,X) :- Z is Y * N,M is N - 1,末尾再帰版階乗(M,Z,X). なら大丈夫.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 'あ、これはいけません。バグですね。 ?- 末尾再帰版階乗(1,X). これは解が返らなくなってしまう。'. 末尾再帰版階乗(0,X,X) :- !. 末尾再帰版階乗(N,Y,X) :- Z is Y * N,M is N - 1,末尾再帰版階乗(M,Z,X). にすれば良いのかな.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 末尾再帰版階乗(N,X) :- M is N - 1,末尾再帰版階乗(M,N,X). 末尾再帰版階乗(1,X,X) :- !. 末尾再帰版階乗(N,Y,X) :- Z is Y * N,M is N - 1,末尾再帰版階乗(M,Z,X). 'これだとスタックオーバーフローは起こりません。ただ、100000000000の階乗は時間が掛かりすぎて無理ですね。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「% Prolog 階乗(1,1) :- !. 階乗(N,X) :- M is N - 1,階乗(M,Y),X is Y * N. 'このコードは末尾再帰ではありません。このコードで ?- 階乗(100000000000,X). のようなことをやると、スタックオーバーフローになるに違いない。余程コンパイラの類が頑張ってくれないと。'.」 / Twitter
尾崎隆大さんはTwitterを使っています 「@dec9ue % Prolog 'Prologで再帰述語を書く時は、スタックオーバーフローを起こさないための最低限度の備えとして、末尾再帰にすることを考えます。そういう問題に拘ることが好ましいことかという疑問もありますが。'.」 / Twitter

@fadis_

FadisさんはTwitterを使っています 「linuxカーネル、コードの1行を80文字以内に収めるコーディング規約を「強く推奨」から「推奨」に変更。1行80文字固定のターミナルを使っている開発者はもはや殆ど居らず、80文字に収めるために無理に改行する事でgrepabilityが低下する事の方が問題になっているとの判断から https://t.co/Y30xao4YoE」 / Twitter
The Linux Kernel Deprecates The 80 Character Line Coding Style - Phoronix

@igrep

重城良国さんはTwitterを使っています 「たとえばimmutableな話で、配列の一部を変更するような場合、もとの配列がGCされるような状況であれば、安全に「破壊的な変更」に置き換えることができるはずだし、それができればパフォーマンスが大きく向上すると思うのだけど、GHCとかでそういう最適化はあるのかな。あるいは技術的な困難があるか。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@YoshikuniJujo 線形型はまさにそれを確実にやるための機能ですよ。 「元の配列」を必ず一度しか使わない、という制限を加えることで実現しています。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「存在量型が欲しくなった時点で、あるいはもっと遡ってそもそも型クラスにしたくなった時点でrecord of functionで大概いいんじゃないかと考えるべきだと思うんだけど、確信を持って説得できない #haskell」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GHC、型エラーは慣れれば結構読めるけどパースエラーはエラーが発生したところからかなり離れた箇所が原因だったりするから難しいと個人的には思う。(型エラーも発生した箇所から離れた箇所が原因であることはしばしばあるけど、慣れかな...」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「今更気づいたんだけどasync/awaitやPromiseがなかった頃のNode.jsってある意味IO Monadがなかった頃のHaskellみたいだよね。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「軽量なEither型って感じか。確かにHaskellと違ってearly returnすればネストが深くなる問題は免れるし、少々冗長だけどいい落とし所なのかも知れない(でも結局flatMapみたいな関数を自前で追加しちゃいそう) / “TypeScriptの異常系表現のいい感じの落とし所 | …” https://t.co/cH9MMDjf0P」 / Twitter
TypeScriptの異常系表現のいい感じの落とし所 | DevelopersIO
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ところで追加したこの構文がわからない。単なる型エイリアスじゃなさそうだし... class Success&lt;T, E&gt; { ... type = 'success' as const // これ ...」 / Twitter
かたしんさんはTwitterを使っています 「@igrep インスタンスの type プロパティに文字列 ‘success’ を代入してて、as const をつけることで string 型じゃなくて ‘success’ 型になるようにしてますね。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@ktsn なるほど!ありがとうございます!」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@miura1729 昨今のサーバーレスの流れで、1秒でも計算時間を短くすれば課金額が減るので高速なアルゴリズムを求める、なんて話もあるらしいですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@igrep なんか、1980年代のメインフレームを時間貸ししていた時代を連想させますね。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「確かに...!時代が戻ってる感すらある &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「@igrep まあ、コンピュータ分野の技術は繰り返しなものばかりですからね。CPU/OSが複雑になるか・単純になるか、ソフトウエアでやるかハードウエアでやるか、型が動的か静的か などなど。どれも20~30年くらいの周期でしょうか」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「でもおかげでLift型クラスの意味がめっちゃよくわかった。こりゃ難しいわ」 / Twitter
Lift型クラス - Google 検索
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「JSXがどうしても好きになれないのでElmみたいにタグ名が付いた関数でReact.createElementするライブラリーがほしいんだけど、すでにないのかな。」 / Twitter
dyoshikawaさんはTwitterを使っています 「@igrep Elmが良い気がしましたが、JSならHyperAppとかどうでしょうか?」 / Twitter
λ🐇🐢.🐇さんはTwitterを使っています 「@igrep 概念としては hyperscript ないし hyperscript helpers という名前が付いてますね (ググりの手助けになれば)」 / Twitter

@s_isshiki1969

monochromeさんはTwitterを使っています 「CでできてRustにできないことってあるのだろうか?」 / Twitter
monochromeさんはTwitterを使っています 「label as valueはできないけどあれはgcc拡張なので。 gotoはできないな。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@s_isshiki1969 私の理解ではErlang VMは,SMTごとにカーネルスレッドで,それぞれのカーネルスレッドでユーザースレッドのキューを持つ,負荷分散をするため適宜カーネルスレッド間をマイグレーションする,という感じです。どこかにドキュメントが。。。」 / Twitter
monochromeさんはTwitterを使っています 「@zacky1972 いや、僕もまるで詳しくないので嘘かもしれませんが、複数のユーザースレッドがあり、ランタイムのスケジューラが各々のスレッドを順次ネイティブスレッドに割り当てて実行していくというようなものと理解しています。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@s_isshiki1969 Erlang VM のポイントは,SMTにまたがるグローバルな同期排他制御を極力排除した点です。ドキュメントがインターネット上のどこかに転がっていたかと思うので,探して読んでみてください。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@zacky1972 @s_isshiki1969 横からごめんなさい。これのことでしょうか? https://t.co/EHo483q0mG とても面白いドキュメントだと思います。」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「二重開放・開放済み領域の利用・開放漏れは防げそう。 オーバーフロー系は無理かな。 ポインタの代わりに「ポインタ+確保サイズ」をポインタ代わりに扱うCライブラリもあったっけ…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近の言語は、初期化時に開放コードを紐づけられて、早期returnしやすくなった。 (あと複数returnに「構造化違反」と言う人も居なくなった) 昔は複数リソース確保時は、goto END(ERR): みたいなのを作って開放処理を担わせる、とかよくあった。 (今もC言語とかでは良くある?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「早期リターンしやすい言語(=golangのdefer的な機能がある)で、一括リソース解放の場面なら、早期リターンの方が好ましいですね。 (C++だと scope_exit搭載まではキツいかな…解放のためだけにクラス作成はシンドイ) https://t.co/0pM9VdrHe5」 / Twitter
Ryuji FuchikamiさんはTwitterを使っています 「M並列でNサイクル計算するとMxNの計算ができる。 ある問題を解くとき、Mが固定でNが減るようにアルゴリズム(計算量)を改善するのが普通のプログラミング。 Nが固定されていてMが減るようにアルゴリズムを改善するのがリアルタイムプログラミング。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Ryuz88 Mをハードウェアで可能な最大値にするようにして,Nを減らすようにするのが並列プログラミング さらにNを減らすにあたってボトルネックになっているMを解消するようにするのが,ハードウェアによるアクセラレーション支援」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「フォーマットでなく、ソフトウェア設計でこんな話を思い出した。 B.メイヤー先生曰く、「データ構造こそ最も不変な要素(意訳:拡張はあるが既存実装が全無駄になる変更は滅多にない)。だからオブジェクト指向は、データ構造中心のパラダイム(手続きと並置ではない)」」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「元ネタは C vs C++なコンテキストだと思うけど、並列処理に関しては50歩100歩では感(笑) (最近のSTLにstd::threadやatomicが追加されたとはいえ、、、)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C++テンプレートだと、新たな型と関数の組み合わせ時に、初めてコンパイルエラーになったりする…テンプレートの網羅的な事前テストは難しそう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「安全(スレッド安全とかセキュリティとか)に作った筈のモジュールが、数年後、別の仕様拡張で、安全のための前提条件を満たさなくなる現象、たまにある。 こういう場合、問題が発現するまで気づかないことが多いのだけど、少なくともスレッド安全については自動検査するツールとか無いのかな?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「キャメルケースは CamelCase ではなく camelCase が本来で、前者は PascalCase と呼ぶ方が正確らしい…知らんかった。 https://t.co/7dmmRBpDhR」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ところで、Upper/LowerCase はホントに写植の箱(Case)由来のはずだけど、CamelCase とかの Case って何だろう…?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近、型推論/検査のしっかりした言語で、ソース規模増加でコンパイル時間が無視できないくらい増加という話を聞いていたので、ちょっと興味 &gt;RT」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Pythonで簡単にワーカー関数呼ぶだけのワーカースレッド作りたい時、Threadingより_threadを使う方が楽と思う。 (使い捨て用途でも、クラス作成を強制する流儀はご勘弁)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(使い捨てや簡易用途で)関数に比べて、クラス作成の面倒臭さ感って、何に由来するのかしらん?」 / Twitter

@kmizu

Kota Mizushima (on a diet)さんはTwitterを使っています 「未だに、形式論理での証明が苦手だけど、(カリー=ハワード同型対応的に)型付きラムダ計算を使った「証明」だったら、多少はかけるのはなんでだろうと思う。日常の「論理」との混同が起きにくいので、すんなり頭に入ってくるんだろうか。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「PEGにおいて、文字じゃなくてトークンが基本単位でもいい(そういう風に置き換えられる)、というのは元論文読めば誰でも思いつく話なんだけど、研究ではこっちのアプローチはあんまり盛んではなかったように思える。ただ、Pythonの実装見ると、このアプローチもっと真面目にやってもよさげ。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ほとんどの(現代の)インタプリタは、ナイーヴなものでも、たいてい抽象構文木を解釈するものですよ。というのは、割とプログラマーに常識として広まって欲しいと本気で思っている。 たぶん、処理系の性能見積もり予測とかも、そういうナイーヴな実装を知るところから始まると思いますし。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「これを言わなきゃいかんのは、行単位で解釈し直すとか、下手したら、パーズし直すとか思ってる人とか、それを植え付けた一因とおぼしき「入門」本がほんとにたくさん、たくさん、並んでいるからなんですけど。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「この「最低限の理解」がないと、おそらく、プログラムのチューニングとか永遠にブラックボックスのままなのでは、とおもう事が多いのです。 コンパイラの場合は違うにせよ、今どきの処理系はハイブリッド(JITコンパイラ)が多いので、インタプリタ、つまり解釈系の事知っといた方がいいし。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「最近、事前条件/事後条件(+不変条件)辺りの概念については、プログラマー必修にしてもいいのでは、と思いはじめている。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「というのは、これらの概念を明確に意識可能かどうかで、プログラムについての対話がスムーズに行くかが大幅に変わってくるんではという事例をよく見るからなんだけど。 例として、プログラムの事前条件/事後条件の一部は(普通のプログラミング言語でも)型として表現可能である、みたいな。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「カリー=ハワード同型対応までやるとかは必要ないにしても、対話相手がそういう概念を持っていない場合に、議論に困る、ってことは時々あるし。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「しかし、今まで理解できない言語にぶちあたったとき、大体その言語のミニ処理系だったり、関連する機能を持ったミニ処理系作って来た気がします。HaskellのIOモナドがしっくり来なかったら、IOモナド持ったプログラミング言語作ったり。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「その時に、「あー、(World, A) -&gt; Worldの関数としてとらえればいいのかー(Worldはたかだか1回しか使われない)」と妙にしっくり来たのを覚えています。」 / Twitter

@PG_MANA_

PG_MANA@帰省中さんはTwitterを使っています 「goto failより、Zenのdefer/errdefer の方がわかりやすくて良い(Cにもほしい)」 / Twitter
zen defer - Google 検索

@tanakh

Hideyuki TanakaさんはTwitterを使っています 「Rustは良い書籍がすでにあるけど、それらはネイティブ英語話者に対して書かれてるので、それ以外の人には難しい。今では多くの国の人たちがRustを勉強しているので、これはそういう人達に向けた単純な英語での入門書 / “GitHub - Dhghomon/easy_rust: Rust explained using…” https://t.co/JOj4osnqzr」 / Twitter
Dhghomon/easy_rust: Rust explained using easy English
Hideyuki TanakaさんはTwitterを使っています 「まあunsafeの中ではunsafeが呼べるってだけで、unsafeじゃないものが自動的にunsafeになるわけじゃないからな・・・(´・_・`)」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「ダングリングポインタも、バッファーオーバーフローも、SEGVも、ヌルポアクセスも、データレースも、絶対にないことを保障してくれて、その上C言語と同じかそれ以上に速いプログラミング言語があるんですって!これは使うしかないですよね!?(´・_・`)」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「いや、nimのcaseがパターンマッチ相当なのかもしれんが、見た感じ違うし、パターンマッチの本質はデータ構造の部分的な束縛だぞ・・・。」 / Twitter

@DQNEO

ドキュネオさんはTwitterを使っています 「Go言語のスライス、使う側としてはめちゃくちゃ便利だし、実は裏側のコンパイラ/ランタイム実装もわりと簡単なので(2-3日で作れる)、これぞイノベーションという感じがする。」 / Twitter
go スライス - Google 検索

@hatsugai

histric-1

hatsugai@PRINCIPIAさんはTwitterを使っています 「プロセスは同期可能なイベントを外部に提示する.条件が揃うと同期が成立する.イベントを提示してから同期が成立するまでには時間があるので,その間にもプロセスは内部的に動作する可能性があり,結果として提示しているイベントが変わることがある.イベントが同じでも遷移先が変わることもある.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「マルチコア・マルチスレッドプログラム,組み込みシステム,複数の相手と通信するプログラムなどにはこういう振る舞いが含まれている.問題はどう検証するか.特にテストで再現しにくいとき.問題に気づかないかもしれない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「デッドロック発見器(イベント同期を基本相互作用とする並行合成器)をつくるセミナーは明日土曜日開催です.いまのところ再演の予定はないので興味がある人はできればこの機会にどうぞ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「共有変数版デッドロック発見器では合成するコンポーネントと合成した後のシステムで遷移系の形が違うので,合成は1回しかできない.これに対してイベント同期版では同じ形なので多段階に合成することができ,大きなシステムを段階的に構築できる(閉包性).」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「さらにイベントを観測するという考えに基づいて2つの遷移系を比較することができる.まずは発生しうるイベントを時間的な順序で並べたトレースを比較するトレース比較器に進化させる.これにより安全性を検査することができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレースはシステムの振る舞いの表現としてよく使われる(プロトコルとかログとか)けれども,振る舞いを識別する精度という点では少し粗い.同じトレースを生成できるシステムは必ずしも交換可能にはならない.なぜならトレースでは非決定性を表現できないから.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器をさらに進化させて,非決定性も含めて比較できる,より精度の高い比較器を作ることはできる.ただ,あまり直感的ではないので,これについては先に既存ツールを使いながら理解を組み立てたほうがいいように思う.作ることが特に難しいというわけではない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「目的はプログラムの設計段階でささっと抽象的なモデルを書いて検査して,確信を持って実装することにある.プロトタイプよりも早く書けて,より確実に問題点を明らかにする.道具なのでうまく使いこなすにはしくみの理解と練習が必要だということ.そのために自分で作ってみようという話.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「自分の能力を増幅してくれる道具は1度手にしたらもう手放せない.いままで見えなかったものが見えるようになり,できなかったことができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「詳細化検査器は形式手法の中でも入りやすいと思います: 1.モデルがプログラムに近い 2.仕様も状態遷移で書ける:モデル検査器は時相論理が難しい 3.検査は自動:モデル検査と同じ.証明は難しい 4.仕様と実装の差が反例として示されるのでわかりやすい:モデル検査の反例は難しい.証明はもっと難しい」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「「形式手法」という言葉を使っているうちはまだまだということでしょう…」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「「…が使われているうちは…」と書くべきだった…すみません.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「仕様はプログラムの動作を規定するもので,テストではプログラムの動作が仕様と整合しているか個別のケースごとに確認しているわけだから,仕様もコンピュータで処理できる形にして網羅的に比較するプログラムを書いてしまおうというセミナーです.正当性とは何かを改めて考える機会になるでしょう.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「詳細化検査器というのは仕様と実装の設計モデルを比較するツールです。仕様に反するところがあればレポートが出ます。それを見て設計を修正できるわけです。トレース検査器はその一種です。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器を作って学ぶマルチスレッドプログラミング 2020年2月29日 デッドロック発見器からはじまった作るセミナーシリーズの最終回。設計モデルが仕様を満たしているかどうかをトレースで網羅的に比較検査するツールを作ります。 https://t.co/ZHttN6rbOF」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「仕様と実装を網羅的に比較して一致が確認できる、または違いを突きつけられるというのは結構強烈な体験だと思います。さらにそれが自分で作れるとなれば楽しくないわけがありません。アルゴリズムの骨子はグラフの探索です。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器のことをトレース検査器って書いてしまった、あーあ。まいっか。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「ものを数えたり番号をつけたりするときに,常に 0 based を使うように気をつかっていたのに,ふと油断したときに「1,2,...」といってしまい友人に( ̄ー ̄)ニヤリと笑われたことを思い出してしまった.TeX の enumerate ですら 0 にしてたのにー! ところで仕様記述言語はどうして 1 based なんだろ…」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月23日(土) 自分の好きなプログラミング言語でプログラム検証器を作るハンズオンセミナーです。プログラムの正しさを証明する理論である Hoare 論理を解説します。SMT solver Z3 を使って証明を自動で行います。 https://t.co/BCzAL1dZtu」 / Twitter
プログラム検証器を作って学ぶ Hoare 論理 - connpass

histric-2

hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「自分で作らなくても既存のツールを使えばいいと言っている人を見かけた。適したツールを使うのはもちろんだ。でも理解のために作るというのもある。自分で作ってみると理解の深さが違う。わかってなければ作れない。いろいろ考えさせられて力がつく。記憶に残る。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「モデルもガンガン書いてみればいいわけで。間違いだろうが的外れだろうかかまわない。視覚的にフィードバックがかかるからあちこち変えてみたくなる。するとさらにいろいろ見えてくる。手を動かした分だけ知見が得られる。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「目的のためにフレームワークやライブラリで言語を選ぶ時代(?)。じゃあ遊びなら好きな言語でなんでも書いてみたらいいんじゃないか。ついでに言語も作って処理系も作ってしまえ。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「考え方を習得するのはいつも難しかった.距離・時間・速さの計算,分数の計算,方程式,幾何の証明,濃度の計算,微積,物理などなど.型を身につけるって感じだった.それがわかるのはわかったあとだけど.プログラミングにも型があるだろう.端的にいえるか?.プログラミングの型を持っているか?」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「BASIC を卒業したあとはわからないことだらけだったなー。再帰、レコード、ヒープ、マクロ、クロージャ、継続、仮想関数…。8080 の機械語から入ったからポインタでは苦労しなかった。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「何かを作ったり問題を解決したりするとき、まず考えることはゴールを明確にすることだけど、プログラミングのゴールを明確にするってなんだという話。過程もそうだし、表現も。」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「形式手法を始めるなら、定理証明支援ツールを使いながら述語論理を勉強するところから始めるのがおすすめ。」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「定理証明支援ツールのライブラリを読んでいると数学の定義そのままに記述されていて、あたりまえなのだけど「ほんとにいいの?」という気持ちになる。少しの不安と圧倒的な力に対する感動が入り混じった感じ。そう感じるのプログラミング的な考え方が思考を制限しているのではとの不安もある。」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「あまりにも長い時間プログラミングばかりしていたので、実現可能なことばかりを考える手続き脳になってしまっているのではないかと思う。実際、数学の問題を手続き的に考えていたことに気付かされたことが何度かあってショックを受けた。プログラミングでも対象の宣言的な性質に着目する必要があ文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「時間的に変化するプログラムの状態を状態間の関係として記述するという形式仕様記述の考え方は、時間的に変化するものをどうやって静的に表現するかという問題への解の1つ。同様に時間的に変化する物体の運動を無限小時間の前後の関係として表現する運動方程式と同じ。運動が静的な関数で表せる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「「じゃあプログラムって何?命令的なプログラムと関数的なものと Prolog みたいなものは何が違う?それらと仕様は何が違う?プログラムの"意味"って何?検証とかテストっていったい何?」と問いが進んで一周回ってくるとちょっと高いとこにいる感じ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムが状態の時間的変化を記述しているんだったら、どうしてその表現形式なのか?それのどこがいいのか?もっといいものはないのか?という疑問がわく。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「大まかな話、対象としている問題領域によって何を状態とするのが適切かが異なり、その状態の形によって変化の形も違う。だから状態と変化の形に合わせた記述要素と組み合わせ方法のセットを選ぶ。これだけではまだ選択の余地があって、さらに他の要求から選択を進める。その要求とは設計論的なあ文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「形式手法は汎用の技術で、各応用分野での技術とはほぼ直交するから組み合わせれば開発をブーストできる。独学もできるけど話を聞いた方が効率がいい。それ以上に話をするとブーストのヒントが得られたりアイデアが発火したりする。だから興味ある人にはセミナーに来て欲しいけど今は難しい状況な文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「システムの振る舞いは外部から観測可能なものに基づいて表現される。つまりシステムは"外見で判断"される。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器をトレース比較器に進化させた人で、さらに非決定性の識別ができるところまで作ってみたいという人はどれくらいいるだろうか。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様には様々な面があるけど、その中で振る舞いに関する仕様については十分に記述されることがほとんどない。記述した場合はプログラムと2度手間になっている感が強い。じゃあ不要かというとそんなことはない。仕様側の抽象度を上げることと、プログラムの被分析性を上げることがポイントだと思う。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「分散システムにおけるコンセンサスアルゴリズムの正当性証明 with Isabelle/HOL by Martin Kleppmann https://t.co/1jcO7O6FOM」 / Twitter
Consensus_Demo.thy
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Actor に近いモデルだけど、configuration の構成要素であるメッセージプールにはメッセージ溜めっぱなし。受信の際に削除しない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ギルドの扉を叩いた初心者冒険者は偶然 "Hoare Logic" という名の強力な魔力を宿した剣 "Isabelle" を手にしてしまう.ガイドの元,最大値・絶対値スライム討伐から訓練を始め,2分法のスキルを習得し,ラスボス2分探索に挑むって感じで,セミナーは参加型エンターテインメントなわけですよ.イタイ…」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「本を読めばわかる人はそれでいいんじゃないですかね.あ,感じ悪いな…まあとにかく,自分自身を訓練する,自分に投資するという人,導入はガイドを雇って効率よく進めた方がいいという人に参加して欲しいと思います.ハイ」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「(心が荒れててよくない…)」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器(並行合成器)を共有変数とメッセージ通信で両方作って見た人は違いがよくわかったんじゃないかな(といいな)。相互作用を決めると合成できるというのが面白い。メッセージ通信で共有変数を作れるのも面白い。物理的なメモリは実際そうだし。では逆は?」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「アクターモデルが好きな人はそれを基本相互作用として並行合成器を作ることもできる。でもメッセージプールが無限に膨れ上がるのでシミュレーションはできるけどモデル検査はできない。振る舞い全体の可視化は一般には無理。定理証明支援ツール上でモデル化すれば無限でも扱えるので性質を調べられる。」 / Twitter

histric-3

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Alloy を使うときの考え方とプログラミングのときの考え方の何がどう違うのか、なぜ違うのか、どうやって橋渡しするのか、といったところを自分なりに整理しておきたい気持ちはある。あとの方は多分に認識・解釈の問題ではあるけれど。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メモリ上でポインタでつないで作った構造をまとまりとして1つの値として考えるってことと対応づけると面白いかな。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様記述のメジャーな2つのスタイル(というと他の手法の人に怒られるけど)のうち、状態を中心に考える手法で、状態遷移を状態間の関係として記述する技術を必要としている人(自覚の有無にかかわらず)はいると思うので、紹介する機会を作りたいと思っている。問題はいつものように前提知識に文字数」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「もう1つの相互作用に着目する方は通信の時代で応用がたくさんあるのにマイナーな印象で残念。大きく2つの柱からなるので分けることもできるけどやはり一緒の方がいいと思う。そうすると並行システムっていう名前になるのでこれがスルーされる原因なのかも。改題するか。そういう問題か?目的のため文字」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「対象に合う表現形式を選ぶというごくあたりまえの話。よいものがなければ工夫するとか新しく作るとか。バランスをとるのは思ったより難しいのかも。自分はいまのとこ OCaml + 通信機構(CSP) でかなり快適だけど、うまく書けないものもある。たぶん自分が知らないだけ。O を使えばいいんだけど。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メッセージ通信編はプロセス代数を食べやすく調理したものなんですよ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Isabelle は計算機科学の教科書、例えば型システム入門にある証明を形式化できるくらいを目標にすると、inductive_set あたりまでガイドできればいいんじゃないかと思うので、まっすぐそこを目指すことにする。独立性の高い記述要素やメソッド、定理、証明技術などはそのあと肉付けすればいっかな。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「昨日質問が出た事前条件と事後条件をつなぐ話。例えばインクリメントの場合 {x = C} x := x + 1 {x = C + 1} と表す。事前状態での変数 x の値を表すために導入する、プログラムには登場しない変数 C のことを仕様変数という。つまり仕様変数を使って事前条件と事後条件をつなぐ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「事後条件に着目すると x = C + 1 は x' = x + 1 という書き方に対応する。事前を x 事後を x' にする代わりに、事前を C 事後を x にしたってこと。つまり修飾なしの変数が事前を表すか事後を表すかという選択。事後を修飾なしで、事前を修飾するという流儀もある(e.g. VDM)」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「いずれの流儀にせよ、事後条件は(名前に反して)事前状態・事後状態間の関係を表す。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「たとえば変数 x, y の値の交換 swap の仕様は、仕様変数 A, B を使って {x=A &amp; y=B} swap {x=B &amp; y=A} と書ける。例題でやったやつ。プログラム書いて証明してみると楽しい。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数編とは独立したセミナーです。共有変数編からの続きではありません。共有変数編の続編はモデル検査器へのバージョンアップです。メッセージ通信編の続編ではマルチスレッドプログラム全体の振る舞いを仕様と比較するトレース比較器にバージョンアップします。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムの正しさを証明するってことは数学を通してプログラムの性質を見るってことで、プログラミング言語で考えるのと合わせて2つの見方を手に入れるってこと。1つと2つは大違いで2つあると比較ができる。同じように次はマルチスレッドプログラムを状態遷移グラフで見る。これもまた強力なんですよ」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「設計という行為には4つの要素が考えられる:(1)問題を定義する、(2)解を求める、(3)解を実現する、(4)解であることを確認する。人によってどれが設計に入るか異なるだろう。解の表現が実現性の点で少なくとも2種あるところがポイント。解は解の候補であることもある。以上の認識は共有されるだろうか?」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メッセージ通信版デッドロック発見器の背景にはプロセス代数があるので、作るといつのまにかプロセス代数の考え方が理解できちゃう。しかも共有変数とか非同期通信のモデル化もできるので強力。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数版でメッセージ通信する例は抽象モデルだったけど、メッセージ通信版で作る共有変数+同期機構は十分詳細なモデル。もちろん前者でもやればできるけど。共有変数+同期機構でメッセージ通信ライブラリ実装するのとほとんど同じ。加えて検査ができる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合、本を読んで「証明完全に理解した」と思ったら、あと2回は「わかってなかった」→「こんどこそわかった」を繰り返すことになる。1度目は自分で証明を紙の上に再構成するとき、2度目は定理証明系で証明を形式化するとき。人に説明する機会があるときはさらに回数が増える。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「定理証明支援系の自動証明能力が向上してうれしい反面、理解していなくても証明できてしまうというおそろしい(?)ことも起こる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「そういうときは証明を"刻む"。自動証明機能を使わずに、定理と推論規則だけで証明を組み立てる。別のいい方をすると定理証明系を証明検査器としてのみ使う。これはまずわかってないとできない。でもガチャガチャやってたらできちゃったということもないわけではない…。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Hoare 論理と SMT solver Z3 を使ってプログラムの正当性を自動証明するプログラム検証器を作るセミナーを準備している.作ってみたらあまりに強力過ぎて笑ってしまった.Isabelle のセミナーで使った例がすべて自動で証明できてしまう.証明できない場合は反例が表示される.それを分析して修正できる」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「土曜日はシステム開発で重要な次の点を解説する: (1) コンポーネントの振る舞いを明確に記述する記法と意味 (2) 明確に定義された基本相互作用によりコンポーネントの振る舞いを決めるとシステム全体の振る舞いが決まること (3) システムの振る舞いを期待する振る舞いと比較検証する方法(ツール)」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「やはりこうして解説を書いてみても現状とのギャップは見えてこない。おそらくあたりまえとかすでにやっていることのように思われるのではないだろうか。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つの振る舞いモデルをツールに入れると、全自動で振る舞い全体を網羅的に比較して、差分があればそれを教えてくれる。これを体験してもらうしかないかも。にわたま。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「「並行システム」というと「関係ない」と思われてしまうのだろう。相互作用を考えるということは少なくとも2つの実行主体があるわけで、したがって並行システムなわけだけど、それは置いても、継続的に動作するシステムの検証とは何かというもう1つ重要なポイントがある。明確に語られるのを見ない。」 / Twitter

histric-4

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月2日(土)14:00-18:00 Hoare 論理と SMT solver Z3 を使ってプログラム検証器を作るセミナーです.2分探索の正当性を自動証明する能力があります. #FormalVerification #FormalMethods #形式手法 https://t.co/my0H7ECxMK」 / Twitter
プログラム検証器を作って学ぶ Hoare 論理 - connpass
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「難しそうに見えるかもしれないけど、実は作ること自体は結構かんたんです.Scheme 版は 86 行しかありません.規則にしたがって計算するだけです.あとは SMT solver がやってくれます.自分で作って、いろいろな例で試しているうちに理解が進むという感じです。楽しいですよ。拡張もできるし。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Isabelle で正当性証明する前に反例がないかチェックしてみる、っていうくらい強力。セミナーで使う例題プログラムの正当性を Isabellle でチェックする前に自作検証器でチェックしている自分を発見した。Isabelle で散々試行錯誤してから実は仕様が間違ってたみたいなことを避けられる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メソッド(ふつう論理学の教科書だと導入と除去の2つだけど Isabelle は3つ)の使い方を理解するのが最初の壁で,それを乗り越えた後はほぼパズルです.これがかなり楽しいのだけど人によるか.問題もたくさん用意した.否定(~でない)が入っているやつはなかなか手ごわい.ふっふっふ.」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「哲学者の食事(改):デッドロックのある回避策を入れたらライブロック(発散)が起こる例 #SyncStitch #FormalMethods #形式手法 https://t.co/MULx4UGxzZ」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数版デッドロック発見器が作りかけの人は、ぜひ続きをやってモデル検査器にバージョンアップしよう! 計算木という考え方はわかりやすくて役に立つし、検査のアルゴリズムも面白いです。効率よりも面白さ&amp;実装しやすさ優先で選んだ。2種類の不動点と関係がある。 https://t.co/AUJrJFgfgU」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「OS やプログラミング言語のいろいろな同期・通信機構をモデル化してモデルライブラリにしとくと便利だけど、誰かやってくれという気持ち。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「並行システムというととても狭い領域の話として受け取られることが多い印象だが実際は並行システムじゃないものを探す方がたいへんなくらい。その認識のギャップが課題。検証のしくみについても同様。おかしなものだと個人的には思うのだけど、歴史を見るとよくあることなのかもと思わなくもない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「だからプログラミング言語についての話を見かけるとなんともいえない気分になる。20年前、40年前のトレンドと、その頃の人たちが何を言っていたかを知ると。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「明日というかもう今日だけど、非同期通信モデルの説明をするので気合いがいる。非同期通信モデルは不安定仕掛かり中間状態が多いのでデッドロックに至る最短パスが長くなりがちで分析がたいへん。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラマが自由に決められるのは各スレッドの振る舞いだけ。各スレッドの振る舞いを決めた時、合成(結合)した結果が想定どおりになっているかどうかは自明じゃない(巨大な状態遷移グラフ)。だから (1) 合成を計算する (2) 想定どおりかどうか検査する; という2ステップからなってる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「手続きを P0, P1, ... としてそれぞれ状態空間での遷移関係として仕様が与えられているとする。共有変数の参照・更新も手続きとみなす。ラフに考えると、相対的に (1) 非決定性が大きい (2) 依存関係(事前条件、遷移構造)が複雑 (3) 手続きのパラメータによって大きく関係がかわる;あたりから。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「具体的な例を調べて精密化すればもう少し何かわかりそう」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月4日(月)14:00-18:00 Hoare 論理と SMT solver Z3 を使ってプログラム検証器を作るセミナーです。2分探索アルゴリズムの正当性を自動証明する能力があります。 https://t.co/G7m1euWOPS」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「SyncStitch 2 の資料を見返していたら、状態遷移図は描けるし、シーケンスチャートは出るし、見た目かっこいいし、並列検査で性能もいいし、S式だし、Scheme で実装だし、なんでこれやめちゃったんだっけという感想。 https://t.co/fd7e7N7dOM」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Version 3 で実装した fluent, CTL, LTL はそのうち version 4 にも移したいけど、広い意味での体力が… Version 1 のときは抽象状態とか表示マクロとかサブプロセスを指定して探査開始とか、もっと凝った機能もあった。はじめに複雑なものを作ってしまうの法則。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「例として数列の和を求めるプログラムを考える。ループのステップは s := s + c[i]; i := i + 1 これに対するループ不変条件は s = Σ_{0≤k&lt;i} c[k] と s + Σ_{i≤k&lt;n} c[k] = E という形が考えられる。後者はエネルギー保存型ループ不変条件。ループの進行にしたがって値が移っていくが和は一定。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「エネルギー保存型ループ不変条件の和の演算部分(T ⊕ V = E の演算 ⊕)は、集合だと和集合 ∪ になったりリストだと連結になったりする。そういう保存量を探すという考え方で事後条件を見ると、隠れている項が見えてくることがある。第一積分のように機械的に計算というわけにはいかないが…」 / Twitter

histric-5

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Z3 で sum を表現する例 https://t.co/sTSd3iS1Bo」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「model https://t.co/t7plFVemDi」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「これは読めないので Gauche で評価してみるとたしかに累積和になっている: https://t.co/Krs4QSbjAC」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自動証明ができるので、候補になりそうな式を生成して片っ端から solver に投げるという荒っぽい戦略もとれる。ますます考えなくなる人間。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「たとえば事後条件が P &amp; Q &amp; R の形だったら 1. !P と Q&amp;R 2. !Q と P&amp;R 3. !R と P&amp;Q 4. !(P&amp;Q) と R 5. !(Q&amp;R) と P 6. !(P&amp;R) と Q を調べることができる(それぞれループ条件とループ不変条件)。 線型探索や平方根の問題はこれで解けてしまう。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つに場合分けする場合は p ∨ ¬p = true で網羅、p ∧ ¬p = false で排他。p ⇒ q = ¬p ∨ q で展開すると項が余る…さて?とここで一工夫必要。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A: (p ∧ q) ∨ (¬p ∧ r) と B: (p ⇒ q) ∧ (¬p ⇒ r) は同値」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「まず仕様を明確にする。日常的な意味じゃなくて数式で表す。ゴールは命令型のプログラムを書いて正当性を証明すること。段階的に進める。まず再帰を使って関数型プログラムを書き、仕様との一致を証明する。次に命令型のプログラムを書いて、関数型プログラムを利用して正当性を証明する。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様・プログラムの表現形式はA:論理式、B:関数、C:命令型プログラムと3つあって、Aはwhatに集中できるけど実行は(ふつう)できない。Cはhowで何をしているかは明らかではないけど実行可能。Bも実行可能でwhat/howは中間くらい。これらをうまく選んで使って正しさに確信が持てる結果を得る。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ゴールデンウィーク最後のセミナーは SyncStitch によるリアクティブシステムのモデル化と検証。通信システム、組込み、マルチスレッドなどに共通する性質を理解し開発上の課題を解決できるようになる。定理証明でもモデル検査でもない、知られざる技術を紹介する。6時間後には次元違いの超レベルUP!」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「タイトルはわかりやすいようにマルチスレッドにしたけど実際にカバーする範囲はもっと広い。2つの独立した柱からなる。1つは相互作用を決定すると合成系の振る舞いが決まること。もう1つは相互作用を通じて観測できる振る舞いに基づいてシステムを検証する基準と方法:「振る舞いとは何か」」 / Twitter
PRINCIPIA Limited
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「紙の上で証明のアウトラインを組み立ててから定理証明支援系にのせる方が短くてきれいな証明になることが多いけど、それっぽくない証明にもなる。逆にまず定理証明支援系に入れてしまって、自動証明でできるだけ進めて、残ったゴールを見て考えるのも楽しい。補題を作って自動化を進めると気持ちいい。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「第1回で論理学の教科書に出てくるような問題が証明できるようになります。これは計算機科学の基礎だし、仕様記述やプログラミングでも役に立ちます。 第2回までやると関数型プログラムの性質が証明できるようになります。再帰的に定義された関数の性質を数学的帰納法を使って証明します。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「オートマトンの知識を正規表現や字句解析にしか使わないのはもったいない。デッドロック発見器がおすすめ。またやるか。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プロセス間相互作用について考える機会になる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器にプロセス優先度を導入してみた。左図:まず低 R が起きてロックを獲得、次に高 P が起きてロックしようとするができずwait。ここで中間 Q が起きて動きっぱなし。いわゆる優先順位逆転問題。これを優先度継承で解決したのが右図。P が waitした時点で優先度を R に継承して動作OK https://t.co/Eaj94JdXZW」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器で優先度および優先度継承をできるだけ楽して実現するには優先度も共有変数レコードに入れてしまえばいい。そうすればプロセスが自由に優先度を変えられる。あとは遷移を計算する関数が優先度を参照して低い方を計算しない(あるいは捨てる)だけ。作った人は改造にチャレンジ!」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラマはプログラミング言語の他にもう1つプログラムの性質を表す言語を持った方がいい。2つの異なる表現を作って比較すれば正しさを高められる。検算と同じ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「あと検算の技術と道具。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メタスキルはとても価値があるんだけど習得は難しい。経験から学ぶのは難しい。本には書いてあるけど読むだけで理解したり実践したりするのは難しい。近くに実践してる人がいて、その人に指導してもらえるといちばんいい。ってむかし小熊くんがいってた。いってなかったかな…」 / Twitter

2020-12-09

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムの性質を表現する技術を高める必要があるとますます思う。コードを書いているときに頭の中で考えていることを内省すると、欲しいものを思い浮かべつつ、よく知っている部品(言語要素やライブラリ要素)をどう組み合わせればいいかを考えている。これを整理・分析すれば改善ポイントがわかる」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A. 欲しいものを明確にできる B. どのような部品があってどんな性質を持っているかを知っている C. 組み合わせ方を知っている D. 組み合わせの可能性を列挙できる E. 組み合わせた結果がどうなるかを知ることができる F. 組み合わせた結果が欲しいものになっていることを確認することができる」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「B どんな部品があるかを知ることは難しくないように思うけど、それがどんな性質を持っているかを十分に理解することを含めていうと結構難しいし、思ったほどはできていない。どこまで知っていればいいかというバランスもそれほど明らかじゃない。[意味論]」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「C は部品の種類と関係してる[型]。D は改めていわれることがあまりない印象だけど、思いつくことは努力できないので支援が必要[パターン]。E は認識が薄いし結果を知ることも難しい[合成]。でも実行すればかなりわかる。実行でわかることしか見ていないという話もある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「F 流れ上「組み合わせた結果」と書いたけれど、組み合わせることとは独立していて、コードと欲しいものを比較するという話[検証]。この比較の基準と実際に比較する技術も弱い[テスト・形式検証]。F は A と E に依存している。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A どんな性質をどう表現するか。様々なプログラムについてどんな性質が問題になるか。逆に表現の型からプログラムを整理・分類すると何が見えるか。大きなプログラムは多面的に整理する必要があるのでどう構成すればいいか。などなど十分わかっているとはいえないことがたくさんある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A-F の関係でいうと、欲しい性質の表現の種類に応じてどんな検証技術が使えるか、とか、どういう表現だと検証が難しいとか簡単とかいろいろ知りたいことがある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ことの本質だけを抽出したモデルを作って性質を証明するのはかっこいい。ある例を見てて、ここまで削れるのかと驚いた。モデルを作って性質が示せたら、次はどこまで抽象化(要素や条件を削る)できるかといつでも考えるといいかも。性質がかわったり消えたりするあたりに本質があるのだろうから。」 / Twitter

2020-12-17

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「「ある変換を通じて問題を別の世界に移すとそちらの世界では比較的容易に解が得られて、それを逆変換して元の世界での解を得る」というしくみはよくありますね。」 / Twitter
fujim2さんはTwitterを使っています 「@hatsugai それ聞いてなぜかフーリエ変換を思い出しました」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラミングの過程で必要な能力を自分なりに分解・整理してみたリスト。それぞれの項目で具体的にどんな知識やスキルを使っているか。他にはどんな選択肢があって pros/cons はどうか。1つずつチェックすると強化ポイントが見えてくる。 明後日のセミナーでは A, B, C, E, F について扱う。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A. 欲しいものを明確にできる B. どのような部品があってどんな性質を持っているかを知っている C. 組み合わせ方を知っている D. 組み合わせの可能性を列挙できる E. 組み合わせた結果がどうなるかを知ることができる F. 組み合わせた結果が欲しいものになっていることを確認することができる」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「振り返ってみると、かつてはこういったものの価値を理解できなかった。極大に停滞してしまう人もよくみる。慣れた居心地の良い空間から外に出るのは不快だし。問題を解決することそのものではなく周辺のものに囚われてしまう人も多い。」 / Twitter

hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「コードを書こうとしたときに初めて何を書こうとしていたのかを理解したり考えが足りていないことに気づいたりすることはよくある。あるいはコードを書き終えたあとでテストをしたら期待した結果にならず、その原因を探る過程で考えの誤りや考えていなかった点に気づくこともまたよくある。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「コードを書く前に頭の中で考えていたときには十分見通しが立ってこれでいけると思っていた。でもそうじゃなかった。書いてわかる。表現にはそういう作用がある。でもコードは実行することを目的としているので、何が欲しいのかということを端的に表現する形式としていつでもベストというわけじゃない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「欲しいものが何であるかに集中して表現できる形式を持つと、コードよりも短い時間で表現を作ることができる。どのように結果を得るかという実行を考える部分を省略できるからだ。書いてわかるという作用は持っているので、誤りや考え不足の点を早い段階で気づけることになる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「さらに加えて、欲しいものについて2つの表現を作ることができると、それらを比較することで考えの正しさを確かめることができる。書いたコードを見直すのもよいけど、別々の考え方で書いたものが一致することを確認する方が確からしさの度合いが高い。いわゆる検算と同じだ。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つの表現が表す内容が一致することを確認する方法は2つある。1つはテストだ。コードの他にもう1つ表現を作るのはコストが高いと思うかもしれないが、テストとして再利用できるので無駄にはならない。もう1つが形式検証で数学を使って2つの表現を比較検証することができる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「この2つ目の表現はいわゆる仕様のことだ。表現形式として優れているものの1つは論理式だ。使えるようになるには練習が必要だけど、その分恩恵がある。熟練してくれば使いどころもわかってくるので、適切なバランスを選択できるようになる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「表現しようとして気づく、テストして気づくに加えて、形式検証(証明)をしていて気づくという第3の機会も手に入る。表現形式の違いが考え方の違いになるように、プログラムの動作を実行を追って考えるという考え方の他に、検証の理論を使って動作を考えるという新しい視野を手に入れられる。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様というとコードの前に書くものだろうけど、検証という点に限ればもっと自由でよいという考え方もできる。時にコードは十分明解に欲しいものを表すことができる。一方で論理式が複雑になることもある。それでもかまわない。2つの異なる考え方で1つのものを表して比較できればいいのだから。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「思考は表現されてはじめて明確になるので表現形式は大事だ。時には表現形式の範囲でしか思考できないことがある。だから表現形式を複数持てば思考を広げられる可能性がある。自分はプログラマなのでプログラミング言語"で"考えがちだけど、論理式も援用するとよりよく対象を理解できることが多い。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「このセミナーでは仕様を論理式で表現する方法と、それをコードと数学的に比較して検証する方法を紹介する。ほんの入り口だけだけど、実際の例を示し、その先に広がるものがイメージできるように構成を工夫したつもり。よかったら参加してください。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「コンパイラのようなプログラムは入力(ソース)と出力(オブジェクト)の関係で正しさを規定・判断することができる.では対話的なアプリケーションやサービスのように継続的に動作するプログラムの正しさはどう考えればいいか.アプローチの1つとしてトレースと模倣というものを紹介します.」 / Twitter
トレース比較器を作って学ぶマルチスレッドプログラミング - connpass
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「トレース比較器を作って学ぶマルチスレッドプログラミング 2020年2月29日 シナリオや仕様と設計・実装モデルの振る舞いを網羅的に比較するツールを作るハンズオンセミナーです. https://t.co/ZHttN6rbOF」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「時間とともに変化する動きを表すプログラムの性質を、時間のない世界に移して議論できるのはほんと不思議で面白いと改めて思う。しかも強力な武器になるわけで。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「理解できないことに出会った時、何なのかわからないけど、きっととても面白いものだという確信があり、それを知りたい・理解したいと思うこの感覚・衝動がたまらない。2つの武器を使って考え道筋を探る。調べて知識を得るのではなく、考えて仕組みを明らかにできるということも不思議で楽しい。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「道具箱の中に「証明」も入ってて、必要な時には使えるというのでいい。要はバランスだと思うけど、まさにそのバランスを見たときに証明よりも証明の"管理"やコード化の部分で誤りが起こる度合いが高い場合も考えられるので、要求が高い場合は全体を通じて面倒を見てくれる統合的な環境がいい。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「setq を実装したので不動点コンビネータを使わなくても再帰が書けるようになった。 https://t.co/etuQiP3pD2」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「定理証明支援ツール Isabelle で多重集合(multiset, bag)を表現するときは、要素から自然数(入っている個数)への関数を使ってる。関数の update f(a:=e) で追加・削除等の操作が表現できる。 f(a:=e)(a) = e f(a:=e)(x) = f(x) ... x≠a 空の多重集合は λx. 0」 / Twitter

@nullpo_head

ぬるぽへさんはTwitterを使っています 「障害って単体のソフトウェアのバグだけじゃなくて、むしろ全体のシステムのアーキテクチャの分散設計とかの負荷許容範囲越えで起きることも多いわけだけど、そこの部分をがんばって形式手法なり証明なりで保証する手法ってコストを度外視したとしても何かあるんだろうか」 / Twitter
ぬるぽへさんはTwitterを使っています 「単体ソフトウェアのバグは、お金が無限にあれば仕様を決めて全部coqで書けばまぁ理論上撲滅できそうだが、全体のシステムのアーキテクチャってなんかお金が無限にあっても無理そう」 / Twitter
ぬるぽへさんはTwitterを使っています 「量的な問題に関する手法何も知らねえ、素朴に空間計算量で抑えて保証する以外はどんな手法があるんだ」 / Twitter
ぬるぽへさんはTwitterを使っています 「そもそも定数も良くわからいしいい感じにリソースを見積もれる形式手法あるのかな」 / Twitter

@shibu_jp

渋川よしきさんはTwitterを使っています 「クロージャの変数束縛を明示的に書くC++と、他の言語では0番目の引数として内部処理されるレシーバーを明示的に書くPythonを書くと、オブジェクト指向も関数型も表記の違いだけでCPUの気持ちになるとどっちも大差ないのでは、という気がしてる」 / Twitter
渋川よしきさんはTwitterを使っています 「大体のフレームワーク、リクエストとレスポンスはオブジェクトだよね。 : 2000年代オブジェクト指向は絶対の正義だった。つまり僕は洗脳を経験している - レベルエンター山本大のブログ https://t.co/n1oZfhqzY1」 / Twitter
2000年代オブジェクト指向は絶対の正義だった。つまり僕は洗脳を経験している - レベルエンター山本大のブログ
渋川よしきさんはTwitterを使っています 「ユーザーのコードを書く部分がテンプレートメソッドから、状態を持たない関数だったりトランザクションスクリプトになっただけで、オブジェクトは今でもそこにいるよ。」 / Twitter

その他

꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「今日のハイライト 「Rustなどで低レイヤ触って定理証明や型システムもやっている人と一緒にやりたいんですけど、なかなかいなくて」 「その二つを同時にやっている人は居ないでしょうね、OSですら居ないのに(笑)」」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「無敵のエーアイってやつでお気持ちから形式的証明を錬成してくれ」 / Twitter
市川 真一さんはTwitterを使っています 「@s_isshiki1969 無限に並列・並行化するとかの、リソースを浪費するような一般化をしないようにすれば、手続き型じゃなくても OK なんじゃないかと思うんですよ。80 年代よりはマシンの性能も向上してますし、個人の PC で走らせる(ゲーム以外の)アプリに的を絞れば、あまり性能を求められない場合もあるでしょうから」 / Twitter
市川 真一さんはTwitterを使っています 「@s_isshiki1969 @zacky1972 そうですね。でも、私のやりたいパラダイムは最適化方面じゃなくて、停止性の検査とか簡易な形式検証なんです。C に変換するのは実用性を目的としている都合で。日本語で総合的な解説も見かけないので、個人的にまとめたいと思っています。誰かが先にやってるとしても」 / Twitter
水之人さんはTwitterを使っています 「@ponkotuy Haskellに詳しくないのであまり込み入って言及出来ないですが其の辺りは「immutablity の保証方針次第」な気もしないでもないような... 例えば「対象をコピーする事で必ずimmutable」とか「対象を常にreadonlyとする事でimmutable」とか 前者ならコピーが大量に生じますが後者ならそうでないので」 / Twitter
市川 真一さんはTwitterを使っています 「@ponkotuy 高頻度で更新する必要がある共有データがあるなら厳しそうな気がします。immutable にすると lock する必要がなくなって並列度を上げて高速化できるということなら、理解できなくもないです」 / Twitter
ТагсановさんはTwitterを使っています 「位相空間論の中で閉じた問題を解くのは苦手で未だに全然できないけど、そこで得られた開集合閉集合コンパクト連続性etcの直観は他の分野の数学を学ぶときに無くてはならないイメージ 頑張って結局まだ苦手意識強いけど、基礎として活きてるなというのはすごい実感する」 / Twitter
HenninggさんはTwitterを使っています 「オブジェクト指向でfirst classな関数をメソッドを一つもつクラスとして表現するの、最初に見たとき理にかなってるなあって思った覚えある」 / Twitter
👻 道化師 🃏さんはTwitterを使っています 「最近のプログラミング言語に求める事 1. 十分に強力な静的 null 検査 + null合体演算子 + null条件演算子 2. async / await 3. JSON 親和性 みたいな感じ。これらを備えてるかどうかでかなり使い勝手に差が出る。で、最初の2つはともかくJSON親和性によってもう TypeScript 一択みたいな事になる。」 / Twitter
Tanaka AkiraさんはTwitterを使っています 「@zacky1972 @n_soda @_ko1 Coq (の中の Gallina) は ML っぽい言語ですが停止性がありますね。普通のプログラムっぽい関数と証明項の両方に使われて、停止性がないとなんでも証明できる意味のないシステムになるからですが。」 / Twitter
停止性がない 何でも証明可能 - Google 検索
AzさんはTwitterを使っています 「call/cc が直観主義論理と古典論理の橋渡しになる理由を考えたが、停止しない計算を許す事で「計算できない」ものの証人を偽装できるからという理解になった」 / Twitter
てらモス♋️さんはTwitterを使っています 「テストはその性質上、網羅性を確保するのは不可能であって求めるべきでなく、少数のテストケースで致命的な破綻を検出できる事に専念するべきだが、それはドメイン知識と一体なので難しくなりがち…(´・ω・`)」 / Twitter
まちカドおるみんさんはTwitterを使っています 「Swift に限らず菱形継承とかの面倒臭さは周知されてるけれど、そこで構造体ってだけじゃなくてレシーバーみたいな仕組みだったり mix-in みたいな仕組みだったり、別の表現で多態が表現できるのでどちらにせよなんらかのモデリングはされるはずだけど、そのうれしさが素朴な比喩使われると伝わらず」 / Twitter
まちカドおるみんさんはTwitterを使っています 「いやまあ別に C で構造体でも継承ベースの多態は実現できるけれどもね……」 / Twitter
てらモス♋️さんはTwitterを使っています 「プロセス間で通信をするのにMPIは必要ないし、複数のスレッドを起動するのにOpenMPは必要ない、という当たり前のことをまとめないといけない…(´・ω・`)」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「OOPを型システムから見て何のメリットもないというのは当たり前の話で、だってOOPという概念を生み出した張本人が「型?まあ苦痛以外の何かを生むようになったら使ってもいいけど?」みたいなこと言ってるぐらい、OOPと型システムは全然関係ない話なので、そりゃ型システムを基準にすればOOPは空だろ。」 / Twitter
satさんはTwitterを使っています 「goroutineめちゃくちゃ扱いやすいんだけど仕組みの説明はカーネルスレッドとユーザ空間スレッドの基礎知識、その応用について理解が必須なのでしんどい。あとスタックがどう積まれるとかについては伝統的な文字通りの積み上げ式ではないのでこれまたキツい すばらしい抽象化ともいえる」 / Twitter
goroutineめちゃくちゃ扱いやすいんだけど仕組みの説明はカーネルスレッドとユーザ空間スレッドの基礎知識、その応用について理解が必須なのでしんどい。あとスタックがどう積まれるとかについては伝統的な文字通りの積み上げ式 - Google 検索
蒲地 輝尚さんはTwitterを使っています 「Windowsプログラミングしてた時代に散々目にした単語だけど、そんな由来だったとは。「夜中まで議論してて頭が働いてなかったのでthinkの過去形としてthunkという単語を作って名づけてしまった」」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「やりたいのは、USBドライバのコードの読みやすさ改善。USBデバイスの初期化って、USBデバイスに対するデータ送信、その応答が来たら解析し、またデータ送信、みたいに細切れになっていて、関数が呼ばれる順序が非常に分かりにくいので、コルーチンで直列に書けないかな、という。」 / Twitter
かずみん☆めい。さんはTwitterを使っています 「@rui314 コンピュータサイエンスの基本は数学. 整数論, 素数論, 離散数学, 有限体(ガロア体), 離散対数, 楕円関数, 計算量, シャノン定理, 乱数論, 待行列, 統計, 通信路モデル, 確率的アルゴリズム, アルゴリズム停止性.→基礎がないと誤り訂正符号/DCT圧縮/共通鍵暗号系/公開鍵暗号系/CDMA/の本質は理解不能」 / Twitter
lotzさんはTwitterを使っています 「すごい!HaskellのブロックUIプログラミングを試せるWebサイトがある❗️ Haskellは宣言的だからこういうのと相性良さそう👀 画像は不動点再帰を使った階乗計算w 今は動いてないみたいだけど変換されたテキストを見たら想定通りのコードになってたから多分動く😂 https://t.co/QfVZYMSdIh https://t.co/B0BfpUcxLc」 / Twitter
Blockly for Haskell
黒木玄 Gen KurokiさんはTwitterを使っています 「「なんでもかんでもクラスを作ろうとする」病はおそらく21世紀現代においてもクラスベースのOOPに留まっていることが原因で生じている。 #Julia言語 は最初からクラスベースのOOPを捨てて、Common Lisp譲りの多重ディスパッチを採用したので、エコシステムがそうならずに済んでいる。」 / Twitter
かめさんはTwitterを使っています 「これに関連してpythonやjuliaのようなパッケージシステムがある言語ならDIしたけりゃパッケージごと差し替えれば良くね?って疑問がある。なんでもかんでもクラスを作ろうとするのは理解できない。」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「プログラミング言語が多重ディスパッチ(多重メソッド)にも対応しているだけだと不十分で、エコシステム全体が多重ディスパッチに基く設計になっていることがとても大事。 #Julia言語 は、クラスベースのOOPも言語的にサポートすることをせずに、多重ディスパッチでやって来たので大丈夫。」 / Twitter
貫通弾の撃てる双剣さんはTwitterを使っています 「連想配列が順番保持すると思っちゃう人がいる Ruby「そう思う人がいるならそういう挙動にしちゃおう」 Go「そう思う人がいなくなるように毎回ランダムにしちゃおう」 どちらが正しいとかじゃなくて色んな考えがあって好き」 / Twitter
開発コアメンバが語るRubyの今とこれから(後編) - @IT
retrageさんはTwitterを使っています 「基本的にスクリプト言語には適当に書けることを期待していて、速度は期待していない」 / Twitter
田中ひさてるさんはTwitterを使っています 「むかし UML を正しく書けばソフトウェアの設計を完了できるとされた幻の MDD 技術があったんですよ。具象の動作テストなしで UML を正しく書ければですが。ノーコード開発にコーディングと同じポテンシャルを求めるというのは、つまりそういう話なわけで」 / Twitter
Shiro KawaiさんはTwitterを使っています 「これはこの条件だけでは仕様が曖昧なので、Schemeでは引数でいくつかの解釈を指定できるようにしてますね https://t.co/g0veZpmsMK」 / Twitter
SRFI 152: String Library (reduced)
いわたさんはTwitterを使っています 「投票とってみるか。 「与えられた文字列をカンマでsplitした結果を配列で返す」というメソッドがあるとして、空文字列を指定した結果は」 / Twitter
渋川よしきさんはTwitterを使っています 「JavaとGoはモジュール⊇パッケージだが、PythonとNode.jsはパッケージ⊇モジュールである。」 / Twitter
ノーンさんはTwitterを使っています 「群の定義、これを数式として覚えようとすると頭のメモリを超えてしまうので、「結合的な二項演算で単位元と逆元」とコンパクトに覚えたら忘れなくなった。」 / Twitter

個別の言語

Rust

GhoseCell

yukiさんはTwitterを使っています 「Rustはaliasing (shared reference) XOR mutablilityの関係でdoubly-linked list等の実装がとても辛い。そこでGhoseCellという、データに対しての権限を複数持てるデータ構造の提案。Coq等で健全性の証明もされている。/GhostCell: Separating Permissions from Data in Rust https://t.co/ZAcAMjBUKF」 / Twitter
GhostCell: Separating Permissions from Data in Rust
yukiさんはTwitterを使っています 「(下記は論文を雑に読んだメモです。理解が間違ってるかもしれません:pray:)Branded Typesという昔ながらの関数型プログラミングの技法を再利用している。この型は、state-dependency typesという型を簡易的にシミュレートするために、幽霊型とランク2多相を結合した型になっている、らしい。」 / Twitter
yukiさんはTwitterを使っています 「肝心のdoubly-linked listの実装例。GhostCellは中にPhantom Lifetimesとでも呼べるInvariantLifetimeという型を持っていて、それがBranded Typesのbrandを表現している。Rustはライフタイムにはランク2多相をサポートしているため。/https://t.co/IYvl4A8b3Z」 / Twitter
ghostcell/src/dlist_arena.rs · master · FP / ghostcell · GitLab
yukiさんはTwitterを使っています 「これを利用することで、Rustプログラマはunsafeでスピードを出す一方で安全性の保証を犠牲にするか、あるいは安全性の保証を得ることでスピードを犠牲にするかという2択から解放されることになる。ベンチマークを見ても、GhostCellは爆速になってる。」 / Twitter

proc-macro

yukiさんはTwitterを使っています 「このリポジトリをcloneしてrust-analyzer入りのVSCodeで開くと、開いた瞬間に走るcargo checkによってProcedural Macrosが実行され、たとえばlocalhost:8080に~/.ssh/id_rsaにある中身が読み出されてしまうってこと?😨 こわっ😨/lucky/bad_actor_poc https://t.co/r4HFXUFJ0Z」 / Twitter
lucky/bad_actor_poc
uint256_tさんはTwitterを使っています 「proc-macroはやっぱりサンドボックスか何かで動かないといけなさそうね(wasm?」 / Twitter

メモリ安全性

さいぺさんはTwitterを使っています 「Rustのメモリ安全性を、借用とlifetimeではなく、メモリへのunique accessとshared accessから説明した記事。 この導入だと、SendとSyncへの流れが自然でわかりやすい Rust: A unique perspective https://t.co/yGotPZjzB8」 / Twitter
Rust: A unique perspective
さいぺさんはTwitterを使っています 「mutキーワードをuniqに変更する提案があったの初めて知った」 / Twitter

Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Greg KH「Rustにしても本質的には変わらない。過去のプレゼンみたか? そして補償すべきものは時代とともに変わる。今や悪意あるハードウェアからユーザースペースを守らなければならなくなった。」 https://t.co/KTQWIOnCXP」 / Twitter
Re: [PATCH 00/13] [RFC] Rust support - Greg Kroah-Hartman
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「仮にRustにしてメモリ安全が保証されたとしても、メモリ以外のコードについては何も解決してくれない。企業の役員どもは新しい機能を追加することについては余念がないが、保守に出すカネはないと来ている。保守をしているのは誰だと思う? インターンだぜ。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「「コミュニティが保守する」ってのは嘘だ。」 / Twitter
κeenさんはTwitterを使っています 「Rustに新たな概念I/Oセーフが導入されてる。ファイルハンドラを取り出したままファイルのデコンストラクタを走らせると浮いたハンドラができることがあるからそれをunsafeにしたい。 RFC: I/O Safety by sunfishcode · Pull Request #3128 · rust-lang/rfcs https://t.co/nrG1sdrXje」 / Twitter
RFC: I/O Safety by sunfishcode · Pull Request #3128 · rust-lang/rfcs
κeenさんはTwitterを使っています 「現在のライブラリの設計上もunsafeなんだけど明文化した感じかな?unsafeは本来はメモリ安全性についての機能だからIO安全性にも使ってる現状は邪道といえば邪道。 あとas_raw_fdとinto_raw_fdがややこしい問題を新しい型を導入して解決しようともしてる。」 / Twitter

Python

mogami290さんはTwitterを使っています 「ほう。一般的にインタープリタは、構文木のトラバース、変数のヒープ確保、動的型に1/3くらいずつの時間を使っていて、動的型を残している限り3倍よりは早くならない。 5倍とはお手並み拝見。型の解析とエスケープ解析で局所的に静的型のレジスタ確保にコンパイルしてしまうのかな?」 / Twitter
python_japanさんはTwitterを使っています 「Pythonの開発者 Guido van Rossum氏から、Microsoft の出資を受けて、今後の4年間でPythonを5倍高速化する計画が発表されました。これはMark Shannon氏のプランに基づく改善計画で、既存のCPythonとの互換性を保ちながら、徐々にパフォーマンスを改善する予定です。 https://t.co/HJ7vknTqU2」 / Twitter
ideas/FasterCPythonDark.pdf at main · faster-cpython/ideas
python_japanさんはTwitterを使っています 「改善プランの概要 1. インタープリタを改善し、データに応じてアダプティブに特殊化した処理を実行(pep-659) 2. 小さな整数値、2項演算子の改善など、たくさんのチューニング 3. 小さな範囲を最適化するJITコンパイラを導入 4. JITで広い範囲を最適化できるように改善 https://t.co/A9tuprSfR6」 / Twitter
faster-cpython/plan.md at master · markshannon/faster-cpython
Miura HidekiさんはTwitterを使っています 「大体同意。5倍速くしたいなら、よく使うプリミティブをより低オーバーヘッドで呼び出す仕組みを作りしかないと思う。 &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「データ構造のunboxing化とエスケープ解析はグローバルに解析しないとboxing &lt;=&gt; unboxingの変換が頻発して却って遅くなると思う」 / Twitter
Miura HidekiさんはTwitterを使っています 「mrubyのJITの経験ではVM命令を対応する機械語に展開するだけではそれほど速くならない(コンパイル時間をチャラにする程度)、効いてくるのは足し算とか配列参照なんかのメソッド呼び出しをやっていて遅いのを直接呼び出したり機械語に展開したりしてオーバーヘッドを無くした時。」 / Twitter
Miura HidekiさんはTwitterを使っています 「オーバーヘッドを減らす呼び出しをする際には当然型が分かっていると有利で静的に型が分かるとこの辺で聞いてくる。べつに抽象実行とか大げさなことをしなくても型を推定する方法はいろいろある。」 / Twitter
Miura HidekiさんはTwitterを使っています 「mrubyのJITで使った型推定法は型に関するガードの結果を基本ブロック内で伝搬してその基本ブロック内では同じ変数に対してガードを発行しないようにする。この程度の話で最良のときには10倍程度の速度向上が出来る。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 うーんと昔、GaucheでVM命令をそのまま機械語に置き換えた時は2倍くらいでした。各VM命令ごとにVMの状態がconsistentになるようにVMのスタック操作などが入るのがひとつ律速で、基本ブロックでまとめてその中ではVM気にしないようにすればもうちょい進めるかな、ってとこで中断」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana mrubyの話で、mrubyはメソッドのsendが比較的重いのでそこで律速になったかな?って思います。ただ、Gaucheもcall/ccとかで関数呼び出しはCのようには行かないだろうから、私の実装になにかオーバーヘッドがあったのかもしれないです。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 mrubyだと基本算術演算なんかもデフォルトでは全部send経由ですか? Gaucheの場合は組み込み関数は展開できるのでそのへんは有利です。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana 命令は別れているのですが、たとえば足し算は:+をsendするような実装です。FixnumやFloatがレシーバーに来るとは限りませんから」 / Twitter
kimiyuki@うさぎ🐇さんはTwitterを使っています 「Python の AST は式だけで 27 種類あって触るのがつらい。文は 25 種類ある。プログラムなんて変数と定数と関数抽象と関数適用の 4 種類さえあれば十分なのに、なぜ……」 / Twitter

Haskell

制約

びしょ〜じょさんはTwitterを使っています 「Haskell にて、"ある型クラスを実装していない"という型クラスの制約って書けるんか?」 / Twitter
mod_poppoさんはTwitterを使っています 「Haskellはorphan instanceを許しているので「型クラスのインスタンスではない」みたいなやつは原則として書けない、と思っているけどformalな説明は自分の手に余る」 / Twitter
mod_poppoさんはTwitterを使っています 「前にHaskell-jp slackで見かけた、インスタンスの有無によって分岐できるやつ。 https://t.co/1EAUHMzPGC overlapping instanceを利用、手動でインスタンスの定義(あるいはTH)が必要。」 / Twitter
mikeizbicki/ifcxt: constraint level if statements
mod_poppoさんはTwitterを使っています 「型クラスではないけど、「二つの型が異なる」みたいな制約はclosed type familyを使うと書ける。」 / Twitter

kimiyuki@うさぎ🐇さんはTwitterを使っています 「@uint256_t わりと汎用的にやれています。内部で Python を Haskell に変換するので for 文がすべて foldl に変換され、それとは別で線形になってる lambda 項をすべて行列に変換し、そして foldl/matap -&gt; matap/matpow のような変換規則で畳んでいます」 / Twitter
mod_poppoさんはTwitterを使っています 「ぱっと見で変換のアルゴリズムを推測できないので魔法に見える(すごい)」 / Twitter
mod_poppoさんはTwitterを使っています 「漸化式を組み立てて線形だったら行列の累乗に変換、みたいなやつかな」 / Twitter

The Unison language

るとさんはTwitterを使っています 「関数や型などの定義がcontent-addressingされているプログラミング言語“Unison”。 https://t.co/ITOM1XD4zB コードのASTがGitのようなレポジトリ(codebase)で管理されている。ファイルにコードを書くと型チェックがされて、通るとcodebaseに追加できるようになる。」 / Twitter
The Unison language
るとさんはTwitterを使っています 「AST内では関数などはハッシュ値で参照されている。 関数を「更新」するときは新しい定義を追加して、他の関数が新しい定義のハッシュ値の方を使うように再帰的に「更新」する。 このとき更新された関数に関連するテストのみを実行するとかもできる。」 / Twitter
るとさんはTwitterを使っています 「言語としてはHaskellに似た関数型言語で、algebraic effectsを持つ。FFIはまだ無いけど、IOはある。」 / Twitter

Yatima

新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Rustで実装された純粋関数型プログラミング言語Yatima。すべてのプログラムには固有の「アドレス」が割り当てられ、そのプログラムのアドレスを知っていれば同一の計算環境が再現できるらしい。パッケージ管理はP2Pで行われると書かれている。 https://t.co/kv71tyREfK」 / Twitter
yatima-inc/yatima: A programming language for the decentralized web

Folders - Esolang

zehnpaardさんはTwitterを使っています 「これかな https://t.co/uJkphac3ma」 / Twitter
Folders - Esolang
tadなsanさんはTwitterを使っています 「ファイルシステムでLisp… 作れるな」 / Twitter

Zig

yhara (Yutaka HARA)さんはTwitterを使っています 「#ziglang これってstruct文(?)が何らかの値を返すということなんでしょうか? https://t.co/1FQqtq5uNp https://t.co/85uoxrlj9x」 / Twitter
Documentation - The Zig Programming Language
ドッグさんはTwitterを使っています 「@yhara Zig 詳しくないのでアレですが,型情報をコンパイル時の値として扱ってるのかと」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「@Linda_pp あ、comptimeという節を見つけました。zigでは型もfirst-classな値である、ただしコンパイル時にしか使えない、ということなのですね https://t.co/PFqAIzRNEP」 / Twitter
Documentation - The Zig Programming Language
ドッグさんはTwitterを使っています 「@yhara みたいですね.C++ や Rust は型をテンプレート引数で渡しますが,Zig は普通の引数と同じ構文で渡しますし」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「#ziglang、if-elseのうちの一節だけがコンパイル時計算になったりするらしい。へぇ。 https://t.co/PFqAIzRNEP 青い部分のみコンパイル時に解決される https://t.co/KfEqXNlUZU」 / Twitter
Documentation - The Zig Programming Language

mod_poppoさんはTwitterを使っています 「C++のADLは引数→関数の方向だから関数の引数の名前空間を省略したいというのとは方向が逆な気がする。コンテキストから名前空間を推論するのはSwiftのenumがそれっぽい(けどSwiftのやつの詳細をよく知らない) #satysficonf」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「JET.jl すごいな。 そこそこ大きなコードを書いて人はJET.jlを使って、バグの有無や計算速度の劣化の有無を確認した方が良さそう。」 / Twitter

objdump

FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 Unixの起源がPDP-7あたりからだったおかげで、現在にいたるまで od(1) のお世話になっているという... ごく最近 od -t x1 を覚えた :)」 / Twitter
ElectrelicさんはTwitterを使っています 「@y_futatuki @miura1729 od -t x1 -A x も良いですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@electrelic @y_futatuki なるほど。これないとオフセットが8進数になるんですね。勉強になります。」 / Twitter
ElectrelicさんはTwitterを使っています 「@miura1729 @y_futatuki です。片方だけ16進数にするのは間違いの元な気がします。」 / Twitter

アジャイルの実際

伊津野 英克さんはTwitterを使っています 「先日「Empirical Studies of Agile Software Development: A Systematic Review」という 2008 年の論文を読んだんだけど、アジャイル開発に関する学術的な根拠が少ないとの結論(根拠がないわけじゃなくて、まともな実証研究がなさすぎて評価できない)」 / Twitter
伊津野 英克さんはTwitterを使っています 「では、2016年の「Challenges and success factors for large-scale agile transformations: A systematic literature review」ではどうかというと、「収録された論文のほぼ90%が経験談であり、このテーマに関する健全な学術研究が不足している」とのこと。」 / Twitter
伊津野 英克さんはTwitterを使っています 「読んでて思ったのは、アジャイル開発の登場人物はみんなやる気がありすぎる。お客にやる気があって、開発者にやる気があって、PMにやる気があったら、WFだろうがなんだろうが、そうそう失敗しないよなぁ。」 / Twitter
伊津野 英克さんはTwitterを使っています 「論文で指摘されてたのは「顧客が関与を強められる」一方「顧客はストレスを感じており、長時間労働を強いられている」と感じていたとのこと。顧客サイドだって本業を抱えながらプロジェクトに参画してるケース多いもんね。」 / Twitter
伊津野 英克さんはTwitterを使っています 「品質は上がっているという報告が多い一方、生産性に関してはあんまり変わってないんじゃないか、という雰囲気。一方でアジャイル開発はデザインやアーキテクチャの問題に気が配られにくいという問題が指摘されている。」 / Twitter
伊津野 英克さんはTwitterを使っています 「あと、チーム内の結束力が上がる一方、チーム外との関係が微妙になるみたい。WFだと全体感が重要なので足並み揃えるタイミング多いけどアジャイルだとそこら辺考慮されていないかもね。」 / Twitter
伊津野 英克さんはTwitterを使っています 「テスト・ファーストについて「多くの学生にとって難しいものでした。これは、設計自体が非常に難しく、テストを先に書くことで学生が設計上の意思決定を早期に行わなければならないから」とのこと。それはそう思う。ある程度システムを理解してからでないとテストを書くのは難しい。」 / Twitter
伊津野 英克さんはTwitterを使っています 「「A Theory of Team Coaching」に、プロジェクト初期はみんな良くわかってないという話が書いてあったけどその通りだと思う。テスト・ファーストは人類には早すぎる。」 / Twitter
伊津野 英克さんはTwitterを使っています 「アジャイル開発に限った話じゃないけど、アジャイルに適した案件の方がアジャイル開発を選択しがちだし、成功したアジャイルは成功したWFよりも喧伝されるから、実例では十分じゃなくてちゃんと同じ条件で比較しないとだめなんだよね。」 / Twitter
アジャイルに根拠はあるのか? 「Empirical Studies of Agile Software Development: A Systematic Review」を読む - hidekatsu-izuno 日々の記録
続・アジャイルに根拠はあるのか? 「A Comparison of Software Cost, Duration, and Quality for Waterfall vs. Iterative and Incremental Development: A Systematic Review」を読む - hidekatsu-izuno 日々の記録
伊津野 英克さんはTwitterを使っています 「「The Waterfall Model in Large-Scale Development」という論文を読んだのだが、それは本当にウォータフォールの問題なんだろうか、という疑念が。単に大規模にプロジェクトをやるな、ということを言っていないだろうか。」 / Twitter
伊津野 英克さんはTwitterを使っています 「WFの主要な問題として抽出されているのが、要件定義からリリースまで、あるいは、実装からテストまでの間が長いという点にあるのなら、アジャイル開発の導入ではなく、単にプロジェクトを分割すればいいだけかもしれない。」 / Twitter
伊津野 英克さんはTwitterを使っています 「「A SYSTEMATIC SURVEY ON WATERFALL VS AGILE VS. LEAN PROCESS PARADIGMS」という論文を読むと、大規模開発に適した手法はない、という身も蓋もないことが書いてあるw」 / Twitter
伊津野 英克さんはTwitterを使っています 「アジャイルのどのメソッドがプロジェクトへの寄与度が高いか、みたいな研究、意外とないのね。それ以前の問題なのかもしれんが。」 / Twitter
世の中のアジャイルテスティングの定義と原則 - 千里霧中
「アジャイル vs ウォーターフォール」からプロジェクト管理を考える - Qiita
「『アジャイル vs ウォーターフォール』からプロジェクト管理を考える」という記事を公開した - hidekatsu-izuno 日々の記録
伊津野 英克さんはTwitterを使っています 「突飛な意見は拡散しても、ちゃんと論文調べて書くと誰も読まないんだもんなぁ。https://t.co/1SKwsw7W9d」 / Twitter
伊津野 英克さんはTwitterを使っています 「論文で指摘されてるWFの問題点は現実のWFでもたしかに問題なんだけど、アジャイル信者の藁人形WFで指摘される問題点は現実のWFでは問題になってないわけですよ。」 / Twitter
なぜ企業は大規模開発を選択してしまうのか - Qiita

テストダブル

Masaki HaraさんはTwitterを使っています 「RDBに関係するテストはちゃんとした実装に繋いで実行したい派なんだけど、Railsに毒されているだけでmockしても意外と大丈夫なんだろうか……?」 / Twitter
🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy Mockできる場合は * DBアクセスが非常に単純でテストが不要 * DBアクセスが完全にカプセル化され、単体でテストされてる のどちらかで、多くのソフトウェアはどちらにも該当しないのでmockしないほうがよいというのが実情と感じます。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@tomykaira_2 いい感じに言語化してもらえてありがたいです。」 / Twitter
🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy 前者はKVSだと行けたりしますがRDB使ってるとほぼありえないし、DBアクセスを1レイヤに完全にまとめるのも負担でかいし、自分達の書いたDBアクセスコードはテストで動かしたいので「単体テスト」から外れてもDBは繋ぎたくなっちゃいますよね。」 / Twitter
Masaki HaraさんはTwitterを使っています 「@tomykaira_2 同感です……」 / Twitter
Masaki HaraさんはTwitterを使っています 「@tomykaira_2 結局、テストする価値のあるインターフェースをテストするべきなんじゃないかって気はしますよね。 &gt; 前者はKVSだと行けたりします わかります。しかしKVSくらい単純だと今度は期待する応答をハードコードするよりも、KVSの挙動をアプリケーションの言語でシミュレートしたほうが簡単なことも……」 / Twitter
🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy はい、testing libraryの提供するmockというよりtest doubleですね。 dbへの呼び出しのexpectやresponseをちまちまmockすることはほぼあり得ないと思います…」 / Twitter
test double - Google 検索

タイムトラベル

Kota Mizushima (on a diet)さんはTwitterを使っています 「今朝も散歩してたのですが、凄まじく暑くて、湯だった頭で「タイムスリップ出来るプログラミング言語とかってどうだろう」とかどうでもいい事考えてました。 頭がおかしくなったわけではなく、1秒ごとにプロセスのスナップショットを取って、後から過去に戻れるようにしておく。で、 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「time_slip(1 hours ago) { debug_print(point.x) // 1時間前のpoint.xが取れる point.x = 20; // 1時間前のpoint.xを20にして、1時間前のスナップショットのスレッドを開始。現在のスレッドは破棄 } みたいなセマンティクスを持った言語は(凄く重いけど)作れそうだなと。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「結果的には、一昔前流行った可逆デバッガを言語に組み込んだぽいものになりそうですけど、時間だけじゃなくて、s1 = snapshot() で言語レベルで特定のスナップショットに戻れるとかすると、デバッグの役に立たないかなあとか。いや、元々は暑さで「タイムスリップ……プログラミング言語……」とか ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「タイムスリップというセマンティクスを持ったプログラミング言語を実装して、親なんとかのパラドックスを実行してみたらどうなるかなとかどうでもいいこと考えてたんですが。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、ナイーヴな実装だと、子どもが過去に戻って親をdestroyすると、リンクしてる子のスナップショットが全部連鎖的にdestroyされて、全部メモリ空間から消滅するだけでパラドックスにならないですね。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「今朝考えていた「タイムスリップ」言語、どっちかというと「タイムリープ」言語な気がしてきました。 何度やり直しても、とある条件を満たさないと過去へのタイムリープを繰り返さざるを得ないSF風味を作れそうな。」 / Twitter
h_sakuraiさんはTwitterを使っています 「変数の値も含めてタイムスリップできるのが Prolog のバックトラックなんだよな。SQL だとトランザクションのロールバックがタイムスリップ出来るものだな。」 / Twitter
Miura HidekiさんはTwitterを使っています 「高度なリフレクションがあると任意の言語で可能になるんだよな。タイムワープアルゴリズムで検索」 / Twitter
Miura HidekiさんはTwitterを使っています 「ググってみたけど、タイムワープアルゴリズムってマイナーなんだな、私の書いた日記が上位に来ていた」 / Twitter
Miura HidekiさんはTwitterを使っています 「タイムワープアルゴリズム、とてもエレガントで実在するほとんどの言語で実装困難なんだけど、私が説明するのはおこがましすぎる」 / Twitter
Miura HidekiさんはTwitterを使っています 「タイムワープアルゴリズム、面白いのに説明がないのは人類の損失だから賢者による説明が求められる (他力本願(多分元の意味)」 / Twitter
タイムワープアルゴリズム - miura1729の日記

仕様・設計・実装

ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi 変数表とタイミングチャートの設計が万全なら本質的には問題は起こらないよ。 上位設計次第よ。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@beepcap API の I/F とその振舞いはがっちり決めておくべきだとは思うけれど、変数表だとかタイミングチャートだとかで実装が管理されるプロジェクトは硬直化するし CI/CD を基準に回す開発はやり辛そうに思える。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi CI/CDで回すやつ、物によっては全くマッチしないのでな。 それもまたシステムによるのよ。 (たとえば、銀行のシステムで出勤は後日のインテグですとか許されんでしょw)」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@beepcap agile に回すのが合わないのはそうだけど振舞いを文書ではなくコードでテストとして表現してそれを満たすコードを実装する、という部分は理に適うものでは(CI/CD を回すこと=agile で lean な文化、というのはやや飛躍があると思っています」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi それは設計通り実装されていることを示すのには有効だけど、仕様通り設計されていることを示すには妥当ではないのよ。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@beepcap それはそうだけど変数表やタイミングチャートで管理すれば設計が仕様を汲めてるかチェックできるもまた偽では……」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi いやこれはCI/CDがマッチしないケースの話であって、グローバル変数云々より上位の話よ。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@beepcap んー、そこはそもそも API の定義の段階とかで十分議論されたかどうかってことなので、CI/CD とマッチするかどうかという話とあんま関係なくないですか」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi いや、APIの定義が仕様を汲んでいても、システムとしての動作が仕様を満たすかは別の話でしょ。 継続的なインテグでは仕様収束まで行かないというケースもあるのよ。 なんにしても、ケースに依るんだって。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@beepcap アーキテクトとテスト技術者がヘボだとどんなに CI/CD まわしても腐ったコードしか出てこないとは思うけどそれはべつにウォーターフォールだろうとなんだろうと同じな気がするし」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi 同様にアーキテクトがちゃんと仕事をすると、グローバルで管理される資源が多い方がより最適な場合もあるってことよ。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@beepcap べつにそこは最初から否定してない」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@beepcap ただ全部グローバルは大規模では難しかろうというだけで」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi 設計論として悪化してるって言うもんだからさwww」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@beepcap 悪化してる、ではなく、悪化してるとこある、という partial な表現をしておりました。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@beepcap グローバルがなんもかもダメだと思ってたら、悪化してると断言してたけど」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@beepcap まあ私は自分含めてプログラム書く人間をそんなに信用したくないのでどうせグローバルに取るにしても Rust の lifetime みたいにシシテムでチェックしてほしいと思ったりしちゃうんですけどね」 / Twitter

抽象化して共通化

がくぞさんはTwitterを使っています 「Parser combinator も JSON reader も Validator combinator も抽象化して共通化できるよ」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@gakuzzzz ちなみに、後者二つは想像つくのですが、最初のも含めるとどう抽象化出来るのでしょうか?」 / Twitter
がくぞさんはTwitterを使っています 「@kmizu 大雑把に Kleisli の applicative/monadic な合成ぐらいのノリで言ってます」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@gakuzzzz なるほど、理解です。」 / Twitter

software rejuvenation(ソフトウェア若化)

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「初めてdaemon作った時(1994)、サービス開始直前までセットアップしたらforkして、子供達に実サービスさせ、定期的に子供達をパージ&再生成する構造にしたっけ。 あとAndroidのVMは、ある程度VMセットアップ済みdaemon(zygote)が親となってforkすることで高速化してたような。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「software rejuvenation(ソフトウェア若化)という名前で実際に様々に研究がされている概念の一端でもあります。実は。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「別の host に process live migration してしまって、migration が終わったら元の host machine を再起動する、とかも」 / Twitter
まちカドおるみんさんはTwitterを使っています 「基本はプロセスの再起動だろうけれど、たとえば CRIU とかで正常時の process check point を逐一作っておいて、問題が起きたらマシン再起動してから問題が起きたプロセス以外は checkpoint から resume、みたいな乱暴な方法でも場合によってはうまくいくかもしれない、みたいなネタも」 / Twitter
1974年さんはTwitterを使っています 「メモリリークを解消させるには確かにコンピュータの電源を切ったほうがいいので、すべてのコンピュータの電源を切れば原理上すべてのプログラムが「正常」になる」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu Androidは https://t.co/vbnq7Hb3U8 の件ですね」 / Twitter
kobaさんはTwitterを使っています 「Zygoteは通常必要になる全てのダイナミックリンクライブラリがあらかじめロードされている。だから新しいJavaのプロセスは最初から必要なダイナミックリンクライブラリがすでにメモリ上にある状態から開始される。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu zygote についてはその通りですが、software aging/rejuvenation とはほぼ関係ないトピックのような。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu fork 元になっている zygote プロセスが aging し続けてると仮定した場合その子である Android app も aging している状態を引き継いで開始してしまうのでは?という疑問点だったのであれば、それはそうかもしれませんが」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kotatsu_mi @shirouzu threadベースの並列化に比べ、forkベースの並列化の場合、一つないし一定数のクライアントの処理を終えるとforkしたプロセスは終了し、メモリその他の資源のリークやメモリの断片化の問題を避けられるので、これはまさにagingの話ですね。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu はい、daemon の最初の話で処理を別プロセスに切り離してたというのが aging 防止になっていたというのはその通りだと思うんですが、zygote の話のほうは(zygote の主眼は命名通りの部分にある高速化だと思うので)aging 防止だとかそういうのに繋げようとする作りではないだろうし関係なさそうかなと」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kotatsu_mi @shirouzu AndroidじゃないJava VMを使ったアプリとかSmalltalkシステムとかだと、VM一つ動かすってのが主流で、ZygoteはそうじゃなくVMが逐一forkして終わるって意味でaging防止寄りという見方もできると思います。 まあZygoteには権限管理のためにプロセス分けたいって意味もあるんですが…」 / Twitter

タプルとパターンマッチ

Aruneko@OSC21doさんはTwitterを使っています 「React Hooks の返り値ってどうして配列になってるんだろう🤔」 / Twitter
Aruneko@OSC21doさんはTwitterを使っています 「型さえ合ってれば名前は何でも良いよねっていう思想なんだろうかね」 / Twitter
Aruneko@OSC21doさんはTwitterを使っています 「いやでもあれじゃん、TSってタプルのサポートが微妙だからアンパックするときに事故起こる可能性もあるじゃん。」 / Twitter
Aruneko@OSC21doさんはTwitterを使っています 「タプルとパターンマッチが使える言語ならアレで全然いいと思うんだけど」 / Twitter

ADT + 素直にパターンマッチの方が…

Kota Mizushima (on a diet)さんはTwitterを使っています 「クラスベースOOPLであることと、多重ディスパッチがないことも実のところ関係ない。たとえば、199xに出たNice https://t.co/XuA9162vj1 はクラスベースかつ多重ディスパッチ(マルチメソッド)を持った言語。」 / Twitter
The Nice programming language
Kota Mizushima (on a diet)さんはTwitterを使っています 「そんなこんなで、Expression Problem解決出来る言語機構に憧れたり試してみたりしたけど、これ、ADT + 素直にパターンマッチの方がよほどメンテ楽だしいいんじゃね?←イマココ という心情です。なんか、The real expression problemみたいな感じで、新しく面白そうな例が出てくるといいんかもですが。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、NiceのASTのルートクラスはこんなんです。buildScopeとかresolveScopingとかtypeResolve()とかなんか、処理系のフェーズぽいものがASTに生えてる。 でもって、式のルートクラスである(はず)https://t.co/70TSmCRCQx 見ると、void computeType();とか生えてる。 ↓ https://t.co/0LvUvyzx48」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「規模の大きな処理系でInterpreterパターンやられるとめっちゃ読みにくくなる&(たぶん)メンテもめちゃくちゃ大変というパターン。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、Interpreterパターン使ったそれなりに大きな言語(処理系)の一つがNiceで、構文木ノードに compileとかいうメソッド生えてるので滅茶苦茶読みにくかった(興味がある人は、https://t.co/yn63oJU5wQ からソースダウンロードして、 src/gnu/expr/* 辺り読んでみるといいです)。 ↓」 / Twitter
The Nice programming language
Kota Mizushima (on a diet)さんはTwitterを使っています 「あ、ちょいミスです。 src/bossa/syntax/*.nice の方です(src/gnu/expr/* の方は、中間表現の方だったぽい)。構文木にそれはもう色々な処理が書かれてて、ぐんにょりでした」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「たぶん、10年以上前に、Niceのソースコードに興味を持って読んだ覚えがあるんだけど、その時も、compile処理が各構文木ノードに散逸しているのに嫌気がさして、「拡張性があればいいというものではないんだな」と思った記憶。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、知る限り、Scalaは比較的早期から、Expression Problem「も」解決出来るような言語として開発されていたけど、e.g. https://t.co/0knLtm2MmC じゃあ、abstract typeがこういう用途に使われているかというと、多くのケースでtype alias代わりにしか使われてない。」 / Twitter
Independently Extensible Solutions to the Expression Problem - IC_TECH_REPORT_200433.pdf
Kota Mizushima (on a diet)さんはTwitterを使っています 「Expression Problemは、かなり前から何度となく関連する記事、実装、論文とか見た覚えがあるんだけど、一方で、Expression Problemを解決できる言語機構って意外にも活用されてない(たとえば、Scalaにおける https://t.co/G9W2uZ68YB とか)の見るに、現実的にはあんまし要らない気がしてる。 ↓」 / Twitter
Scalaによる Expression Problemの解決 (Visitor編) - kmizuの日記
Kota Mizushima (on a diet)さんはTwitterを使っています 「あと、言語処理系を構成する2大パターン(?)のInterpreterとVisitorの内、(経験上)後者が圧倒的なのも、処理系のフェーズを追加したいことはあっても(たとえば、ある種の最適化)、ASTの種類を外から追加出来てもしょーじき微妙ってところに由来してるんじゃないかと思ったりする。 ↓」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「現実にASTを追加したいって要求って、言語仕様拡張したいってタイミングがほとんどなわけで、処理系の都合で最適化をかけたいって要求に比べれば圧倒的に少なそうとおもう。」 / Twitter

hashmap

Masaki HaraさんはTwitterを使っています 「というかまず大前提としてhashmapは "map" と名乗ってはいるものの実態としてはtotalではなくpartial functionなんですよね。いわゆるfunctionにも例外機構とかはありますけど期待値はだいぶ違う」 / Twitter
Masaki HaraさんはTwitterを使っています 「hashmapとfunction同一視したいねの話題に関連する議論です↓」 / Twitter
Masaki HaraさんはTwitterを使っています 「部分型付けのあるプログラミング言語では、 K -&gt; V は通常Kに対して反変なのに対して、 Map&lt;K, V&gt; (イミュータブルなもの) は通常Kに対して共変になるんだなあ」 / Twitter
Masaki HaraさんはTwitterを使っています 「Mapが反変性を持てないのはMap&lt;K, V&gt; → List&lt;K&gt; があるからで、逆に共変性を持てるのは未知の値に対する振る舞いが定義されているから (Noneを返す)」 / Twitter

動的型付け

ネイティブコードを吐く動的型付け言語は存在しますか?また技術的に可能ですか?に対する大島 芳樹 (Yoshiki Ohshima)さんの回答 - Quora
Miura HidekiさんはTwitterを使っています 「最近の動的型付け言語の処理系の売りってJITになりがちなんだけど、本当にそれだけなのか?という疑問は関係者は持つべきだとは思う。他に有効な解を私が持っているわけじゃないのだけど。でも有効かもしれない解はある程度思い浮かぶ」 / Twitter
Miura HidekiさんはTwitterを使っています 「動的型付け言語でJITをコンパイラを実装してパフォーマンスを上げるのは意外と大変。がんばれば確かに速くなるのだが、速くなるかは自明ではない」 / Twitter
Miura HidekiさんはTwitterを使っています 「動的型付けに限らず処理系で実アプリケーションで効いてくるのはコンパイラよりランタイムだと思うのだけど、あまりランタイムの改良をアピールすることって少ないな。RubyやJavaはGCの改良をアピールするけど(それは正しい)」 / Twitter
Miura HidekiさんはTwitterを使っています 「ターゲットプログラムによってカスタマイズされたランタイムを生成する処理系って効果ある気がするけど、私は知らない」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 Stalinはランタイムライブラリごとグローバル最適化をかけてたと思います。ただ今時はランタイムも大きいので時間がかかりすぎるでしょうね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana Stalinすげー。ランタイムが大きくなってもカスタマイズのポイントを絞れば可能だと思います」 / Twitter
hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語の売りって昔から今も、Cみたいにキャストすればなんでもありな自由度をキャストなしで書けることとデータ側にintrospection用というかメタ情報を持っていてどこからでも参照できることの2点につきると思うんですが最近は違うのでしょうか?」 / Twitter
Miura HidekiさんはTwitterを使っています 「@HPetegari はい。でもそういう機能を使ってないときは、そういう機能を持たない言語と同じくらい速く動いてほしいですよね。そういうのを可能にする技術がすこしずつ登場していると思います」 / Twitter
hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語を素直に実装すればmachine genericなintegerをbox化することになって静的型付けとそこで性能の差がでてしまう。しかしながら最近の動的型付けではbox化せずに性能的に遜色なく処理しているらしいという印象です。その当たりを詳しく知りたい。実は最近は動的でも内部で型推論してる?」 / Twitter
hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語を素直に実装すればmachine genericなintergerをボックス化することになって静的型付けとそこで性能の差がでてしまう。しかしながら最近の動的型付けではボックス化せずに性能的に遜色なく処理しているらしい。その当たりを詳しく知りたい。動的でも内部で型推論して最適化してる?」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 型は書いても良いと思う派ですが、最初に書いた型から、時とともに動的に変化しても良さそうな気もしています。C コンパイラを書いていて、コンパイルする過程で出来る高水準中間言語を見ていて、これの扱ってる型情報を動的に変更できれば良いのだろうという印象です」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 型が時ともに変化するを許すか否かは中間表現をSSAにすると余り意味の無いことに感じます。もちろん、PHI命令でユニオン型が生じてしまうリスクはありますが。」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 プログラマとかアプリ利用者から見て、型が動的に変わることに意味がある場合もあると思います。たとえば、SQL で動的にテーブルのスキーマを変更できるような感じで、通常のプログラミング言語についても同様の使用感が得られます」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 それならユーザはあえて型を指定せずに処理系に任せるような言語仕様にした方がいいような気がします。たとえばJuliaのように」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 型が不要なら、JSON Schema みたいなものって不要なはずだと思うのですが、存在していますよね」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 Julia は調べてみますが、私は I/O を中心に考えてるので、JSON Schema みたいなものは必要だと思っています」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 型が不要ではなく推定できる範囲は処理系に任せましょうですね。JSONで型の推定は無理に思えます」 / Twitter
⿻あいや⿻ 技術書典11新刊🎉 数学と女の子たちの本「せつラボ」さんはTwitterを使っています 「動的型付き言語の最大の弱点 (プログラミングの中心が未定義で回る) https://t.co/5JGEH9kf0d」 / Twitter

TruffleSqueak

hpi-swa/trufflesqueak: A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.
TruffleSqueak
TruffleSqueak: Polyglot Programming with Squeak/Smalltalk and GraalVM | Hacker News
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「久しぶりの #st_study 楽しかった。ただし、truffle squeak、おまえ、オレが温めていた研究ネタの多くを解決しやがって。orz」 / Twitter
Miura HidekiさんはTwitterを使っています 「truffle何とか、言語実装者の努力をことごとく踏みにじった感がある」 / Twitter
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 今後の言語実装技術を考える上で、いろんなバランス軸を書き替えてしまった感があります。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tomooda 研究の世界はカオスがふさわしいと思います (部外者が過ぎた物言いだとは思います。すみません」 / Twitter
TruffleSqueakの紹介 - Google スライド

REPL 等

uint256_tさんはTwitterを使っています 「大きなプログラムをインタプリタ(スクリプト)言語で書く意味をいまいち理解できていないんですよね」 / Twitter
FUJI GoroさんはTwitterを使っています 「@uint256_t 動的型付けvs静的型付け、ではなくってことですよね? C以前のコンパイラは複雑なビルドスクリプトを用意しなければならず依存関係の管理もまともにできないのでそのへんを処理系自身が解決できたインタプリタが簡単でした。 今時の言語はcargo runとかで一発なので大きな差はないと思います。」 / Twitter
FUJI GoroさんはTwitterを使っています 「@uint256_t 動的型付けvs静的型付け、ではなくってことですよね? C以前のコンパイラは複雑なビルドスクリプトを用意しなければならず依存関係の管理もまともにできないのでそのへんを処理系自身が解決できたインタプリタが簡単でした。 今時の言語はcargo runとかで一発なので大きな差はないと思います。」 / Twitter
uint256_tさんはTwitterを使っています 「@__gfx__ 言語自身ではない所に問題があったんですね」 / Twitter
FUJI GoroさんはTwitterを使っています 「@uint256_t そうそう、むしろ現代的な言語だとあまり意味のある区別ではない気がしますね。 あとは、スクリプト言語=インタプリタ言語=動的型付き言語、みたいな昔の処理系の典型的な実装に引きずられた定義もまだ生き残っているかもしれません。」 / Twitter
uint256_tさんはTwitterを使っています 「@__gfx__ 確かに。Crystalとかはスクリプト言語っぽいけど静的型かつコンパイル型でしたね。」 / Twitter
FUJI GoroさんはTwitterを使っています 「@uint256_t TypeScriptも静的型かつコンパイル言語なのに実行エンジンが動的型のスクリプト言語、しかもそのスクリプト言語はしばしば実際に実行するのはJITしたマシンコード、という具合ですしね。」 / Twitter
_ko1さんはTwitterを使っています 「@uint256_t 前提によっていろんな意見がありそうです。 例えば、実行中にコード差し替えがやりやすいとかはあるかもしれません(試行錯誤しやすい) 典型的にはreplでゴニョゴニョしながらなんかするとか」 / Twitter
uint256_tさんはTwitterを使っています 「@_ko1 確かにREPLは便利ですね」 / Twitter
monochromeさんはTwitterを使っています 「@uint256_t 動的な言語(型やメソッドが実行時に変化する)の実行のためですかねえ。」 / Twitter
uint256_tさんはTwitterを使っています 「@s_isshiki1969 それは確かにそうですね。(大きめのプロダクトとかでインタプリタ言語を使う意味を考えていました)」 / Twitter
monochromeさんはTwitterを使っています 「@uint256_t Railsみたいなのは巨大だし、かつRubyの動的な性質をフルに活用していますね。 静的型付け言語の型の柔軟性が飛躍的に上がったので、遅い動的型付け言語を巨大プロジェクトで使う意味というのはどんどん縮小している気がする。」 / Twitter
uint256_tさんはTwitterを使っています 「コンパイラ型かインタプリタ型かなんて関係なくて、ただ偶然好みの言語がどちらかの型だった、ってだけなのかもしれない」 / Twitter

簡易なレジスタマシン

uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「ASTからいきなりレジスタマシンの機械語を吐くのは辛いことが分かった。スタックマシンの機械語を吐く様にした後、本物の機械語ではなく中間言語(無限のレジスタを持つ機械語みたいなもの)を吐く様にしてから、レジスタ割り付けを行うというのが9ccでの手法みたい。」 / Twitter
monochromeさんはTwitterを使っています 「@uchan_nos 最新作のchibiccでは、シンプルな方法でASTから直接レジスタマシンっぽいアセンブリを吐くようになってますね。」 / Twitter
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@s_isshiki1969 おお、そうなんですか」 / Twitter
monochromeさんはTwitterを使っています 「@uchan_nos 加算命令だと①右辺を評価してraxへ②raxをpush③左辺をraxへ④右辺をrdiへpop⑤add rdi,raxみたいな感じですね。CPUスタックも使うので本物のレジスタマシンよりは遅くなりますが、シンプルでそこそこ速い割り切ったやり方です。 https://t.co/2P7BqgGvHE」 / Twitter
chibicc/codegen.c at 90d1f7f199cc55b13c7fdb5839d1409806633fdb · rui314/chibicc
uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@s_isshiki1969 なるほど。これなら1 passなのにそれなりのレジスタマシンぽいコードが吐けるんですね。しかし、私が昨日考えた方式では、1 passなのにスタックを全く使わず、限られた個数のレジスタで任意の四則演算式を計算できるのではないかと思っています。これから検証しますが。」 / Twitter

トランザクション

ogiwaraさんはTwitterを使っています 「2PLは - 二つのトランザクションの競合についてのみ考えれば、3以上のトランザクションの競合について考えるのと同値 - 任意の述語を制約としておいても大丈夫 だったのに、Snapshot Isolationにした瞬間に一気に - n個のトランザクションのケースについて考慮の必要 - 述語のクラスに依存 になるね」 / Twitter
ogiwaraさんはTwitterを使っています 「やっぱりどう考えてもここら辺の理論が全然進んでなくて、どうにかしないと議論が進まないとかんじる」 / Twitter
ogiwaraさんはTwitterを使っています 「データの粒度、読み込み、書き込み、制約として述語のクラス、実装と理論との乖離…無限に考えることが多いですね」 / Twitter
ogiwaraさんはTwitterを使っています 「「計算」の次の段階の議論がまだまだ未開拓すぎる」 / Twitter
ogiwaraさんはTwitterを使っています 「並行処理に対する人間の直感があまりにも脆いから、やっぱ証明でガッチガチに固める必要があると確信できる」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@designpatterngf そのあたりの概観を掴むのに良い教科書があります。あとで共有しますね。」 / Twitter
ogiwaraさんはTwitterを使っています 「@zacky1972 とても有難いです!」 / Twitter

メタプログラミング(多段階計算)

Keigo ImaiさんはTwitterを使っています 「Multi-stage Programming in the Large with Staged Classes https://t.co/op1s9KaDtm Scala のメタプログラミングライブラリ Squid の staged class 拡張. メタプログラミングで Programming in Large. SQL の DDL からクラス群を生成し、さらにSELECT文から効率のよいクエリを生成する(ポスターより」 / Twitter
Multi-stage Programming in the Large with Staged Classes (GPCE 2020 - - 19th International Conference on Generative Programming: Concepts & Experiences) - GPCE 2020
Keigo ImaiさんはTwitterを使っています 「https://t.co/Z4Lr7ehvb6 まだ Github にこの拡張は来ていないということだったと思う」 / Twitter
epfldata/squid: Squid – type-safe metaprogramming and compilation framework for Scala
Keigo ImaiさんはTwitterを使っています 「C++メタプログラミングは沢山使われているのにマルチステージプログラミングは研究以外で使われないよね…→ Staged Classes! という流れがよかった」 / Twitter
κeenさんはTwitterを使っています 「Scalaで多段階計算でクエリからC吐くやつの関連か?って思ったけどこれはSQLからScalaだから方向逆か」 / Twitter
κeenさんはTwitterを使っています 「自分が言ってるのはこれね https://t.co/gnRmfs2C6S」 / Twitter
Building efficient query engines in a high-level language | Proceedings of the VLDB Endowment

データ構造とパフォーマンス

眼力 玉壱號さんはTwitterを使っています 「cache miss penalty が 30年位前とは比較にならない位デカイんだよねえ…なので pointer で繋いでいくタイプの data structure は理論性能と実性能が乖離しやすくなってる cf. https://t.co/YQ2cIuYuPV」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@kazuho https://t.co/UE5Q4LKWva の p.40 位に Hurb Shutter センセの『黙って array 使え』的な話が…勿論問題規模に依存はするけど、かなりの場合 array で行ける的な感触スね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「特に最近のCPUだとキャッシュや分岐予測あてるの重要だから選べるところではlinked listやハッシュよりarray使うんだけど、arrayは末尾以外の挿抜ができないから使いづらいことも多いよね #マジレス」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyでは動的にサイズ変更できるVBufという、アドレス空間予約(MEM_RESERVE)利用の Arrayを多用している。 Win32アドレス空間予約は、mmap等の仮想メモリ確保と違い、 ・PTD/PTEすら消費しない ・プロセス/OSの仮想メモリ量は増えない のが良い点。 https://t.co/Y8mvNKscpm」 / Twitter
SHIROUZU Personal Log
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これ、64bit OSでアドレス空間が増えてから特に威力を増した印象ある。 (予約だけならPTD/PTE増えず、タスクマネージャでも仮想ページ増えないため、遠慮なく大きくできる) 1dir直下に2000万ファイルといった状況にも対応できるよう、stat領域に8GB空間予約していたりなど。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(そして何より、性能と使い勝手はArrayそのものというのが良い」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえばこれ、スタック的な成長方向だけでなく、やろうと思えば基底側の成長できたりする。 (でもそれが必要な状況が浮かばない…思考が制約されてるのだろうか?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「オープンアドレス法は、MS-DOS時代に全盛だった方法くらいに捉えていて(想定以上のコリジョンで指数的に破綻、削除で嫌らしい話が出る)、大人になってこの方、チェイン法ばかり使っていたなぁ…ちょっと勉強し直すかな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(とはいえ、「テーブルとデータ配列は別確保」という変則オープンアドレス版の話であって普通のそれは敬遠したほうが良さそう)」 / Twitter

awk 的な言語で並列処理

κeenさんはTwitterを使っています 「Rust製のAWK(っぽい言語)の実装。型推論してJITしたり並列化したりSIMDで高速化頑張ってたりするらしい ezrosent/frawk: an efficient awk-like language https://t.co/LbWgvlTsOj」 / Twitter
ezrosent/frawk: an efficient awk-like language
Miura HidekiさんはTwitterを使っています 「Rustでどうやってパーサー書くんだろう?(Cみたいにgetchar/ugetcがないっぽい)って悩んでいたけど、分かった。ありがたい https://t.co/vKPnrNLB8L」 / Twitter
frawk/src at master · ezrosent/frawk
Miura HidekiさんはTwitterを使っています 「結局、プログラム全体をがばっと文字列で読みこんでおいて、部分文字列を見ていけばいいだけか。」 / Twitter
Miura HidekiさんはTwitterを使っています 「https://t.co/fK45utrZZe awkで並列処理って意味あるのかな?って思ったけど意味大ありだな。賢い」 / Twitter
frawk/parallelism.md at master · ezrosent/frawk
Shiro KawaiさんはTwitterを使っています 「@miura1729 こういう粒度での並列処理あんまり考えたことなかったな。なるほど…」 / Twitter

非同期など

chikoskiさんのツイート: "そうか。パターンマッチが、メソッドの代わりになるのか。"
κeenさんのツイート: "「エラー処理もエラートークンとして表われる」 #compiler_study"
INADA Naokiさんのツイート: "monoでasync/await多用したコードのプロファイル結果を見てるんだけど、やっぱりスタックトレースが ThreadPool や Task を起点とする短いものが大量にあって、アプリケーション視点のスタックトレースが見えにくくなってるので、 Go の方が分かりやすいなぁ。"
INADA Naokiさんのツイート: "見た目上は async / await でスッキリ書けると言っても、実際には細切れに分割された無名の関数がスレッドプールでコールバックされまくってるだけなので、デバッグしたりプロファイルしたりするときはコード上のわかりやすさが消える。 https://t.co/D0sy2dFOMV"
.NET/.NET Coreのスタックトレースを洗練
渋川よしきさんのツイート: "Go言語がシンプルに書けるのは、同期APIを非同期に扱ったり、ブロッキングをノンブロッキングにしたり、入力側と出力側のプロトコル変換が容易で、インピーダンスを合わせるのが超絶楽、というのがコアにある気がすごいしてる。"
なかのん&マジックさんのツイート: "ブラウザのエンジンの非同期化の何が難しいかって、入力との同期何だよな。例えば、APZは、wheelイベントのリスナがカーソルの下にある時は非同期描画を行わない。preventDefault()でキャンセルされるかもしれないから。 #もずでぶ"
chikoskiさんのツイート: "SPAの人たちって、リンクやURLについてどう思ってらっしゃるんだろう。とサイトをみていて思う。アプリ育ちの人たちにとっては、別タブで開くってありえない(もしくは、させたくない)操作なのかしら。"
chikoskiさんのツイート: "状態とリソースの区別が難しいとは思う。ゲームの途中状態みたいなものへはリンクできる必要はないと思う。Twitterのタイムラインのように、DBのエントリーを一覧表示し、操作で各エントリの詳細を表示する場合は、それぞれのエントリに対してリンクできるべきだと思う。前者は状態、後者はリソース。"
chikoskiさんのツイート: "node.jsの非同期処理について厳密な定義が読みたい人は、こちらをどうぞ https://t.co/lSL4m75rg6 #wejs"
Semantics of Asynchronous JavaScriptTechnical report, 2017-07-26
なかのん&マジックさんのツイート: "がんばって誰が問題のイベントの複製をやっているのか突き止めたかったけど、スタックトレースからは分からなかった。イベントキューに放り込まれてて、そのキューからの取り出し以降しか見えないから。"
κeenさんはTwitterを使っています 「面白かった。Actorモデルは表現力が足りないという仮説の下mutationなどを入れたモデルを開発。メッセージパッシングにsesstion type、mutationにseparation logicを使ってる。結果、actorにrefを渡してmutateするプログラムのreasoningができる。実装はIris。 https://t.co/Ul29XkcJj2」 / Twitter
κeenさんはTwitterを使っています 「ところで並行プログラムのモデル、おおまかにメッセージパッシングとメモリ共有の2種類があって、reasoningのしやすさからここのところはメッセージパッシングが優勢だったという認識なんだけど今回のモデルみたいにメッセージパッシングに部分的にメモリ共有を混ぜたやつはどこまで戦えるんだろう。」 / Twitter
RyuseiさんはTwitterを使っています 「async/awaitは、「Promise を使った非同期処理を平易に記述するための糖衣構文」ではなく、「古典的な制御構造を非同期処理に埋め込むための構文」と捉えるべきではないかと思います。」 / Twitter
RyuseiさんはTwitterを使っています 「async/awaitと言うから、こいつらが重要に思えてしまうけど、本当に重要なのは、async関数に埋め込まれたlet文だとかwhile文だとかfor文とかtry/catch文の方です。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「確かに、この間訳あって脱糖しようとしたらやっぱforの翻訳がめんどくさかった... &gt;RT」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Pythonのasync/awaitで、簡単にスレッドで実行できて感心した。スレッドだと速度は速くならないけれど、ブロッキングするコードも書ける。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Rustのasync/awaitも使ってみないと。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「async/awaitでブロッキングしないように頑張るなら、Erlangで良いんじゃ無いのかって気もするが。」 / Twitter
Future と Promise | Scala Documentation
ES2020 確定した機能セット

ピボットテーブル

chokudai(高橋 直大)🌸🍆🍡さんはTwitterを使っています 「意外と名前が付いているテクニックもあって、「重複のあるデータ列が与えられた時に、データ名:個数のペアに持ち変える」みたいなのって、名前がついてるはずなんだよね。自分も思い出せないし言っても多分伝わらないけど。」 / Twitter
Feature #11076: Enumerable method count_by - Ruby master - Ruby Issue Tracking System
Shiro KawaiさんはTwitterを使っています 「Scheme (R7RS-large) だとbagですね。自明でないかもしれませんが、内部的にデータ⇒個数で持ってます。特定のデータの個数を得るのはbag-element-count https://t.co/RGSFeDKmUp https://t.co/pozyzYhz12」 / Twitter
Gauche ユーザリファレンス: R7RS large
Keigo ImaiさんはTwitterを使っています 「ピボットテーブル… https://t.co/ZWEeJs2xkX」 / Twitter

エラー処理

井山梃子歴史館さんはTwitterを使っています 「SQLiteっぽい https://t.co/b2Xt7k5Uq6」 / Twitter
The Use Of assert() In SQLite
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「assert にも同様の濫用があって「クラッシュは仕様」と「クラッシュしたらバグ」が混在していて、その辺りは昔ブログに書いた: https://t.co/gagW3ixhT3 &gt; つまり、あらゆる assert は、プログラムが完全に想定 (仕様) 通りに動いたとするなら全く存在しなくても構わないように使うべきである。」 / Twitter
Panic を恐れるべからず - 何とは言わない天然水飲みたさ
井山梃子歴史館さんはTwitterを使っています 「SQLiteはテストで条件分岐をフルにカバーするとこまで含めての話でもある」 / Twitter
ドッグさんはTwitterを使っています 「自分はロジック上失敗しない(はず)なら .unwrap() でやってるな.そこでエラーになるのは実装上の理由なので,ユーザが見て分かるメッセージが出せないし,実装者が分かれば十分なら理由はコードコメントで十分で,あとはクラッシュした時のバックトレースが知れれば良い」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「これは文脈次第だと思っていて、「クラッシュする可能性がある (何かあったときクラッシュするのが仕様である)」場合はエラーとなった理由を書くし、「クラッシュしえない (クラッシュしたら実装のバグである)」場合はエラーになりえない理由を書くようにしている」 / Twitter
ドッグさんはTwitterを使っています 「Result::expect の引数ってエラーになった理由を書くもんだと思ってる」 / Twitter
ふみ a.k.a. DJ MonadさんはTwitterを使っています 「Rustでunwrapからのパニックを出すライブラリを見るとキレそうになるが、Haskellは実行時エラーを出す関数の数々が言語仕様レベルで決められているので人のことを言えなかった」 / Twitter

組み込み関数

だめぽラボ@技術書典9さんはTwitterを使っています 「言語処理系を作るにあたって、組み込み関数はどういう風に定義するのがいいのかな」 / Twitter
画力・博士号さんはTwitterを使っています 「@mod_poppo “特定の識別子(或いはそれをモジュールでくるんだもの)だけ最初から型環境に入っている” という方式が自然な気がします」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「@bd_gfngfn その「型環境に入れる」のをメタ言語のコードとしていちいち書いていると面倒だなあと思っているのです」 / Twitter
画力・博士号さんはTwitterを使っています 「@mod_poppo どうしても “オブジェクト言語で書けるように外部化したい” 場合は external "foo" のような構文をオブジェクト言語に加えて「この識別子はターゲット言語の "foo" にコンパイルする」というFFIを与える方法はある気がします(拙作のSesterlでも似たことをやっています: https://t.co/QIjF0Axeus )」 / Twitter
Sesterl/list.sest at 6e61703a1090c6b65d3ecf111f682cfc8ab945e4 · gfngfn/Sesterl
だめぽラボ@技術書典9さんはTwitterを使っています 「@bd_gfngfn やはりそうなりますか。ありがとうございます」 / Twitter
El Pin AlさんはTwitterを使っています 「こういうの、メタ言語が多段階計算をサポートしていれば解決できそうだと思ったりもします」 / Twitter

抽象・具象

Shinji KonoさんはTwitterを使っています 「圏論も具体的と感じるようになってしまったので、IT技術が抽象概念ばかりってのはかなり疑問。」 / Twitter
Shinji KonoさんはTwitterを使っています 「抽象的ってのはコンパクト性とか無限と有限の区別が入るようなの。情報系だとFairnessとか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Tree automaton は抽象的とは言わない気がする。automatonでも抽象的と言われるのは心外。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ω automatonは、まぁ、抽象的かな。まさか 変数があると抽象的 とか?」 / Twitter

自然の斉一性

確率

伊津野 英克さんはTwitterを使っています 「客観ベイズの立場に立つなら、頻度確率が主観確率に内包されるのは自明だろうなぁ、ていうかその方が自然に思えるけど。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@hidekatsu_izuno 客観ベイズは(定義によるんですが)事前分布を無情報にすることですね。ここで言う客観的ベイズって主観ベイズにおける事後分布な気がします。」 / Twitter
伊津野 英克さんはTwitterを使っています 「@kenmcalinn 本の説明に従うなら主観確率に補正(観測済みの頻度に基づく合理性)と曖昧化(無差別の原理)の制限を加えたものだと書かれていました。過去のデータを元に事前分布を設定(≠経験ベイズ)したようなものかなぁ、と思っていました。用語の使い方は気をつけないとまずそうですね。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@hidekatsu_izuno 前者と後者って相反してませんか?笑。前者は普通の主観ベイズ(合理性の定義によりそうですが)、後者は客観ベイズですね。ただ長い議論の結果、無差別の原理は無知(ignorance)を表してないし無知を事前分布で表すことはたぶん不可能って結論になりました。このへんの議論は哲学のほうが遅れてるかと。」 / Twitter
伊津野 英克さんはTwitterを使っています 「@kenmcalinn 「合理的解釈を必ずしも選択しないことも可」ということを表現するための仕掛けだそうです。無理やりくっつけました感は否定できないですかねw 2010年くらいの文献が挙げられているので、たしかに統計学サイドの方が議論が進んでいるのかも。」 / Twitter
伊津野 英克さんはTwitterを使っています 「もはや量子論が情報に基づくものという理解がスタンダードとなった現在、確率の定義と物理世界においてなぜ再現性があるのかという話は分けたほうがいいんじゃないかなぁ。傾向性解釈は後者に引きずられてる感じ。」 / Twitter
伊津野 英克さんはTwitterを使っています 「確率=主観確率だけど、(相対論や量子論に対するニュートン力学がそうであるように)たまたま身近な物理空間では斉一性があるが故に、特殊形としての頻度確率が便利なタイミングが多い、と理解することにしよう。」 / Twitter

井山梃子歴史館さんはTwitterを使っています 「自然の斉一性の否定だ」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「こういうのを「発見」するための推論はアブダクションであって、以降諸事象は演繹的に見られるわけだが、「先にルールがあるからルールに沿ったものしか見つけられない」とか「多くの人がそう信じるからそうなってしまった(それ以前は違った)」という可能性は本当に無いのだろうか?」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「多分、昔からリンゴは木から落ちていただろうが、それが地球に引かれて落ちるようになった(あるいはそう見えるようになった)のは、ニュートン以降だったとしても多分誰もそうだとは気づけまい。 自然数の乗法が交換するとみんな信じたから交換するようになった、あるいは交換しない自然数が」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「「見えなくなった」のだとしても、誰もそうだとは気づけまい。」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「@__pandaman64__ 前半の解釈ではあくまで反例の発見に心理的な困難があるだけで、客観的には自然の斉一性を否定しませんね(ただ主観的なものと客観的なもので支配しているルールが違うだけで)。 後半の解釈は一旦は自然の斉一性を否定していますが、それでも「多くの人が信じたように振る舞う」という法則が追加された」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@sanjutsu_yu 「先にルールがあるから...」は一種の実在論者で大元の人(「我々が...」)と同じ意見であるように見えますね. 『「多くの人が信じたように振る舞う」という法則』自体は斉一的であることが可能かもしれませんが,よく言われる斉一性(実験や宇宙観測による過去の推測の正当化)自体は破ってそうですね」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「@__pandaman64__ ですね 特にそのへんの仮定は「便利(というかないと何もいえない)から置いた」という意味が強いものなので、(一般に受け入れられるかはさておき)一度くらいはちゃんと懐疑してみても罰当たらないでしょうという感じがあります。」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「強い自然の斉一性 「自然はある程度の規則性を持っており、誤差や時々明白な誤りはあれども現在の自然科学はそれをある程度近似している。」 弱い自然の斉一性 「自然はある程度の規則性を持っているが、それを自然科学が記述できているかはわからない。あたかもサイコロで数回同じ目が出たからグラ賽」 / Twitter
Aaron先生はゆるゆる就活さんはTwitterを使っています 「だとイチャモンをつける博徒のようなものかもしれない。」」 / Twitter

永劫回帰の思想(決定論)

yamaguchishoさんはTwitterを使っています 「この方の問いはとても自然です。 答えは「イエス」でありえます。 私自身、永劫回帰の思想を知った瞬間に《これは決定論だ》と直感しました。ただし――ここからが重要だが――《なぜ永劫回帰は何かしらの決定論を含意しうるのか》を説明するのは難しい。私は十年以上説明できませんでした。(つづく)」 / Twitter
kandekさんはTwitterを使っています 「「永遠回帰(永劫回帰)」って決定論のうちのひとつなのかな?」 / Twitter
yamaguchishoさんはTwitterを使っています 「永劫回帰が何かしらの決定論を含意する理路は以下。 永劫回帰では、t1からt2の期間、t2からt3の期間、t3からt4の期、(以下同様)で完全にそっくりなこと(いわゆる質的なコピー)が生じる、と仮定します。 この場合、t1~t2期間のある時点で、t2~t3期間の任意の時点の出来事が決まっている。(続く)」 / Twitter
yamaguchishoさんはTwitterを使っています 「同じことはそれ以後の期間についても妥当する。かくして永劫回帰は何かしらの決定論を含意する。(Q. E. D.) 押さえるべきは、これは因果的決定論ではない、という点。むしろ、t1~t2の時点ですでに、t2~t3の時点の出来事が或る意味で「在る」、というタイプの決定論です。(続く)」 / Twitter
yamaguchishoさんはTwitterを使っています 「これは、永遠主義が或る意味の決定論を含意する、というのと似た理路です(永遠主義においては、未来の出来事はいまの時点で或る意味で「在る」)。そして、「決定論」という語で因果的決定論のみを理解するひとは、この理路を退けるでしょう(これは言葉づかいの問題です)。(了)」 / Twitter
yamaguchishoさんはTwitterを使っています 「先ほどの問題をさらにニーチェの設定に近づけて考察したくなった。 ニーチェ的永劫回帰の世界では、 ..., T_-2, T_-1, T_0, T_1, T_2, T_3 ... という具合に過去向きと未来向きに永遠の時間が横たわっている(T_iたちは同じ長さの時間インターバル)。 (つづく)」 / Twitter
yamaguchishoさんはTwitterを使っています 「ここで、各T_iに完全にそっくりなこと(質的なコピー)が生じている、と前提する。この場合に何かしらの決定論が導出されるか。 第一に、..., T_-2, T_-1, T_0, T_1, T_2, T_3 ...がいわば「現実的無限」として全体として存在するとき、あらゆる時点の出来事は無差別的に「在る」。(つづく)」 / Twitter
yamaguchishoさんはTwitterを使っています 「この場合、永遠主義が一切を既在化し或る種の決定論を導き出すのと同じ仕方で、決定論が導出される。 第二に、先の永劫回帰の世界に真の意味の「生成」があるとする。この場合《現時点の生成へ至るために無限の時間が「経過」した》というお馴染みの目眩のする仮定を受け入れることになる。(つづく)」 / Twitter
yamaguchishoさんはTwitterを使っています 「この仮定を受け入れれば、後は単純である。この場合、任意の時間インターバルの出来事は、先立つインターバルのコピーである――それゆえ、任意の時間インターバルの任意の出来事は、前もってそのような仕方で決定されていたことになる。かくして決定論が導出される。(Q. E. D)(了)」 / Twitter

Thunk

Hidemoto NakadaさんはTwitterを使っています 「juliaの分散周りのコードを読んでいたら、thunkという変数名をクロージャに対して使っている。普通の辞書にはそれっぽい意味がないので、ぐぐったらこんな記事を見つけた。なんとAlgol 60にまで遡る由緒正しいジャーゴンだったとは。。 https://t.co/J5vk7Vit38」 / Twitter
S.F. Blog:thunk(サンク)というものについて
Hidemoto NakadaさんはTwitterを使っています 「SICPにもでてくるらしい。確かに当時もなんだコレ、と思ったような。」 / Twitter
寺田 実さんはTwitterを使っています 「@hidemotoNakada Knuth を逆綴りにした、っていうあれですよね。はるか昔の理解では、ややこしい変数(名前呼びとか?)アクセスのために、アクセスの時に呼び出すコードのことだったような記憶が。」 / Twitter
Hidemoto NakadaさんはTwitterを使っています 「@miterada wikipediaの記事を教えていただきました。かなり多方面でちょっとずつ違う意味で使われているようです。 https://t.co/GDGyCHEuUf Algol発祥なのは多分確かで、そこから派生していったということなのでしょう。。 https://t.co/zKzT0mUXDj」 / Twitter
Thunk - Wikipedia
Thunks: a way of compiling procedure statements with some comments on procedure declarations: Communications of the ACM: Vol 4, No 1

高度な技術

カバレッジ測定

gcov

gcov の使い方 - まめめも
OpenCppCoverageによるカバレージの計測 (1/2):CodeZine(コードジン)
gcov(1) FreeBSDドキュメントJMan
GCCでC言語の分岐カバレッジを試す。思ったのとちょっと違った。 CodingFirst
gcovでカバレッジテストをしてみる: 綺麗なコードが良い
タダでソフト開発の生産性と品質を上げる方法(7):高機能な単体テストツール「GoogleTest」を使いこなす(その2) (1/3) - MONOist(モノイスト)
Cutterでカバレッジ……改良しちゃいます - しがないSEのブログ
EM+PLS|IoT|サイバートラスト株式会社
rubyhackchallenge/6_coverage.md at master · ko1/rubyhackchallenge
Linuxにおけるカバレッジテスト | ~Rhythmical Life~
C/C++開発環境 - Qiita
GCC 7 | 10.2 gcovの呼び出し - 初心者入門サンプル
GCC 7 | 10.4 gcovデータファイルの簡単な説明 - 初心者入門サンプル
gcov.txt - kandamotohiro
Dialy & Material book: gccとgcovコマンドを使ってCソースのcoverage(カバレッジ)を測定する
GCCのコードカバレッジオプションはどのように機能しますか? - コードログ
QEMU / GDB経由の.gcdaカバレッジファイルの生成 - 埋め込みコードカバレッジ、gcov
Samuel Jacob's Web Log: GCOV internals overview
Linux Test Project / Re: [Ltp-coverage] gcov's data files format
セグメンテーション違反が発生した場合でも、どうすれば“ gcov”を使用できますか? - コードログ
Gcov - Wikipedia
Gcov Data Files - Using the GNU Compiler Collection (GCC)
Coverture

gcov_log_マージ

gcovのログファイルをマージするツールを拾った && 手直しした - 新・日々録 by TRASH BOX@Eel
code-coverage – 2つのgcovファイルを1つにマージする方法はありますか - コードログ
g – gcov/gcovrを使って2つの実行ファイルのカバレッジデータをマージすることは可能ですか? - コードログ
plugin gcov 警告: サマリーのマージの不一致 - 初心者入門サンプル
Parasoft Blog: テストを複数回実施したカバレッジのログをマージする
Using and Porting the GNU Compiler Collection (GCC) - gcov: テスト・カバレッジ・プログラム
On-line Manual of "gcov"
猫でも使えるソフトウェアのテスト網羅(3):無料ツールで単体テストを楽に実行しよう (4/4) - MONOist(モノイスト)
ブログズミ: [C++] Coveralls でコードカバレッジ - その2
「gcov: テスト・カバレッジ・プログラム」 (Using and Porting the GNU Compiler Collection (GCC)) - メモの日々(2006-07-09)

中村 実さんのツイート: "100%コードカバレッジの悲劇 / “The tragedy of 100% code coverage | IG Labs” https://t.co/myt2ldH9F0"
The tragedy of 100% code coverage | IG Labs
Makoto Kato ︎︎さんのツイート: "テストカバレッジできてないコードは大概怪しいとか、comm-centralでしか使えないコード (absolutely position editor) とかいろいろあるよ https://t.co/jS0TG2oqRj… "
Using gcov with the Linux kernel — The Linux Kernel documentation
まさみさんは語りたいさんのツイート: "ftraceのgcovをコンテナ内部で取れるようになった。良い。"
まさみさんは語りたいさんのツイート: "これでカバレッジテスト増やすんじゃー。"
まさみさんは語りたいさんのツイート: "lcovの結果を眺めながら、テスト漏れしてる関数を叩くにはどういうテストを掛けばいいかを考えて追加する簡単なお仕事。"
まさみさんは語りたいさんのツイート: "gcovを使ってftrace内のftracetestとboottestでカバーされる関数を調べ、足りないテストケースを能動的に探し出して追加するというアプローチに出ているが、結構ややこしいケースがあるなあ。"
まさみさんは語りたいさんのツイート: "GCOVでテストを走らせながらソースコードを読むと、消し忘れたヘルパー関数っていうのが見つかることがある。何かの処理のためにヘルパーを作って使ったけど、使った方のコードが書き直されたせいで使われなくなったhelper関数。これからはトマソンと呼ぼう。"
まさみさんは語りたいさんのツイート: "トマソンを探せ"
まさみさんは語りたいさんのツイート: "トマソンというかジャンクコードというかで人文学科か生物学科かが分かる。"
まさみさんは語りたいさんのツイート: "カバレッジ出来ないコードを削除していくスタイル"
まさみさんは語りたいさんのツイート: "GCOVはプログラムをコンパイルする時にカウンタを埋め込み、C言語の各行に対応する機械語の生成時にこのカウンタをインクリメントする、という動作をするようだ。問題はarmとかだと規模が大きいカーネルのようなプログラムの場合、カウンタを置く場所が離れてしまい1命令ではインクリメント出来ない"
まさみさんは語りたいさんのツイート: "なので、恐らくカウンタのテーブルを分割し、コード領域の近くに埋め込んで、一命令でインクリメント出来るようにしている。しかしLinuxカーネル内には.text.exitという領域があって、これは終了時にしか利用しないコードをビルドするんだけど、最終的にリンク時に削除されるようになっている。"
まさみさんは語りたいさんのツイート: "そうすると、このexitコード用のカウンタテーブルも一緒に削除されちゃうんだけど、当然そんなことを想定していないGCOVの関数からこのテーブルは参照されているので、リンカがエラーを吐きよるわけですよ。"
まさみさんは語りたいさんのツイート: "多分同様の問題が他の機能にもあったのか、armのリンカスクリプトで、CONFIG_GENERIC_BUGとかCONFIG_JUMP_LABELが定義されていたらtext.exitを削除しないようにするスイッチがあるのを見つけたから、これにGCOV_KERNELを追加したら案の定エラー消えた。"
uint256_tさんのツイート: "(ASTカバレッジ..?"
uint256_tさんのツイート: "カバレッジが行数なの, 疑問に思ったことなかったなぁ"
ccov: printfデバッグを支援するツール - Blog posts by @retrage01

コード分析

その他

コード分析ツールを利用する - プログラマが知るべき97のこと
冗長コードの検知と解析
日記 (2014 年 2 月下旬)
Software rot - Wikipedia
NetBeans IDE Javaエディタでの静的コード分析
ルール ベース分析
Google Developers Japan: サニタイザーによる Android のバグ退治
プロならゲーム開発で品質保持/CIは当たり前:C#/C++の本格的なゲーム開発において品質を高めるために知っておきたい静的解析とは - @IT
ElectricCommander
バグハンターのためのクライアントサイドJavaScriptの静的解析 - No1zy Web Security Blog
golang.org/x/tools/go/analysisで静的解析ツールを自作する #gounco / how to create the static analysis tool for go - Speaker Deck
Mozilla、Firefox開発プロセスにUbisoftのAI技術を採用へ | OSDN Magazine
MozillaがFirefoxのバグ発見と修正にAI支援ツールを導入。過去のバグを学習することで、バグがありそうなコードを判別するだけでなく修正案も提示可能 - Publickey
米Facebook、抽象解釈を土台としたコード解析ライブラリ「SPARTA」を公開 | OSDN Magazine
国際会議 SOSP 2019 - 品川研究室のブログ
プログラム解析の目的 - uchan note
静的解析の育て方 / How to make your static analysis strong - Speaker Deck
CircleCIで勝手に強くなる静的解析の作り方 - Cybozu Inside Out | サイボウズエンジニアのブログ
JetBrains は IntelliJ 2020.2 をリリース
ソフトウェアテストの実行を機械学習で効率化する。Jenkins作者の川口氏が立ち上げた「Launchable」で実現しようとしていることとは(前編) - Publickey
ソフトウェアテストの実行を機械学習で効率化する。Jenkins作者の川口氏が立ち上げた「Launchable」で実現しようとしていることとは(後編) - Publickey
開発者の扱うコードの量や複雑さはここ10年で100倍以上に増えている - GIGAZINE
Sonatype LiftがFacebook Infer、Google ErrorProne等のコード分析ツールを統合

ポインタ解析

FadisさんはTwitterを使っています: 「みんな戻ってきたので少し早いですが @kristopher「Kiyomizu: LLVM IRを解析によってコードの脆弱性を防ぐ」が始まります #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「「清水の舞台から飛び降りて無事だったら、願いが叶う」→「チェッカを通して無事だったら、安全なコードである」 Project Kiyomizu #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「LLVM IRのレベルでメモリアクセスの解析やコールグラフ解析を行う事で、様々な言語を安全に書けるようにする、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「社会インフラを構成するシステムに存在する脆弱性の多くが正しくないメモリアクセスを原因としている、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「ポインタ解析ではある関数がアクセスして良いアドレスの範囲の情報を作って、それに違反していないかをチェックする、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています: 「言語に型の条件チェックを付けて安全なコードを書けるようにしました、という話を目撃する度に「それC++で(以下略)」というお気持ちになってる」 / Twitter
FadisさんはTwitterを使っています: 「でも実行時にならないと確定しないようなものをテストと結びつけてチェックできるのは羨ましい」 / Twitter

Snyk

渋川よしきさんのツイート: "アカウント登録必要だけど、snykを別に使えば、セキュリティチェックを別に行うことは可能。これはnode.js以外のGoとかにも対応してる。audit入る前からこれ使ってた(vulsの神戸さんに教えてもらった) #ll2018jp"
Open Source Security Platform | Snyk
Scan Your Code and Open Source for Vulnerabilities for Free | Snyk
オープンソースコードのセキュリティチェックと問題修復を開発のワークフローに組み込むSnyk、GitHubとの統合も可能 | TechCrunch Japan
オープンソースのライブラリのセキュリティチェックと脆弱性フィックスを代行するSnykが$7Mを調達 | TechCrunch Japan
snyk/snyk: CLI and build-time tool to find & fix known vulnerabilities in open-source dependencies
Snyk
snyk/vulnerabilitydb: Snyk's public vulnerability database

Clang-Tidy

冬休み到来! clang-tidy で安心安全な C/C++ コーディングを極めよう! - Qiita
clang-tidyで命名規則のチェック(&自動修正) - Qiita
Clang-Tidy — Extra Clang Tools 8 documentation
Clang-Tidyインテグレーション - 公式ヘルプ | CLion
clang-tidy - Google 検索

SCALe

カーネギーメロン大学、ソースコード解析ツール「SCALe」を公開 | マイナビニュース
SEI CERT Division Releases Downloadable Source Code Analysis Tool
cmu-sei/SCALe: SCALe (Source Code Analysis Lab) is a static analysis aggregator/correlator which enables a source code analyst to combine static analysis results from multiple tools into one interface, and also provides mappings for diagnostics from the tools to the SEI CERT Secure Coding standards.
コードを静的解析して脆弱性を検出する「SCALe」、米CERTがオープンソースで公開 - Publickey

MS

コード分析を使用した C/C++ コードの品質の分析
C/C++ のコード分析の概要
「Visual Studio 2019」がリリース候補(RC)版に ~CodeLens機能がCommunity版にも開放 - 窓の杜

KMC Staff Blog

KMC Staff Blog:sparse チェッカーを使ってみる。
KMC Staff Blog:GCC の名前付きアドレス空間サポート
KMC Staff Blog:GCC の profile mode を試してみる。

Twitter

高梨陣平さんのツイート: "正規表現ライブラリに動的にメモリ破壊の可能性を解析するlibFuzzerを使ったら5つも問題を見つけたとの話。C/C++を用いるOSSには定期的に検査をかけてくれるOSS-Fuzzというのもある。利用申請が必要。 https://t.co/kWENHQIqCq https://t.co/lGAoq90Njo"
Masakazu Asamaさんのツイート: "Clang の ML に「Clang の static analyzer 使って Linux の TCP/IP スタックの検証してみたいんだけど」みたいなスレあって色々調べてたら FreeBSD は Wiki にカーネルの static analyzer にかける方法が載ってた。"
Masakazu Asamaさんのツイート: "@m_asama 「これで潰せたバグの一覧」とかあったら個人的にめちゃくちゃ興味あるんだけどどうなんだろ。 https://t.co/8vggEG1lHH"
Rockridgeさんのツイート: "MozReviewに送信されるすべてのパッチに対し自動的に静的コード解析が行われるようになる模様。解析の結果指摘された問題点を解消しない限り、パッチのチェックインができなくなるそうだ。 / “Intent to Enable: …” https://t.co/vyQR5pNHTq"
Kazuho Okuさんのツイート: "Cの静的解析ツール、false positiveの管理が辛くて、その点Coverity Scanはウェブベースだからグループ開発にむいてる"
Kazuho Okuさんのツイート: "Cコードのregressionを見つける比率で言うと、CI : fuzzer : 静的解析 = 100 : 10 : 1 くらいの僕的印象"
眼力 玉壱號さんのツイート: "@kazuho code flow はよく見ている印象。C++11〜 の対応が弱いのが少し辛い> Coverity"
とみながたけひろさんのツイート: "ふつーのコンパイラの警告, cppcheck, coverity, fortifyあたりを併用しているけど、まあどれも一長一短な感がある。お値段とか精度とか速度とかいろいろ"
鯵.pngさんのツイート: "ソースコードとコンパイラが吐いたバイナリが同じ挙動をするかどうか、ハードウェアみたいにフォーマルベリファイアで確認することが必須になる未来を見てみたい"
Kentaro Haraさんのツイート: "Googleの2億行のソースコードを解析した結果、関数に渡す引数の順番を間違える系のバグは、引数の個数が6個以上になったときに著しく増えるので、引数の個数は5個以下が望ましいことがわかったという話。 https://t.co/R5yy31pDyu"
なかのん&マジックさんのツイート: "CheckSomething()って名前のメソッドはプロジェクト問わずだいたいダメ。"
なかのん&マジックさんのツイート: "Checkすることで何が起きるのかよく分からない、つまり、実装する人によってそのメソッドの性格が変わるということを意味してる、非常に良くない単語。"
FadisさんはTwitterを使っています: 「gcc 10からC言語のコンパイル時に-fanalyzerをつけることで静的解析をかけられるようになる話。さしあたってはまずいメモリ確保/解放を見つけるようになるらしい。コンパイラの中間表現を使って静的解析を行う試みは既にclangで行われていたが昨年末にgcc向けの実装が登場した https://t.co/orYlhY267F」 / Twitter
GCC 10 Introduces A Static Analyzer - Static Analysis On C Code With "-fanalyzer" Option - Phoronix
mumumuさんはTwitterを使っています 「Finding Error Handling Bugs in OpenSSL using Coccinelle OpenSSL特有のある種のバグをLinuxで使われているC言語ソースコードのパターンマッチツールで検出する試み.あくまで静的解析でデータフロー解析などはできないが,それでも30個見つけている. https://t.co/1ZFGlzTd7e」 / Twitter
Finding Error Handling Bugs in OpenSSL Using Coccinelle - IEEE Conference Publication

プロファイラ

パフォーマンス計測

その他

小崎資広さん「人に依存しないデバッグのために,道具の使い方を知ってほしい」〜RubyKaigi 2015基調講演 2日目:RubyKaigi 2015レポート|gihyo.jp … 技術評論社
本の虫: cpの速度を計測する方法
本の虫: cpで大量のファイルをコピーした(4億3200万件、39TB)
DSAS開発者の部屋:「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない
Tips IA32(x86)命令一覧 Rから始まる命令 RDPMC命令
命令単体の性能を計測する
インテル® パフォーマンス・カウンター・モニター - より優れた CPU 使用率の測定方法 | iSUS
Android Studio 3.2 Canaryはトレースサポートの改善、Lintチェックなどを提供
はじめてのにき(2018-02-19)
2018年11月22日 Oracle,eBPFによるDTraceエンハンスのプランを公開:Linux Daily Topics|gihyo.jp … 技術評論社
パケットフィルターでトレーシング? Linuxで活用が進む「Berkeley Packet Filter(BPF)」とは何か (1/3):Berkeley Packet Filter(BPF)入門(1) - @IT
Linuxのパフォーマンス計測ツールの違いとか - Yabu.log
Makoto Kato ︎︎さんのツイート: "ETWを使ってDTrace likeなのを動かすようにしただけなのか"
DTrace on Windows - Microsoft Tech Community - 362902
Next Windows release will include DTrace support | Ars Technica
2019年3月12日 Microsoft,「DTrace on Windows」をCDDLで公開:Linux Daily Topics|gihyo.jp … 技術評論社
3.3 アプリケーションへのUSDTプローブの追加
3.4 USDTプローブの使用
パフォーマンスカウンタを読んでみる - ziita’s blog
レイテンシの直感的な理解のためのメモ書き | Qrunch(クランチ)
俺の仮想マシンルーターがこんなに遅いはずはない/ KernelVM online 1 - Speaker Deck
Grafanaが分散トレースシステムGrafana Tempoを発表
LTTng - Wikipedia
プロファイラの比較(+簡単な使い方) - Qiita

ベンチマーク

AMD と Intel

Kazuho OkuさんはTwitterを使っています 「Ryzen 向けの governor 信頼してないから、いいっちゃいいんだけど、なんで最大周波数セットできる値がコアによって異なるの? 同一物理コアのハイパースレッドですら違うw https://t.co/y6jBHB6Y1H」 / Twitter
Kazuho OkuさんはTwitterを使っています 「「速度制限無視する奴の速度制限読み取り能力を云々してもしょうがないんじゃないんですか」」 / Twitter
Kazuho OkuさんはTwitterを使っています 「IntelのCPUだとデチューンして確実に、分散の小さな綺麗なベンチマークが取れるし、Intel CPUのことだけ考えてチューニングしたい」 / Twitter
satさんはTwitterを使っています 「@kazuho ハードウェア固有のところに踏み込んだRASを含めた細かいところはまだまだIntelの独壇場だと感じます。AMDの石はperfの結果すらあってるのかどうかわからなかったりしますし」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@satoru_takeuchi 昔はプログラムが時々落ちるレベルで泣いて直したって聞きました!!!」 / Twitter

スーパーコンピュータ

Hideyuki Tanakaさんのツイート: "なんか何一つ正しいことが書いてなくてやばいですね…これ書いた人は一体どこで勉強して書いたのか、あるいは何かの目的のためにうそを自覚しながら記事を書き連ねたのか…?… "
新国産スパコン開発 日本製はGreen500で上位独占
Hideyuki Tanakaさんのツイート: "やばすぎる記事だ(´・_・`) / 1件のコメント https://t.co/lehpuGBNbI “新国産スパコン開発 日本製はGreen500で上位独占” (1 user) https://t.co/15VN7jrGcp"
Hideyuki Tanakaさんのツイート: ">違いはTOP500は簡単な計算を繰り返す理論上の最大能力、Graph500は複雑な計算をさせることで、TOP500のほうは低性能機材でも高い数値が出る。 Top500は密行列の連立一次方程式を解く速度、Graph500は無向グラフの幅優先探索をする速度、別にどっちも複雑な計算ではない。必要なリソースが違うだけ。"
Hideyuki Tanakaさんのツイート: ">TOP500はスパコンを構成するユニット1個の理論上の性能から全体の数値を推測し、100倍だなとか1万倍だななどと計算しています。 >たとえ本物のコンピュータは1個だけで他は段ボールを並べただけであっても、TOP500では世界一を取れます。 違います。Top500は巨大な方程式を解くタスクの実行性能です"
Hideyuki Tanakaさんのツイート: "ちゃんとスケールするように構成しなければTop500で世界一は取れません。現在のスパコンでは、特にネットワークがボトルネックになってくるので、ほかの典型的なアプリと比べても少なくないネットワーク帯域が必要だと思います。"
Hideyuki Tanakaさんのツイート: ">中国のスパコンは段ボール製なのか、「神威太湖之光」や「天河2号」は一度も全体を稼働させたことがありません 全体というのがよくわからないですが、昨今の巨大システムでは常時数%は死んでいるのを許容する方向性なので、そういう意味ではそうかもしれないけど、基本的には全系動いてましたよ。"
Hideyuki Tanakaさんのツイート: ">一つ一つのユニットが低性能でも数をたくさん並べれば数字が大きくなるのがTOP500で、しかも実際にユニットが存在するか誰も確かめていないのです。 二度目だけど、これは嘘です。"
Hideyuki Tanakaさんのツイート: ">もうひとつのGreen500はユニット単位の省エネや計算速度を競うもので、実はこれが本当のスパコンの性能です。 Green500のスコアっていうのは、Top500のスコアを単に消費電力で割ったものです。Top500が無意味というなら、自動的にこれも無意味です。この人Green500のことわかってないでしょ"
Hideyuki Tanakaさんのツイート: ">中国スパコンがやっているのは「市販のパソコンでも数多く並べれば合計で世界一」のような手法で、だから段ボールコンピューターになります。 そういうのやってるのはXeonとV100ならべてるやつに行ってあげて欲しくて、中国のTaihuLightは独自アーキの独自チップ並べてるからその批判はおかしい。"
Hideyuki Tanakaさんのツイート: ">日本がやっているのはユニット単位の性能を向上させて少ないユニット数にする手法で、このほうが実用的です。 そんなことはやっていませんね。ポスト京のチップを一度見てみるといいですよ…。"
Hideyuki Tanakaさんのツイート: ">Green500は日本製のスパコンが上位を独占していて、すべてが実際に稼働し利用されています。 これは好ましいことだし、まあそうあってほしいんだけど実際にはその中の最大級のシステムが、なぜか殺されましたね…"
Hideyuki Tanakaさんのツイート: ">中国の「神威太湖之光」や「天河2号」は先ほど書いたように製造以来現在まで、一回もユニット全体を稼働した事がありません。 天河2号はしらないけど、神威太湖之光は実際に動いていましたよ。まあこんな記事に対して超絶今更だけど、一体どういう根拠なんだろ。"
Hideyuki Tanakaさんのツイート: "(´・_・`)いやしかし一行ごとにでたらめが書いてあるこの記事やばすぎひん?"
Hideyuki Tanakaさんのツイート: "いや大げさじゃなくまじで1行ごとにうそが書いてあるんだけど、このブログのほかの記事はどうなんだ(´・_・`)…詳しくない分野はわかんないから、詳しくない分野でこういうブログがあるんじゃないかと思うと、怖くなってきたゾ…(´・_・`)"
Hideyuki Tanakaさんのツイート: "よく誤解される?のか変なプロパガンダ流してる人がいてそれの影響受けてる人がいる?のか知らないけど、Top500が単純な演算の繰り返しで、Graph500が複雑なタスクとかいうのは、全然そんなことはなくて、Top500はLU分解、Graph500はBFSというどっちもシンプルなアルゴリズムで、"
Hideyuki Tanakaさんのツイート: "1コアCPUで動かすならどっちも10行程度のCのコードで書けるものです。並列化する際にボトルネックになるところが違ってくるので、計算機のどの辺が一番先に問題になってくるのかを測る指標の一つとして使われとるっちゅー話ですよ。Graph500が一番ボトルネックになるのはネットワークですね。"
Hideyuki Tanakaさんのツイート: "Graph500では演算性能はほとんどいらないので、スコアはシステムの総インターコネクト帯域にほぼ比例すると思われて、京はそういう意味では6次元メッシュトーラスのTofuがいまだに世界1という話で、ほかのスパコンはそこまでのネットワーク帯域はいらないだろうという判断になっているという話では"
Hideyuki Tanakaさんのツイート: "というか、Graph500、いったいどういうアプリに関係する性能なのか(ビッグデータ云々と宣伝してるけど、こんな恣意的に並列化しやすい形した無向グラフを単にBFSすることなんてあるか?)謎なのか?、500という名前なのにエントリーが248しかないのを何とかしてあげて"
Hideyuki Tanakaさんのツイート: "単一始点最短パスの要するに枝に重みがついたバージョンも最近できたんだけど、エントリー数が21しかないので何とかしてあげてほしい(´・_・`)"
Hideyuki Tanakaさんのツイート: "Green Graph のエントリー復活してた(´・_・`) IBM Moscow && MSU Alex Kolganovなるサイトのマシンがトップなのか(´・_・`) https://t.co/eE7RtJJZZh"
Hideyuki Tanakaさんのツイート: "しかしスケール30(わずか10億頂点)、1ノードのマシンがトップ…というかランキングのほとんどが1ノードっていうの、完全にコンセプトとして破綻していますよね…"
Hideyuki Tanakaさんのツイート: "10位にマックブックプロが入るスパコンベンチがあるらしいな(´・_・`)… "
Hideyuki Tanakaさんのツイート: "スパコンの実用性能ランキング10位にマックブックプロが入ったらしい(棒)"

くそでかいイリエワニがみたい!@転職活動中さんのツイート: "https://t.co/7Yx3Y2RYSr ベンチマークのとり方うんぬんの話が出たので、そっとこれを置いておきます。"
How to run a stable benchmark // Speaker Deck
SODA Noriyukiさんのツイート: "RTしたスライドにもちょっと出てるけど、環境変数の量の違いでスタックのアライメントが変て性能が変化したみたいな話もあったなあ。"
前田敦司さんのツイート: "https://t.co/dxsyGqWs34 に同じような話があります.(図1(b)や,4.2節)… "
Producing Wrong Data Without Doing Anything Obviously Wrong!
Hideyuki Tanakaさんのツイート: "どのベンチにするかと言っても、結局は理論演算性能とB/F比とネットワーク帯域のバランスで一番先にボトルネックが来たとこに引っ張られるだけなんだから、この三つの要件どこが一番厳しいのかもアプリにもよるから、どれそれが実アプリ性能だなんて宣伝してたらそれは全部嘘ですよ。"
Green500 Lists | TOP500 Supercomputer Sites
TOP500 Lists | TOP500 Supercomputer Sites
SODA Noriyukiさんのツイート: "今回のIntelの件で言うと、firmwareの更新前と後での比較なので、ハードウェアその他含め厳密な比較が容易にできるのでこの論理じゃ弁護できないと思う。… "
SKSの申し子さんのツイート: "ベンチマーク非公開ねぇ.俺も反対ではあるんだけど,ベンチマークって正確に取るのって難しいんですよね.特に世の中には他の人が再現出来ないベンチマーク記事を公開する人はそれなりにいて,更にセットアップとかが間違っていることが結構あって,そしてそれを信じてしまう人が結構いる.悩ましい…"
SODA Noriyukiさんのツイート: "ベンチマークの取り方が悪いのって確かにホントに多いんだけど(例えばディスクベンチでディスクじゃなくて、カーネルの持つpage cacheからユーザ空間へのメモリコピー性能計測しているのってホントによくある)、今回のケースでは、そういうベンチマークで差がでてもやはり問題なわけで。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Windows系でも、本当に多いのですよね、これ。 さらにキャッシュの影響を排除した後も、HDDだと物理的なアロケート位置の変化=速度変化、SSDだとユーザ要求以外の処理がSSD内部で不定期に発生(+温度問題)などは、試行回数を増やして誤差を減らすしかなかったり。… https://t.co/zRdsLEqCCz"
SODA Noriyukiさんのツイート: "ディスクの割り当てブロックの問題は、umount して毎回 newfs して mount し直してから測るとか、UNIX系なら raw device で計測するとかいろいろあるけど、SSDのケースは厳しいなあ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "HDD/SSDのデバイス性能を調べたい時はその通りなんですが、一方で、コピーソフトの性能を調べたい時は、真っ新な状態でのテストだと実用的な計測になりづらいんですよねぇ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、適度に使用したファイルシステムのrawブロック群を、ddで毎回復元してから…が最強なんでしょうけど、1回のテストに掛かるコストが厳しい(笑)"
SODA Noriyukiさんのツイート: "newfsまでするのは稀で何回か測ってバラつきが少なく整合性のある結果が出ればそれでヨシにしちゃうことが多いです。自分で測る時はraw deviceに対するバンド幅/レイテンシ計測みたいに簡単に測れてベースラインとして使える値は必ずとるんですが、人にお願いするときにはそれも面倒なことがorz… https://t.co/uxQe5y68ez"
Huawei製スマホで3DMarkの自動ブーストが発覚 - PC Watch
OPPO製スマホのアプリ名による3DMark最適化は「ある意味妥当」 - PC Watch
本の虫: コンパイラーを負かす
404 Blog Not Found:アルゴリズム百選 - 迷ったらbenchmark
Kazuho OkuさんはTwitterを使っています 「ベンチマーク取る際に「CPUの割り当てを〇〇にして、クロックを△△Hzに固定します」って言うと、その時点で「えっ」って言われることがあって、こっちが「えっ」ってなる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ロードアベレージ見る場合とかクロック固定必須じゃないですか...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ひさしぶりにテスト機にログインして「おっそいなー」とか思ってると、CPUコア1個のみ、1GHz固定、みたいな状況のまま、前回の実験から放置されてるとか、ありがち」 / Twitter

B/F比

B/f値とキャッシュ | Pravdaの日記 | スラド
チュートリアル資料2.key
第一原理計算入門 計算機科学 理解への道
SC11 - 京の技術を向上させた富士通の新スパコン「PRIMEHPC FX10」 (1) ピーク演算性能が前世代比で約2倍に向上したSPARC64 IXfx | マイナビニュース
0613watanabe.pdf
どの分野の開発難易度が低いのか?(最新HPC事情に思うこと。)
SODA Noriyukiさんのツイート: "そりゃ勿論、メモリバンド幅を向上させること自体は(それが妥当なコストでできるなら)望ましいことだからですよ。京の次世代がHBM載せるのもそういう理由。ただし、コストは上がるし、トレンドとしてメモリバンド幅を要求するアプリは徐徐にHPCの主流から外れていくという話です。… https://t.co/5FHRUypJb9"

ptrace

るくすさんのツイート: "多分ptraceレベルで出来ると嬉しいのって、breakとかmalloc/freeみたいなツールによって決められたタイミングごとのインスペクトを回避してオレオレができちゃう所だと思っていて、それってなんだろうなぁ...結局よくできたトレーサーで出来ちゃうんじゃないの?とか"
Kazuho Okuさんのツイート: "言語によらず手軽に障害解析できて便利… "
るくすさんのツイート: "そこを推すのもありですねぇ… "
Kazuho Okuさんのツイート: "あとはオーバーヘッドが小さくて実環境で使えるところですかね。 https://t.co/AJFflFrYok にあるように、プロファイルを取り続けるとか… "
DeNAインフラの今とこれから - 今編 -
るくすさんのツイート: "そう。インフラ屋さんとかいかにもケースに応じたプロファイラとか書いてそうだなと思ってたんだけどやっぱやってんすね"

OProfile

Shirouzu Hiroaki(白水啓章)さんのツイート: "ぬぬ、最近は oprofile を debian の apt 経由でインストールできないのか…"
OProfileの使い方備忘録 - hogeなlog
Oprofileによるボトルネックの調査 メモ - Qiita
第23章 OProfile - Red Hat Customer Portal
About OProfile
OProfile - A System Profiler for Linux (News)
Oprofile | IT用語辞典 | 大塚商会
Oprofileを使用してプロファイルを取る | 組み込みLinuxのArmadilloサイト
OProfile - Wikipedia
OProfile | 日経 xTECH(クロステック)
openSUSE 13.1: 第8章 OProfile—システム全体に対するプロファイラ

ipftrace

ipftrace: A Linux Function Tracer for Network People - Speaker Deck
FadisさんはTwitterを使っています 「SystemTapは指定したカーネル関数の実行を見張るが対象がはっきりしないと使いにくい→ftraceはカーネル全体の関数を見張れるが、出力が多すぎてつらい→ネットワーク屋が見たいのは特定のパケットが通った関数だ→ipftrace #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「ipftraceの戦略: Linuxでパケットを処理する関数はだいたい引数にsk_buffをとる→この構造体を引数にとる関数を全部フックする→ターゲットのパケットにマークをつけておいて、フックはsk_buffにマークが付いていたら出力 #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「iptablesのアクションでマークをつけるからiptablesのルールでいろんなマークのつけ方が出来るのめっちゃ賢い #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「Linuxカーネルはキャッシュヒット率を上げるためにsk_buffをできるだけ使いまわそうとするため、アドレスが再利用されてトレースが続いてしまう事がよく起こる、と #kernelvm」 / Twitter
YutaroHayakawa/ipftrace2: A Linux function tracer for network people

SystemTap

SystemTap - Wikipedia
SystemTap とは何ですか? どのように使用しますか? - Red Hat Customer Portal
SystemTap ビギナーズガイド
SystemTap
第14回「 SystemTap ノススメ」 | NTTデータ先端技術株式会社
SystemTap メモ - myokotaの日記
Linux のイントロスペクションと SystemTap
systemtapを使った動的追跡 | Let's Postgres
SystemTap - Wikinote
Linux向け追跡ツール「SystemTap 4.2」リリース | OSDN Magazine

DTrace

まさみさんは語りたいさんのツイート: "モダンと言っていいのかどうか・・・方向性が違うのだと思う(誰が使うかを含め)。ちなみにR社内ということは、Linuxに移植されたDTraceと言ってるのはSystemTapのDTraceラッパーですね。DTraceスクリプトをSystemTapスクリプトに変換してから使う。… https://t.co/wRpBgI7kYv"
まさみさんは語りたいさんのツイート: "これややこしくて、実はO社の人は今でもDTraceをLinuxに移植しようとしているんです。あとDTraceはアドミンがシステムモニタをスクリプト化するためのツールだけど、Linuxのftraceとかはカーネルハッカーがデバッグするためのツール。eBPFはその中間かなあ。"
まさみさんは語りたいさんのツイート: "なぜこうなるかと言うと、DTraceはトレースするイベントの種類が規定されている(そうでないとスクリプトが環境依存になってしまう)けど、Linuxはカーネル実装をコロコロ変えたいから、そこで代表的な挙動が規定されてしまうと困るわけです。デバッグ用途ならそういう規定は緩くてもいい。"
まさみさんは語りたいさんのツイート: "つまりOSの代表的な挙動というものを想定するか、それともデバッグ用途と考えて挙動の規定はいつでも変わると想定するか(あくまで可能性や自由度の話)、それによってツールの性質が変わる。挙動を想定する場合、実装にまで踏み込んだイベントは規定できない。"
まさみさんは語りたいさんのツイート: "でも実装に踏み込んだイベントを導入しなければOS自体のデバッグ用途には使えないので、どうしても2種類の実装が必要になってくる。eBPFやSystemTapはスクリプト言語は規定するけど、イベントは規定していないはず。これは苦しい解で、実装が変わるとスクリプトが動かなくなる可能性はある。"
まさみさんは語りたいさんのツイート: "今私自身はftrace/probe-eventのメンテナンスをしているけど、これは本当にデバッグ用途だけを指向しています。OS実装のデバッグをするためにbreakpointを追加したいという用途。はっきり言ってアドミンには不向きなツールだけど、OS開発には役に立つ。"
まさみさんは語りたいさんのツイート: "逆にアドミン向けにDTraceみたいなのが必要になるとは思うけど、それをネイティブに実装するか、SystemTapやeBPF上に実装するかは、どれだけネイティブ実装するメリットがあるかという話になるんじゃないだろうか。(個人的にはいくら聞いてもそのメリット部分がよくわからない・・・)"
Takafumi Yonekuraさんのツイート: "Dtraceでdebugに使うのはほぼfbtプロバイダ だけで、スクリプト用途はシステム系のプロバイダで割とうまく共存してると思います… "
Takafumi Yonekuraさんのツイート: "でも、fbtプロバイダは若干貧弱なので、もう少しリッチな独自プロバイダが欲しいな、となると途端にめんどくなる印象。"

blktrace

blktrace User Guide
VOYAGE GROUP エンジニアブログ : blktraceによるI/Oトレース
6.3. ツール
blktrace(8) - Linux manual page
Etsukata blog: blktrace で block IO の分布を可視化する
Disk I/O性能測定するときに活躍する道具たち - お菓子食べる部

ftrace

Qiita

ftraceについての勉強メモ - Qiita
Ftraceでカーネルの一部の処理を追いかける方法 - Qiita

Twitter

まさみさんは語りたいさんのツイート: "ftracetestで出来ることに限界があった。(bpfとperf関係はツールが必要・・・)"
まさみさんは語りたいさんのツイート: "うーん、ftrace内部をkprobeでトレースしてみてるけど、イベント記録中の処理からは多重にイベント記録が出来ないのか。取り敢えず各所に置いてみてどこを経由してるかだけでも調べるなど。"
まさみさんは語りたいさんのツイート: "ftraceをコンテナ内部から操作した場合、pid filterが使えないことに気がついた。(当たり前だが) コンテナ内部から使えちゃう時点で問題な気がしなくもない。"
まさみさんは語りたいさんのツイート: "clangでLinuxのクロスコンパイルする話を聞いていたらftrace on armを有効にするとビルド失敗するっていう話があって、それmcountのシーケンスがちゃうからやでーっていうコメントしてた。"
まさみさんは語りたいさんのツイート: "recordmcount.cっていうベタなプログラムを走らせて、各アーキテクチャ毎のmcount呼び出しシーケンスを確認しながらnopに変えるという処理をしているけど、コンパイラ実装が違うとシーケンスが違うから失敗する。あとはclangがどういうコード生成するのかに依存。"
まさみさんは語りたいさんのツイート: "clangを使ってビルドしても、自動的にlldは使われない(gccのldが使われる)ので並列リンクは実行されないけど、誰かがそれとは別にlldを使うパッチを書いているらしい。探さないと(主にDeveloperBox向けに)"
まさみさんは語りたいさんのツイート: "ftraceの中でmutex依存関係の地獄に悩まされている。リソースをget/putしない造りだからだ・・・。"
まさみさんは語りたいさんのツイート: "まあ、Linuxだと簡単な統計データを取る用途だったら、DTrace要らないからなあ。既にevent-based histogramはftraceに実装されている。"
まさみさんは語りたいさんのツイート: "kprobesをworkqueue関係の関数に突っ込んで10分ぐらいしたらrcuでエラー起きるっていうバグが報告されているんだけど、どうもredhatカーネルの上だけで起きているのではないかという気がする。あとこのあたりの関数は突っ込んでも全てftraceになるんだが・・・。"
まさみさんは語りたいさんのツイート: "念の為全部+5したアドレスでもプローブしてみた。10分待ってみよう。"
まさみさんは語りたいさんのツイート: "これ豆知識だけどx86-64のftraceは基本的にfentryの機能のため関数の最初5バイトにjmp命令が入るので、kprobesでその5バイトを避けると確実に命令境界になる上ftraceの対象にならない。"
Kazuho Okuさんのツイート: "trqce-bpfccはコマンド指定して動かすオプションがないからbpftraceをsnapで入れたらオプションはあるけどexecveが見つからんとか言うから自分でビルドしてデバッグするかと思ったらubuntuのclangの付属ファイルが足りなくてupgradeで直る予定って書いてあったからアプグレしたけもダメ"
Kazuho Okuさんのツイート: "MySQL が Userspace DTrace Probe を deprecate する決断をした翌年に linux 界隈が bpftrace で(DTrace 2.0だって)盛り上がるの皮肉だなぁ"
Kazuho Okuさんのツイート: "bpftrace、masterで-cオプションがだいたい動くんだけど、probeが有効になる前に実行開始するから取りこぼしが発生してて、単純にexecveを遅延するとプロセス起動前だからprobeがセットできなくて、つまりはptraceでexecveタップしてほげほげやればいいんだけどめんどくさい"
まさみさん⋈語りたいさんはTwitterを使っています: 「ふーむ、ClangにShadowCallStackという機能があるのか。これのkernel implementationでkretprobesが使えなくなるっていう話が出ている。 https://t.co/a1DWiGQGYt」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「スタックとは別の場所に影のコールスタックを用意しておいて関数呼び出し元を記録、戻る時にスタックを使わず、影のコールスタックを用いるとのこと。あれ?これfunction graph tracerじゃね?」 / Twitter
function graph tracer - Google 検索
まさみさん⋈語りたいさんはTwitterを使っています: 「kprobesを関数の頭にセットすると自動的にftraceが使われる機能は実装されてる。ただしkprobeの呼び出しに変更するためのトランポリンが使われる。今回のは、これをbpfにも適用できるよう変更したってことかな。多分レジスタセットを作らずにBPFで使うcallar savedレジスタだけ保存するのだろう。」 / Twitter

トレーサ関連に大きな進展、ftraceがデファクトに?(1/2) - @IT
3.8. レイテンシ追跡用の ftrace ユーティリティの使用
6.5. ftrace
https://www.kernel.org/doc/Documentation/trace/ftrace.txt
組み込み Linux - ftraceのトレースログをお持ちいただくには
ftraceの仕組みとアーキテクチャ - テストステ論
第4回 Linuxイベントトレース最前線:LinuxCon Japan 2013 Preview|gihyo.jp … 技術評論社
Ftrace と Systrace - steps to phantasien
perf, ftraceのしくみ - 睡分不足
2019年4月26日 関数トレースをグラフィカルに実行する「KernelShark」,正式リリースに向けロゴ募集中:Linux Daily Topics|gihyo.jp … 技術評論社
Fadisさんのツイート: "KernelShark初の安定版となるバージョン1.0が近くリリースされるらしい。KernelSharkはLinuxカーネルのftraceをtrace-cmdでダンプした物をGUIで表示するツール。カーネルの関数のcallやreturnがいつ発生したかをズームしたりフィルタしたりして眺めることができる https://t.co/xpXTZdD2jE"
KernelShark 1.0 Soon Being Released For Visualizing "Trace-cmd" Linux Kernel Tracing - Phoronix
perf, ftraceのしくみ - 睡分不足 (1)

strace

strace コマンドの使い方をまとめてみた - sonots:blog
第11回「 strace ノススメ」 | NTTデータ先端技術株式会社
straceコマンドの使い方 - Qiita
straceを使ったデバッグ | OSDN Magazine
strace - Wikipedia
straceがどうやってシステムコールの情報を取得しているか - ローファイ日記
プログラムから呼ばれるシステムコールを確認する:strace:Technical tips:Media hub
よく使う strace のオプション - Qiita
kati とか依存関係とか strace とか - straceが遅い
naoさんのツイート: "Linuxで動くとあるシミュレーターの評価版がアホほど遅くて評価にならないのでstraceかけて眺めてみたら馬鹿みたいにusleepを発行。ptraceで特定のパターンのみusleepを無視するラッパを作成・実行して本来の性能なら問題ないと確認できたのでめでたく購入、ということがあった。"
Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する - hibomaの日記
strace 5.2 で追加された -z -Z オプション - hibomaの日記
strace -c を使う際に -w オプションを使い分けよう - hibomaの日記

ltrace

dlopen()した共有ライブラリ内の関数呼び出しをltraceする - Qiita
Debian -- sid の ltrace パッケージに関する詳細
ltrace で共有ライブラリの関数呼び出しをトレースする - bkブログ
tips – ltrace で共有ライブラリの関数呼び出しをトレースする|てくめも@ecoop.net
ltrace - Wikipedia
ltrace(1): library call tracer - Linux man page

straceとltraceでトレース - Szarny.io
AWSがElasticsearch Serviceに分散トレースを追加
sltrace.dvi
第17章 システムモニタリングユーティリティ
IBM Knowledge Center - 一般的なデバッグ手法

perf tools

perfの使いかた
perf - Wikipedia
perf使ってみた - Qiita
:matsuu:さんのツイート: "Linux perf profilerのGUIクライアントらしい。ほう / “hotspot - a GUI for the Linux perf profiler - KDAB” https://t.co/2GoKwlWmGs"
hotspot - a GUI for the Linux perf profiler - KDAB
Linuxのperfプロファイラ向けGUI「hotspot 1.0」が公開 | OSDN Magazine
Dockerコンテナが遅くなるもう一つの原因 | POSTD
まさみさんは語りたいさんのツイート: "バックトレースも一緒に取る? ちなみにどのロックインスタンスが、というのはたとえアドレスが出たとしても難しい。その場合そのインスタンスに関わる別のオブジェクトのインスタンスを調べないといけなくて、その意味をさらに追いかけないといけない。… https://t.co/SzF0ktKSoI"
まさみさんは語りたいさんのツイート: "perf probeでinline関数をプローブすると、場所的にはcallerの方の行が表示されちゃうのか。ややこしいな。"
Linux perf Examples
Kazuho OkuさんはTwitterを使っています 「perf って定期的にプロセス止めてスタックをトラバースしてるのかな。だとすると遅いCPUでは、スタックが深い奴ほど重たく表示される?」 / Twitter
成瀬さんはTwitterを使っています 「@kazuho 多分途中まで取ってあとで合成してるんじゃないかなって気がするのと、call-graphオプションでスタックトレースの取得方法を選べますが、dwarfの場合は遅いかもですがlbrは速いです https://t.co/X32R7pRx0X」 / Twitter
perf-record(1) - Linux manual page
てらモス♋️さんはTwitterを使っています 「perfがカーネルに依存しているのはカーネルがCPUのPMUの違いを吸収していてくれるからなので、コンテナ内で使うにはむしろnvidia-smiみたいにホスト側のperfコマンドをコンテナ内から見えるようにするのが筋ですね…(´・ω・`)」 / Twitter
Perf Tutorial 1
てらモス♋️さんはTwitterを使っています 「perfのプロファイラとしての利点は元のプログラムに変更を加えずにCPU側から情報を取ることで本来の状態に近い状態でプロファイルが取れる、そもそもCPUしか知り得ないキャッシュミスとかの情報をとってこれるなどがあるはず(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「gprofみたいに-pgフラグをコンパイル時につけることで関数呼び出しにフックをつける見たいな事をせずに済むわけだ...」 / Twitter
てらモス♋️さんはTwitterを使っています 「逆にgprofはあくまでglibcまでのレイヤーで頑張るのでユーザー空間のみで完結するのが利点と言えるですかね?」 / Twitter

バウンド

:matsuu:さんのツイート: "CPUバウンドならWSLの方が高速、I/OバウンドならVirtualBoxの方が高速。なるほど。 / “Windows 10 WSL vs. VirtualBox Ubuntu Performance On An Intel C…” https://t.co/dFgfewLApr"
チャネル・コントローラ - Wikipedia
コンピュータ・アーキテクチャ - Wikipedia
CPUバウンド - 英和辞典・和英辞典 Weblio辞書
CPU boundの意味 - 英和辞典 Weblio辞書
I/O boundの意味 - 英和辞典 Weblio辞書
サーバ負荷を確認する方法 - Qiita
CPUバウンドとGPUバウンド – ひにけにGD
Node.js - nodeでのCPUバウンドな処理、分散処理への考え方について(child_processを使う?clusterを使う?)(31995)|teratail
CPU バウンド・サービス
コマンドによる「負荷」の原因切り分け
I/O バウンド・サービス
サーバ/インフラを支える技術4 Linux単一ホストの負荷を見極める 2 負荷とは何か - by shigemk2
Clojureのいろんな並行処理の使い分け - tyano's Techlog
サーバが重いときの対策メモ - 目の前に僕らの道がある

bpftracer

高梨陣平さんのツイート: "DTrace 2.0なる、bpftraceについての紹介記事。freeBSDのbpfがeBPFとしてLinuxに搭載。DTraceの大ファンがそのVMを利用する形で一から実装。まだDTraceの全ての機能がある訳ではない。歴史の部分が面白い。Sunが体力に物を言わせてDTraceを実装するもLinuxはRHが先行するも普遍的なものが無しに。… https://t.co/XkwfmBxF3q"
まさみさんは語りたいさんのツイート: "トレーサでスクリプト書きたい場合はbpftraceがメインになるだろうなあ。stapは結局カーネルと一体化していないし。ただ、トレーサって実装が必ずカーネルと乖離するので、その上でどうマネジメントしていくかは思案のしどころ"
まさみさんは語りたいさんのツイート: "ところでbpftracer、ローカル変数アクセス機能ちゃんとつけたんだっけ?いつも忘れてしまう。Huaweiの人を昔手伝った記憶があるんだけども・・・。"
まさみさんは語りたいさんのツイート: "Diamonとかいろいろな動きがあるんで、トレーサは群雄割拠している感じがすごい。基本的にはみんな協力していて、ユースケースが違うだけなんだけど。"
まさみさんは語りたいさんのツイート: "この前もなんかプローブポイントを設定すると、バージョンが変わったりコンフィグ変わったりすると使えなくなるんだけど、どうしたらいい?とか聞かれたから、それはstable ABIじゃないし、ソースコードが変わると変えざるを得ないよね、っていう話をした。"
まさみさんは語りたいさんのツイート: "Dtraceに引き続き、SystemtapもeBPFベースに実装を変えてくれないだろうか・・・。まあそうするとStapgamesは多分全滅すると思うけど。"
まさみさんは語りたいさんのツイート: "stapgamesで厄介なのはループを多用するっていうところだから、その点をなんとか出来れば解決できるのではないか。"

BPF

MS

Making eBPF work on Windows - Microsoft Open Source Blog
microsoft/ebpf-for-windows: eBPF implementation that runs on top of Windows
FadisさんはTwitterを使っています 「MicrosoftがWindowsのカーネル空間でeBPFの実行を試みているぞ、という話。eBPFはLinuxカーネル空間に専用の中間コードで書かれた命令列を送って実行する為の仕組み。ユーザ空間プロセスのように空間の分離は行われないが、静的解析によってカーネルを破壊しない事を保証する https://t.co/fS2Op5X22p」 / Twitter
Microsoft Bringing eBPF Support To Windows - Phoronix
FadisさんはTwitterを使っています 「eBPFのフルネームはextended Berkeley Packet Filterで、元になったBPFはパケットフィルタのルールを記述するために考え出された物だが、カーネルの振る舞いを容易に拡張できるという特徴はあまりにも便利な為、今日のLinuxカーネルではネットワークに限らずeBPFを挟める箇所が大量に用意されている」 / Twitter
FadisさんはTwitterを使っています 「しまった、BerkeleyでもPacketでもFilterでもないeBPFは今はもうextended Berkeley Packet Filterの略じゃなくて「eBPF」という技術用語なんだった…」 / Twitter
Miura HidekiさんはTwitterを使っています 「セキュリティーのために(おそらく)消えてしまった(多分)ActiveMessageが名前を変えてまだ生きているのか。胸熱」 / Twitter
Miura HidekiさんはTwitterを使っています 「静的解析でも抽象解析でも何でも使ってセキュリティーを担保したActiveMessageは分散環境のメッセージパッシングの中で最速だと思う。」 / Twitter
Miura HidekiさんはTwitterを使っています 「Morris Worm、bitの解説記事を見て、すごく感心した記憶がある」 / Twitter
WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ - Publickey
MicrosoftがeBPFのWindowsへの導入に向けて取り組んでいる

libbcc

Kazuho OkuさんはTwitterを使っています 「libbcc 使って h2o/quicly/picotls のイベント記録して通信パターンの可視化ツールに放り込んでトランスポート層のデバッグやる話 / https://t.co/TbzssfjHPX」 / Twitter
Debugging QUIC with H2O and QLog | Fastly
libbcc - Google 検索

睡分不足

BPFプログラムからカーネル内のデータ構造にアクセスする方法 - 睡分不足
BPF_PROG_TYPE_RAW_TRACEPOINT (raw tracepoint) について - 睡分不足
BPFプログラムからカーネル内のデータ構造にアクセスする方法 - 睡分不足
BPF_PROG_TYPE_RAW_TRACEPOINT (raw tracepoint) について - 睡分不足
macでbpftraceを試す - 睡分不足
bpftrace 2020 - 睡分不足
SpectreとeBPF - 睡分不足
cBPFプログラムをLLVM IRに変換する - 睡分不足
LinuxのBPF : (1) パケットフィルタ - 睡分不足
LinuxのBPF : (2) seccompでの利用 - 睡分不足
LinuxのBPF : (3) eBPFの基礎 - 睡分不足
LinuxのBPF : (4) ClangによるeBPFプログラムの作成と,BPF Compiler Collection (BCC) - 睡分不足
LinuxのBPF : (5) eBPFによるLinux Kernel Tracing - 睡分不足

資料

mumumuさんはTwitterを使っています 「今からeBPFで性能解析とかで遊ぶならどの資料読むのが最短なんだろうか?」 / Twitter
竹さんはTwitterを使っています 「@mumumu_vm BPF Performance Toolsとかは?」 / Twitter
竹さんはTwitterを使っています 「@mumumu_vm 一方でくそ分厚いのでやりたいベクトルが決まってるならiovisorやbccのissueやフォーラムとかで調べた方が早かったりするかなーー」 / Twitter
竹さんはTwitterを使っています 「@mumumu_vm もし全然書いたことなくよくわかってないなら今年のebpfサミットのそれっぽいタイトルのスピーカーの話を聞いてから進めたら楽かも https://t.co/9qzywBBDPj」 / Twitter
eBPF Summit 2020
mumumuさんはTwitterを使っています 「@takemioIO うおー,ありがとう.とりあえず何ができるかわかってないので,本買ってみます」 / Twitter
まちカドおるみんさんはTwitterを使っています 「Brendan Gregg 氏の著作では」 / Twitter
mumumuさんはTwitterを使っています 「@kotatsu_mi あざます,さっそく買って読んでみます!!」 / Twitter

bcc/eBPFのtraceの使い方を調査 - ソフトウェアプラットフォーム屋のメモ帳
bcc – BCC – BPFベースのLinux IO分析、ネットワーク、監視などのためのツール – GitHubじゃ!Pythonじゃ!
BPFによるパケットトレース――C言語によるBPFプログラムの作り方、使い方 (1/2):Berkeley Packet Filter(BPF)入門(5) - @IT
Berkeley Packet Filter(BPF)入門 - @IT
Cloudflare architecture and how BPF eats the world
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm BCC - BPF Compiler Collection https://t.co/jtyVfOQPY6」 / Twitter
brendangregg/bpf-perf-tools-book: Official repository for the BPF Performance Tools book
iovisor/bpftrace: High-level tracing language for Linux eBPF
FadisさんはTwitterを使っています 「eBPFをコンパイルしてカーネルに流すBCCはPythonでラップされていてPythonから使うのが一般的だけど、RubyistだからRubyラッパーを作ってRubyから使ってみた、と #kernelvm」 / Twitter
udzura/rbbcc: BCC port for MRI - this is unofficial bonsai project.
BCC(BPF Compiler Collection) for Ruby - Speaker Deck
FadisさんはTwitterを使っています 「LinuxのBerkeley Packet Filter(BPF)の実行環境は元々パケットフィルタをユーザ空間で書いてカーネル空間で実行するために導入されたが、カーネル空間に任意の処理を安全に突っ込めるのはとても便利なので今日ではカーネルのありとあらゆる任意の処理を書きたいところに応用されている。」 / Twitter
FadisさんはTwitterを使っています 「色々な用途で使うとBPFの中でブロックする必要がある処理を書きたくなってくるが、現在のBPFの実行環境は処理を中断できるように作られていない。そこで、一部の用途に限りBPF_F_SLEEPABLEをつける事で中断可能な実行環境で実行されるようにしよう、という提案がなされている https://t.co/0ijGZ9cpVg」 / Twitter
FadisさんはTwitterを使っています 「中断可能なBPFが再開時にRCUでアップデートされるリソースの古いデータを握り続けていると解放済みのデータを参照してしまうため、中断可能なBPFでは代わりにリソースに対するアクセスに制限がかかり、BPFのロード時のチェック内容が変化する」 / Twitter
BCCでBPF toolsの開発をするための基礎知識 - Islands in the byte stream
h2ologにみるBPF toolsの構造と設計 - Islands in the byte stream
FadisさんはTwitterを使っています 「Linux 5.13から使えるようになった「BPFからカーネルの関数を呼ぶ機能」についての話。eBPFはカーネル空間で実行されるものの、従来カーネルの関数を呼べないようになっていた。Linux 5.13からeBPFを実行するcontextが認める関数に限り、eBPFの中から呼べるようになる https://t.co/GTHYT0g4Qq」 / Twitter
FadisさんはTwitterを使っています 「これは「BPFでTCPの輻輳制御を使うのに、カーネルの実装が使えずBPF用を実装する必要があるのが辛い」問題を解決する為に入った物だが、カーネルの関数は将来ABI互換を壊さない事を保証していない、雑なcontextがチェックを省略するとカーネルの万物がユーザ空間に公開される等色々な懸念が生じている」 / Twitter
GDBがeBPFのデバッグをサポートした
GNU Debugger Adding eBPF Debugging Support - Phoronix
Takekazu Omi 🖖さんはTwitterを使っています 「USENIX LISA2021 BPF Internals (eBPF) https://t.co/7zLiXWwOJy eBPFは、BPFと呼ばれるようになりました。 https://t.co/OrErxaZ0j0」 / Twitter
USENIX LISA2021 BPF Internals (eBPF)
RustでLinuxカーネルの機能を拡張しよう!Linuxカーネルの機能を安全に拡張できるeBPFのコードはC言語で実装する必要があると知り、がっかりしているクラウドネイティブ 世代の皆様に朗報です。 | nttlabs
daem0nc0reさんはTwitterを使っています 「eBPFを用いたRootkitの検知手法。eBPF for Windowsを使えばこの手法がWindowsに使えるのかは気になるところ https://t.co/2bqLKu4KFM」 / Twitter
Detecting Kernel Hooking using eBPF | pat_h/to/file

Twitter

Intel PCM

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 64bitでドライバ開発は署名問題で若干面倒というのはあるが、それ以上に、そもそもIntel PCMをVS2017+WDKでビルドしようとすると、あちこち手直しが必要で骨が折れる。 Intelさん、最新VSに追随する気が薄いのかな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "リリースビルドプロジェクトに_DEBUGが付いていたり、CLR必要なものとそうでないものが入り混じっていたり、warning大量発生したり…linuxやMacと共通コードしようと頑張っている風だが、だったら極一部だけCLR利用とか中途半端感が。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ようやくIntel PCMドライバをカーネルに入れて、関連サービスも登録して、パフォーマンスモニタで監視。だが、いまのところ決め手になる情報は取れていない。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "上記の図を解説すると…。 キャッシュライン版とAVX2版のIPCは同レベル。 そして、AVX2のほうが L2/L3のキャッシュミス率はずっと高い。 しかし恐らくReadキャッシュのために実効的なペナルティとしては、キャッシュライン版の方が影響が大きく、AVX2の方が2倍高速だった、というところ。… https://t.co/TwTUKx387Z"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、この時点ではメモリ帯域用のドライバが入っておらず(これはgithubのgoogle配下にあるsysを入れる必要)、Read/Write帯域は0のままだった。"

とみながたけひろさんのツイート: "いまのコンパイラって、コンパイル後の実行結果をフィードバックする仕組みが弱いんですよね。プロファイルガイディッドとかゆーてもループ回数とか関数呼び出し回数とかぐらいで、命令スケジュールとかデータ構造を性能カウンターみながら変えるとかできないので、、、… https://t.co/xjQglfDetN"
まさみさんは語りたいさんのツイート: "おっ、やはりそうなんですね。まあ、プロセッサモデルで異なる最適化手法までバイナリに適用し始めたらそれはそれで・・・。さらに、データ構造は流石に勝手に変えられないというか(笑)… "
とみながたけひろさんのツイート: "まあ、そこが「ワンパスコンパイラ」たる人間の出番ですよね😄 なお最近のgccはハードウェアプリフェッチャーの動作を予想して、構造体からデータを読み書きするときに、順序をいじるという仕組みがあるみたい(たしかlinaroの人がいれようとしてた記憶… https://t.co/fFt0aqjM9S"
まさみさんは語りたいさんのツイート: "x86の命令毎のレイテンシを測る発表、OoOやストアバッファの挙動を予め考慮しておきながら、投機的実行が行われない依存関係のあるループをいかに作って行くかという話で面白い。 #x86opti"
まさみさんは語りたいさんのツイート: "xbyakを使うとコード中で任意の機械語を詰めることが出来るわけだ。これはいいな。#x86opti"
まさみさんは語りたいさんのツイート: "なんでperfコマンドを使わないのかが不思議なんだけど・・・。"
とみながたけひろさんのツイート: "いま某CPU向けにまさに同じことをやっているのでとても参考になるのだった(x86じゃないのでXybakがなくて辛い)。私は頑張り切らない感じなので割り算命令の速度は割る数を1<<n(n=0-31とか)で変化させて「あー1クロックに4ビット計算できるのね」ぐらいを確かめて終わりにした #x86opti"
とみながたけひろさんのツイート: "あと、しょぼい環境だとパフォーマンスカウンタをsyscallで読むのに時間がかかる(そしてジッターが大きい)ので辛いので、専用カーネルモジュールを作ってユーザーランドから直接読めるようにするとかやるのであった #x86opti"
とみながたけひろさんのツイート: "そしてXybakじゃなくXbyakだった(汗)"
とみながたけひろさんのツイート: "なおしょぼい環境だと掛け算も32bit*32bitなのかそうでないのか、とかで性能が変わるので辛い(ここで68000を思い出すおっさんであった)"
satさんのツイート: "ミリ秒、マイクロ単位の最適化の話は書いてるとめちゃくちゃ楽しいのですが、いかんせんその点の最適化が必要な人は非常に少ないし、その人たちは本見なくても自分で勝手に調べそうというジレンマがありまして"
まさみさんは語りたいさんのツイート: "マイクロ秒を切るテクニックばっかり追い求めてた感じはするなあ。 スピンロックは遅いからCPUローカルな変数にしてロックレス化とか、割り込み禁止も別の処理の反応速度を落とすからできるだけ回避とか・・・。"
まさみさんは語りたいさんのツイート: "ソフトウェアの最適化の要は、そういう手練手管を駆使することより、どこがhotpathかを見極めて、それ以外の所は可能な限り富豪的プログラミングを適用して楽することなんだよね。"
satさんのツイート: "それですよ。たのしいけど、それはホットスポットが見つけたあとの話であって、ホットスポットを見つける技術が最適化のために一番必要な技術かもしれない… "
まさみさんは語りたいさんのツイート: "今はperfがあるのでマイクロ秒単位の遅い所は余裕で見つけられますよ。あとstraceとltraceを駆使するとシステムコールやライブラリコールの遅延も測れるから、ミリ秒単位の遅延場所も特定できますね。… "
satさんのツイート: "perf最強です。もう頭が上がらない… "
まさみさんは語りたいさんのツイート: "よくある最適化初心者の間違いは、なんかもうmain関数から最適化を始めてしまったり、コーディングスタイルとしてfutexじゃなく自作のspinlockを使ったり、というチグハグなところにあるんだよね。"
まさみさんは語りたいさんのツイート: "スピンロックはスピンロック自体が遅いわけではなく(ナノ秒で見ると遅いけど)、スピンロックの粒度の調整が難しいということを付け加えさせていただく。大きくロックすると衝突しやすくなり、小さくロックするとメモリバスが乱されて遅くなる。per-cpuさいつよ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "このあたりに詳しい人が見たら、一発で見切れてしまう話なのでは?とも思いつつ(笑) (IntelPCMはWin系の場合、モジュールをコンパイルしてドライバを入れて、ようやくパフォーマンスモニタから細かなCPU関連の統計情報を参照できるようになる)"
satさんのツイート: "x軸で示されたサイズのメモリにストライドをキャッシュラインサイズにして合計40億回メモリアクセスした場合の平均アクセスレイテンシ。x軸もy軸もlog scale。だいたいL1d(2^5 KB), L2(2^8 KB), L3(2^12 KB)で性能が一段階劣化。想定通り #livadevbox… https://t.co/cOBHoEy2PL"
satさんのツイート: "これだと知ってる人には「そうですね」なので、次は今使ってるマイクロベンチプログラムを改編して各キャッシュがどのコアで共有されてるかを調べる。これは公式HPに載ってない情報 #livadevbox"
まさみさんは語りたいさんのツイート: "トレーサのオーバヘッドの話は、どうやってもある程度出るのをどう削るか、みたいな話にしかならないし、あまりユーザビリティの観点からは気にされないのが現状なんだよなあ。"
まさみさんは語りたいさんのツイート: "なのでLTTngのオーバヘッドが10%ほど低いです!っていう主張をされても、そうですか、という感想しかないのが現状・・・。"
C++でOS自作 技術書典5 お05さんのツイート: "ストレージの各種メトリックを基にアプリが遅延した原因を推測するの難しいなあ。"
まさみさんは語りたいさんのツイート: "「静的なトレースイベントはカーネルAPIだからバージョン依存しないとは言っていない(キリッ」っていうのが公式見解だったと思う。ただしまあ、トレースイベント自体はとても良く考えられている場合があるのでそういうのは結構硬い。"
まさみさんは語りたいさんのツイート: "イベント発生回数やレイテンシの測定とか、定型的な処理だったら今でもftraceで出来るようになっているんだよね。結局典型的でよく使われる機能は固定化されるっていう話。"
まさみさんは語りたいさんのツイート: "kprobeを使ったとしてもレジスタとかじゃなく元の引数でアクセスできるようにすべき。systemtapは既にそうしているし、perf probeを使えば出来るはずなんだけど・・・。"
まさみさんは語りたいさんのツイート: "perf_event_open(2)は本当にちょっとアレだよなあ・・・。"
まさみさんは語りたいさんのツイート: "bccの面白い所、多言語バインディングしてるけどカーネル内で動かす部分はCっぽい何かのままなんだよなあ。"
まさみさんは語りたいさんのツイート: "bccでmodified Cが必要な理由は、多分ループが使えないからじゃないかな。"
まさみさんは語りたいさんのツイート: "bcc使う、使わないは、使っているカーネルと環境とターゲットに依存するんすよね。"
まさみさんは語りたいさんのツイート: "bpftraceとply、開発続いてたんだ。"
Kazuo MoriwakaさんはTwitterを使っています 「@satoru_takeuchi bcc-toolsにはいってるcachestat、キャッシュメモリの利用状況みるのによさそうです。ディストリビューションによって微妙に名前がちがったりするのが難です。 https://t.co/bKfHTxjsPA」 / Twitter
sat📒さんはTwitterを使っています 「@moriwaka ubuntuだとbpfcc-toolsのようですね。べんりそう。ありがとうございます。perfよりはとっつきやすそう」 / Twitter
H1karu SA1T0@クソ雑魚インフラエンジニア🐈さんはTwitterを使っています 「linux performance tool 👀 メッチャ良いなこの資料 https://t.co/nnCe2M9J4z https://t.co/YHVX2LAx5W」 / Twitter
linux_perf_tools_full.png (3000×2100)

RyotoさんはTwitterを使っています 「gdbやstraceはptrace(2)を呼んでて、実行を止めてしまうので副作用が大きい #kernelvm」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm 代表的なツール gdb, strace: ptrace(2)を利用(実行パフォーマンスに影響大) perf: perf_event_open(2) (ユーザーランド側の処理が多くパフォーマンスに若干影響あり) bpftrace, BCC: bpf(2), perf_event_open(2) (カーネル側で実行されるのでオーバーヘッドが小さい)」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「ftrace/systemtapもフィルタリングをカーネルで実行するよ。 #kernelvm」 / Twitter
各種メモリ/ストレージのアクセス時間,所要クロックサイクル,転送速度,容量の目安 - Qiita
計算の高速化のために必要なこと: メモリの観点 - Qiita
𝘼𝙧𝙧𝙖𝙮-𝙨𝙖𝙣さんはTwitterを使っています 「このページ、知見の塊やんけと思ったら、詳解システムパフォーマンスの著者だった。 https://t.co/uGQUy63JyN」 / Twitter
Brendan Gregg: Overview

遅いコードの改善

herumiさんはTwitterを使っています 「@kazuho @syohex 遅くなってるときはfrontend_retired.dsb_missの値が極端に大きい。 https://t.co/TiuEAKRAI2」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi @syohex ありがとうございます!!!!!! これはつまり、uop cacheでコリジョンが発生してるってことなんでしょうか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「やっぱり gcc -O3 に頼るとコードがデカくなりすぎるから、 -O2 で同等に動作するように、自前でループあんロールとかするのかなぁ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「uop cache collision ってそういうことだよね。facebook の bolt とか使うとマシにはなるんだろうけど、コードサイズでかいのはそもそもよくない」 / Twitter
Inada NaokiさんはTwitterを使っています 「@kazuho __attribute__((hot)) 使うとかどうでしょう? 特定の関数だけ、他より積極的にアライメント取ってくれないかな。」 / Twitter
herumiさんはTwitterを使っています 「@kazuho @syohex コリジョンというか、ptls_fusion_aesgcm_encryptの最内ループでアンロールできてないところが足かせになってパイプラインがつまっていた感じです。 こんなふうにしたら大分ましになりました。 https://t.co/Qz13rOFyH9」 / Twitter
unroll · herumi/picotls@cadd1e4
herumiさんはTwitterを使っています 「@kazuho -O3でも先程の手動unrollはread-modify-writeが並列実行しやすそうに並んでました。いくつか試す限りでは顕著に遅くなるということは減ってるようです。https://t.co/Byh0OTf8tq のO3-before.txtとO3-after.txt 変動が大きいですが元のコードはストールすることが多いです(with-2.png)。」 / Twitter
picotls/result at master · herumi/picotls
Kazuho OkuさんはTwitterを使っています 「@herumi ありがとうございます。手動アンロールとuop cacheへのプレッシャーという示唆をいただき https://t.co/uzbKp3SzmI を作りました。僕の環境で、手動アンロールは -O3 の自動アンロールと速度差がなかったのですが(続く)」 / Twitter
Optimize for size, while unrolling the hottest loops by kazuho · Pull Request #308 · h2o/picotls
Kazuho OkuさんはTwitterを使っています 「@herumi 、大きなループの手動アンロール廃止と組み合わせることで、半分以下のコードサイズで同等の速度がでるようになりました」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi 当初の問題 https://t.co/gh0JxvBq4A についても、コードサイズが大きく変わったから確かなことは言えませんが新コードの -O2 -fno-unroll-loops では問題が発生しないことは確認できました」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi @syohex このスレにやってきた人が解決策にたどりつけるように貼っておきます。問題を修正したPRはこちら https://t.co/uzbKp3SzmI 原因は端的にいうと、コードがでかいわりに無駄が多くて、あちこちに負荷がかかっていたことでした」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今はCPU系の高パフォーマンスのためには、disasで眺めても、perfでキャッシュミスを観察するだけでもダメで、遂に uop-cacheの効きを観察せねばならんのか、、、面白すぎる(笑) StackOverflowにも uop-cache絡みの話が出ていた。 https://t.co/KdcRmh496p https://t.co/24yQj82qp3」 / Twitter
performance - 32-byte aligned routine does not fit the uops cache - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そのうち、コードを書いていると「これだとuop-cacheの効きが悪くなりそうだ」とかピンと来るようになるのかしらん? 下記レベルやTLB, L1, pagingなどは意識していたが、uopレベルはさすがに気にしていなかった。 https://t.co/X5UIyCl0nH」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「しかし(データならともかく)プログラムコードのアドレスがちょっとずれただけで30%も性能が落ちることがあるなんて、イマドキのCPUでの最適化作業って辛いすぎ… https://t.co/2PnxVPe5HH」 / Twitter
Improving LLVM-Generated Code Size for X86 Processors - Ansari-Code-Alignment.pdf
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @herumi @syohex このあたりの コードの32byteアライメント問題で良いのですかね。 https://t.co/3QCZHChS9i https://t.co/KdcRmh496p」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @kazuho @herumi @syohex https://t.co/87fJsE6Yd1 という話なので DSB が問題ってとこまでは間違いなさそうです。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「uop意識したループのコツ解説があった。 コード整列に問題がある場合、1-2clock / iterのペナルティがある感じかな…最悪値は 1ループのuop数が23,24の場合で、6 → 8clock / iter となり、33%の性能劣化と。 (この周辺以外だと差は相対的に小さい) https://t.co/JA8qYHjy8C https://t.co/5w9f7a5DzI」 / Twitter
assembly - Is performance reduced when executing loops whose uop count is not a multiple of processor width? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ループ内を融合済uop数でカウントして(一覧資料あり)、33~63opsで4N+1 や 4N+2 ならループ展開したほうがいいとか、そこまでやるか的なコツが書いてある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「CPU外部から見えないはずの uOp / uOp-Cache が、僅かな命令位置依存の性能変化でその輪郭が顕在化する様子は、物理学で直接見えない / 取り出せない存在を間接的な輪郭から推測 / 確認する姿と似ているかも(笑)」 / Twitter
herumiさんはTwitterを使っています 「みなさん、いろいろ情報ありがとうございます。 Intelの最適化マニュアル3.4やB.5.7章にフロントエンドのストールの細かい話や調査方法が載ってるのですが、複雑です。元の問題は@kazuhoさんが解決されてるので時間を見て調べてみようと思います。 https://t.co/LmxipbOUzs https://t.co/bfvojMN3zK」 / Twitter
xxqiさんはTwitterを使っています 「DSBだとこのエラッタを踏んでいそうな気が https://t.co/dmuo3bW6IG https://t.co/YKhJXwwMiH」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「https://t.co/VnDfTOsrIf 命令が間に合わなくなるの、 PS3 の cell のバグ(?)を思い出した。あれも 128B の空間に load/store がたまたま集まってしまうと命令フェッチが間に合わなくてストールするとかで、一切使ってない関数を消したら遅くなったりして大混乱してた思い出 https://t.co/sWA0ZzqyBP」 / Twitter
Hack the Cell - なんとなく全く使ってない関数消したら速くなった/遅くなった!

プロファイラのしくみ - Backnumbers: Steps to Phantasien
プロファイル測定 | VA Linux Systems Japan株式会社
VS2017 15.8プレビュー2でCPUプロファイリング、F#サポートが改善
flamegraph プロファイリング - Google 検索
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています: 「profilerに出てこなくなってからが本番やで?」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています: 「profilerに出て来てるところがメモリコピーとかの必要なコストだけになって来てから、もう、アイデア勝負。どれだけ汚くない最適化をほどこすか。」 / Twitter
0から始めるNode.jsパフォーマンスチューニング | kohsweblog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「プロファイリングとメトリクスの違い: メトリクス: 短い間隔でとられる、自由に選ばれた時系列データ プロファイリング: あらかじめ決まった指標を長い期間でとられる、スタックトレースと紐付けられる統計 #o11yjp」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「自由に」と言うより「自発的に」と言うべきか #o11yjp」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうプロファイリングの結果表示方法初めてだ。網羅的で分かりやすい #o11yjp」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「継続してprofilingするために、バージョンとrevisionをビルド時に埋め込んでおこう。」 / Twitter
k0kubunさんはTwitterを使っています 「perf-profile既に爆裂に便利だけど、(インライン化されてて存在しない) インライン化元のフレームをdwarf読んで計算してカウントできれば更に便利な気がするが、できるのかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「これ、当初は割と荒いサンプル取ってて 「パケットサイズが1320バイト超えるあたりで特性が変わるのは何かTCP/IPスタックにMTUサイズに近いパケット向きの最適化が入ってるんじゃないか」 みたいな推論してたし、統計から裏にあるモデルを推論するのは常に注意が必要。 https://t.co/7wiU0l5Ejp」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ワークセットが27KBあたりになるあたりで数%速度が低下するの、これL1キャッシュの壁なんだろうなぁ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そして、ソフトウェア実験だから仮説を確認するためにサンプル増やした結果、当初の仮説を棄却することができた、という話。他の分野だと、なかなかこうはいかない。 なお、結論としては、パフォーマンスカウンタの値も見ずにL1キャッシュのせいにするようなエンジニアは信用ならない、です。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「バックプレッシャーなしでデータ書いてるからメモリ不足に陥りそうなものなのに、なんでCPU利用率100%でサチるのかなーって思ったら、バッファ量が増えてmemmoveのコストが支配的になる、という変なバックプレッシャーが働いてた」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Ryzenに対する最大の不満は、linuxで使う際にCPUクロックの細かい制御ができないところです(できないよね?)。ベンチマーク条件いじりづらいじゃん!」 / Twitter
Intel VTune Profiler の使い方 - Qiita
144447146.pdf
ドッグさんはTwitterを使っています 「tracy っていう C++ のフレームプロファイラ便利そう | 'wolfpld/tracy - Bitbucket' https://t.co/wZx7l0ndJx」 / Twitter
wolfpld / tracy — Bitbucket
New RelicがJFRを利用したリアルタイムJavaプロファイラを提供

最適化

その他

最適化レポートの制御方法 | インテルソフト あるある情報局
/LTCG (リンク時のコード生成)
MSVC code optimizer improvements in Visual Studio 2017 versions 15.5 and 15.3 | Visual C++ Team Blog
インライン・メソッド・キャッシュによる動的ディスパッチ高速化(2/3) - @IT
富士通C++コンパイラの最適化機能の改善について
メニーコア時代のアプリ性能検討WG 成果報告書 | サイエンティフィックシステム研究会(SS研)
コンパイラの構造を解説 | Shinta's Site
Tips IA32(x86)命令一覧 Rから始まる命令 RDPMC命令
bitwise-simd
KAKEN — Research Projects | 2019 Fiscal Year Annual Research Report (KAKENHI-PROJECT-17H01764)
プログラミング言語のPythonの速度は遅いことで有名だが、C言語くらい速さにすることは可能なのか?に対する十河 伸一郎 (Shinichiro Sogo)さんの回答 - Quora
branch folding - Google 検索
const folding - Google 検索
プログラム融合変換 - Google 検索

Micro + Macro Fusion

【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUマイクロアーキテクチャ「ZEN」の命令デコード - PC Watch
assembly - What is instruction fusion in contemporary x86 processors? - Stack Overflow
MacroFusion in Intel CPUs. | Easyperf
Macro-Operation Fusion (MOP Fusion) - WikiChip
Micro-op fusion in x86 | Hacker News
Microsoft Word - msoC5849.doc - Performance_Characterization_SPEC_CPU_Benchmarks.pdf

分岐予測のヒント

配列化による順次アクセス

MasaTamさんはTwitterを使っています 「'L1キャッシュから値をロードするにはわずか3から4サイクルのレイテンシで済むのに対して、メインメモリから値をロードする時のレイテンシは数百サイクルを要することもある。アプリケーションは典型的には時間的局所性(temporal locality)を示すため、キャッシュによってアプリケーションの性能は"」 / Twitter
MasaTamさんはTwitterを使っています 「"向上する。つまり、メモリ中のある位置が最近アクセスされたのであれば、すぐに再び同じ位置がアクセスされる可能性が非常に高い。(中略)アプリケーションは空間的局所性(spatial locality)も示すことがある。つまり、メモリ中のある位置がアクセスされれば、その近くも近いうちにアクセスされやすい"」 / Twitter
MasaTamさんはTwitterを使っています 「ガベージコレクションより Parallel Programmingの授業を思い出した。キャッシュの観点からも配列は順次アクセスされる場合、非常に効率がいい。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@masatam81 最近のSDRAMのプロトコルを見ても,順次アクセスの方がランダムアクセスより効率良くなるように出来ています。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@masatam81 データだけでなくプログラムコードも,順次アクセスになるように,つまり分岐なしに処理する方が高速になります。どうしても分岐する場合は分岐予測のヒントを与えると高速になります。」 / Twitter
Susumu YamazakiさんはTwitterを使っています 「@masatam81 ちなみにPelemayの高速性の源泉は,リストを配列化して順次アクセスすることと,生成するコードに徹底的に分岐予測のヒントを付与することにあります。」 / Twitter

Fadisさんのツイート: "DPDK、同梱のサンプルプログラムがカジュアルに「指定したレベルのキャッシュまでデータをプリフェッチする」と「分岐予測にヒントを付ける」を活用してて、ネットワークプログラミングには使っているプロセッサに対する深い理解が必要です、的なアレを感じる"
インテル アーキテクチャ 最適化
分岐予測 - Wikipedia
条件分岐のヒントとしてlikelyやunlikelyを指定してみる - Qiita
ハードウェアに対する分岐ヒント 竹下世界塔の計算機よもやま話/ウェブリブログ
C++ SIMD クラスの機能
fnami: Assembler
Tips IA32(x86)命令一覧 補足
repz ret - repz ret
コンパイラは分岐情報を使って何ができますか?
Kazuho OkuさんはTwitterを使っています 「分岐予測器に優しいコードを書くの、21世紀の最適化の鉄則だと思ってる。分岐がほぼ一方に倒れるようなコードにするとか、マージしたあと再分岐みたいなのを減らす(インライン展開のタイミング含む)とか、できることは色々ある」 / Twitter
Miura HidekiさんはTwitterを使っています 「mrubyのJIT、型のガードはほとんどの場合成り立つことが期待できるから、それをCPUに伝えると速くなるのでは?と思って、Jccの分岐ヒントプリフィクスを入れてみた。あまり効果は無いようだ(CPUは昔のi5です) https://t.co/SLtf0aVVD6」 / Twitter
Tips IA32(x86)命令一覧 補足
Miura HidekiさんはTwitterを使っています 「mrubyのJIT、間接ジャンプの後にud2命令を入れると速くなったような気もするし、変わらないような気もする」 / Twitter

プリフェッチ

インターネット・ストリーミングSIMD拡張命令
The 3 key challenges in programming for MC
プリフェッチ - Wikipedia
SIMD 演算におけるキャッシュ制御方法とか - kawa0810 のブログ
ASCII.jp:キャッシュの実装方式から見える AMDとインテルの置かれた状況 (2/3)|ロードマップでわかる!当世プロセッサー事情
プリフェッチのサポート

Profile Guided Optimization

Hideyuki Tanakaさんのツイート: "profile guided optimizationをRustでやるやつらしい(´・_・`) / “GitHub - Geal/pgo-rust: Testing LLVM's profile guided optimizat…” https://t.co/Skcuk2aauP"
Hideyuki Tanakaさんのツイート: "profile guided optimizationをCargoのサブコマンドとしてお手軽にできるようにするやつみたい(´・_・`) / “GitHub - vadimcn/cargo-pgo: Supercharge you…” https://t.co/AoA3QjaQUX"
Hideyuki Tanakaさんのツイート: "実際んとこprofile guided optimizationってそんな速くなんの?(´・_・`)"
Hideyuki Tanakaさんのツイート: "2,3割も速くなるケースもあるみたいだけど自分でやってそんな速くなったためしないんだよなあ(´・_・`)"
[Profile Guided Optimization (プロファイルに基づく最適化)] ダイアログボックス
Profile-guided optimization - Wikipedia
Profile Guided Optimizationが.NET Coreでも利用可能に
rigayaの日記兼メモ帳 x265 ビルド ~ Visual Studio PGOビルド
koie blog : PGO: Profile Guided Optimizationをためしてみた
[Options (オプション)]: [Profile Guided Optimization (プロファイルに基づく最適化)] ダイアログボックス
ガイド付き最適化のプロファイル
15%の高速化を達成。Windows版「Google Chrome」でMicrosoftのPGO技術が採用される - 窓の杜
Rust で Profile-Guided Optimization やってみた - はやくプログラムになりたい

x86 C

相沢陽菜さんのツイート: "この間、「x86ターゲットだと謎の計算式に置き換えられるけど、ARMだと普通に計算されちゃう。謎の計算式のほうが速いとおもうけど、最適化のための重み的なのあってるのかなこれ」みたいなことを某学生がいってた"
相沢陽菜さんのツイート: "intの変数を定数でわる関数とか作ってO3とかかけるとなぞの処理になるんだよ(なぜそうなるかはよく考えるとわかるらしい"
相沢陽菜さんのツイート: "コンパイラ「 movl %edi, %eax movl $1717986919, %edx sarl $31, %edi imull %edx sarl %edx subl %edi, %edx movl %edx, %eax ret 、はい、5で割れました」 PG「は???」"
hoge.c

Polly

Hideyuki Tanakaさんのツイート: "これなんだろ(´・_・`) / 他1コメント https://t.co/qAZ1G8NXkr “Polly - Polyhedral optimizations for LLVM” https://t.co/l3yHixsSwP"
はてなブックマーク - Polly - Polyhedral optimizations for LLVM
Polly - Polyhedral optimizations for LLVM
Hideyuki Tanakaさんのツイート: "https://t.co/MyJn2qXtl0 ここのグラフ観てるとpollyに掛けるだけでGEMMのコードが死ぬほど早くなってるけどそんなことできるなら使ってみたいしPEZY-SCで動かすコードに簡単に使えたりせんのかな"
Hideyuki Tanakaさんのツイート: "普通に書いたら当然だけどGEMM全然性能出ないみたいだけどpollyに掛けるだけでたぶんハンドチューンされたBLASとかの2割引きぐらいの性能になるとかすごすぎんよお…"
Hideyuki Tanakaさんのツイート: "“Polyhedral Compilation Techniques”なんてのがあるのか / “IMPACT 2017 - International Workshop on Polyhedral Compilation Tec…” https://t.co/qh3AYAad0E"
IMPACT 2017 - International Workshop on Polyhedral Compilation Techniques

マルチグレイン並列処理

マルチグレイン並列処理
ipsj2003_1.pdf
高速化 | オスカーテクノロジー株式会社
IPSJ-ARC02150007.pdf
マルチグレイン並列処理の意味・用法を知る - astamuse
マルチグレイン並列化技術 オスカーテクノロジー | イプロスものづくり

自動ベクトル化

自動並行化と自動ベクター化
SIMD - primitive: blog
Core i7のSSE4.2にも対応、インテル コンパイラーで作るSSE対応プログラム - HPC/並列プログラミングポータル - OSDN
コンパイラー最適化入門: 第4回 自動ベクトル化はどんな時に行われるか | iSUS
自動ベクトル化の使用
ロボ太さんのツイート: "環境やターゲットに強く依存するのだと思いますが、科学技術計算に話を限ると、そんなに「コンパイラが賢いコードを吐く」印象はないですね・・・。わりと残念なコードを吐いててがっかりすることが結構あります。ただ、x86系では(他の石に比べて)特異的にコンパイラが賢い印象があります。… https://t.co/AopKgh6kl3"
SODA Noriyukiさんのツイート: "SIMD命令まわりの使い方の話かな?"
梅澤威志/ゆーむさんのツイート: "自分が書きたい分野(画像処理)のコード(のベクトル化)だとコンパイラが全く当てにならないので結果として人間(=俺)がintrinsicで適当に書いたコードの方が圧倒的に速くて悲しい>RT https://t.co/OjAjEKizyI"
ロボ太さんのツイート: "DEC Alphaはコンパイラが賢かった記憶があり、Cell/B.E.は触ったことないけどコンパイラがまともなコードを吐ける気がせず(違ったらすいません)、逆にIA64的なVLIW系ではコンパイラより賢いコードをかける気がしないので、石というか、ベンダーのコンパイラ部隊のやる気に強く依存している気が・・・。"
OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi こちらは 2015年の Cray User Groupでの Sandia National Labによる Intel・Cray・gccコンパイラの x86ベクトル化の比較報告です https://t.co/3xpbYCAXjX TSVC (Test Suite for Vectorizing Compilers) Benchmark LCALS (Livermore Compiler Analysis Suite) Benchmark… https://t.co/KNYzaZGc2s"
インテル® Advisor ユーザー向けベクトル化リソース | iSUS
2018年注目していきたかった技術の振り返りと個人的振り返り | κeenのHappy Hacκing Blog
Elixir におけるC言語コード生成・最適化の試み - Speaker Deck

最適化レポート

えびちゃんさんのツイート: "わけわからんすぎる コンパイラしゃんは最適化するときに「これはこんな理由でこんな風に最適化できるんだよ〜」ってコメントをつけといてほしい"
TIke / Ti11192916さんのツイート: "gcc って最適化レポート吐けませんでしたっけ… "
えびちゃんさんのツイート: "うーん、別物を見ていそう(Intel 製だと -opt-report があるらしい?) ループをアンロールしたよ、とかベクトル化したよ、とかくらいの簡素なものしか出なかったです… "

C++ vtable

島鉄雄さんのツイート: "vtable の中身ってインスタンスが生成された時点で決まってるし、オフセットも定数だから、ストールとか発生するはずが無いと思われる。 仮想関数呼び出しが遅く感じるのは、インライン化されない影響の方がデカい気がする。… "
Masayuki Ishikawaさんのツイート: "大昔C++を初めて使い始めた時、会社の先輩がC++の呼び出しオーバーヘッドが気になるって言われた事があります… "
iruka3さんのツイート: "仮想関数のvtableをなるべく手前でloadするようにコンパイラ(か、人間)が工夫するしかないです。 分岐先が直前まで未定のjmpやcallはストールせざるをえない・・・… "
iruka3さんのツイート: "C言語で書けば、(アルゴリズム的に無駄やってないなら)今のCPUは十分早いです。 問題は、C++で仮想関数使い始めてからですねぇ・・・ (呼び出しがレジスタ間接になるけど直前にしかロードされないので投機出来なくてストールとかそんなやつです)… https://t.co/xcVHtcwU4y"
島鉄雄さんのツイート: "パイプラインがストールする案件ってのは、飛び先が分からないからじゃなくて、フェッチした飛び先が実際にジャンプする前に書き換わった時でしょ? フェッチからやり直しになるのをストールという。 vtable の中身は書き換わる事が無いから、ストールしないよ。… https://t.co/XC0Kvm0gMu"
iruka3さんのツイート: "その通り >vtable の中身ってインスタンスが生成された時点で決まってる vtableから、呼び出し先アドレスを得るフェッチをするまで飛び先が分からないので、CPUの命令フェッチパイプラインがストール C++コンパイラが、これを先回りロードしてレジスタに保持出来ればいいけど、そうなるとは限らない… https://t.co/KZv7bsFUoV"
iruka3さんのツイート: "https://t.co/xY41qwoWfz ((TypeGetArea*)s->vftable[VF_GetArea])(s); CPUの命令フェッチパイプラインの問題だけであって、命令ステップ数的には、べつにどうということはない感じ"
[雑記] 仮想関数テーブル - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
iruka3さんのツイート: "もしかしたら今のintel CPUは間接分岐命令のアドレス予測をやっているのかもしれないけど。"
島鉄雄さんのツイート: "0:フェッチ→解釈  →実行  →書き戻し 1:解釈  →実行  →書き戻し→フェッチ 2:実行  →書き戻し→フェッチ→解釈 こんな感じでパイプラインがオーバーラップしてるけど、0は実行するまでに2が何かを書き換える可能性があるから、2次第では0はまたフェッチからやり直しになる"
島鉄雄さんのツイート: "フェッチからやり直しになるストールは発生しないけど、プリフェッチがされてなくてL1キャッシュミスでストールするという事を言いたかったのか。 それ言ったら、C++はobj->child->data->func()みたいな長い間接参照しつつ関数呼び出しされまくるからvtableだけ特別遅いとも思えない。… https://t.co/crdPdwLPJt"
iruka3さんのツイート: "それはそうなんですけど、 https://t.co/xY41qwoWfz ((TypeGetArea*)s->vftable[VF_GetArea])(s); を普通にマシン語で並べると、呼び出し先アドレスをレジスタに取ってきて、間接call発行なので、命令プリフェッチが効かない場合が多いのです。… https://t.co/DmeaHkGBs8"
iruka3さんのツイート: "仮想関数を呼び出すクラスがほぼ固定されていたら、分岐予測キャッシュに溜まる可能性が高いですけど、多態性を多く持たせている(呼び出される可能性のあるクラスが沢山存在する)場合はそうでもないとかそんな感じ"
島鉄雄さんのツイート: "auto data = obj->child->data; data->func1(); data->func2(); の方が速そうだけど一々手間なんで obj->child->data->func1(); obj->child->data->func2(); と書くけど、これはコンパイラが最適化してくれてるはず。 それと同じで同じオブジェクトの連続した仮想関数呼び出しも最適化されてるはず。"

エスケープ解析

エスケープ解析 - Wikipedia
Golang エスケープ解析 - Qiita
Javaのエスケープ解析についていろいろと実験してみる - Qiita
Java HotSpot仮想マシン・パフォーマンス向上
Linuxはじめました & エスケープ解析の検討 - miura1729の日記
エスケープ解析による御利益: #include <fujita.h>

Self

Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 動的型付け言語の最適化だとselfで用いたテクニックが大体標準かなって思います。動的も静的もLLVMのような話は過去一杯あったけど失敗しています。LLVMはありったけのリソースを投入できるので、静的だからではなくLLVMだから成功したのだと思います。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 これですね。勉強になる。 https://t.co/OufsOKRhTO 静的型だとどの言語でも似たような中間表現に変換しうるようなイメージがあるんですが、私の勘違いなんですかね。データの持ち方も基本的には共通のような。」 / Twitter
A Self Bibliography — Self Papers 4.5.0 documentation
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 SSAが出来てからはそれに収束した感がありますね。その前はいろいろバライティに富んでいましたが。おそらく動的型付き言語もSSAに収束すると思います。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 SSAは様々な最適化に適した中間表現と思いますが、もっと素朴な奴でも動くもの(かついろんな静的言語からコンパイルできるやつ)は作れそうに思います。動くけどネイティブの処理系より遅いので意味ないよね、ていうのがLLVM登場以前の話だったのですよね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 おお、selfの論文がまとまっているページがあるんですね。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 動的型はオブジェクトの(最適な)内部表現が言語仕様によって異なる(例えばRubyとJS)ので、SSAの手前の段階で既にunifyするのが厳しいんじゃないか、という気がします。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 おそらく、色々な言語に対応しようとするとバカでっかくなり、その開発に耐えられなくなるってのが大きいと思います。LLVMってすごくたくさんの機能や命令があるわけですが、結局そういうのが必要になってくると思います。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 そうでもないと思ったのですが、考えてみると得意分野によって高速化するデータタイプが速くなるように内部表現を変えますね。この辺を抽象化するって言う手はありますけど(mrubyがそうやっているように)」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 A + B みたいな基本的な演算でもAやBの型によって全く違うことやるわけですから、どの言語でも共通に使える(かつ高速な)フレームワークを提供するってのはなかなか困難ですよね。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 その通りと思いますが、動的型だと「そのバカでかくなり具合」がより一層爆発的なものになる気が。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 確かにそうかもしれない。本当の所はどうなのか気になります」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 動的型、静的型関係なく対応すると称しているGraalVMとかありますよね。どうなってんだろう。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 GraalVMですか。すごいですね。もし、RubyKaigiで開発者の方がお見えになるならお話したい(どうやって?)ですけど、RubyKaigiがあるのだろうか・・・」 / Twitter

mem2reg

LLVM 6.0 で作るフロントエンドの道しるべ - Qiita
7.3. LLVMにおけるメモリ – 日曜研究室
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@esumii mem2regもLLVMオリジナル版とCoq版で生成されるコードの性能はほぼ同じ(LLVMオリジナル版は内部allocaも知ってるので僅かに有利)。LLVM -O3と-O1はあまり変わらないがmem2regはかなり速くなるので重要(だからCoqで実装&証明した)」 / Twitter
きつねさんとおぼえるLLVM の訂正個所【2013年2月24日追記】 - 餅ちゃんの備忘録
最適化抑制属性(optnone) - Design x Verification
clang - LLVM SSA形式を生成する方法 - ITツールウェブ
Rui UeyamaさんはTwitterを使っています 「@uint256_t mem2reg、定数式畳み込み、レジスタ割り当てくらいがあれば、めちゃくちゃ素直でナイーブなフロントエンドでも普通によいコードが出せるのではという気がしてる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t 計算の途中結果は全部メモリ上の変数に書き出していって、変数は使い捨て。明らかな冗長さは定数式畳み込みで消えるからフロントエンドではまったく気にしない。みたいな方針でなんとかなるんじゃないかなと。(僕がいま作っているのも)」 / Twitter
h_sakuraiさんはTwitterを使っています 「mem2regの後半の処理の本質はmutableな基本ブロックからimmutableな基本ブロックに変換するCPS変換なのだな。 https://t.co/WKSV0XCSLw」 / Twitter
120行で書いた CPS変換/Prolog出力 while言語コンパイラ - Qiita

レジスタ割付

SSA

uint256_tさんはTwitterを使っています: 「#cilk なんか動かないなぁと思ってたら,関数呼び出しをまたいで使用されるvregの保存を実現するために呼び出し前にスタックに退避・後で新しいvreg(SSAなので)に代入してたけど,古いvregのuseを新しいので置き換えるときにbasic blockにループが存在する可能性のことを考えてなかった」 / Twitter
uint256_tさんはTwitterを使っています: 「レジスタ同士を紐付ければいいのかしら」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t Basic block でループがあるとは?」 / Twitter
uint256_tさんはTwitterを使っています: 「@zacky1972 これで伝われば嬉しい: https://t.co/i85rxk6LWN」 / Twitter
problem.txt
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t φを用いないんですか?」 / Twitter
uint256_tさんはTwitterを使っています: 「@zacky1972 どこでどのように使うと良いのでしょうか」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t まず Wikipedia の説明を読んでください。 https://t.co/WVqdkKgYLK」 / Twitter
静的単一代入 - Wikipedia
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t たぶん,こんな感じ? https://t.co/bT9aeZDCgo」 / Twitter
solution.txt
uint256_tさんはTwitterを使っています: 「@zacky1972 わざわざありがとうございます.phi自体はすでに理解できていたみたいです. 物理レジスタ割り当てのことで頭がいっぱいで,phiを使ってコードをまとめ直すことができるという考え方が浮かびませんでした.」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t SSAではphiは基本なので,活用してください。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t 「Basic block にループが存在する」という表現は矛盾している (なぜならば basic block はループを含まないというのが定義だから) ので,表現は正確に。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「@uint256_t この例では「basic blockを複数つなぎ合わせてループを構成する」が正しい表現ですね。」 / Twitter
uint256_tさんはTwitterを使っています: 「basic block '間' にループがある」 / Twitter
ssa-nyumon.pdf
monochromeさんはTwitterを使っています 「@zacky1972 ああ、それはそうですね。ASTをバイトコードに落とす前の段階でSSAっぽいIRを挟んでおき、インタプリタ用にはバイトコードへコンパイル、JITする場合にはSSAに戻って機械語へコンパイルするイメージでした。」 / Twitter
monochromeさんはTwitterを使っています 「@zacky1972 SSAだと評価の途中結果がID付きでずらっと(仮想レジスタとして)並ぶ形になるので、型(RubyなのでClass)の評価がやりやすいのかな?という想像です。 動的型付け言語の場合、型の推論とかプロファイリングが重要かつ一番の難関と考えてますので。」 / Twitter
monochromeさんはTwitterを使っています 「@zacky1972 あとは、一時的に使用されて捨てられるオブジェクトと、生き残るものが明確になるという点もあるかなと。 というのも、アロケーションのコストとGCへの負荷を下げる意味でも、捨てる値が分かってると有り難いんですよね。」 / Twitter
monochromeさんはTwitterを使っています 「@zacky1972 つまり、a-eが文字列のようなヒープアロケートされるオブジェクトだとして、 a = ((b+c)+d)+e みたいな処理があった場合、b+c、b+c+dという2つのオブジェクトが生成され、評価完了とともに不要になります。これらを後からGCで回収するのではなく、その場で開放したい、というモチベーションです。」 / Twitter
Modern Compiler Implementation in C 19章後半(451ページから) - ppt download
uint256_tさんはTwitterを使っています 「SSAだろうと値は変わるんだなぁ」 / Twitter
市川 真一さんはTwitterを使っています 「wasm のローカル変数のアドレスが取れないから線形メモリを使わないといけなかったりして不便なので、ローカル変数は線形メモリへのアクセスのためのベース・レジスタ的な使い方しかしてない」 / Twitter
YutakaAokiさんはTwitterを使っています 「@tenpoku1000 そういえば、Wasmの母体になることが多いLLVMの場合、レジスタがそれと似ていて、SSA方式なので一度書き込むと二度と書き換えられず、Cのローカル変数はほぼ必ずレジスタではなくallocaされたメモリー領域に対応し、レジスタはその先頭アドレスとしての役割が多いです。」 / Twitter
YutakaAokiさんはTwitterを使っています 「@tenpoku1000 何度も書き換える働きを持つローカル変数は必ずallocaされたメモリー領域に対応し、レジスタは、四則演算の途中経過や、メモリーからメモリーへload,storeするの間の仲介役を担うことが多いです。ただし、phi nodeという方法を使うとこの限りでは有りませんが。」 / Twitter
市川 真一さんはTwitterを使っています 「@YutakaAoki3 私の場合、LLVM は使わずスクラッチ開発していますが、そんな感じですね。最適化は実装してないので、SSA や phi は無いのですが: tenpoku1000/PE_COFF: 独自 WASM64 を生成し、PE/COFF や PE32+(UEFI アプリ)に変換するバックエンド試作版 https://t.co/8cElIwUZt0」 / Twitter
静的単一代入形式に基づく最適化に関する研究
25_1_2.pdf

Wikipedia

和集合 - Wikipedia
数学記号の表 - Wikipedia
レジスタ割り付け - Wikipedia
データフロー解析 - Wikipedia
Data-flow analysis - Wikipedia
制御フローグラフ - Wikipedia
Control flow graph - Wikipedia
大域値番号付け - Wikipedia
レジスタ・リネーミング - Wikipedia
ソフトウェアパイプライン - Wikipedia
Reservation Station - Wikipedia
Tomasuloのアルゴリズム - Wikipedia
レジスタファイル - Wikipedia
連想メモリ - Wikipedia

Set
東北大学電気通信研究所 大堀・上野研究室 - レジスタ割り付け
電子情報通信学会知識ベース |トップページ
06gun_03hen_03.pdf
8-w.pdf
www.cs.is.noda.tus.ac.jp/~mune/master/10/m2010.pdf
www.is.titech.ac.jp/~sassa/lab/papers-written/08B24652-mori.pdf
データフロー解析(DFA)とはなんですか? | 東陽テクニカ
フロー解析とは | ソフトウェアの検証の種類 | テクマトリックス株式会社
Compiler Construction Lecture 2/1
コンパイラ講義をなんとなく監視 - Togetter
レジスタ割り付けをしたい(1)データフローを作る - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
レジスタ割り付けをしたい(2)生存情報を求める - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
Liveness Analysis - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
累積レジスタ割付による仮想マシンの高速化 - 一人一党党
LLVM Register Allocation (2nd Version)
LLVM Project Blog: Greedy Register Allocation in LLVM 3.0
dominance frontier - Google 検索
iterated dominance frontier - Google 検索
uint256_tさんはTwitterを使っています 「Dominance frontier, いまは愚直に求めてて遅っいから改善したい (llvmが使ってるアルゴリズムの論文読むのが早い」 / Twitter
uint256_tさんはTwitterを使っています 「LLVMが使っているアルゴリズムの論文に書いてある手法をそのまま実装すると遅いよなあ, と思ってLLVMのコードを見てみたら, より良い手法が使われていた時の気持ち.」 / Twitter
Yatsina-LLVM Greedy Register Allocator - Yatsina-LLVM Greedy Register Allocator.pdf
uint256_tさんはTwitterを使っています 「dominator treeのrootから下へ降りて行って, ある時に注目しているnode dominates its predならloop?」 / Twitter
uint256_tさんはTwitterを使っています 「reducibleなcfgでloop検出, まだ理解できていない」 / Twitter
mem2regを解説してみる - Qiita
静的単一代入形式を用いた最適化(導入編)
A linear time algorithm for placing φ-nodes | Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Rui UeyamaさんはTwitterを使っています 「@uint256_t これって常にSSA形式になってるようにやってるんだと思うんですが、SSAじゃなくなるように単純に書き換えてからSSAに戻すアルゴリズムを走らせるのと比べてどっちがいいんですかね?」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 storeやload は元々SSAからはみ出しているような気がしますが, それ以外の部分も先にSSAじゃないように書き換えるということでしょうか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t レジスタも複数回代入してもいいからとりあえず変換してしまって、その後でSSA形式に再度戻すというやり方もあると思うのですが(それがいいかどうかは別問題で)。」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 再度SSAに戻すと言う操作それ自体がmem2regに相当するのではないかと思いました (見当違いだったらすみません)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t そうか、たしかに。」 / Twitter
DrumatoさんはTwitterを使っています 「虎本だとIR生成とベーシックブロックの生成を別のフェーズでやっているような記載があるんだけど,確かにこのほうが実装しやすい気もするな.」 / Twitter
LLVM Spiller 关键代码剖析_Enorsee的博客-CSDN博客_inlinespiller
Partitioned Boolean Quadratic Programming (PBQP)
uint256_tさんはTwitterを使っています 「SATソルバで最適なレジスタ割付をできたとしても, 現実は厳しいのであんまり速くならない」 / Twitter
lstm reg alloc - 1912.03700.pdf

CFG

gccを使って、制御フローグラフを作成 - Qiita
_pdf
制御フローグラフ - Wikipedia
無限ループ - Wikipedia
201303tanabe.pdf

PDG

26_3_109.pdf

グラフ書き換え系

グラフ書換え系 - Google 検索
33_1_126.pdf
uint256_tさんはTwitterを使っています 「あまり関連性はなさそうな気もしますが,詳しくないのでよくわかりません.色々なCFGがあったときにそれらが同型かを判別できると便利そうですが,最適化に使えるのかなあ. #マシュマロを投げ合おう https://t.co/3qYCxCoxdJ」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t 僕の先輩でCFGの同型性判定に基づいてコードクローンを見つけ出し、他のコード最適化に利用するってことをやってる人がいました。 詳しいところは忘れてしまいましたが。」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 なるほど,関連性は一応ありそうですね.ありがとうございます」 / Twitter

blog

Jicchoの箱

自作Cコンパイラができつつある報告的な。 - Jicchoの箱
コンパイラのコード最適化や解析手法の論文のサーベイ - Jicchoの箱
Lazy Code Motion - Jicchoの箱
Reaching Definition - Jicchoの箱
Common Sub-expression Elimination(共通部分式削除,CSE) - Jicchoの箱
Dead Code Elimination(無用コード除去, DCE) - Jicchoの箱
CFG,トポロジカルソート,Bit Vector,ワークリストアルゴリズム - Jicchoの箱

Fixstars Tech Blog

RustがC++に速度で勝った話 - Fixstars Tech Blog /proc/cpuinfo
ソフトウェアパイプラインの手書きをDRYで行う - Fixstars Tech Blog /proc/cpuinfo
ソフトウェアパイプラインを考えてみる - Fixstars Tech Blog /proc/cpuinfo
x86/x64最適化勉強会7 で発表しました - Fixstars Tech Blog /proc/cpuinfo

本の虫

本の虫: コンパイラーを負かす
本の虫: なんでGCCはa*a*a*a*a*a を (a*a*a)*(a*a*a) に最適化できないの?っと
本の虫: ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で?
本の虫: とても賢いコンパイラーの逆襲

in neuro

基本ベクトルの場合の最適化(3次元幾何) - in neuro
コンパイラの最適化と専用命令について - in neuro
コンパイル時ルックアップテーブル生成について - in neuro
reluを分岐無しで実装する - in neuro

DSAS開発者の部屋:「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない
x86/x64最適化勉強会7レポート | Cybozu Inside Out | サイボウズエンジニアのブログ
Intel CPU の popcnt 命令で性能激落ちくんの話 - Lark_mpの日記
SIMD vectorization for the Lennard-Jones potential with AVX2 and AVX-512 instructions - ScienceDirect
Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか? – ゆびてく
Cコンパイラの末尾呼び出しを活用した 効率的命令ディスパッチ手法の研究開発
高性能プロセッサの分岐予測のサーベイ論文を読んで分岐予測について学ぶ (4. 予測が難しい分岐のための分岐予測器) - FPGA開発日記
日記 (2019 年 10 月下旬)
Swiftにおける所有権付きSSA形式 | メルカリエンジニアリング
A JavaScript optimizing compiler | Carlo Piovesan | leaningtech
RustのLLVM IRでプログラム分析ことはじめ - Toshihiro YAMAGUCHI’s Diary
命令単体の性能を計測する
Dependency Analysis入門 | κeenのHappy Hacκing Blog
adv intro
Aug. 2017

スライド

SIMD化とは何か / Basics of SIMD - Speaker Deck
人間でもわかるLLVMバックエンド入門 // Speaker Deck
Elixirにおける データ並列スケルトンに基づく SIMD並列化の性能評価 - Speaker Deck
Microsoft Word - coins-rensai-ssa-transbacktrans-57.doc
融合変換による最適化の理論的基盤と正当性 (2006-06-27)

PDF

COINS 解説
intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap2-1.pdf
248966-024JA.pdf
SSA-based Compiler Design
Branch Divergence Reduction Based on Code Motion
[PDF] A Graph-Free Approach to Data-Flow Analysis | Semantic Scholar

GitHub

x86opti/readme.md at master · herumi/x86opti
kaityo256/mdacp: MDACP - Molecular Dynamics code for Avogadro Challenge Project
Getting Started — CompilerGym 0.1.7 documentation
Play with LLVM-IR, without LLVM :: Hello

Zenn

最適化コンパイラへのいざない (1) 導入 | Zenn
CompilerGymを試してみた

Qiita

MDループのソフトウェアパイプライニング:ステップ・バイ・ステップ - Qiita
インテルコンパイラのアセンブル時最適化 - Qiita
関数ポインタと関数オブジェクトのインライン展開 - Qiita
定数配列がからんだ定数畳み込み最適化 - Qiita
ZEAM開発ログ2018年総集編その2: Elixir 研究構想についてふりかえる(後編) - Qiita
WASM3の末尾呼び出しVMがかしこい - Qiita
C++コンパイラはあなたよりも良いコードを書く - Qiita
最適化コンパイラを作りたい人にとって必要な解析器の数学的基礎を与えてくれそうな An Introduction to the Theory of Optimizing Compilers の斜め読みのしかた - Qiita
最適化コンパイラへのいざない (1) - Qiita
最適化コンパイラへのいざない (2) マルチパスコンパイラ - Qiita
最適化コンパイラへのいざない (3) 定数に関する最適化 - Qiita
最適化コンパイラへのいざない (4) プログラムの構造 - Qiita
オーバーライドされた仮想関数にまつわる最適化 - Qiita
末尾呼び出し最適化についてあれこれ - Qiita
mrubyの可変引数最適化 - Qiita

Wikipedia

Interprocedural optimization - Wikipedia
Category:コンパイラ最適化 - Wikipedia
Category:ソフトウェア最適化 - Wikipedia

Twitter

その他

histric

histric-1

とみながたけひろさんのツイート: "いまのコンパイラって、コンパイル後の実行結果をフィードバックする仕組みが弱いんですよね。プロファイルガイディッドとかゆーてもループ回数とか関数呼び出し回数とかぐらいで、命令スケジュールとかデータ構造を性能カウンターみながら変えるとかできないので、、、… https://t.co/xjQglfDetN"
まさみさんは語りたいさんのツイート: "おっ、やはりそうなんですね。まあ、プロセッサモデルで異なる最適化手法までバイナリに適用し始めたらそれはそれで・・・。さらに、データ構造は流石に勝手に変えられないというか(笑)… "
とみながたけひろさんのツイート: "まあ、そこが「ワンパスコンパイラ」たる人間の出番ですよね😄 なお最近のgccはハードウェアプリフェッチャーの動作を予想して、構造体からデータを読み書きするときに、順序をいじるという仕組みがあるみたい(たしかlinaroの人がいれようとしてた記憶… https://t.co/fFt0aqjM9S"
まさみさんは語りたいさんのツイート: "x86の命令毎のレイテンシを測る発表、OoOやストアバッファの挙動を予め考慮しておきながら、投機的実行が行われない依存関係のあるループをいかに作って行くかという話で面白い。 #x86opti"
まさみさんは語りたいさんのツイート: "xbyakを使うとコード中で任意の機械語を詰めることが出来るわけだ。これはいいな。#x86opti"
まさみさんは語りたいさんのツイート: "なんでperfコマンドを使わないのかが不思議なんだけど・・・。"
とみながたけひろさんのツイート: "いま某CPU向けにまさに同じことをやっているのでとても参考になるのだった(x86じゃないのでXybakがなくて辛い)。私は頑張り切らない感じなので割り算命令の速度は割る数を1<<n(n=0-31とか)で変化させて「あー1クロックに4ビット計算できるのね」ぐらいを確かめて終わりにした #x86opti"
とみながたけひろさんのツイート: "あと、しょぼい環境だとパフォーマンスカウンタをsyscallで読むのに時間がかかる(そしてジッターが大きい)ので辛いので、専用カーネルモジュールを作ってユーザーランドから直接読めるようにするとかやるのであった #x86opti"
とみながたけひろさんのツイート: "そしてXybakじゃなくXbyakだった(汗)"
とみながたけひろさんのツイート: "なおしょぼい環境だと掛け算も32bit*32bitなのかそうでないのか、とかで性能が変わるので辛い(ここで68000を思い出すおっさんであった)"
satさんのツイート: "ミリ秒、マイクロ単位の最適化の話は書いてるとめちゃくちゃ楽しいのですが、いかんせんその点の最適化が必要な人は非常に少ないし、その人たちは本見なくても自分で勝手に調べそうというジレンマがありまして"
まさみさんは語りたいさんのツイート: "マイクロ秒を切るテクニックばっかり追い求めてた感じはするなあ。 スピンロックは遅いからCPUローカルな変数にしてロックレス化とか、割り込み禁止も別の処理の反応速度を落とすからできるだけ回避とか・・・。"
まさみさんは語りたいさんのツイート: "ソフトウェアの最適化の要は、そういう手練手管を駆使することより、どこがhotpathかを見極めて、それ以外の所は可能な限り富豪的プログラミングを適用して楽することなんだよね。"
satさんのツイート: "それですよ。たのしいけど、それはホットスポットが見つけたあとの話であって、ホットスポットを見つける技術が最適化のために一番必要な技術かもしれない… "
まさみさんは語りたいさんのツイート: "今はperfがあるのでマイクロ秒単位の遅い所は余裕で見つけられますよ。あとstraceとltraceを駆使するとシステムコールやライブラリコールの遅延も測れるから、ミリ秒単位の遅延場所も特定できますね。… "
satさんのツイート: "perf最強です。もう頭が上がらない… "
まさみさんは語りたいさんのツイート: "よくある最適化初心者の間違いは、なんかもうmain関数から最適化を始めてしまったり、コーディングスタイルとしてfutexじゃなく自作のspinlockを使ったり、というチグハグなところにあるんだよね。"
まさみさんは語りたいさんのツイート: "スピンロックはスピンロック自体が遅いわけではなく(ナノ秒で見ると遅いけど)、スピンロックの粒度の調整が難しいということを付け加えさせていただく。大きくロックすると衝突しやすくなり、小さくロックするとメモリバスが乱されて遅くなる。per-cpuさいつよ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "このあたりに詳しい人が見たら、一発で見切れてしまう話なのでは?とも思いつつ(笑) (IntelPCMはWin系の場合、モジュールをコンパイルしてドライバを入れて、ようやくパフォーマンスモニタから細かなCPU関連の統計情報を参照できるようになる)"
satさんのツイート: "x軸で示されたサイズのメモリにストライドをキャッシュラインサイズにして合計40億回メモリアクセスした場合の平均アクセスレイテンシ。x軸もy軸もlog scale。だいたいL1d(2^5 KB), L2(2^8 KB), L3(2^12 KB)で性能が一段階劣化。想定通り #livadevbox… https://t.co/cOBHoEy2PL"
satさんのツイート: "これだと知ってる人には「そうですね」なので、次は今使ってるマイクロベンチプログラムを改編して各キャッシュがどのコアで共有されてるかを調べる。これは公式HPに載ってない情報 #livadevbox"
まさみさんは語りたいさんのツイート: "トレーサのオーバヘッドの話は、どうやってもある程度出るのをどう削るか、みたいな話にしかならないし、あまりユーザビリティの観点からは気にされないのが現状なんだよなあ。"
まさみさんは語りたいさんのツイート: "なのでLTTngのオーバヘッドが10%ほど低いです!っていう主張をされても、そうですか、という感想しかないのが現状・・・。"

histric-2

histric-3

C++でOS自作 技術書典5 お05さんのツイート: "ストレージの各種メトリックを基にアプリが遅延した原因を推測するの難しいなあ。"
まさみさんは語りたいさんのツイート: "「静的なトレースイベントはカーネルAPIだからバージョン依存しないとは言っていない(キリッ」っていうのが公式見解だったと思う。ただしまあ、トレースイベント自体はとても良く考えられている場合があるのでそういうのは結構硬い。"
まさみさんは語りたいさんのツイート: "イベント発生回数やレイテンシの測定とか、定型的な処理だったら今でもftraceで出来るようになっているんだよね。結局典型的でよく使われる機能は固定化されるっていう話。"
まさみさんは語りたいさんのツイート: "kprobeを使ったとしてもレジスタとかじゃなく元の引数でアクセスできるようにすべき。systemtapは既にそうしているし、perf probeを使えば出来るはずなんだけど・・・。"
まさみさんは語りたいさんのツイート: "perf_event_open(2)は本当にちょっとアレだよなあ・・・。"
まさみさんは語りたいさんのツイート: "bccの面白い所、多言語バインディングしてるけどカーネル内で動かす部分はCっぽい何かのままなんだよなあ。"
まさみさんは語りたいさんのツイート: "bccでmodified Cが必要な理由は、多分ループが使えないからじゃないかな。"
まさみさんは語りたいさんのツイート: "bcc使う、使わないは、使っているカーネルと環境とターゲットに依存するんすよね。"
まさみさんは語りたいさんのツイート: "bpftraceとply、開発続いてたんだ。"
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t PLDI, CGO あたりを読むのが良さそうですが,どうでしょうか?」 / Twitter
FadisさんはTwitterを使っています 「LLVMに新しい最適化パスMachine Function Splitterが提案されている。この最適化は関数の中の実行される可能性が高そうな部分と低そうな部分を分離し別々のsectionに吐く。実行される可能性が高いマシン語の列が密に配置され命令キャッシュのヒット率が上がり、性能が向上する https://t.co/soUjc9eLmA」 / Twitter
Google Engineers Propose "Machine Function Splitter" For Faster Performance - Phoronix
Fadisさんのツイート: "gccに新しい最適化フラグ-O1gを追加しようという提案がなされている。-O1gでは-O1で行われる最適化のうち、デバッガで覗いた時に悲しみが溢れる物を除外した最適化を行う。最適化するとデバッグが捗らないけど、最適化しないと遅すぎてデバッグが捗らない時に役に立ちそう https://t.co/woaqbvpahc"
New "-O1g" Optimization Level Proposed For The GCC Compiler - Phoronix
chikoskiさんはTwitterを使っています 「仮定をいくつか置くことでも最適化できる。例えば、今見てるアドレスよりも引くアドレスにはアクセスしないという仮定ができれば、アドレスの足し算を消して、オフセットを使ったメモリアクセスに書き換えられる。これも効く」 / Twitter
Shirouzu Hiroaki(白水啓章)さんのツイート: "「共用体メンバ」じゃなくて、「共用体メンバのうち、アクセスが無いメンバ」だな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "でも、gcc側の問題のような気も。似た落とし穴に嵌る人も多そうだなぁ…"
ゆたかさんさんのツイート: "Infinibandドライバでstruct sockaddrのアクセス方法が変更となりましたが、元のコードだとなぜダメなのかよく分かりませんでした。共用体は沼が深いです。 × &sgid._sockaddr ○ (struct sockaddr *)&sgid https://t.co/ZYTCUvG3iI #カーネルパッチ勉強会… https://t.co/INOsrww15L"
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 ローカル&static関数でしかアクセスしない共用体メンバは、存在しないものとして最適化が走るんだろうなぁ。… "
とみながたけひろさんのツイート: "https://t.co/gKiaPJMdZ3 コンパイル時間との絡みでどこまでやるかよく議題になる定数・値域伝搬最適化ですな。 f(a,b){int r=a;while (++a<b) r*=a; return r;}はa<0<bとかだと0にできるけど、やります?みたいな"
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
Kazuho Okuさんのツイート: "「コンパイラは、異なる型の仮引数についてaliasingされているとは考えなくてよい」っての、割と一般的な strict aliasing の説明だったと思うけど、それが問題になってるの..."
Kazuho Okuさんのツイート: "Cに落とすことで実装さぼりたいという意図で言うと、aliasingで最適化無効になるの避けたいしスタックベースの中間表現さけたいのはよくわかる"

histric-4

κeenさんのツイート: "「SSAをハッシュして持っとくと共通部分式が見付けやすい」へー。 #compiler_study"
κeenさんのツイート: "「SSAだとGlobal Variable Numberingがやりやすい」 #compiler_study"
κeenさんのツイート: "link time optimizationとwhole program optimization、LTOの方がコンパイル時間が短いけど諸々の理由で中間ファイルにメタデータを埋め込めなかったらWPOになっちゃうよね。"
もっちぃさんのツイート: "形式検証では不変量の自動抽出が鍵になり、Invariant is holy glory of formal verification なんて言われます。で、この不変量、当然最適化にも利用可能です。その意味で、最適化と形式検証は表裏一体であり、ともに協調して発展していく事が大事です https://t.co/BCYQa4kkwM"
Kazuho Okuさんのツイート: "スタックをグローバル配列じゃなくローカル変数な配列でもつようにしたら速くなるはず... っていうけど、そもそも遅いのはエリアシングじゃないのかな。だとすると、ローカル変数な配列にしても関数呼出が発生しうるパスがあるとダメな気がするけど"
もっちぃさんのツイート: "値番号に基づく部分冗長性除去 https://t.co/7PceHkvgGO https://t.co/uoYsZdcu0q #compiler_study"
herumiさんのツイート: "岩永さんによる最近のC#の概要。stackalloc, Span構造体, ref周りの拡張など、C++が無法地帯からなんとか安全な方向を目指すのと逆向きでC#が安全なところからぎりぎりを攻める感じが面白い。if (uint)x < y)みたいな最適化を2018年に見るとは思わなかった。https://t.co/QBcf7GtiNu #decode18 #ad19"
Jacob Torreyさんのツイート: "Still one of the strangest things I've learned from the x86 manuals. ADDING dead/redundant code will improve prefetching and overall performance!… https://t.co/ne5YEHo3oc"
Nerry@さんのツイート: "いまどきのCPUはほぼOoO動作していて、そのとき空いてるユニットにぶち込んで依存性のない命令はどんどん勝手に実行されていくのに、命令生成の段階で命令の順序に気を配る必要性あるんだろうか?"
Nerry@さんのツイート: "いくらコンパイラが頑張って命令配置してもCPUが無理って思った命令は後回しにされるし逆に行けるって思った命令はどんどん実行されちゃうから並べ方に気をつけても???"
Nerry@さんのツイート: "いくらコンパイラが頑張って命令並べてもCPUのOoOの方が優秀で重要ってのがVLIWの知見なわけで…"
hsjoihsさんのツイート: "「言語仕様を盾に、コンパイラが非直感的な最適化をどんどんしてくるようになってきた頃から」なのでは、というのはいろんな話を聞いていて思う… "
デダルス・ユメノさんのツイート: "あるスーパープログラマが「最近の若い人は言語仕様に拘るよね、昔はコンパイラが仕様に従ってないことがざらにあって、現物でちゃんと動くコードを書く(たとえ仕様違反でも)ことに価値があった。」と言っていたのを思い出した。いつ頃から言語仕様が神格化されたのか。"
hsjoihsさんのツイート: "時系列的にはこっちの要素の方が先かも https://t.co/lQ8HkmTHp7"
yoh2さんのツイート: "「現物でちゃんと動くコード (言語仕様違反)」がコンパイラのバージョン違いで動かなくなる地獄に遭遇したからだよ。 かと言って言語仕様通りでもコンパイラのバグで動かないことも稀にあるので、言語仕様+コンパイラの独自拡張通りかつ現物で動くものが大事。 https://t.co/41hEhHEt2p"
電子計算機の沼さんはTwitterを使っています 「ちなみに自動並列化・最適化されてほしいねえという話をさっきからしていますが... 最適化や並列化をすると演算順序の変更により誤差の入り方も変わって答えが変わって...みたいな沼の話もあって楽しいんですが皆さんどうですか」 / Twitter
伊丹十三世さんはTwitterを使っています 「@Hishinuma_t CT再構成はまさにそこですね…並列処理をきちんと考えないと誤差を含んでボケた画像になるので…故に基本GPUは使ってはいけない…」 / Twitter
uint256_tさんはTwitterを使っています 「https://t.co/dBL7fQ4ghB ここらへん眺めながら,面白そうなのを実装していきたいね」 / Twitter
LLVM’s Analysis and Transform Passes — LLVM 12 documentation

uint256_tさんはTwitterを使っています 「- 命令選択マクロは便利だけど、似たような記述が増えていって不便 (正規表現でマッチするものを自動生成してもいいけど、proc-macroが複雑になりすぎる) - DAGをunsafeなノードのグラフとして表現するのはどうなのか - IRのBasic Blockがliveness情報を持っているのはどうなの (Functionとかに渡そう)」 / Twitter
uint256_tさんはTwitterを使っています 「拡張基本ブロックは偉大だなぁ...」 / Twitter
uint256_tさんはTwitterを使っています 「LLVMでいうSelectionDAGみたいなのをどうやって表現すれば一番適切なのか」 / Twitter
uint256_tさんはTwitterを使っています 「動的な命令選択パターンマッチャを作る。costは多分アーキテクチャごとに命令のlatencyやらを考えながら決めるんだろうけど、今は面倒だから cost=1/どれだけ多くのノードをカバーできたか でいいか。」 / Twitter
R. ShioyaさんはTwitterを使っています 「RT 元の表や元のブログ記事はちょっと勘違いがある気がして(ROB とスケジューラの区別がたぶんついてないかも),でも文字では説明がしんどいので絵を描いてみた・・・ らえらいごちゃごちゃになった. インテルや IBM がいろいろ呼び方変えててめんどくさいのは,そうだなぁと思う. https://t.co/W28eoKuOnb」 / Twitter
R. ShioyaさんはTwitterを使っています 「たとえばこの Zen2 の AMD がだしてるブロック図は Scheduler が分散になっているのでそこが少し違うけど,おおむね自分の描いた図と一致しているとおもう. ちなみにサイズは Scheduler が合計92命令,ROB が224命令で,最近はだいたいこんなもんかも. https://t.co/uWnxjWeSV7」 / Twitter
拡大画像 photo12l | Ryzen Deep Dive! 「Zen2」の内部構造を分析する - 第3世代Ryzen+NAVI徹底攻略 (1) | マイナビニュース
Shinji KonoさんはTwitterを使っています 「Cは実は関数呼び出しかなり重くて、関数展開しまくってようやっとなんとかなってる。なので、native compiler な言語なら勝てる余地はいろいろある。」 / Twitter
FadisさんはTwitterを使っています 「今日殆どのC++コンパイラは末尾再帰最適化を行うが、C++の規格は末尾再帰最適化を行う事を特に要求していない為、末尾再帰最適化がかからなければスタックが溢れて死ぬようなコードはコンパイラとコンパイルオプションが指定されない限り「互換性に問題のあるコード」ということになる」 / Twitter
そすうぽよ(早寝早起き)さんはTwitterを使っています 「最適化するとデバッグできなくてしんどいが、最適化しないと遅くてつらい、という悩みを軽減するために、GCCにはデバッグをあまり妨げないような最適化のみ行う、-Ogオプションがあって便利です」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「なおローレンツ方程式というのは初期値鋭敏性という性質を示す微分方程式で、微小な差が時間発展に伴って急速に成長するので、どっかで誤差の出方が変わる最適化とかを暗黙的に行ってしまっていないかと言う確認とかによさそうな気がするやつです(もっといいのたくさんあるはずだけど書き慣れてるので」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「にもかかわらず数学関数を一切呼ぶ必要ないからそのへんの実装依存の精度差を食らわんって点も好きで、実際C/C++でも誤差桁まで同じ結果出たので、IEEE754準拠で同じ丸めモードで同じFPU/CPU使ってれば少なくとも手元環境ではそれくらい合ってくれるっぽい?」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu @n_soda 次にコンパイラ技術が進んだら VLIW でどうにかなるのかというと,個人的には無理だと思います.これは VLIW というかコンパイラでは分岐の方向やキャッシュのヒットミス,メモリの依存関係などが動的に頻繁に変わるものには基本的に対応できないからです.」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu @n_soda あとは,静的にコンパイラでどうにかする技術は,プロセッサがアップデートされて構成が変わった際に追随できないと言うことがあります.新製品で動かすとキャッシュのレイテンシが伸びて再コンパイルしない限りは毎サイクルストールする,なんてことがありえると思います.」 / Twitter
Miura HidekiさんはTwitterを使っています 「なるほど、うなづくしかないが、「コンパイラでは分岐の方向やキャッシュのヒットミス,メモリの依存関係などが動的に頻繁に変わるものには基本的に対応できないからです.」は果たして本当にそうなんだろうか?って思った」 / Twitter
Miura HidekiさんはTwitterを使っています 「ただ、その際にはつねに裏でプロファイラが走っていて必要に応じてOSRするって感じになるだろうけど、コア余っているからそれもいいよね?という」 / Twitter

@Jiccho96

jicchoさんはTwitterを使っています 「以前にこんな感じのことできたらなぁと考えてたやつがCGO 2020に出てた https://t.co/oCLK3f5Z6u」 / Twitter
Speculative reconvergence for improved SIMT efficiency | Proceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 おお,読んでみます! この研究の提案手法と, @Jiccho96 さんの以前紹介してくださった提案手法との違いは何ですか?」 / Twitter
jicchoさんはTwitterを使っています 「@zacky1972 ほとんど別物ですね。 分岐発散を低減したいというところだけ共通しています。 僕が以前ご紹介した手法は分岐発散の性質を利用して式を投機的に巻き上げるのに対し、この研究では直後支配節より早い点で投機的にreconvergenceして分岐発散自体を抑える手法になっています。」 / Twitter
jicchoさんはTwitterを使っています 「@zacky1972 こんなことできたらなって妄想してましたが、NVIDIAはさすがですね。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 とてもよく理解できました。感謝します。」 / Twitter

@telmin_orca

Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「「この位置にprintfが無いとなぜか動かないんだ。」 https://t.co/Crr7nvXnJg 注釈の解説が本編だった。 恥ずかしながらTSTの中にもこれと大差ない(副作用に期待した)コードがある。「ここで一回イベントループを終わらせてFirefox側の処理完了後に回さないと動かない」とか。」 / Twitter
「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
富岳てるみさんはTwitterを使っています 「これと直接同じ話ではないけど、コンパイラが賢いせいでスタックを大量に消費するから最適化を無理やり切るために変なブロックを打ち込むとか、レジスタを消費しすぎて割り付けの自由度が著しく低下してるから関数に切り出すとか、世の中には色々辛い話がある(?)」 / Twitter
富岳てるみさんはTwitterを使っています 「最内ループでスピルしまくると涙ちょちょぎれちゃう」 / Twitter

命令選択

kateinoigakukunさんはTwitterを使っています 「中間言語からネイティブ命令を選択する際には複数の中間言語命令が一つのネイティブ命令に畳み込めるパターンがあるのでBasicBlockの下から選択していきたい」 / Twitter
uint256_tさんはTwitterを使っています 「下から舐めてって、DAG作りがち」 / Twitter
uint256_tさんはTwitterを使っています 「craneliftもそう」 / Twitter

volatile

ryoさんはTwitterを使っています 「MCOUNT_ENTERで定義してるasm()にvolatileつけ忘れてて、https://t.co/3AbZtShgM5 の MCOUNT_ENTER と __cpu_simple_lock() の順序が入れ替わってたせいだった。以前も似たようなことがあったな。https://t.co/q6GV1ljMsT まるで学習していない…」 / Twitter
Cross Reference: /src/common/lib/libc/gmon/mcount.c
ryoさんはTwitterを使っています 「asm()でやってるシステムレジスタの読み込みにvolatileが付いてなくて読み込み結果が使いまわされてた。よく今まで動いてたなw」 / Twitter

強化学習

κeenさんはTwitterを使っています 「面白い。機械学習エンジニアが強化学習でコンパイラの最適化問題を解くための環境を用意している。 普通、コンパイラの最適化はどのパスをどの順番で適用するかは手作業で決める facebookresearch/CompilerGym: A reinforcement learning toolkit for compiler optimizations https://t.co/HlelTYg0Tv」 / Twitter
facebookresearch/CompilerGym: A reinforcement learning toolkit for compiler optimizations
κeenさんはTwitterを使っています 「探索空間は思ったより広くて、LLVMでパスが数百くらいあったはず。それにABABみたいに同じパスが何度も出ることもあるし、パスにパラメータがあったりもする。」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@blackenedgold ChrisCumminsさんはこの方ですね "Deep learning for compilers", Chris Cummins, PhD Thesis, 2020 https://t.co/GyDORHUMeM Chris Cummins https://t.co/aOiNu6qFAQ https://t.co/ZQOsWl85Ot Facebook AI Research, Research Software Engineer: 2020 - present」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「@blackenedgold ChrisCumminsさんはこの方ですね "Deep learning for compilers", Chris Cummins, PhD Thesis, 2020 https://t.co/GyDORHUMeM Chris Cummins https://t.co/aOiNu6qFAQ https://t.co/ZQOsWl85Ot Facebook AI Research, Research Software Engineer: 2020 - present」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=&gt; "Deep learning for compilers", Chris Cummins, PhD Thesis, 2020 https://t.co/ptgCu42vFJ https://t.co/I2t8qRS6zP https://t.co/sh4w7ZPJZW "Machine Learning in Compilers: Past, Present and Future", FDL 2020 PDF https://t.co/DlQzZB4aeJ PACT 2017, Best Paper https://t.co/yLUrgHg8jl https://t.co/aK82FqQeQR」 / Twitter
ChrisCummins (Chris Cummins)
Resume | Chris Cummins

VM

Kazuho OkuさんはTwitterを使っています 「面白い。入力が高級言語で書かれたプログラムなら、whileとifを使うJavaScriptを生成できると思うけど、switch-caseに展開するのと速度差が出るのか(出ないのか)気になる / https://t.co/KjHhM2GczH」 / Twitter
JavaScript における VM の高速化手法
Kazuho OkuさんはTwitterを使っています 「実際にはその前に stack や local variable に配列使うのやめろって話になるか」 / Twitter

LICM

uint256_tさんはTwitterを使っています 「#sericum LICMしてもstoreとかloadが移動してくれないから、そんなに速くならない。早くエイリアス解析を実装しないとどうしようもないね。」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t エイリアス解析をしなくても、load命令で読み込む先のメモリ番地にあるデータを変更するような命令があったらkillするというような保守的なデータフロー解析をすれば、LICMできますよ。」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 確かにそうですね。 (最終的にエイリアス解析をパスのような形で実装しないと、後々面倒だよなぁと考えていました)」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t まぁエイリアスを全部解析するのは中々難しいですね😔」 / Twitter

PGO

κeenさんはTwitterを使っています 「面白い。Rustコンパイラ自身をPGOで高速化する試み。rustcはRust部分とC++部分(LLVM)がありちょっと複雑だができなくはないと。十数%高速化するらしい。 Exploring PGO for the Rust compiler | Inside Rust Blog https://t.co/JXDhAkaICU」 / Twitter
Exploring PGO for the Rust compiler | Inside Rust Blog
κeenさんはTwitterを使っています 「PGO(Profiler Guided Optimization)はコンパイルしたコードを一度走らせてみて遅い部分などを特定してそこを重点的に最適化するよう再度コンパイルする仕組み。その複雑な仕組みから公式配布するrustcのコンパイルに使うのは簡単ではなさそうと.」 / Twitter
κeenさんはTwitterを使っています 「1つ注意しておくと、これはrustc自身をPGOで最適化する話。普通のRustのコードのPGOは既にサポートされてるよ。 Profile-guided Optimization - The rustc book https://t.co/h0mUbn6pSC」 / Twitter
Profile-guided Optimization - The rustc book
ガイド付き最適化のプロファイル | Microsoft Docs
プロファイルに基づく最適化の概要

PGO(Linux)

retrageさんはTwitterを使っています 「Linux kernelでPGOなんてデータどうするのかと思っていたらsysfs経由で見られるようにするらしい。」 / Twitter
PhoronixさんはTwitterを使っています 「Profile Guided Optimizations (#PGO) Likely Coming To #Linux 5.14 For #LLVM #Clang https://t.co/4gHRuHPfye」 / Twitter
Profile Guided Optimizations (PGO) Likely Coming To Linux 5.14 For Clang - Phoronix
retrageさんはTwitterを使っています 「ぱっと見た感じリンク時にプロファイルデータ用の領域をシンボルと共に確保しておいて実行時にそこにためたデータをdebugfsでアクセスしたときにシリアライズしてユーザ空間に見せる、みたいなことをしているっぽい https://t.co/SqtG1Gqj0b」 / Twitter
kernel/git/kees/linux.git - Various feature branches

basic block parameter

uint256_tさんはTwitterを使っています 「basic block parameters を知りました.Phiより良いかもしれませんね.」 / Twitter
uint256_tさんはTwitterを使っています 「#cilk 難しい. basic block parameter を実装しようとしたけど, そもそもbasic block間をまたいで使われる変数が許容されなくなるのか. だから data-flow analysis しやすい,と. extended basic blockに以降したほうが良さそうだし, 色々仕様を変えないと実現できなさそう.」 / Twitter
uint256_tさんはTwitterを使っています 「#cilk とりあえず, PhiとAllocaだけ扱いを変えよう.」 / Twitter

関数分割

7594591200220899443さんはTwitterを使っています 「あっ、関数を勝手に二個に分けてコールドパスっぽい箇所を別のセクションにしちゃうやつだ。2.33% runtime improvement with a ~32% reduction in iTLB and sTLB misses 強いなー」 / Twitter
Hacker News 200さんはTwitterを使っています 「LLVM merges machine function splitter for reduction in TLB misses https://t.co/9m4HHQIPZ4 (https://t.co/4xFIgNV2mz)」 / Twitter
[llvm-dev] [RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
LLVM merges machine function splitter for reduction in TLB misses | Hacker News
_ko1さんはTwitterを使っています 「@shyouhei Unlikely にレベルが欲しくなるね...」 / Twitter
7594591200220899443さんはTwitterを使っています 「@_ko1 えっ、普通にありますけど…」 / Twitter
7594591200220899443さんはTwitterを使っています 「@_ko1 https://t.co/T7PYXyxYoT __builtin_expect_with_probability」 / Twitter
Other Builtins (Using the GNU Compiler Collection (GCC))
_ko1さんはTwitterを使っています 「@shyouhei gcc 9 からか」 / Twitter
ドッグさんはTwitterを使っています 「LLVM にこんなパッチ出てたのか.profile data から関数の中で cold なパスを見つけ,リンカがそれらのコードを関数の外にまとめて配置.hot なパスの凝縮度が上がってキャッシュ効率が上がる.2%以上のパフォーマンス改善 | '[llvm-dev] [RFC] Machine Function Splitter' https://t.co/3JEoJZ71DL」 / Twitter
ドッグさんはTwitterを使っています 「Google では profile data driven なアグレッシブなインライン化をやっていて,それによってコードの肥大化と実行コードの fragmentation がひどくなっていることの対策.最も hot な関数のコードの実に50%は(hot なのでキャッシュに乗ってるにも関わらず)実際は実行されてないらしい」 / Twitter
エヌユルさんはTwitterを使っています 「C++だとコンパイラはインライン展開が得意な割にキャッシュヒットのための関数分割が苦手な傾向あるし関数は分割していった方が良いんですが JavaScriptのJITエンジンはどうなんですかね」 / Twitter

支配木

先にcritical edgeを除去

uint256_tさんはTwitterを使っています 「途中でブロックを追加したりするから支配木を再計算しないといけない. 効率が悪いので良い方法を探したい」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t 先にcritical edgeを除去しておくってのはどうでしょう?」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 なるほど. ループのヘッダを計算しなくても critical edge を除去することはできますね. ありがとうございます」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 (ループのヘッダを計算するのは, プリヘッダを追加するため)」 / Twitter

uint256_tさんはTwitterを使っています 「CFGで,ブロックxからブロックyへの経路があるかっていうのはどうやって調べるのでしょうか 支配木を使って, xがyを支配する or xの支配辺境がyを支配する, でいいんだろうか」 / Twitter
κeenさんはTwitterを使っています 「@uint256_t それだと2回流入があるケースに対応できないです。 \ \ x--df1--df2-y xがyを支配する or xの支配辺境の支配辺境の…と辿った集合がyを支配するの条件が必要です。」 / Twitter
uint256_tさんはTwitterを使っています 「@blackenedgold なるほど. それ以上簡単に判別する方法はないのでしょうか」 / Twitter
κeenさんはTwitterを使っています 「@uint256_t これ以外ないかと言われると自信ないですが、支配木を使ったアルゴリズムは私はこれしか知らないです。」 / Twitter
uint256_tさんはTwitterを使っています 「@blackenedgold ありがとうございます.」 / Twitter
κeenさんはTwitterを使っています 「@uint256_t 余談ですが支配辺境の支配辺境の…と辿った集合はiterated dominance frontier(反復支配辺境?)という名前がついているそうです。」 / Twitter
uint256_tさんはTwitterを使っています 「@blackenedgold 聞いたことあります. なるほど, こういう場合に役立つのか...」 / Twitter
Basic Block Reordering - GNU Project - Free Software Foundation (FSF)

BOLT

uint256_tさんはTwitterを使っています 「BOLT: a practical binary optimizer for data centers and beyond」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t 並び替えるだけでこんなパフォーマンス変わるとは。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t あとディスアセンブルして並び替えてアセンブルすると元と同じように実行できるバイナリになるっていうのが結構すごい(細かいところを実装するのが大変そう)。」 / Twitter

PRE

uint256_tさんはTwitterを使っています 「partial redundancy elimination よくわからない.これもdominator treeとか使えば綺麗に実装できるのだろうか」 / Twitter
uint256_tさんはTwitterを使っています 「なんか先にglobal value numberingの事を考えた方がいい気がしてきた」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t PREの一つであるLazy Code Motion(LCM)の実装方法が、以前に紹介したBuilding an Optimizing Compilerに載ってますよ。まずLCMの元の論文を読んでみてもいいかもしれませんね。PREはド専門なので、わからなかったら是非聞いてください(^^)」 / Twitter
uint256_tさんはTwitterを使っています 「@Jiccho96 ありがとうございます.(今コンパイラの構成と最適化を読んでいて,SSAの場合どうするのが楽なのか考えていました)」 / Twitter
jicchoさんはTwitterを使っています 「@uint256_t SSAPREという手法が実は既に提案されています。ちょっと自分で考えてみてから論文を読んでみるといいかもですね。 https://t.co/AK8cMSBIst」 / Twitter
A new algorithm for partial redundancy elimination based on SSA form | ACM SIGPLAN Notices

in-order 発行+out-of-order 完了

R. ShioyaさんはTwitterを使っています 「去年ぐらいから in-order な CPU(正確には in-order 発行+out-of-order 完了)の性能解析をする機会がちょくちょくあって,out-of-order な CPU との性能差の要因の1つとして,分岐命令の処理方法の違いが大きいってのがあんま本とかでは見た覚えがなかったので面白かった」 / Twitter
R. ShioyaさんはTwitterを使っています 「out-of-order 発行だと,分岐命令はディスティネーションがないので(予測が当たっている限りは)全体の実行を遅らせることは基本ないけど,in-order 発行だとロードに依存する分岐とかは依存元の値が取れるまで発行を止めないといけないので,ここで性能差がごりごり出ることが多い」 / Twitter
R. ShioyaさんはTwitterを使っています 「分岐予測が当たってる限りは分岐命令は性能に影響与えないよねとか思っちゃうんだけど,それとは別に in-order 発行の場合は真の依存があると止めないとダメだってのがあって,当たり前ではあるんだけど見落としがちな感じ」 / Twitter

V8 release v8.0 · V8
Compressed pointers in V8 (public doc) - Google ドキュメント
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X

セキュリティ

その他

Linuxカーネル4.13リリース | OSDN Magazine
An Introduction to Speculative Optimization in V8
seclang01 - essen-wiki
Return-oriented Programmingとは何かを学ぶ|株式会社レピダム
CVSS(共通脆弱性評価システム)3.0から3.1への変更点:OpenSCAPで脆弱性対策はどう変わる?(7) - @IT
ipa ファイル レースコンディション - Google 検索
9_188.pdf
自分のこと、知れてますか。 〜自分のPCをフォレンジック〜 - Qiita
セキュリティ専門家の40%以上が「2030年までにAIに仕事を奪われる」と予想している - GIGAZINE

システムコール

FadisさんはTwitterを使っています 「OpenBSDが「libcのようなシステムコールを使うことが意図されたライブラリの置かれたアドレス以外から飛んでくる不審なシステムコールは拒否しよう」という仕組みを導入したら、不審なGo言語で作られたバイナリが全く動かなくなってしまった話良い」 / Twitter
FadisさんはTwitterを使っています 「で、それに対するOpenBSDの対応が「Go言語がきちんとlibc経由でシステムコールを呼ぶように修正する」なのが更に良い https://t.co/8eoSVQEjtr」 / Twitter
κeenさんはTwitterを使っています 「システムコールは叩きたいけどC FFIは用意する気がない言語を作りたいときに非常に困る。極論、OSは場を提供する親なので逆らえないし嫌なら出てけって話なんだけど…」 / Twitter
鯉江さんはTwitterを使っています 「@blackenedgold システムコール直にたたくと移植性が落ちません?」 / Twitter
κeenさんはTwitterを使っています 「@koie 移植すればいいだけです。それに、Cそのまま呼べる特殊な言語でない限りABI気にしないといけないのでどのみちプラットフォームごとの処理は必要です。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「syscallレベルで「も」互換性確保しようするとOSの変化の足かせになる、というのはあるのかな。brk廃止できないとかvdsoに移行したあと古いsyscall消せないとか。またtcpみたくライブラリとして提供されがちな機能もあるわけで(Solarisや最近のApple)、syscallで機能がそろうと期待するのがそもそもry」 / Twitter
DrumatoさんはTwitterを使っています 「keenさんほどハイレベルなこと考えているわけじゃないけど,気持ちはよくわかります. 今作っているPeachili言語ではC FFIを用意する代わりにインラインアセンブラみたいな構文を用意して標準ライブラリに組み込んである. (かなり大変だった) (そういう話じゃなかったらすみません」 / Twitter
とみながたけひろさんはTwitterを使っています 「ページ属性に特定のビットが立ってないとシステムコールが発行できない、という仕組みがあったCPUってなんだったっけ…とhttps://t.co/KPAIFeCYVJ をみてそうだPA-RISCとIA-64だと思い出した」 / Twitter
仮想メモリ方式の分類
dancerj 🗾さんはTwitterを使っています 「@takehiro_t sysenterもまあそういうノリな気がします」 / Twitter
FadisさんはTwitterを使っています 「Linuxにシステムコールを呼べるメモリの範囲を制限する仕組みを追加する提案がなされている。ただ、攻撃者の妨害を狙ったOpenBSDの同種の機能と異なり、Linuxの狙いはWindowsの実行可能バイナリをLinux上で実行したときに発行されたシステムコールを捉える事らしい https://t.co/US0EbzPndP」 / Twitter
FadisさんはTwitterを使っています 「WindowsバイナリをWindowsじゃないところで実行するWineは従来Windows APIを自前で実装する事で実現されていたが、近年Windows APIを使わず自分でシステムコールを投げるアプリケーションが増えていて、この方法ではWindows用のシステムコールが飛んでしまうらしい」 / Twitter
FadisさんはTwitterを使っています 「そこでmmapのオプションにシステムコール禁止フラグを追加し、Windowsの実行可能バイナリをロードした領域だけシステムコール禁止にして、Windowsの実行可能バイナリ内から行われたsyscallを捕捉してエミュレーション用のコードを実行しよう、という魂胆らしい」 / Twitter

署名

ASN.1

自堕落な技術者の日記 : オススメASN.1ビューアaatool - livedoor Blog(ブログ)
www5d.biglobe.ne.jp/stssk/asn1/index.html
もいちど知りたい、セキュアコーディングの基本(5):見落としがちな整数関連の脆弱性(後編) (1/2) - @IT
ASN.1 バイナリ変換規則 (BER, CER, DER)
ASN.1 データ生成/解析の事始 — SOUM/misc
Tools
vlm/asn1c: The ASN.1 Compiler
Lev Walkin → ASN.1 Exposed
ITU-T Recommendation database
ITU-T Recommendation database
ITU-T Recommendation database
ITU-T Recommendation database
ITU-T Recommendation database
RFC3641 ASN.1での一般的文字列コード化規則(GSER)
RFC 3641 - Generic String Encoding Rules (GSER) for ASN.1 Types
RFC 4792 - Encoding Instructions for the Generic String Encoding Rules (GSER)
Specification # 36.331
2-3_urushima.pdf
Application fields of ASN.1
FFASN1 Compiler
ffasn1dump ASN.1 Message Converter

X.509

RFC

RFC 2459 - Certificate and CRL Profile
Internet X.509 PKI Certificate and CRL Profile
RFC 3280 - Certificate and CRL Profile
RFC 4325 - Internet X.509 Public Key Infrastructure Authority Information Access Certificate Revocation List (CRL) Extension
RFC 4630 - Update to DirectoryString Processing in the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
Internet X.509 PKI Certificate and Certificate Revocation List (CRL) Profile
RFC 6818 - Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile

EternalWindows

MakeCert Functions
証明書の形式

Qiita

certificate - RSA鍵、証明書のファイルフォーマットについて - Qiita

Wikipedia

自己署名証明書 - Wikipedia
Self-signed certificate - Wikipedia
X.509 - Wikipedia
X.509 - Wikipedia

Twitter

Kazuho Okuさんのツイート: "PKIの証明書の時間的分解能は、時差がないから24時間以下とかにはできないのか。なるほど #ietf96j"
Kazuho Okuさんのツイート: "「どうせ短寿命証明書はやる方向なんだし、それに乗っかるんだったらLurk WGは不要だよね」 #ietf96j"

情報セキュリティ入門 - PKI(後編)---X.509証明書とPKIの仕組み:ITpro
X.509証明書
電子証明書のデータ形式 - RFC3289 X.509 Public Key Infrastructure Certificate and CRL Profile
X.509 の解説
暗号技術基礎
公開鍵基盤(PKI)の概要

BLS署名

BLS署名と秘密分散を組み合わせる - Qiita
BLS署名の紹介と実装 - Qiita

EternalWindows

署名の格納
ファイルと署名
副署名の設定
署名と属性
署名の構造
署名の取得

Wikipedia

電子署名 - Wikipedia
RSA暗号 - Wikipedia
Abstract Syntax Notation One - Wikipedia
Abstract Syntax Notation One - Wikipedia
X.690 - Wikipedia

Qiita

公開鍵暗号と電子署名の基礎知識 - Qiita
電子署名のファイルフォーマット - Qiita

コードサイニングとは | セキュリティ用語解説 | 日立ソリューションズの情報セキュリティブログ
コードサイニングの複数署名とハッシュアルゴリズムの異なる証明書の無償発行 -SHA-1署名のみのためインターネットからダウンロードする際に警告されていたりSHA-2署名のみのため旧バージョンのOSで問題が起こっているソフトウェアの作者へ-
デジタル署名とデジタルID用のコード署名デジタル証明書
セキュリティー関連の規格 のメモ
extract-authenticode/README.ja.md at master · trueroad/extract-authenticode
HIRT-PUB14002:Authenticode 署名:Hitachi Incident Response Team:日立
自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第1回) - livedoor Blog(ブログ)
自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第2回) - livedoor Blog(ブログ)
自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第3回:最終回) - livedoor Blog(ブログ)
RFC 2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
署名を作成する
署名を検証する
セキュリティー関連の規格 のメモ 署名アルゴリズム
自堕落な技術者の日記 : 図説RSA署名の巻 - livedoor Blog(ブログ)
自堕落な技術者の日記 : RSAとECDSA、署名生成と署名検証どっちが速い? - livedoor Blog(ブログ)
RFC 8032 - Edwards-Curve Digital Signature Algorithm (EdDSA)
改良型Winternitz one time署名の提案と安全性評価
Hash-Based Signatures Part I: One-Time Signatures (OTS)
jedisct1/minisign: A dead simple tool to sign files and verify digital signatures.
Criminal use of code signing certificates | Firmware Security
macOSにコード署名チェックをバイパスできる脆弱性 - PC Watch

/GS

MS

/GS (バッファーのセキュリティ チェック)
コンパイラ セキュリティの徹底調査
コンパイラ セキュリティの徹底調査
safebuffers
__security_init_cookie
C++ - Visual C++ Support for Stack-Based Buffer Protection

WindowsでSEH overwriteによるstack canary(/GS)回避をやってみる - ももいろテクノロジー
Beyond Zero-day Attacks(2):スタックに対する攻撃とその対策 (3/3) - @IT
スライド 1
/GS ‐ 通信用語の基礎知識
IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #5 運用環境における防御
C言語系/memos/VC++/09, スタック破壊の検出・防止("/GS", "/RTC", "/GZ") - Glamenv-Septzen.net
__security_check_cookie | すなのかたまり
C言語系/memos/VC++/10, "/NODEFAULTLIB"使用時の注意 - Glamenv-Septzen.net
Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2017でカナリアを有効(/gs)にすると、atoi(0) がスタックオーバーフロー扱いで、例外ハンドラへの遷移を許さずに即時終了する様子。 atoi内部で使っている、パラメータ検査ルーチンにはこんな記述が。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "SetUnhandledExceptionFilterは無視されるが、_set_invalid_parameter_handlerを仕込んでおくと、こちらが呼ばれる様子。 うーん、統一的なハンドリング方法を提供して欲しいところ。"

Intel MPX

インテル® Memory Protection Extensions (インテル® MPX) 利用ガイド | iSUS
Visual Studio 2015 Update 1: New Experimental Feature – MPX | Visual C++ Team Blog
check-pointers-mpx、Qcheck-pointers-mpx
Intel® Memory Protection Extensions Enabling Guide | Intel® Software
How to Protect Apps from Buffer Overflow Attacks | Intel® Software
Study overview
VirtualQuery function (Windows)
GetSystemInfo function (Windows)
SYSTEM_INFO structure (Windows)
Getting Hardware Information (Windows)
Intel GoldmontとMPXとゆるふわなごや
Intel MPX - Wikipedia

Control Flow Guard

Control Flow Integrity

Control-flow integrity - Wikipedia
Control-Flow Integrity - Microsoft Research
Control-Flow Integrity - Microsoft Research
ccs05.pdf
Control Flow Integrity — Clang 7 documentation
Control-Flow Integrity: An Introduction
Control-flow integrity
Out Of Control: Overcoming Control-Flow Integrity
usenix13.pdf
Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM – Google AI
SSTIC2015-Article-control_flow_integrity_on_llvm_ir-fontaine_chifflier_coudray_esfrDAl.pdf
Let’s talk about CFI: clang edition | Trail of Bits Blog
Practical Control-Flow Integrity
Google Online Security Blog: Compiler-based security mitigations in Android P
Kostya Serebryanyさんのツイート: "New security hardening in Android P: CFI and [un]signed-integer-overflow checks. (my team is responsible for the LLVM side of these things) https://t.co/zgylJE9AjW"
Android Developers Blog: Compiler-based security mitigations in Android P
まさみさんは語りたいさんのツイート: "Control Flow Integrityって、コンパイラ屋なのにCFIって略称使うの気持ち悪くないのかな?Call Frame Informationの略でもあるんだけど。"
Google Online Security Blog: Control Flow Integrity in the Android kernel
mumumuさんはTwitterを使っています 「Control-Flow Integrity [CCS '05] いわゆるCFIを最初に(?)提唱した論文.共著でMSに人たちがいて,実装はWindows上でやってるのは面白い.全ての命令の遷移を,instrumentにより,予め与えられたCFGに基づいて妥当かどうか実行時に判断する戦略,直感的でわかりやすい. https://t.co/nvojQmYhqx」 / Twitter
Abadi et al._2005_Control Flow Integrity.pdf

MS

Control Flow Guard (Windows)
Windows 10 Memory Protection Features | Ask Premier Field Engineering (PFE) Platforms
-guard (有効にする Control Flow Guard) | Microsoft Docs
ガード (ガード チェックを有効にする) | Microsoft Docs
-guard (Enable Control Flow Guard)
-GUARD (Enable Guard Checks)
-HIGHENTROPYVA (Support 64-Bit ASLR)
Memory Management Reference (Windows)
Memory Management Functions (Windows)
Memory Management Registry Keys (Windows)
Memory Management Structures (Windows)
Memory Protection Constants (Windows)
Memory Protection Constants (Windows)
SetProcessValidCallTargets function (Preliminary)
VirtualProtect function (Windows)
VirtualAlloc function (Windows)
LoadEnclaveData function (Windows)
CreateFileMapping function (Windows)
Memory Protection (Windows)
VirtualAllocEx function (Windows)
Control Flow Guard (Windows)
Control Flow Guard - Win32 apps | Microsoft Docs
MSRC-Security-Research/BHUSA16_Weston_Miller_Windows_10_Mitigation_Improvements.pdf at master · microsoft/MSRC-Security-Research
Announcing Changes to Microsoft’s Mitigation Bypass Bounty - Microsoft Security Response Center

MR201412_Control_Flow_Guard_JPN.pdf
Windowsのセキュリティ機能Control Flow Guard解説 « 他人の空似
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~CFG export suppression~ « 他人の空似
Run-TimeErrorChecksとBufferSecurityCheck « 他人の空似
Windows開発はclang+lldでも実用レベルか?セキュリティ面から調べてみた « 他人の空似
Rockridgeさんのツイート: "Fx60:Windows版で、firefox.exeがControl Flow Guardに対応。Windows 8.1 Update以降の環境でセキュリティが強化されるという。参照:https://t.co/25VQMWSHXZ https://t.co/J1IuXmnWy5"
Gadgets Zoo: Bypassing Control Flow Guard in Windows 10 - Rafal Wojtczuk Jared DeMott Derbycon 2015 (Hacking Illustrated Series InfoSec Tutorial Videos)
Exploring Control Flow Guard in Windows 10
Manual Control Flow Guard in C « null program
Let’s talk about CFI: Microsoft Edition | Trail of Bits Blog
DerbyCon: Former BlueHat prize winner will bypass Control Flow Guard in Windows 10 | CSO Online
mumumuさんはTwitterを使っています 「Code-Pointer Integrity [OSDI '14] データのRWができる攻撃者からのControl Flow Hijackを防ぐために,Control Flowに影響があるポインタ(Sensitive Pointer)のみ別のメモリ空間に保存し,Instrumentによる安全性の担保を行う.CFI等の既存手法よりも低オーバヘッドで強い保障を与えられるのが売り.」 / Twitter

CET(Control-flow Enforcement Technology)

Fadisさんのツイート: "gcc8からIntel CETに対応する模様。CETはCALL RET等の一部の命令だけが読み書きできるリターンアドレスだけが積まれた裏スタックを作り、従来のスタックとリターンアドレスの比較を行う事でROPを検知する https://t.co/ZQFPQrSZYo"
Control-Flow Enforcement Technology Begins To Land In GCC 8 - Phoronix
るくすさんのツイート: "戻りアドレスをチェックしてROP等の攻撃を防ぐControl-Flow Enforcement Technology (CET)がGCCに追加される予定とのこと。  https://t.co/DKJEXYlI9U"
Intel Posts Control-Flow Enforcement Support For GCC - Phoronix
Rui Ueyamaさんのツイート: "@RKX1209 そういやABI拡張が提案されていた。 https://t.co/zRo7Z2CX23"
RFC: Update x86 psABIs to support IBT

BranchScope

CPU攻撃の新たな手法「BranchScope」、Intel製CPUで実証 - ITmedia NEWS
BranchScope: A New Side-Channel Attack on Directional Branch Predictor
Spectreと同じ分岐予測を利用した新たなCPU脆弱性「BranchScope」 ~Haswell/Skylakeなどで実証に成功、Intel SGXを突破 - PC Watch
まさみさんは語りたいさんのツイート: "BTB対策の時にBPU(BPB)も対策(分離)されてると思うんだけど、どうだろうか。… "
まさみさんは語りたいさんのツイート: "BPBじゃないBHBだ。SpectreBustersのスライドP25にあるやつ。 https://t.co/zh9yE5dYjb"
まさみさんは語りたいさんのツイート: "SpectreもBranchScopeも、Intelの分岐予測実装が、分岐結果を共有しても意味がない、異なるコンテキストに対して共有しているから、そこをサイドチャネルにしてリークしてる、ということかと思うんで、HWの対策としては同じなんじゃないの?と。"
まさみさんは語りたいさんのツイート: "攻撃側でBHBを読み取る試みをする場合は、ソフトウェアで出来ることは殆ど無いから、攻撃手法として強力なのは分かる。HTをオフにした上で、マイクロコードでCR2変更時にBHB消せるようにするしかないんではないかと。"
まさみさんは語りたいさんのツイート: "あるいはカーネルのスケジューラにisolationレベルを導入して、isolation levelが高いプロセスは、他のプロセスと同じコアを使わせないとか、コンテキスト切替時に只管クリーンナップするとか、特別な手立てを講じることになるんじゃないかな。"
CPUの脆弱性を突く新たなテクニック "BranchScope" の仕組みを読み解く (1) - FPGA開発日記
CPUの脆弱性を突く新たなテクニック "BranchScope" で何が攻撃できるのか?(2) - FPGA開発日記

Spectre

Spectre

Spectre:Variant 1: bounds check bypass (CVE-2017-5753)対策:array_index_nospec(array_ptr)

NetSpectre

Fadisさんのツイート: "NetSpectre: よくある通信プロトコルがリクエストで要求された位置が配列内かをチェックするのを利用して、リモートからSpectre V1を踏ませる。通信の応答時間はSpectre V1以外にも様々な理由で揺らぐが、大量のリクエストを投げて統計的な方法でキャッシュに当たったか判別 https://t.co/o97bcB6P04"
NetSpectre Vulnerability Can Reveal Arbitrary Memory Over Network - Phoronix
OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi @mhiramat @n_soda @houmei Daniel Grussさん (Graz, University of Technologyポスドク) 等から NetSpectre: A generic remote Spectre variant 1のペーパーが公開されました https://t.co/lFERTGpr6T"
NetSpectre: Read Arbitrary Memory over Network
20180728

WebKit

webkit/Source/WTF/wtf at master · WebKit/webkit
webkit/Poisoned.h at master · WebKit/webkit
webkit/Poisoned.cpp at master · WebKit/webkit
webkit/PoisonedUniquePtr.h at master · WebKit/webkit
webkit/JSCPoison.cpp at master · WebKit/webkit
webkit/LowLevelInterpreter.asm at master · WebKit/webkit

@xharaken

Kentaro Haraさんのツイート: "世間を騒がせているCPUの致命的なバグ、SpectreとMeltdown。Spectreの方は初歩的なプログラミングの知識で理解できるので、4ツイートで簡単に解説してみる。"
Kentaro Haraさんのツイート: "こういうArrayクラスがあったとする。 class Array { char at(unsigned i) { if (i >= length) // (a) return -1; return data[i]; // (b) } un… https://t.co/jqU6n6Gyk4"
Kentaro Haraさんのツイート: "ここで、次のコードを実行する。 char mem[257]; char v = array->at(12345678); // 秘密のデータが保存されているアドレスを指定 if (v & 1) { mem[0]; } else { mem[256]; } // (c)"
Kentaro Haraさんのツイート: "CPUの分岐予測をうまく利用すると、(a)のCPU命令が完了する前に、分岐を(b)の方に予測させて、(c)を投機的に実行させることができる。もちろん(a)が完了した時点で投機実行された(c)は捨てられるのだが、すでにCPUはmem[0]またはmem[256]を投機的にキャッシュへ… https://t.co/fC9k45cW0j"
Kentaro Haraさんのツイート: "よって、mem[0]とmem[256]へのアクセス速度を測ってどっちがキャッシュに乗ったかを調べれば、狙ったアドレスのデータが0なのか1なのかがばれる。バッファオーバーフローを防ぐための範囲チェックが役に立たなくなって、好きなメモリアドレスの値を読めてしまう。。。というのがSpe… https://t.co/0gQGqguJu9"
Kentaro Haraさんのツイート: "CPUの分岐予測に関する根本的なバグなのでソフトウェア側で対処するのは難しいのだが、Chromiumでは、if文を使わない形に範囲チェックを書き換える、(キャッシュへのアクセス速度を調べられないように)タイマーの精度を意図的に落とす、高精度タイマーが作れるAPIを無効化するなどで… https://t.co/FYYt5Nnu1F"

What Spectre and Meltdown Mean For WebKit | WebKit
c - Branchless Overflow Handling - Stack Overflow
End-of-buffer checks in decompressors | The ryg blog
A Branchless UTF-8 Decoder « null program
skeeto/branchless-utf8: Branchless UTF-8 decoder
A Branchless UTF-8 Decoder : cpp
まさみさんは語りたいさんのツイート: "先週末に出てきた別の機能 Array_ptr https://t.co/dkgIBes9Fm これはSpectreV1対策だけど、境界条件チェックをif文なしで行うためのマクロ。境界条件を超えるとNULLが返ってくるようになるので、投機的実行で任意のアドレスにアクセスさせることが出来なくなる。"
LKML: Dan Williams: [PATCH v4 00/10] prevent bounds-check bypass via speculative execution
まさみさんは語りたいさんのツイート: "1月初めに出てきていた Array_ptrの元になったマクロ https://t.co/8OnV6FqMtD これはARM64版のアセンブラを使った実装になっている。CSDBというバリア命令を使う。これはどうやらIntel/AMDがマイクロコードに追加したIBPBみたいな命令らしい。以下のARMのWPにある。 https://t.co/zUOOIHceDk"
LKML: Mark Rutland: [RFC PATCH 0/4] API for inhibiting speculative arbitrary read primitives
prevent bounds-check bypass via speculative execution [LWN.net]
[PATCH v2 00/19] prevent bounds-check bypass via speculative execution [LWN.net]
[PATCH v3 0/9] core, x86: prevent bounds-check bypass via speculative execution [LWN.net]
[PATCH v4 00/10] prevent bounds-check bypass via speculative execution [LWN.net]
まさみさんは語りたいさんのツイート: "最後のミスだけ補足したのは、gccでretpolineを有効にしても、array_ptrを必要なライブラリなどが使わなければ、Spectre V1に対しては脆弱なままだからです。array_ptrは明示的に使う必要があるため、ソースコードの修正も必要になります。"
まさみさんは語りたいさんのツイート: "retpolineについて調べていたはずが、array_ptrの方が闇が深かったという結果になった。"
まさみさんは語りたいさんのツイート: "あっ、この2週間でarray_ptrがarray_index_nospecに変わってる。"
米Red Hat、Spectre脆弱性変種1向けのスキャンツールを公開 | OSDN Magazine
SPECTRE Variant 1 scanning tool - Red Hat Customer Portal

Spectre:Variant 2: branch target injection (CVE-2017-5715)対策:Retpoline

LLVM

[PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
⚙ D41760 Introduce __builtin_load_no_speculate
⚙ D41761 Introduce llvm.nospeculateload intrinsic
[PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..

Intel

Intel Analysis of Speculative Execution Side Channels
Intel® Product Security Center

Google Online Security Blog: More details about mitigations for the CPU Speculative Execution issue
SpectreBustersあるいはLinuxにおけるSpectre対策
https://docs.google.com/document/d/e/2PACX-1vSnV92CM3w9n_IWCGbqb2txXBDNRgkTmQ5LKQEFkCCMMteLH0AHTm79e8z3a0tMx7_u1xc7u42tcZq7/pub?embedded=true
まさみさんは語りたいさんのツイート: "いっそのこと、retpolineのコード(__x86_indirect_thunk)をVDSOでLinuxカーネルから渡すようにしたらいいのではないか(おい)"
まさみさんは語りたいさんのツイート: "残念なお知らせだ。retpolineで遅くなると思って関数ポインタからSwitch-caseベースに変更したprobe eventだが、かえって数ナノ秒遅くなってる。例外はメモリアクセス。"
Makoto Kato ︎︎さんのツイート: "昨日のx86/x64最適化勉強会とか、前のフロントエンドカンファレンスでも思ったけど、SpectreがJITエンジンにも同じ対策を求められることってみんな理解してないのね。コンパイラな解決方法はすべてJITにも言えることで。。。"
鈴木光宏さんのツイート: "https://t.co/W9RAFezHc2 Spectre 脆弱性の実験コード(論文https://t.co/QSBSfSmutm)、FreeBSD-current / Intel Core i5 で見事動作。メモリ上の文字列の取得に成功してます。 git clone して… https://t.co/LL1zO6Paau"
Eugnis/spectre-attack: Example of using revealed "Spectre" exploit (CVE-2017-5753 and CVE-2017-5715)
Retpoline: a software construct for preventing branch-target-injection - Google ヘルプ
はてなブックマーク - Retpoline: a software construct for preventing branch-target-injection - Google Help
Spectre example code
⚙ D41723 Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
[PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
Is MSVC also being updated to include the retpoline mitigation? : cpp
Meltdown/Spectreの脆弱性、リスク、対策
Ubuntu 17.10 その195 - MeltdownとSpectreについて知っておくべきこと(前編) - kledgeb
Ubuntu 17.10 その196 - MeltdownとSpectreについて知っておくべきこと(後編) - kledgeb
プロセッサ脆弱性SpectreとMeltdownのLinux用チェッカー – がとらぼ
CPUの脆弱性におけるEC2(Amazon Linux、Windows)とECSの対応 - Qiita
SODA Noriyukiさんのツイート: "in-order でも、分岐予測とそれに基づいた命令プリフェッチはあるので、Spectre Variant 2 は可能という話ですかね。… "

Spectre:Variant 4: Speculative Store Bypass (SSB)(CVE-2018-3639)

Twitter

LWN.netさんのツイート: "Spectre variants 3a and 4 https://t.co/9LZeAQYrfq"
Hisaki Oharaさんのツイート: "Variant 4について: Addressing New Research for Side-Channel Analysis https://t.co/PaoH1AepPx"
Hisaki Oharaさんのツイート: "Analysis and mitigation of speculative store bypass (CVE-2018-3639) https://t.co/eBAdoCuRbY"
まさみさんは語りたいさんのツイート: "https://t.co/y3DiunBczh あー、Variant4が出てるなあ。OoO技術、実はボロボロやんけ、というのが2018年にわかった事実。"
まさみさんは語りたいさんのツイート: "Spectre Variant4はMemory Disambiguatorが、他のストア命令に依存しないであろうロード命令を予測するのを騙して、実は依存するロード命令を投機的実行させることにより、それに続く命令をL1キャッシュのデータを元に投機的実行させることが出来る。"
まさみさんは語りたいさんのツイート: "予測機構をだまくらかして、あとで反故にされるデータを利用して投機実行し、足跡をキャッシュに残すというところはSpectre v1/v2と全く同じなのでSpectre v4と呼ばれる。"
まさみさんは語りたいさんのツイート: "Spectre v1はまだソフトウェア的に回避しようがあった(array_ptrとか)けど、このV4のいやらしい所は、完全にプロセッサ内部の機構が勝手にやってることなので、このMDと呼ばれる機能を停止させる他無いっていうところ。"
まさみさんは語りたいさんのツイート: "ハードウェア的に改善するなら、MDで投機的実行をある程度許可してもいいけど、その投機実行中にメモリアクセスがあったら一端投機実行を停止する、という処理になるのかなあ。"
Spectre Variants 3A & 4 Exposed As Latest Speculative Execution Vulnerabilities - Phoronix
Fadisさんのツイート: "Spectre Variant4: いくつかの投機的実行を行うCPUが、書き込み先アドレスが未知のwriteの後ろにあるreadを「多分同じアドレスを読まない」と期待して読んで、writeとアドレスが被っていたらreadをやり直す、という処理をするのを利用して分岐の無い所でSpectreする手法 https://t.co/GKKsCMqMaQ"

Spectre派生の新たな投機実行脆弱性が発表。多数のCPUが攻撃対象に - PC Watch
「Spectre」「Meltdown」脆弱性に新たな変種 - CNET Japan
CPU由来の脆弱性情報(CVE-2018-3639 – Speculative Store Bypass (SSB) (Variant 4) / CVE-2018-3640 – Rogue System Register Read (RSRE) – (Variant 3a)) – 脆弱性情報ブログ(仮)
Kernel Side-Channel Attack using Speculative Store Bypass - CVE-2018-3639 - Red Hat Customer Portal
投機的ストアバイパスを使用したカーネルのサイドチャネル攻撃 - CVE-2018-3639 - Red Hat Customer Portal
Spectre/Meltdownに続くCPU脆弱性、GoogleとMSが「Variant 4」公表 | マイナビニュース
Intel製およびARM製CPUに新たな脆弱性「Variant 4 SpectreNG」 | マイナビニュース
1528 - speculative execution, variant 4: speculative store bypass - project-zero - Monorail
INTEL-SA-00115
CPU脆弱性、新種「Variant 4」の存在が明らかに - CIOニュース:CIO Magazine
CPUに内在する脆弱性「Spectre」に新種「Variant 4」が登場、Intel・AMD・ARMは対応策を発表 - GIGAZINE
“Spectre”脆弱性の新しい亜種、各ベンダーが一斉に製品への影響と回避策を案内 - 窓の杜
Spectre/Meltdown脆弱性の新バリアント2件が公表される | スラド ハードウェア
新たに「Meltdown」「Spectre」関連の脆弱性、IntelはBIOSアップデートの準備 - ITmedia エンタープライズ
Speculative Store Bypass に学ぶ現代プロセッサの高速メモリアクセスユニットの仕組み - FPGA開発日記
SpectreNG および Variant 3a 脆弱性の WebClass への影響に関して|メンテナンスのご案内|サポート|WebClass|日本データパシフィック株式会社
NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供

Spectre SWAPGS(SWAPGSAttack)

New Windows hack warning: Patch Intel systems now to block SWAPGSAttack exploits | ZDNet
【セキュリティ ニュース】「Spectre」に新亜種、「SWAPGS攻撃」受けるおそれ - MSは7月に対処済み(1ページ目 / 全2ページ):Security NEXT
Bypassing KPTI Using the Speculative Behavior of the SWAPGS Instruction – Bitdefender Labs
CVE-2019-1125: Spectre SWAPGS gadget vulnerability - Red Hat Customer Portal
FadisさんはTwitterを使っています: 「CVE-2019-1125: x86_64のLinuxはGSをユーザ空間とカーネル空間で別の用途で使う → システムコール時にSWAPGSでGSを切り替える → カーネルはSWAPGS前にそれをすべき状況か確認する → この分岐の予測を失敗させCPUに誤ったGSを食べてカーネル空間で何かした夢を見せるSpectre https://t.co/EAzoTz5HYq」 / Twitter
Ivy Bridge以降のIntel CPUに投機実行に脆弱性 - PC Watch
More information on SWAPGS and Speculative only Segment Loads
Deep Dive: Intel Analysis of Speculative Behavior of SWAPGS and Segment Registers
Processors Affected: Speculative Behavior of SWAPGS and Segment Registers

Spectre 1.1/1.2

品川 高廣さんのツイート: "Spectre1.1 と Spectre1.2。進化してる。https://t.co/NRjcocZE7t"
[1807.03757] Speculative Buffer Overflows: Attacks and Defenses
「Spectre」関連の脆弱性、また新たに発覚 IntelやARMのプロセッサに影響 - ITmedia エンタープライズ
2018年7月20日号 18.04.1 Server InstallerのCall for Testing,“Spectre” Variant 1.1/1.2。Bounds Check Bypass Store (BCBS):Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Spectre 1.1および1.2の脆弱性が公開された
Spectre 1.1 (CVE-2018-3693) の論文を読む - FPGA開発日記
ROP(Return-Oriented Programming)についての勉強 - FPGA開発日記

SpectreRSB

CPUの脆弱性を突く新たな攻撃手法「SpectreRSB」 - CNET Japan
「Spectre」関連の新たな脆弱性、米研究チームが発表 - ITmedia エンタープライズ

Spectre/MeltdownPrime

Meltdown-Spectre flaws: We've found new attack variants, say researchers | ZDNet
まさみさんは語りたいさんのツイート: "LLC使った攻撃か。違うコアで実行した投機的実行の結果を知ることが出来る攻撃手法というわけだ。> Spectre/MeltdownPrime"
まさみさんは語りたいさんのツイート: "KPTIで防げるのかな?"
satさんのツイート: "新しい脆弱性の名前、MeltdownPrimeとSpectrePrimeだそうです。絶対ふざけて決めただろ https://t.co/IKpZRYZyiA"
1802.03802.pdf
まさみさんは語りたいさんのツイート: "消して埋めさせる方法と、埋めて上書きさせる方法、の違いというか。… "
ZDNet Japanさんのツイート: "CPU脆弱性「Meltdown/Spectre」を悪用した新たな攻撃手法--研究者らが発見 https://t.co/TWhDfKj8tH"
まさみさんは語りたいさんのツイート: "元の方法だと「遅い遅い遅い速い遅い遅い」が Primeだと「速い速い速い遅い速い速い」になる、という感じで良いんだろうか。"
まさみさんは語りたいさんのツイート: "MeltdownPrime→KPTIで防げる(アクセス先がない) SpectrePrimeV1→array_index_nospecで防げる(アクセス先が安全) SpectrePrimeV2→retpolineで防げる(V1が防げればOK) 今回はサイドチャネルの作り方の工夫なので対策法はこれまでと同じ。"
まさみさんは語りたいさんのツイート: "そもそもPrime+Probeにハードウェアサイドの対処ってあったっけ?"
CPU脆弱性「Meltdown/Spectre」を悪用した新たな攻撃手法--研究者らが発見 - ZDNet Japan
MeltdownPrime and SpectrePrime: Automatically-Synthesized Attacks Exploiting Invalidation-Based Coherence Protocols

Meltdown and Spectre
spectre.pdf
図解でわかるSpectreとMeltdown // Speaker Deck
本当にわかる Spectre と Meltdown
chikoskiさんのツイート: "Spectre対策でSharedArrayBufferは無効化されたと思っていたけれど、Chrome68から再び有効になってたのね。c.f. SpectreとSharedArrayBuffer https://t.co/S2XKSFIE0e"
fantastictimers.pdf
chikoskiさんのツイート: "Site Isolation(Rendererプロセスが保持するdocumentを最大で1つに制限する)ことで、iframeを使ったサイドチャネル攻撃に対処したと。https://t.co/kaCAWOsCry"
Google Online Security Blog: Mitigating Spectre with Site Isolation in Chrome
SGX After Spectre and Meltdown: Status, Analysis and Remediations | Firmware Security
SgxPectre Attacks: Leaking Enclave Secrets via Speculative Execution | Firmware Security
Windowsアーキテクチャー、Meltdown and Spectre、メモリ、オブジェクト
20180505
【CPU】 Intel CPUに新たな脆弱性『Spectre Next Generation』?ドイツメディアが報じる : ニッチなPCゲーマーの環境構築
インテル® コンパイラーを使用して投機実行サイドチャネルの問題を緩和 | iSUS
日記 (2018 年 1 月中旬)
Long-Term Web Browser Mitigations for Spectre - Google ドキュメント
【連載】SperctreやMeltdownを根本から防ぐSafeSpec | マイナビニュース

micro-opキャッシュ

FadisさんはTwitterを使っています 「新種のSpectreの話。x86プロセッサのmicro-opキャッシュの振る舞いを観測することでSMTでこのキャッシュを共有する隣のスレッドからプロセスの動きを覗き見する。既存のmitigationはこのキャッシュに対する攻撃を想定しておらず、この攻撃はIntelでもAMDでも有効らしい https://t.co/p72yTNMXuf」 / Twitter
New Spectre Variants Discovered By Exploiting Micro-op Caches - Phoronix
isca2021a.pdf
FadisさんはTwitterを使っています 「x86は命令が複雑なため、CPUは内部でx86の命令列をより簡素な命令列(micro-op)に翻訳しながら実行している。頻繁に実行する命令列に対してこの翻訳を省略するためにCPUは翻訳済みのmicro-opのキャッシュを持っている。キャッシュにヒットすれば命令が片付くのが速くなるので、あとはいつものSpectre」 / Twitter
FadisさんはTwitterを使っています 「micro-opキャッシュはCPU毎に仕様が異なり、ドキュメント化されている情報も少ないため今まで安定したサイドチャネル攻撃には使えなかったが、ドキュメント化されていない部分を気合のリバースエンジニアリングで何とかして安定してサイドチャネル攻撃を行えるようにしたらしい」 / Twitter
FadisさんはTwitterを使っています 「まぁ、やっぱりハイパースレッディングはオワコン、という話でしかないわけだが」 / Twitter
とみながたけひろさんはTwitterを使っています 「よーわからんが、uops cacheに入ってると全ビット一致しなくても実行してしまう、みたいなのを使ってるの? しかしDefenselessとはなかなかすごい名前だ」 / Twitter
Computer scientists discover new vulnerability affecting computers globally -- ScienceDaily
New x86 micro-op vulnerability breaks all known Spectre defenses | Hacker News

MS

その他

投機実行の脆弱性修正、Haswell世代以前では性能への影響大 ~I/O集中型アプリケーションを利用するサーバーは慎重な選択を。AMDはほぼ影響受けず - PC Watch
Microsoft、Intelの脆弱性対策を無効化する緊急アップデートを配信 ~適用で再起動問題を回避、Windows 7/Haswell以降が対象 - PC Watch
【特集】Spectre V2対策による性能低下を緩和する「Retpoline」の効果を確認する - PC Watch
Broadwell以前でも性能低下がほぼない「Spectre V2」対策がWindows 10に実装へ - PC Watch
Microsoft、Skylake用のSpectre V2対策コードを提供開始 - PC Watch
Windows月例更新でVIAプロセッサにもSpectre/Meltdown対策が盛り込まれる ~ただしAvast、Avira、Sophosと競合する不具合 - PC Watch
「Windows 10 19H1」、「Spectre Variant 2」対策にグーグルの「Retpoline」を採用へ - ZDNet Japan
「Spectre」攻撃、インテルの「SGX」保護機能に影響 - ZDNet Japan
緊急パッチだけではプロセッサ脆弱性対策は不十分――Spectre&Meltdown対策状況を再チェック:山市良のうぃんどうず日記(117:緊急特別編) - @IT
山市良のえぬなんとかわーるど: 仕事始めは Windows Update から(例の Intel/AMD/ARM CPU 問題に関する追記あり)
山市良のえぬなんとかわーるど: 例の CPU 脆弱性問題にフルアーマーな PC
山市良のえぬなんとかわーるど: 例の CPU 脆弱性問題の Windows 関連の続報(リンクまとめ+α)
Project Zero: Reading privileged memory with a side-channel

Mitigating speculative execution side-channel attacks in Microsoft Edge and Internet Explorer - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
Update on Spectre and Meltdown security updates for Windows devices | Windows Experience Blog
Windows Analytics で Meltdown と Spectre への対策状況が評価可能に - Windows Blog for JapanWindows Blog for Japan
Windows クライアントで投機的実行のサイドチャネルの脆弱性から保護する
Protect your Windows devices against speculative execution side-channel attacks - Windows Help
CVE-2017-5715 (分岐先インジェクション) からのゲスト仮想マシンの保護 | Microsoft Docs
Windows システム上の Spectre および Meltdown に対する緩和策のパフォーマンスへの影響について - Microsoft Security Response Center
2018年11月2日号 Spectre v2対策 “Enhanced IBRS”のマージ,IBMによるRed Hat買収に関するMark Shutleworthからのステートメント:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Intel Prepares "Enhanced IBRS" As Better Spectre V2 Protection For Future CPUs - Phoronix
Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community - 295618
Spectre mitigations in MSVC | C++ Team Blog
Spectre mitigation changes in Visual Studio 2017 Version 15.7 Preview 3 | C++ Team Blog
Spectre diagnostic in Visual Studio 2017 Version 15.7 Preview 4 | C++ Team Blog
Mitigating speculative execution side channel hardware vulnerabilities - Microsoft Security Response Center
Analysis and mitigation of speculative store bypass (CVE-2018-3639) - Microsoft Security Response Center
Project Zero: Bypassing Mitigations by Attacking JIT Server in Microsoft Edge

Google

Project Zero: Reading privileged memory with a side-channel
Google Online Security Blog: Today's CPU vulnerability: what you need to know
Google、CPU脆弱性“Meltdown”“Spectre”の緩和策を「Google Chrome 64」へ導入 - 窓の杜
Site Isolation - The Chromium Projects
Actions Required to Mitigate Speculative Side-Channel Attack Techniques - The Chromium Projects
Product Status - Google ヘルプ
RealJTG/Meltdown: Meltdown PoC for reading passwords from Google Chrome.
「Google Chrome 66」が正式版に ~新しい開発者機能とセキュリティ・安定性の向上策 - 窓の杜
「Google Chrome 67」が正式版に ~“Spectre”脆弱性の緩和策“サイト分離”をテスト - 窓の杜
なかのん&マジックさんのツイート: "Site Isolationでメモリ使用量1割増、か…… / Google Online Security Blog: Mitigating Spectre with Site Isolation in Chrome https://t.co/Akgcac45is"
なかのん&マジックさんのツイート: "Spectreはプロセス境界どころかそれ以上に越境できてしまうのが問題という認識だったんだけど、Site IsolationでSharedArrayBufferを復活させても大丈夫なもんなの?"
なかのん&マジックさんのツイート: "とっとと対策したCPU出てよ、とは思う、そもそも。"
Google Developers Japan: Chrome の Site Isolation で Spectre のリスクを軽減する
Googleの研究者ら曰く、Spectre脆弱性の修正は難しい | スラド
1902.05178.pdf
Google Says Spectre And Meltdown Are Too Difficult To Fix
CPU脆弱性「Spectre」の概念実証と脆弱なエンドポイントを探す拡張機能「Spectroscope」をGoogleが公開 - GIGAZINE

Mozilla

Meltdown と Spectre
Rockridgeさんのツイート: "MozillaはSpectre/Meltdown問題への当面の対策をFirefox 57.0.4に投入する模様。対策にはSharedArrayBufferの無効化が含まれる。参照:https://t.co/wMmPg7YCtU https://t.co/bN5nYqiV3t"
Mitigations landing for new class of timing attack | Mozilla Security Blog
sharedarraybuffer webassembly - Google 検索
Kazuho Okuさんのツイート: "Meltdown / Spectre 脆弱性の悪用防止のため、高精度のタイマー実装に使うことのできる SharedArrayBuffer が一時利用不可能に / “Mitigations landing for new clas…” https://t.co/rHZAnVN8Og"
more on Meltdown and Spectre | Firmware Security
Mozilla、「Firefox」v57.0.4を公開 ~CPU脆弱性“Meltdown”“Spectre”へ対策 - 窓の杜
Ryou Ezoeさんのツイート: "SharedArrayBufferを高精度タイマーに使うのってどうするんだろ。"
Kazuho Okuさんのツイート: "@EzoeRyou ServiceWorker(要は別スレッド)でビジーループでカウンタアップテードさせる"
Rockridgeさんのツイート: "Fx59:Spectre対策として、デフォルトのタイマー解像度を2ミリ秒に落とした。従来は0.02ミリ秒だった。 / “1435296 - Reduce Timer Resolution to 2ms” https://t.co/TJWWKoS4GM"
Rockridgeさんのツイート: "Project Fissionでは、サイト単位でcontentプロセスを分離することによって、Spectre問題への対策とする。 / “Project Fission - MozillaWiki” https://t.co/LjbKftTgA1"
Project Fission - MozillaWiki

Linux

Mitigation Status by Kernel Version | Intel® Software
2018年1月10日 Linus,Intel相手に“おこ始め”―「メルトダウン」で幕開けの2018年:Linux Daily Topics|gihyo.jp … 技術評論社
2018年1月22日 Meltdown/Spectreの影響は大きく… Linus,Linux 4.15のリリースを1週間延期しRC9を公開:Linux Daily Topics|gihyo.jp … 技術評論社
投機的実行の脆弱性によるパフォーマンスへの影響: CVE-2017-5754、CVE-2017-5753、および CVE-2017-5715 に対するセキュリティーパッチによるパフォーマンスへの影響 - Red Hat Customer Portal
Red Hat Enterprise Linux パラメーターで、CVE-2017-5754、CVE-2017-5715、および CVE-2017-5753 で提供されているマイクロコードおよびセキュリティーのパッチによるパフォーマンスへの影響を制御する - Red Hat Customer Portal
LinuxカーネルにおけるMeltdownとSpectre問題の脆弱性対策が出来ているかどうかを調べるコマンド: Project Valkyrie
OSがMeltdownとSpectreに対応しているか確認する | 普段使いのArch Linux
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「3年前のSpectre対策(Retpolines)で、Linuxのファイルシステム用AES暗号(AES-XTS)が 1/2~1/3に速度低下していたが、最近の数行パッチでほぼ回復という話。 https://t.co/2VNdIYbnFP」 / Twitter
AES-NI XTS To See 2~3x Performance Recovery After Regressing Hard From Retpolines - Phoronix

BSD

SpeculativeExecutionVulnerabilities - FreeBSD Wiki
第131回 影響範囲広大プロセッサバグ「Meltdown」と「Spectre」,各プロジェクトの対応現状ほか:BSD界隈四方山話|gihyo.jp … 技術評論社
第133回 OpenBSD on iTWire:BSD界隈四方山話|gihyo.jp … 技術評論社
第136回 FreeBSDのMeltdown/Spectre対策:BSD界隈四方山話|gihyo.jp … 技術評論社
第137回 FreeBSDのMeltdown/Spectre対策,11系にマージ:BSD界隈四方山話|gihyo.jp … 技術評論社
第138回 OpenBSD,Meltdown対策機能をマージ:BSD界隈四方山話|gihyo.jp … 技術評論社
第139回 OpenBSD,Meltdownバイナリパッチ提供開始:BSD界隈四方山話|gihyo.jp … 技術評論社
第142回 FreeBSD Meltdown対策機能による性能影響ベンチマーク:BSD界隈四方山話|gihyo.jp … 技術評論社

blog

Meltdown, Spectre で学ぶ高性能コンピュータアーキテクチャ - FPGA開発日記
コンピュータセキュリティと様々なサイドチャネル攻撃|Rui Ueyama|note
Meltdown、Spectre、およびシスコのクラウド コラボレーション セキュリティ
Spectre & Meltdown を防ぐマイクロアーキテクチャSafeSpecの論文を読む - FPGA開発日記
2015年以降のインテルCPUの脆弱性チェックプログラム - 発声練習
山市良のえぬなんとかわーるど: Intel マイクロコード アップデートが再配布?(自動的な再起動にご注意)
CPU律速なRuby/Pythonコードはデフォルト設定のdocker上で遅くなる - まめめも
現行のSpectre防御を無効にする新たなエクスプロイト、修正はパフォーマンスに影響
Google Online Security Blog: A Spectre proof-of-concept for a Spectre-proof web

News

【連載】新たな脅威 - SpectreとMeltdown | マイナビニュース
Intel、第8~6世代CPUで脆弱性対策後のベンチマーク結果を公開 ~性能低下はおおむね数%以内 - PC Watch
Intel、Sandy BridgeからKaby Lakeのシステムで“再起動問題”が発生中 ~投機実行脆弱性アップデートが影響 - PC Watch
Intel、脆弱性対処でHaswell/Broadwellシステムが予期せぬ再起動をする原因を特定 - PC Watch
Spectre/Meltdown脆弱性を利用したマルウェアが発見 - PC Watch
Intel、Skylake向けのSpectre脆弱性対策マイクロコードの提供開始 ~Sandy Bridge以降向けも近く提供か - PC Watch
Broadwell以前でも性能低下がほぼない「Spectre V2」対策がWindows 10に実装へ - PC Watch
「LLVM 6.0」リリース | OSDN Magazine
SpectreとMeltdownの詳細
CPU“脆弱性問題”の現状と対策 ~セキュリティは? パフォーマンスは? ユーザーへの影響を確認する - PC Watch
「Spectre」攻撃、インテルの「SGX」保護機能に影響 - CNET Japan
大原雄介のエレ・組み込みプレイバック:収束しない現代的CPUの脆弱性と、苦境を脱せないQualcomm (1/3) - TechFactory
IntelのCPUに新たな8つの脆弱性が発見される、内4つは「高い危険性」との評価 - GIGAZINE
20180616
Boffins offer to make speculative execution great again with Spectre-Meltdown CPU fix • The Register
Your Title Here
まさみさんは語りたいさんのツイート: "かなりストレートな解法ですが、まあそれしかないのかも。… "
fjのYog教祖様さんのツイート: "シャドウキャッシュの管理の仕方次第ではあるだろうが、ほぼ間違いなく「シャドウキャッシュの内容による速度変化」を引きずり出す方法が発見されて終わるだけだと思う。… "
まさみさんは語りたいさんのツイート: "そうですね。SpectreはL2以下のキャッシュの方が影響が大きい気がするんだけど、L1だけで大丈夫か??という。… "
Debian10アートワーク募集中🍥さんのツイート: "IntelのCPUセキュリティバグ、どうやらIntelはDebianとOracleには事前に開示しなかった&Red Hat・SUSE・Canonicalには情報の共有を禁じていたようですね。いやはや。。。 https://t.co/0VWEyQLU51"
​Linus Torvalds talks frankly about Intel security bugs | ZDNet
Debian10アートワーク募集中🍥さんのツイート: "結局、現在はきちんといつもどおりの情報共有ができるようになり対応がスムースになってるようなので、今回の件をハンドリングしたIntelの中の人がおかしな判断をした、ということなのですが。"
IT業界を根幹から揺るがした脆弱性「Spectre」「Meltdown」はCPUのパフォーマンスにどんな爪痕を残したのか? - GIGAZINE
FadisさんはTwitterを使っています 「Phoronixによる「各世代のCPUでCPUの脆弱性の対策を行なった場合と行わなかった場合で、どのくらい性能に差が出るか」を計測したベンチマーク。7ページ目のシステムコール、コンテキストスイッチが頻発するタイプのワークロードの場合が大惨事 https://t.co/hqVcWPTD5f」 / Twitter
A Look At The CPU Security Mitigation Costs Three Years After Spectre/Meltdown - Phoronix
Firefoxに「サイト隔離」機能が登場、「Spectre」「Meltdown」への根本的な対策に - GIGAZINE

GitHub

mniip/spectre-meltdown-poc: A semi-demi-working proof of concept for a mix of spectre and meltdown vulnerabilities
ryanlayer/giggle: Interval data structure
crozone/SpectrePoC: Proof of concept code for the Spectre CPU exploit.
lgeek/spec_poc_arm: Dump privileged ARM system registers from usermode using variant 3a of Meltdown
paboldin/meltdown-exploit: Meltdown Exploit PoC
ryoさんのツイート: "https://t.co/xzyDUqtftW だとN/core-i7でもkernel領域読めた。思ったより成功確立低い。というか特定のアドレスしか成功してないように見える。Intelの謎キャッシュポリシーの影響もあるんだろうなぁ。https://t.co/6kqdx398ux"
HarsaroopDhillon/Meltdown: Meltdown POC
Intel Ivy Bridge Cache Replacement Policy « Blog
IAIK/meltdown: This repository contains several applications, demonstrating the Meltdown bug.
lsds/spectre-attack-sgx: Spectre attack against SGX enclave
GitMirar/meltdown-poc: A PoC implementation of the meltdown attack described in https://meltdownattack.com/meltdown.pdf
ionescu007/SpecuCheck: SpecuCheck is a Windows utility for checking the state of the software mitigations against CVE-2017-5754 (Meltdown) and hardware mitigations against CVE-2017-5715 (Spectre)
idea4good/spectre: Demo Spectre with 70 lines code

Qiita

MeltdownとかSpectreとか騒ぎがあったので、Amazon Aurora(MySQL互換)R4インスタンス再テスト(mysqlslap) - Qiita
LinuxコアメンバーによるMeltdownとSpectre 対応状況の説明 - Qiita

Wikipedia

Spectre - Wikipedia
Spectre (security vulnerability) - Wikipedia
Spectre (security vulnerability) - Wikipedia

Twitter

dynamic function

まさみさんは語りたいさんのツイート: "あー、休み中にSteveがdynamic functionとかいうのを作ってる。ちょっと調査中。 https://t.co/Q6cS65C7gG"
[POC][RFC][PATCH 1/2] jump_function: Addition of new feature "jump_function"
まさみさんは語りたいさんのツイート: "retpolineで遅くなるので、代わりに固定long jumpするトランポリンコードを作っておき、それを使う、というアイデアなんだろうか?なんかSpectre対策になら無さそうだけど。"
まさみさんは語りたいさんのツイート: "多分これはtracepointがretpolineに置換されてしまうという問題に対する回答だけど、これだとalternativesで良くね??"
まさみさんは語りたいさんのツイート: "またマルチスレッドで実行される場合でも、全スレッドを対象にして実行パスを書き換える用途でしか使え無さそうなので、spectreに対するgenericな解ではないと思う。強いて言えば、プレースホルダ付きoptprobeみたいなものへの置換。"
まさみさんは語りたいさんのツイート: "同じツッコミをPeterZがしてた(笑)。… "
まさみさんは語りたいさんのツイート: "あー、なるほど。合点がいった。関数コールをあとから埋め込もうとすると、引数を渡すコードを事前に生成しておかないといけない。それを作らせるために最小関数をアセンブラで作り、それをコールするコードをコンパイルすれば引数準備のコードは実装できると。"
まさみさんは語りたいさんのツイート: "optprobeは性質上あとからレジスタなどを保存して参照できるようにするけど、これは呼び出し元で引数を保存する。本当にretpolineを避けるためだけの構造のようだ。"
まさみさんは語りたいさんのツイート: "retpolineの問題は、対象となる間接参照呼び出しが、スレッドコンテキスト依存の呼び出しなのか、単にplugableな呼び出しなのかを区別せずに適用されてしまうこと。前者はretpolineが必要だが、後者はlivepatchで静的呼び出しに変更できる。これは後者の問題を解くもの。"
まさみさんは語りたいさんのツイート: "Livepatchと違い、consistencyを考慮しないでいい部分についてはこの dynamic functionを使えば良いわけだが、そのためにjmpするトランポリンを設けなくても良いのではないか、というコメントを入れておいた。そもそもデフォルト関数を実装するならそれを変更したら良いと。"

Spectre

さてはGentooだなオメーさんのツイート: "RHELがパッケージとして配布したSpectre variant 2対策のmicrocodeは一部環境で問題があったので差し戻し、今後RHELとしてvarant 2対策のmicrocodeをリリースする予定はない。CPU製造元に問… https://t.co/8Tm70ZTI2s"
What CPU microcode is available via the microcode_ctl package to mitigate CVE-2017-5715 (variant 2)? - Red Hat Customer Portal
Hajime Tairaさんのツイート: "一律同じ microcode を配ったところ、大量のメモリーを搭載できるハイエンドサーバーの一部に影響が出まして…。… "
さてはGentooだなオメーさんのツイート: "恐ろしやー。ちなみにこのリンク先、英語は全公開なのに日本語は隠れてて悲しいです。… "
まさみさんは語りたいさんのツイート: "IBPBって何かと思ったらIndirect Branch Speculation Barrierっていう新しいマイクロコードなんだね。ていうか、新しいマイクロコードの命令を直接使うコードが追加されたぞ・・・。"
まさみさんは語りたいさんのツイート: "Spectre対策を色々探っていると非常に深い。この3週間ぐらいで色んなテクニックが試されている。んで、決定版になっているのがどれかと言うとよくわからない。"
まさみさんは語りたいさんのツイート: "ひとつだけ確かなのは、Spectre V2対策は未だに決定版がなく、いくつかのテクニックを駆使して修正が行われている最中であり、しかもカーネルだけじゃなくユーザアプリも修正が必要で、コンパイラを変えるだけではなくソースコードも修正が必要になるっていうことで影響が大きい。"
まさみさんは語りたいさんのツイート: "昨日出てきた新機能。IBPB https://t.co/9WrTuIzfCV AMD/Intelが導入した新しいマイクロコード命令を使うためのマクロ。MSR越しに呼び出すと、間接分岐命令の分岐先がロードされるまで、投機的実行を止めるものらしい。"
LKML: KarimAllah Ahmed: [RFC 00/10] Speculation Control feature support
Hiromichi Itouさんのツイート: "IBRSを利用するために必要なmicrocodeを導入すると再起動する確率が上がるという問題が解決していないので、代替案としてretpolineによる対策を準備しないといけない勢なので、先週からコンパイルばかりしている。"
IntelによるSpectre対策のアップデート、Core iシリーズのほぼ全世代で不具合が出る可能性 | スラド セキュリティ
Intel Sightings in ESXi Bundled Microcode Patches for VMSA-2018-0004 (52345)
まさみさんは語りたいさんのツイート: "IBRSはSpectre V2向けのマイクロコードで提供される機能のようだが、プロセッサによってはうまく動かない模様なので、Retpolineによる緩和策を使うほうが低リスクかもしれん。やることは多くなるけど。"
まさみさんは語りたいさんのツイート: "IBPBのパッチシリーズの先にIBRSの機能も追加されていた。IBRSはこれも新しいマイクロコードの機能で、Indirect Branch Speculationを止める。提出されたパッチではカーネル空間に入る時に全てのIBSを止めるっぽい。"
まさみさんは語りたいさんのツイート: "RetpolineがあるからIBRSなんて要らないじゃーん?って思ったあなた、大体あってる。問題はRetpolineは半分コンパイラのお仕事になるんだけど、コンパイラが古いと対応できないこと、CONFIG_RETPOLINE=nでビルドされちゃうかもしれないことから、IBRSが必要になる。"
まさみさんは語りたいさんのツイート: "Spectre V2緩和策のオプションとして、IBRSかRetpolineかを選べるようになる模様。基本的にはAutoでいいけど、コンパイラの更新(Retpoline)か、マイクロコードの更新(IBRS)をした上で、カーネルの再構築が必要になる。"
まさみさんは語りたいさんのツイート: "おっと、重要な情報です。この脆弱性はLivepatchでは対処できません。"
まさみさんは語りたいさんのツイート: "たしかにこのシリーズ、indirect_branch_prediction_barrier(IBPB)と(un)restrict_branch_speculation(所謂IBRSの有効・無効コード)が混ざっていて分かりにくいんだよね。最初の4つはIBPB、後の6つはIBRSで、それぞれ使う所が違う。"
まさみさんは語りたいさんのツイート: "両方共Intel/AMDがマイクロコードでSpectre V1とV2に対応しようとして追加した機能なんよ。"
まさみさんは語りたいさんのツイート: "ごめん、IBPBもIBRSもIndirect Branchを安全にするためだからどっちもSpectre V2向けだった。"
まさみさんは語りたいさんのツイート: "もしかして、ARMはSMTサポートしていないから、スレッド間でBTBを共有する可能性がないので、Spectre V2対策はプロセス間とプロセス/カーネル間で逐次BTBフラッシュするだけでOKなのか?"
satさんのツイート: "SpectreとMeltdownはモノがモノだからしゃあないんだが、ソフトの対策、石の対策が入り混じってて何が何だかわかりにくい"
まさみさんは語りたいさんのツイート: "ソフトウェアの緩和策は可能だけど適用されるのに時間がかかるし、石の緩和策もソフトウェアの更新は必要だし型番によってはリスクもある。ハイブリッドで環境によって選んでくださいっていうのをもりもり入れているのが現状ですね。… "
satさんのツイート: "これ、こないだひらまつさんがついーとで言及してたamazonのような情報が集まる位置に居続ける企業でなければ、相当対応がキツいでしょうね… "
まさみさんは語りたいさんのツイート: "IBPBとIBRSについては、ハードウェア(マイクロコード)側で妥協できるならあのラインだろうと思うので、機能が無意味だとは思わない。 が、あんなものでお茶を濁そうとしてるなら、Linusのように怒っていい。いずれにしても新しい世代ではもっとスマートなBTBを導入する必要がある。"
まさみさんは語りたいさんのツイート: "Hyperthreadに対応したBTBと、リングによってBTBを切り替える機能、およびページテーブル切り替え時にBTBを消去する機能があれば、全体的な性能の低下はあってもV2対応は可能だろう。"
まさみさんは語りたいさんのツイート: "めんどくさいのはV1対応なんだよなー。リタイアしてない命令が引き起こしたキャッシュアクセスをなかったことにする、とかが根本解決になるけど、これはめんどくさそう。"
まさみさんは語りたいさんのツイート: "IBPBのパッチは最終的に取り込まれた模様?ちゃんと追いかけないとだけど、IntelかあらIBPBシリーズ前提で拡張パッチが出されている。"
Re: [PATCH 2/2] x86/speculation: Support "Enhanced IBRS" on future CPUs — Linux Kernel
まさみさんは語りたいさんのツイート: "https://t.co/3HeYfQA9Wp Intelの今後の動向がすけて見えるコミット"
[PATCH 2/2] x86/speculation: Support "Enhanced IBRS" on future CPUs — Linux Kernel
高梨陣平さんのツイート: "VancouverでのLinuxカンファレンスにおいてLinusが対談。IntelのCPUの脆弱性Spectreについて語った。彼は投棄実行自体には問題が無くやるべきで、やるべきでない問題のある投棄実行も知られていたと語った。Intelの当初の対応は酷く彼は自分達が原因でないのに働くのは不公平に感じたと主張(続… https://t.co/lBFzbaEATS"
高梨陣平さんのツイート: "2つ、3つしか存在しなかったと振り返った。SpectreのLinusに対する影響は多大で4.19のマージウィンドウは通常、2週間で終わるものの、公開できないパッチを含んだためにとてもストレスの大きなものだったと述べた。しかしこの問題を超えて良い結果としてLinuxとWindwosの開発者がCPU脆弱性について協力"
高梨陣平さんのツイート: "できるようになったとKroah-Hartmanは述べた。我々は素晴しい裏ルートを手に入れた。御互いに議論し、バグを潰していると言う。5年前に誰が予想できただろうか?(終)"
まさみさんは語りたいさんのツイート: "うーむ、static callのパッチをレビューしようとしたけど、前提条件として役に立つかというと微妙すぎるのでコメントしづらい。indirect callがretpolineのせいで遅くなるのでstatic callに自己書き換えしようという話だけど、適用先が限定的すぎる(コンテキスト依存な場所では使えない)。"
まさみさんは語りたいさんのツイート: "コンテキストに依存しないindirect callってどれだけあるのかというと微妙すぎるし、pv_opsぐらいかなあ。tracepointは関数の引数を準備するところをスキップするjump labelを使っているので意味がある。"
まさみさんは語りたいさんのツイート: "jump labelと併用すればいいんだっけ?いや、ないか??"

TLB

まさみさんは語りたいさんのツイート: "うーん、speculative page table walker問題というのがあり得るのか。投機的にTLBをフィルする挙動がテンポラリにマップしたページをTLBにキャッシュするらしい。"

Linux

とみながたけひろさんのツイート: "Linuxといえどもガチヤバい脆弱性だったらコア開発者だけで公開MLとかなじゃない、非公開のメールのやり取りでパッチ作成するよね…しないのかな(←わかってない)"
KOSAKI Motohiroさんのツイート: "もちろん非公開でやります。非公開MLでだけ、なぜやばいのかを「具体的に」説明してLinusの承認をもらいます。というか、securityをハンドルするMLはコア開発者もあんまり入ってなくて専業メンテなとdistro security屋がハンドルしつつ、関係ある人が個別にCCされて… https://t.co/o7mJ87X2Xu"
とみながたけひろさんのツイート: "@kosaki55tea なるほど。パッチができることよりもパッチを適用することのほうが困難かつ重要だったりするので、そういう運用になるのはよくわかります"
Kazuki Oikawaさんのツイート: "Threadripper + 4.14.14 bugs: sysret_ss_attrs null_seg spectre_v1 spectre_v2… "
Kazuki Oikawaさんのツイート: "あ、/proc/cpuinfoの情報もいつの間にか変わってた bugs : cpu_meltdown spectre_v1 spectre_v2"
このコード、オシャカルトっ!さんのツイート: "/proc/cpuinfoのbugs欄の出方が変わってる 前 bugs : cpu_insecure 4.14.13-300.fc27 bugs : cpu_meltdown spectre_v1 spectre_v2"
このコード、オシャカルトっ!さんのツイート: "φ(..)メモメモ sysfsの/sys/devices/system/cpu/vulnerabilitiesというディレクトリにcpuの脆弱性情報があるということを知った… "
まさみさんは語りたいさんのツイート: "KPTI有効にしたカーネルつかっても、デスクトップだとそれほど有意な違いを感じない。多分グラフに取ってないとわからない。"
まさみさんは語りたいさんのツイート: "PTIはCONFIG_PAGE_TABLE_ISOLATIONで、Security optionsに含まれているがデフォルトで有効になる。"
henrichさんのツイート: "いやいや、マイナーリリースごとにバイナリリビルドするバイナリディストロなんて聞いたことないんですが。。。… "
henrichさんのツイート: "私が知らないだけで実は存在してるのかしら?(開発版をFTBFS洗い出しでビルドし直しはテストとして実施はするだろうけど。。。)… "
hitoさんのツイート: "しない状態で今まで来ていて、「Repolineするためにはもしやこれは全部リビルドしてリリースせんといかんのではQAどうしよう」つーてみんな頭を抱えてる認識。… "
henrichさんのツイート: "そう(リビルド)すべきもんだろ?という立場から言ってるのであれば、実施する際のトレードオフ考えたら妥当な結論(毎度リビルドしてリリースとかあり得んだろ)ということで… "
Fadisさんのツイート: "現在Intel CPU上で動くLinuxはSpectre/Meltdown対策がデフォルトで有効だが、Atom N270等のin-order実行のCPUにはこれらの脆弱性は無いから、これらのCPUでは対策をデフォルトで無効にして貧弱なネットブックが不必要に更に貧弱になるのを防ごう、という提案がなされている https://t.co/xMyBKxG4kc"
Spectre V2 & Meltdown Linux Fixes Might Get Disabled For Atom N270 & Other In-Order CPUs - Phoronix

microcode

HT, ベンチマーク

インテルがセキュリティパッチの影響示すベンチマーク公表禁止に?--オープンソース界の著名人が批判 - ZDNet Japan
Intel、脆弱性パッチ適用前後のベンチマーク比較禁止の規約を撤回 ただしパフォーマンスはお察しの模様 | ジサクテック
Hideyuki Tanakaさんのツイート: ">Intelが沈黙の誓いを立てているのには、仮想マシンをForeshadowの脅威から保護するためにHyper-Threading機能をオフにする必要があり、それによりパフォーマンスに大きな影響が出るからである。 (´・_・`)なるほどなあ…"
Hideyuki Tanakaさんのツイート: "IntelのHTはもう終わりです…(´・_・`)次の何とかレイクが8コア8スレは正解(´・_・`)Intel自身が一番分かってたんだな"
Hideyuki Tanakaさんのツイート: "TLBleedだけじゃなくて今回見つかったForeshadowも結局HT無効化しか対処法がなくて、実質的にもう現アーキのHT死んでるんすね(´・_・`)"
Tsuzuさんのツイート: "HTTって全然効果実感したことないんだけどそんなに効果あるんですかね"
Hideyuki Tanakaさんのツイート: "(´・_・`)どーなんだろ?レイテンシ隠しには使えるんじゃないんすかね。僕が昔実感した例としては、めっちゃでかいメモリから二分探索を超大量に行うようなアプリでは、ほぼ演算器が回らないので、HTで性能倍になりましたけど、まあこんなのはよっぽどなケースですよね"
Hideyuki Tanakaさんのツイート: "まあそれに最近はHT前提で平均的なコードの命令レベル並列性よりも多くの演算器搭載してるかもしれないし?いやあれ1スレで使い切れる前提なのかな?よーわからんすけど"
Tsuzuさんのツイート: "いまいちどういう場面でHTTが効果を発揮するかわかってないんだけど、以前clangのビルドをした時は並列数を論理コア数でやるより物理コア数でやったほうが早かったので良くわからなかった"
Hideyuki Tanakaさんのツイート: "clangのビルドとか整数演算器しか使わない上に、コンパイル自体はそんなに巨大なメモリを必要としないから、ほぼキャッシュに入って演算器もフルで回るようなタスクになってるんじゃないんすかね。あまりHTきかないタスクだと思う。"
Hideyuki Tanakaさんのツイート: ">Solving these bugs requires new cpu microcode, a coding workaround, *AND* the disabling of SMT / Hyperthreading. 新しいバグ(TLBleedとT1TF)を解決するには、新しいマイクロコードと、コーディングワークアラウンド「と」、SMT/ハイパースレッディングの無効化を要する。 (´・_・`)とな"
Hideyuki Tanakaさんのツイート: "https://t.co/AJLWIRLIt8 >Disable SMT/Hyperthreading in all Intel BIOSes >2018-08-23 18:35:22 (´・_・`)ふーん"
Lucas Holtさんのツイート: "Performance is so bad on the latest spectre patch that intel had to prohibit publishing benchmarks https://t.co/Et8FfNr6EZ"
Intel Publishes Microcode Security Patches With No Benchmarks Or Profiling Allowed - Slashdot
まさみさんは語りたいさんのツイート: "よし、HTが使えない今がARMサーバ飛躍のチャンス・・・"

Shirouzu Hiroaki(白水啓章)さんのツイート: "1/5とはすごい速度低下。 でも、ページ単位かそれ以上でのまとまったI/Oだとすると(=TLBに優しく、ユーザ/カーネル間の遷移も多くない?)、MeltdownやSpectre対策がどう具体的に影響したのか、想像がつかない…… "
SODA Noriyukiさんのツイート: "これ、仕事関係で問題になったことがあって、業務に差し支えるんですが… https://t.co/KAKhYw4JO6 meltdown/spectre のパッチ当てたら RAID の BBWC へ同期書き込み性能が 1/5 以下に低下したことがあった。"
Hideyuki Tanakaさんのツイート: "(´・o・`)・・・。 / “Intel、マイクロコードアップデート前後のベンチマーク比較公開を規約で禁止へ | ジサクテック” https://t.co/fcdgMTSq3q"
Intel、マイクロコードアップデート前後のベンチマーク比較公開を規約で禁止へ | ジサクテック
SODA Noriyukiさんのツイート: "これは512バイト単位でO_BINARYモードで書き込む計測でした。そのマシンは(RDBじゃないんですが似たような)ジャーナリング・ファイルの書き込みがボトルネックになるので、write(2)がRAIDのメモリキャッシュに書き込む部分の性能が最重要で、システムコール性能の低下が強烈に出たようです… https://t.co/BX7RhItZCj"
SODA Noriyukiさんのツイート: "あ、間違えた。O_BINARYじゃなくてO_DIRECTです。(O_BINARYってMS-DOS時代から数十年使ってないオプションなのに、なぜここで出てくるのか…^^;… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、小さなO_DIRECTはそれ自体でやたらと遅いですよね。(大きくするか非同期I/Oと組み合わせないと、実用的な速度にならない) でも、Meltdown/Spectre対策をすると、それも目でないくらい、write自体の(トランザクションの?)オーバーヘッドが大きくなると。 うーん、不思議…… https://t.co/6tRnbchfvK"
SODA Noriyukiさんのツイート: "普通ならすごく遅いんですが、対象がジャーナルファイルで容量が限られていて、かつRAIDがバッテリバックアップつきのDRAMキャッシュを載せているので、この応用の場合に限ればやってることの本質はメモリコピーに過ぎず、すごく速いです。14000~19000 iopsくらい出てました。… https://t.co/DtTgv91Ft4"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、少し判りました。 それで、syscall自体のオーバーヘッドが分かり易く出てしまう、と。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そうだとしても、1/5はすごいなぁ。… "
SODA Noriyukiさんのツイート: "1/5でも 3000iops 越えなので遅くはないんですが、遠隔地でのactive-standby 構成で性能が揃ってないと足をひっぱられるのに、standby側として予定していたほうを更新したらこうなっちゃって問題になってました…… "
Kazuho Okuさんのツイート: "なんとですね。秒間syscall数がダイレクトにパフォーマンスに影響するネットワークサーバ系ソフトウェアで大きな問題になっていないことを考えると、単純にsyscallのオーバーヘッドではなく、なにかwrite+O_DIRECT特有の事情がありそうですね… https://t.co/c9M073GS0x"
Kazuho Okuさんのツイート: "httpd とかだと 200k network io calls / sec.core くらい出るわけです"
Intelプロセッサ向けマイクロコードアップデートのニュースをファクトチェック!:その知識、ホントに正しい? Windowsにまつわる都市伝説(117) - @IT

@utshina2

品川 高廣さんのツイート: "Meltdown はアウトオブオーダー実行、Spectre は分岐予測の実装の問題を突くという違いはあるけれど、どちらも本来権限のないメモリ読み込み命令を投機的に実行させて、その結果キャッシュに残ったサイドエフェクトから値を読み取るという点ではよく似ている。"
品川 高廣さんのツイート: "Meltdown は今のところ Intel CPU 固有の問題だけど、ユーザ空間から簡単にカーネル空間のメモリを読み出せる(多分JavaScriptとかでは難しい)。これを防ぐには、ユーザ空間とカーネル空間でページテーブルを分ける Kernel Page-Table Isolat… https://t.co/08pPUzRZVb"
品川 高廣さんのツイート: "Meltdown の本質ってC言語で書くとこれだけだよね。 a = *kptr; b = array[a<<12]; aにカーネルメモリの値が入って、arrayの対応する部分がキャッシュに乗る。もちろん例外を起こして実行は取り消されるけど、キャッシュはそのままなので、arra… https://t.co/PX1Em76srz"
品川 高廣さんのツイート: "Spectre のような投機的実行の脆弱性があるCPU上では、共有アドレス空間内で言語処理系の機能によって機密性を担保することは事実上不可能であるという主張ですかね。アドレス空間を分離するしかないと。https://t.co/uDgMpzYZ4a"
[1902.05178] Spectre is here to stay: An analysis of side-channels and speculative execution
品川 高廣さんのツイート: "(1) タイマー機能(解像度によらず)と、(2) 投機的 pointer crafting を可能にする様々な言語機能(の実装)との組み合わせで、共有アドレス空間内の任意の1bitが読み込める universal read gadget が実現可能であると。これらを包括的に防ぐ方法は見つかっていない。"
品川 高廣さんのツイート: "この種の side-channel が生じる根本的原因は、CPUの1つの(外部)アーキテクチャ的状態が、複数の(内部)マイクロアーキテクチャ的状態にマップ可能であることであり、投機的実行をおこなう任意のCPUで起こりうる。これはCPUの設計上の欠陥というより、理論的な「計算」の基部にある問題であると。"
品川 高廣さんのツイート: "平たく言うと、Chrome の JavaScript エンジン V8 で Spectre 対策いろいろ頑張ったけど、もう無理だからあきらめるで、って感じ?"
hrk先生さんのツイート: "これが原因でLLCのShareは止める方向に向かうのではないかと思います。Shareしていて、今後あるであろう種々のアタックに耐えられるとは思えないので。それだけで、CPU問題が解決するわけではないですが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "コア間でキャッシュを共有しないと…本当にそんな日が来るのかしらん?(SMT無効化くらいにしておいて欲しいなぁ)… "
satさんのツイート: "まずはOpenBSDでLLC共有するコアは一個を除いて全部殺されるところあたりでしょうか… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "確かにありえそう。SMTを無効化した実績もあるみたいですし。 「OpenBSD、セキュリティ優先でハイパースレッディング機能を無効化」 https://t.co/O4m4rK98Uu… "
satさんのツイート: "はい、それを念頭に置いてのコメントでした… "

@r0ktex1209

るくすさんのツイート: "んん、バグというか仕様というか 結構前からある話だけどなー 特にWindowsカーネルとかはKASLRのエントロピーが低くて、初期から叩き台にされてたり"
るくすさんのツイート: "@a4lg いえ、エントロピーは関係あるはずです。 https://t.co/hIVtE6P1aA これの事ですよね? 基本的にカーネルのロードされる場所の候補が絞れる前提かと。WinにせよLinuxにせよKASLRはスライドさせる感じの実装なんですよ。"
るくすさんのツイート: "@a4lg まあ正直KAISERより、KASLRの実装を見直すのが本質的な対策かなと思ってます。まあかなり難しそうですが...."
るくすさんのツイート: "@a4lg 読みました。 なーるほど。 あるアドレス変換に対してページレベル毎のキャッシュ情報が取れるから、幅優先的に探索していけるんですね。 これめちゃくちゃ強いっすね...."
るくすさんのツイート: "普通に勘でも思いつかなかった.... 流石ac4lgさん.... 確かにこれで出来るならエントロピーは殆ど関係ない。"
るくすさんのツイート: "出回ってるPoCの多くはbrute forceなんすよね でも言われてみれば確かに階層まで分かるなら、自明に枝刈りができる"
るくすさんのツイート: "正直初めてKAISERのパッチ見た時は、ええこれまたLinus大激怒するんじゃないの.... だった。まあマージされるまでの細かい議論は追ってないから何ともだけど、パフォーマンス大低下させてまでやるべきなのかというか...."
るくすさんのツイート: "KPTI(KAISER)はカーネルエリアをUnmapする事でサイドチャネルを防ぎますが、カーネルエクスプロイターにはあまり影響ないです。 こいつはあくまでユーザーモード実行中の話で、カーネルモード実行中は今まで通りユーザー空間がMapされたままのモデルだからですね。"
るくすさんのツイート: "要するにret2usrもret2dirも基本的には今まで通り使えるはず。 そもそもKAISERの目指すモデルはARMアーキテクチャのTTB0/TTB1のような完全にユーザー/カーネルでテーブルが分離された"Stronger Kernel Isolation"モデルだったんだけど、… https://t.co/wZHTZiOrlF"
るくすさんのツイート: "Intel CPUの性能低下、何がクリティカルな要因かまでは知らないけど、大体PCIDとかで何とかならないの?と思ったら、何とかなってる事例がMacなのね。"
るくすさんのツイート: "KPTIはユーザー/カーネル空間を完全に排他的にマップする訳では無いんだけど、仮に完全排他"Strong Kernel Isolation"を実現するとどの程度パフォーマンスが落ちるかについてはGruss et al. https://t.co/TCTJEJMH7L に一応書い… https://t.co/jBTMGG1SrC"
prefetch.pdf
るくすさんのツイート: "なので、件の論文はおそらくPCID無効でやってる気がするんですけど、なんでこんなオーバーヘッド少なくなってるんだろう... わけわかんね..."
ファッション自作OSマンさんのツイート: "その筋の専門家=るくすさん https://t.co/6hFDxuzvJO"
るくすさんのツイート: "いやマジで、Spectre/Meltdownとその対策云々については一回その筋の専門家が真面目に検証,解説記事を書いた方が良い気がしてる。 今回のは特に、表面的にもそれなりに理解できてしまう内容だから、正直真に欲しい情報が書いていない事が多い。"

#x86opti

とみながたけひろさんのツイート: "ああそうか、Spectreでページサイズぐらいの間隔にしてたのはページ境界をまたいだプリフェッチが働かないのを使っているのか。TLBのヒット差も入れるためかなあと思ってたんだけど、そっちだったのだな #x86opti"
まさみさんは語りたいさんのツイート: "KPTIで処理速度が落ちる話、カーネル側の処理はこれまで通りじゃなかったっけ?ページテーブル切り替えでオーバヘッドはかかるんだけど、実際のアクセスについては出来るような。"
まさみさんは語りたいさんのツイート: "Unixプログラムの場合Sigsegvは無視できるんだよね。"
まさみさんは語りたいさんのツイート: "Meltdownは本当に大変な問題なんだよね。簡単に出来るから。 #x86opti"
とみながたけひろさんのツイート: "本当にVariant3は怖いよなあ。SELinuxとかでプロセスの権限とか削りまくってもほとんど回避できないからなあ #x86opti"
まさみさんは語りたいさんのツイート: "KPTIのオーバヘッドの話。ページテーブルの切り替えオーバヘッド+TLBフラッシュ、あとはTLBミスとかの増加か。"
まさみさんは語りたいさんのツイート: "PCIDの話もするのかー。"
まさみさんは語りたいさんのツイート: "INVPCIDがないとPCIDを使い回すことができなくなっちゃう(使いまわすと前のTLBとかそのまま使ってしまうので)ので使いようがないよな。 #x86opti"
まさみさんは語りたいさんのツイート: "ああ、なるほど。TSXをつかったらシグナル関係ないからな。その前に実行失敗したかどうかが分かる。 #x86opti"
とみながたけひろさんのツイート: "ああ、サイドチャネル攻撃、TSXが最速だったのか。現状イマイチTSXが有効利用されてないことを考えると、このままでは攻撃専用命令扱いになってしまうな…(ぉぃ #x86opti"
まさみさんは語りたいさんのツイート: "通常 アクセス→例外→カーネルが処理→signal飛ばす→ユーザアプリに戻る TSX アクセス→TSXミス→TSXミスハンドラ(ユーザ定義)に飛ぶ"
とみながたけひろさんのツイート: "TSX使えばシグナルハンドラに飛ぶまでもなく失敗したかどうかがわかるから爆速になる、ということかな #x86opti"
shinichiro hamajiさんのツイート: "というか失敗は常にするけどシグナルハンドラで無視するよりTSXで無視した方が速いっていうだけの話じゃないかなと。TSXを手法の一部と言うの違和感ありました… "
とみながたけひろさんのツイート: "https://t.co/2gHq6FSXnO シグナルハンドラが呼ばれるのは一緒だけどカーネルを経由しない、ということか。なるる"
satさんのツイート: "TSX: 503KB/s signal handler: 123KB/s です。数倍程度早いです P12 #x86opti https://t.co/f9iXXJg3XW… "
satさんのツイート: "最適化勉強会、客層が読めなかったので前提知識として - サイドチャネルアタック - Flush+Reload攻撃 - 分岐予測による投機的実行 - OoO実行 あたりを説明したんだけど、その間半分くらいの人の目からハイライトが消えてたので「なるほどね?」っておもった"
ほろころさんのツイート: "Branch Predictionの機能を既に知っているか否かによりますね。 https://t.co/j2zLG3H26t"
x86/x64最適化勉強会8 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ

まさみさんは語りたいさんのツイート: "variant5も打ち込んできたなー"
まさみさんは語りたいさんのツイート: "そういえばgregがspectreで上げた脆弱なコードの例は、脆弱性にならないんだよね。話はもっとややこしい。2つの異なる配列をアクセスしないと、結果が読み取れないからね。"
Thread Reader Appさんのツイート: "Saluti you can read it here: Thread by @ogawa_tter: "Meltdown, Spectreで学ぶ高性能コンピュータアーキテクチャ、 @dev_msyksphinz 、2018/1/6 https://t.co/9fA0aWza4I… 勉強になります 分岐予測 d […]" https://t.co/HtrV9pxEoC Have a good day. 🤖… https://t.co/6b7uIIPICx"
OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi @mhiramat @n_soda @houmei HPCアプリケーション (WRF/GROMACS/NAND/GSI) での Meltdown/Spectre Patchesの影響について、 TACC (Texas Advanced Computing Center) の報告です https://t.co/CBAQtk1YXk IXPUG (2018/3/5): Intel eXtreme Performance Users Group"
まさみさんは語りたいさんのツイート: "CD/DVDのデバイスIOについてカーネル内の配列を直接悪用するspectreのexploitを読んで、これだとユーザ空間から直にindexを渡される配列のアクセスについてはすべからく危険だなあと思った。 https://t.co/ViUQBwvHiQ"
linux-exploit/leak_pkt_devs.c at master · jinb-park/linux-exploit
まさみさんは語りたいさんのツイート: "ユーザ空間のメモリをキャッシュアウト→カーネルの配列アクセスに巨大な値を埋め込んで投機的実行させ、キャッシュが乗るかどうかを確認→キャッシュが乗ったら、その配列のvaddrが確認できる。これはカーネルのデータがリークするわけじゃないけど、アドレスはリークするのでKASLRを破れる。"
まさみさんは語りたいさんのツイート: "Spectreを使ってカーネル内のデータを取得するには2つの配列アクセスが必要で、ほとんど無理ゲーだけど、カーネル内のアドレスを取得するだけなら1つの配列アクセスだけで済むので、結構簡単に出来てしまう、という話。"
suzakiさんのツイート: "NDSSマルウェア五つ目。マルウェアを隠すためにSpectreを使うExSectreの発表(Colorado Bouder)。実行を検出することできず、またCPUの状態を覗いてもわからない。 ASN-NI命令がガジェットに使えるのが面白い。Loadは使えるが、Storeはダメ。またsyscallは使えない。 https://t.co/gcfcYmv2eZ"
ndss2019_02B-5_Wampler_paper.pdf
suzakiさんのツイート: "確かSpectreをcovert Channelに使う研究があったけど同じ系統ですね。 そういえば、ARM TrustZoneのCovert ChannelであるPrime+Countの発表がACSAC18であった。"

Spectre/Meltdownとその派生
security rhel disable - retpolineとは何ですか?どのように動作しますか? - CODE Q&A 問題解決
Kazuho Okuさんのツイート: "retpoline「Spectreは俺が倒した」Intel「ペナルティが必ずかかると思ってた?馬鹿め」retpoline「ぐぬぬ」って流れじゃなかったでしたっけ… "
_ko1さんのツイート: "え、そういう話だったんだ(全然調べてない)。call cache があるとかないとか。… "
Kazuho Okuさんのツイート: "return address stackがret命令の分岐先予測に失敗したら、確実にストールするというのがretpolineの設計の前提なんだけど、最近のIntel CPUだと別の予測も組み合わせているのでそうとは限らないみたいな話だったような気がするなーと… "
_ko1さんのツイート: "まじすか最近のプロセッサすげーな… "
Kazuho Okuさんのツイート: "もともと https://t.co/rnFUx2bnP4 みたいな話はあるのですが、これ以外になんのために、なにをやってるんでしょうね… "
はじめてのにき(2010-07-06)
Kazuho Okuさんのツイート: "そういえば、関数ポインタを nullable にして if (p) (*p)() とやるより、non-nullable にして空関数を (*p)() にするほうが速いことがあるって @herumi さんが言ってたのも、call-ret使ってeip取るイディオムを最適化する関係なのかなぁ"
Kazuho Okuさんのツイート: "あーそうか Intel CPU が RET 命令について Return Stack Buffer 以外にも分岐予測を組み合わせてるって件、例外処理とかコンテクストスイッチでずれてフラッシュした際のバックアップなのかなと考えると納得いく"
Kazuho Okuさんのツイート: "分岐「先」予測"
KOSAKI MotohiroさんはTwitterを使っています 「Intelは性能劣化するパッチは全ベンダが性能劣化する形で作ってきますね」 / Twitter
matsuuさんはTwitterを使っています 「KVMにおいてIntel CPUの脆弱性対策パッチが、必要ないはずのAMD CPUにも適用されており性能劣化がおきているらしい。oh。今後修正&バックポートされる見込み。 / “Linux KVM Virtualization Had Mistakenly Been Applying L1TF Workaround To Unaffected CPUs - Phoronix” https://t.co/empisPTwjN」 / Twitter
ChromeとFirefoxの新しいCOOPとCOEPはセキュリティを高めるクロスオリジンポリシー

SPOILER

インテル製チップに新たな脆弱性「SPOILER」--AMD、armにはない固有脆弱性。: なんとなく綴ってみた
インテル製チップに新たな脆弱性「SPOILER」--修正は困難との指摘も - CNET Japan
1903.00446.pdf

Fail-Safe C: Top Page

Checked C

Checked C - Microsoft Research
Microsoft/checkedc: Checked C is an extension of C that adds bounds checking to C. This repo contains the specification for the extension, test code, and samples.
Microsoft、C言語を拡張する「Checked C」を開発中 | マイナビニュース
Microsoft、C言語を拡張した「Checked C」をオープンソース化 | スラド デベロッパー
Microsoft、C言語に静的/動的チェック機能を加えた「Checked C」を公開 | OSDN Magazine
LLVMを拡張してメモリ空間安全性をCで実現するChecked C

Security | すなのかたまり | ページ 2

ASLR Cache(AnC)

既存のx86/ARM CPUほぼ全てに通用するJavaScript攻撃が発見される ~アドレス空間配置のランダム化を突破 - PC Watch
JavaScriptでASLRを無効化する攻撃「AnC」 | スラド セキュリティ
vusec/revanc: Reverse Engineering Page Table Caches in Your Processor

ASLR Cache

int $0x03@SNS部さんのツイート: "cpuの分岐予測のキャッシュ機能がASLRをバイパスするキーになると / “121412” https://t.co/sX6tgMiVHB"
Bypassing ASLR in 60 Milliseconds | Threatpost | The first stop for security news

Stack Smashing Protection

単純なスタックバッファオーバーフロー攻撃をやってみる - ももいろテクノロジー
Buffer overflow protection - Wikipedia
Stack Smashing Protector - OSDev Wiki
000013695.pdf
stack smashing | スタック破壊 - Qiita
Stack-smashing Protection (SSP) - OWASP
Security Technologies: Stack Smashing Protection (StackGuard) - Red Hat Customer Portal
What is the meaning of "Stack smashing protect failure"? · Issue #1455 · espressif/arduino-esp32
Prevent Stack-Smashing Attacks - Network Security Hacks [Book]
ubuntu - is stack-smashing protection on on Debian? - Unix & Linux Stack Exchange
FadisさんはTwitterを使っています 「stack protectorのカナリアはexec毎に異なる値になるが、forkしただけでは変わらないため、子プロセスに通信の相手をさせて子プロセスが落ちたら親プロセスが作り直すようなサーバアプリケーション(よくある)では子プロセスのスタックを破壊して漏らしたカナリアの値が、次の一撃に使える、と」 / Twitter

Automatic Fortification

バッファオーバーフローへの対策技術入門
2017年10月25日のtwitterセキュリティクラスタ – twitterセキュリティネタまとめ
Advances in Information and Computer Security: 13th International Workshop ... - Google ブックス
Fortification of IT Security by Automatic Security Advisory Processing - IEEE Conference Publication
Bread and Its Fortification: Nutrition and Health Benefits - Google ブックス
gcc4 on cygwin - BOOLEANLABEL

Pwn入門

Fadisさんのツイート: ". @megumish さんの「Pwn入門」が始まります #kernelvm"
Fadisさんのツイート: "Pwnとは: サーバを攻撃して制御を奪う。シェルとかを実行する #kernelvm"
Fadisさんのツイート: "メモリ上の命令列を書き換えるのがPwnを行う最も簡単な方法だが、今日のプロセッサではメモリ領域に対して行える操作が設定されていて普通は実行可能バイナリを直接書き換える事はできない #kernelvm"
OS作れないマン 技術書典3 あ11企さんのツイート: "Pwnするにはメモリの値を書き換えたい。そのためにバッファオーバーフローや書式文字列の攻撃を使うわけか。ROP(Return Oriented Programming)もその一つ。 #kernelvm"
Fadisさんのツイート: "バッファオーバーフロー、ROP、Format String Attackなどを使ってPwnを行う #kernelvm"
Fadisさんのツイート: "スタックの変数の範囲外に書き込める不具合があるとリターンアドレスを書き換えられる→retで実行可能バイナリの好きなところに飛ぶ事ができる #kernelvm"
OS作れないマン 技術書典3 あ11企さんのツイート: "ASLRがあるとスタック領域の場所がわからないので、.bss領域を使う #kernelvm"
Fadisさんのツイート: "バッファオーバーフローでリターンアドレスが.bssを指す状態にしてbssにシェルコードを書いておく → NXbitが有効に使われているとこの方法は使えない → そういうときはROP #kernelvm"
Fadisさんのツイート: "任意のサイズのmallocが可能 かつ Heap Over Flowができる状況では File Stream Oriented Programmingが可能になる #kernelvm"
Fadisさんのツイート: "発表者「正しく知識として身につけるためにはmallocの実装を理解する必要がある」 #kernelvm"
OS作れないマン 技術書典3 あ11企さんのツイート: "小崎先生のmalloc動画を見ていたお陰でmain arenaが何なのかはなんとなく分かるぞ。見といてよかったmalloc動画。 #kernelvm"

Beyond Zero-day Attacks

Beyond Zero-day Attacks - @IT
脆弱性と攻撃をめぐる事件と話題 (1/2):Beyond Zero-day Attacks(1) - @IT
スタックに対する攻撃とその対策 (1/3):Beyond Zero-day Attacks(2) - @IT
ヒープに対する攻撃とその対策 (1/3):Beyond Zero-day Attacks(3) - @IT
Use After Freeとヒープスプレー (1/3):Beyond Zero-day Attacks(4) - @IT
DEPの仕組みとその回避手法 (1/3):Beyond Zero-day Attacks(5) - @IT

Wikipedia

Transient execution CPU vulnerabilities - Wikipedia
Hardware security bug - Wikipedia
Return-oriented programming - Wikipedia
Sigreturn-oriented programming - Wikipedia
JIT spraying - Wikipedia

GIGAZINE

Appleが「プライバシー上の懸念あり」としてSafariへの一部ウェブAPIの実装を拒否 - GIGAZINE
HDDのコントローラーをハッキングするとデータの傍受やHDD基板へのLinuxインストールが行える - GIGAZINE
Microsoftがオープンソースの機械学習セキュリティフレームワークをリリース - GIGAZINE
ソフトウェアの「パッケージ」を利用してAppleやPayPalなどの大企業をハッキングする方法とは? - GIGAZINE
技術革新が世界にもたらす危機とは? - GIGAZINE
Googleがオープンソース脆弱性のデータベースをPythonやGoにまで拡大 - GIGAZINE

スライド

"どこ"から脆弱性を発見するか
セキュリティとプログラミング
スタックの歩き方 - Speaker Deck
マクロな視点から捉える Web セキュリティ / Web Security from the Macro Perspective - Speaker Deck

PDF

嶋田 創のページ
Microsoft PowerPoint - lecture_slide0525_rev05.pptx - lecture_slide0525_rev2.pdf
Microsoft PowerPoint - lecture20160524v03.pptx - lecture20160524_1up_rev1.pdf
Microsoft PowerPoint - lecture0427_rev06.pptx - lecture_slide0427.pdf
Microsoft PowerPoint - IScompendium2016rev13.pptx - IScompendium2016.pdf

blog

Project Zero

Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
Project Zero: Searching statically-linked vulnerable library functions in executable code
Project Zero: Bypassing Mitigations by Attacking JIT Server in Microsoft Edge
Project Zero: Trashing the Flow of Data
Project Zero: Déjà vu-lnerability
Project Zero: Hunting for Bugs in Windows Mini-Filter Drivers
Googleの脆弱性発見チーム「Project Zero」が開示ポリシーを変更、パッチ適用までの猶予が設けられる - GIGAZINE
Project Zero: Policy and Disclosure: 2021 Edition

ももいろテクノロジー

WindowsでIDT overwriteによる権限昇格をやってみる - ももいろテクノロジー
IAT書き換えによるAPIフックをやってみる - ももいろテクノロジー
ROP検知手法RAPについてまとめてみる - ももいろテクノロジー
JIT-ROP緩和手法Heisenbyteについてまとめてみる - ももいろテクノロジー
x64でDynamic ROPによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
x64でROP stager + Return-to-dl-resolve + DT_DEBUG readによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
ROP stager + Return-to-dl-resolve + DT_DEBUG readによるASLR+DEP+RELRO回避 - ももいろテクノロジー
ROP stager + read/writeによるASLR+DEP回避 - ももいろテクノロジー
ROP stagerによるシェルコード実行をやってみる - ももいろテクノロジー
Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介 - 脱力系日記
Shuffler: Fast and Deployable Continuous Code Re-Randomization | USENIX
osdi16_slides_williams-king.pdf
Amazon EC2のGPUインスタンスでハッシュ解読をやってみる - ももいろテクノロジー
Pythonでネイティブコードを実行する - ももいろテクノロジー
glibc malloc exploit techniques - ももいろテクノロジー
plain RSAに対するLSB decryption oracle attackをやってみる - ももいろテクノロジー
The Malloc Maleficarum (Bugtraq 2005) - ももいろテクノロジー
Exploit系複合テクニックのメモ - ももいろテクノロジー
「Can We Prevent Use-after-free Attacks?」というタイトルで発表した - ももいろテクノロジー
Can We Prevent Use-after-free Attacks?
x64でSigreturn Oriented ProgrammingによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
Windows x64でReturn-oriented Programming(ROP)によるDEP回避をやってみる - ももいろテクノロジー
Windowsでnon-ASLR DLLを利用したROPによるDEP回避をやってみる - ももいろテクノロジー
ROP stager + Return-to-dl-resolveによるASLR+DEP回避 - ももいろテクノロジー

yohgaki's blog

OWASP

2017年版OWASP TOP 10 – yohgaki's blog
2017年度版 OWASP TOP 10 で変るWebセキュリティのルール – yohgaki's blog
OWASP Secure Coding Practices – Quick Reference Guide – yohgaki's blog
OWASP Secure Coding Practices – Quick Reference Guideの訳語 – yohgaki's blog
OWASP TOP 10のセキュリティ対策 – yohgaki's blog
知っておくべきITセキュリティ概念Top 10 〜ショート版〜 – yohgaki's blog
当たり前?非常識?開発者必修のセキュリティ概念 Top 10 – yohgaki's blog

構造・原理・原則・基本・基礎

セキュリティの原理、原則、ベストプラクティス – yohgaki's blog
攻撃可能面の管理 – セキュリティの基本 – yohgaki's blog
アプリとライブラリの違い – セキュリティの基礎 – yohgaki's blog
プライバシーの8原則 – yohgaki's blog
ITセキュリティ対策の構造化 – yohgaki's blog
アプリケーションのセキュリティと必要十分条件 – yohgaki's blog
セキュリティを論理的に構築する方法 – yohgaki's blog
究極のセキュリティ要求事項とは? – yohgaki's blog

分析

データフロー分析とセキュリティ – yohgaki's blog
無視されているリスク分析 – yohgaki's blog
リスク分析とリスク対応をしよう – yohgaki's blog

脆弱性・攻撃

まだ誰も知らない脆弱性/攻撃に備える方法 – yohgaki's blog
コード”だけ”に着目すると脆弱性が量産される – yohgaki's blog
脆弱性を呼ばれた側の責任にする、は通用しない – yohgaki's blog
インジェクション攻撃は3種類ある – yohgaki's blog

対策

セキュリティ対策が論理的に正しいか検証する方法 – yohgaki's blog
OSコマンドのエスケープ – yohgaki's blog
JavaScript文字列のエスケープ – yohgaki's blog
そもそもエスケープとは何なのか? – yohgaki's blog
完全なSQLインジェクション対策 – yohgaki's blog
JSONのエスケープ – yohgaki's blog
PHPとXML eXternal Entity(XXE)対策 – yohgaki's blog
本当にプリペアードクエリだけを使っていますか? – yohgaki's blog
クロスサイト攻撃からローカルネットワークのシステムを守る簡単な方法 – yohgaki's blog
PHPのHTMLエスケープ – yohgaki's blog
validate-phpのPHPスクリプト版 – yohgaki's blog
hash_hkdf()でわざわざバイナリキー/バイナリSaltを使うことに意味はない – yohgaki's blog
SQLクエリと識別子エスケープの話 – yohgaki's blog
PHPでCSRF対策を自動的に行う方法 – yohgaki's blog
ソーシャルメディアフィンガープリントとその対策 – yohgaki's blog
”雑”なソフトウェアセキュリティ対策 – yohgaki's blog
データのセキュリティ対策が無いセキュリティ対策?! – yohgaki's blog
実は知られていない?リスク対策の原則? – yohgaki's blog
出力対策の3つの役割 – yohgaki's blog
PHPセッションとSameSiteサポート – CSRF, XSS対策 – yohgaki's blog
何故こうなった?プログラムの動作原理を無視したセキュリティ対策 – yohgaki's blog

認証

間違いだらけのHTTPセッション管理とその対策 – yohgaki's blog
解答:まちがった自動ログイン処理 – yohgaki's blog
今すぐできる、Webサイトへの2要素認証導入 – yohgaki's blog

バリデーション

Yasuo Ohgaki (大垣靖男)さんのツイート: "結局ところ、セキュリティホールを無くそう、と考えて作るよりも、正しく動く事を保証しよう、考えて作る方が近道。 #セキュアコーディング"
バリデーションには3種類のバリデーションがある 〜 セキュアなアプリケーションの構造 〜 – yohgaki's blog
バリデーションですべきこと – yohgaki's blog
エンジニアなら分かる文字エンコーディングバリデーションの必要性 – yohgaki's blog
数値のバリデーションは無意味なのか? – yohgaki's blog
入力値の種類は3種類しかない – yohgaki's blog
出力対策の3原則 – yohgaki's blog
”形式的検証”と”組み合わせ爆発”から学ぶ入力バリデーション – yohgaki's blog
入力バリデーションで許可した文字で発生するリスク – yohgaki's blog
入力バリデーションが甘いソースコードの検査は本当に大変 – yohgaki's blog
ドイツ人と入力バリデーションについて議論した話 – yohgaki's blog
入力データのバリデーションを簡単に 〜 Validate for PHP 0.7.0 – yohgaki's blog
ゼロトラストとフェイルファースト – yohgaki's blog
「フェイルセーフ」とは何なのか? – yohgaki's blog
データ検証をしない仕様には「脆弱性名」を付けた方が良いのでは? – 未検証入力 – yohgaki's blog

アンチプラクティス

ベストプラクティスもどきのアンチプラクティス TOP 10 – yohgaki's blog
「脆弱性を局所的に潰す」はアンチプラクティス – yohgaki's blog
第一のソフトウェアセキュリティ原則さえ普及しない最大の理由とは? – yohgaki's blog
ホワイトリスト派とブラックリスト派 〜 セキュアコーディングが行われない理由 – yohgaki's blog
「出力対策だけのセキュリティ設計」が誤りである理由 – yohgaki's blog
ソフトウェアは「入り口ノーガード設計」のままで良いのか? – yohgaki's blog

プログラミング言語

X-Content-Type-Options: nosniff はIE以外にも必要 – yohgaki's blog
JavaScriptでインジェクションリスクがある関数/機能など – yohgaki's blog
PHPの危い関数リスト – yohgaki's blog
JSONPは危険なので禁止 – yohgaki's blog
PHPのserialize()/unserialize()を安全に利用する方法 – yohgaki's blog
セキュアコーディングは言語を問わず適用できる – yohgaki's blog
PHPのPharを使ったコード実行 – yohgaki's blog
PHP 5.6.38他で修正された任意コンテンツ送信脆弱性について – yohgaki's blog
PHP用のCookieセッションセーブハンドラー – yohgaki's blog
Railsのリモートコード実行、今昔 – yohgaki's blog
Risk of the session adoption – yohgaki's blog
PHP 7.3 – yohgaki's blog

設計・コーディング

プログラムから「想定外」を無くす方法 – yohgaki's blog
構造化設計とセキュアコーディング設計の世界観は二者択一なのか? – yohgaki's blog
コマンド実行時、コマンドと引数を分離すれば完璧? – yohgaki's blog
命令と引数を分離すれば安全、と考えてしまう”とんでもない誤解”はどこから生まれるのか? – yohgaki's blog
今さら聞けない「コード」と「データ」の話 – yohgaki's blog
今のソフトウェアセキュリティが不十分である原因とは? – yohgaki's blog
正しく動作するソフトウェアの作り方 – yohgaki's blog
APIを過信するとおかしな事になる例 – SAML認証成り済まし – yohgaki's blog
プログラミングを覚えたら先ず知るべきコーディングプラクティス – yohgaki's blog
データのコンテクスト – セキュリティ対策の基本 – yohgaki's blog
セキュリティに拘ってもセキュアにならない – 開発環境セキュリティ – yohgaki's blog
開発者の自由を許容するセキュリティ、自由を束縛するセキュリティ – yohgaki's blog
セキュアコーディングの構造/原理/原則 – yohgaki's blog
ファイルパスを安全に出力可能か? – yohgaki's blog

RDBMS

RDBMSから学ぶデータセキュリティ – yohgaki's blog
PostgreSQLの文字列型の最大長は? – yohgaki's blog
SQLインジェクション対策保証付きソースコード検査はじめました – yohgaki's blog

IPAは基礎的誤りを明示し、正しい原則を開発者に啓蒙すべき – yohgaki's blog
IPA セキュア・プログラミング講座:IPA 独立行政法人 情報処理推進機構
なぜWebセキュリティはここまでダメなのか? – yohgaki's blog
それは”ただのバグ”なのか?それとも? – yohgaki's blog
知らないと勘違いする「合成の誤謬」の罠 – yohgaki's blog
とあるネットワーク技術者の防御法 – yohgaki's blog
セキュリティ対策の目的 – yohgaki's blog
危険なコードを書くメカニズム – yohgaki's blog
遅すぎるサニタイズではダメな例 – yohgaki's blog
コードで学ぶセキュアコーディング 〜 SQLインジェクション編 – yohgaki's blog
IPAは基礎的誤りを明示し、正しい原則を開発者に啓蒙すべき – その2 – yohgaki's blog
マイクロサービスアーキテクチャーのSSRF問題とセキュアコーディング – yohgaki's blog
CWE-20は知られているか? 〜 開発者必修のNo.1脆弱性のハズが知られていない 〜 – yohgaki's blog
正規表現をより安全に使う方法 – yohgaki's blog
エラーと例外とセキュアコーディング – yohgaki's blog
IPAの「安全なWebサイトの作り方」は安全な作り方のガイドではない – yohgaki's blog
MITREがCWEを大幅更新 – yohgaki's blog
開発者必修の7PKとは? – yohgaki's blog
コードの共通化を原則とするのはアンチプラクティス 〜 現代のプログラミング原則 – yohgaki's blog
セキュリティソフトウェア ≠ ソフトウェアセキュリティ – yohgaki's blog
7PK – APIの乱用とは? – yohgaki's blog
欧州の個人データ移転規制が日本は対象外となる件について – yohgaki's blog
セキュリティ機能の利用はソフトウェアセキュリティではない – yohgaki's blog
ソフトウェアには入力バリデーションは必要ない 〜 ただし条件付きで – yohgaki's blog
おかしなCWE-20の読み解き方 – yohgaki's blog
データ型とセキュアコーディング – yohgaki's blog

コンパイラに仕込まれた細工とシステムのセキュリティの話|Rui Ueyama|note
マイクロソフト、バグや脆弱性の検出を自動化する「Project OneFuzz」をオープンソース公開。すでに同社内でWindowsやMicorosoft Edgeのデバッグに利用中 - Publickey
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~CallerCheckとSimExec~ – 他人の空似
【インターンレポート】LINEクライアント内に見つかった脆弱性について - LINE ENGINEERING
セキュリティ・キャンプ全国大会「マルウェアの暗号処理を解析しよう」の紹介, Hiroki Hada
スタックプロテクターは alloca 割り当てを使うプログラムも守ってくれるか? - IKB: 雑記帖
Intel 社製グラフィックス アクセラレータ用の Intel Unified Shader コンパイラで発見された脆弱性
Google Developers Japan: Android の FORTIFY
確率的並行ファジング - arahori.exeの日記
experiments/windows-defender/ASR at master · commial/experiments
Advanced ROP techniques. Rop or return-oriented-programming is… | by Aneesh Dogra | Aneesh Dogra’s Blog
daem0nc0reさんはTwitterを使っています 「このWindows Kernel Exploitの記事、めっちゃいいですね。 WNFはしばらく触ってないから勉強し直さないとな https://t.co/rKASxMKPWv」 / Twitter
CVE-2021-31956 Exploiting the Windows Kernel (NTFS with WNF) – Part 1 – NCC Group Research

infoQ

Android Pがコンパイラベースのセキュリティ対策を拡大
セキュリティ研究者を狙う持続的標的型攻撃、US-CERTが警戒呼びかけ | TECH+
GitLab Protocol Fuzzer CEがオープンソースに
継続的セキュリティテストを有効にしてテストにセキュリティを追加する
インフラストラクチャ脆弱性スキャナーのCheckovがコンテキストアウェア評価を追加

Twitter

その他

港務部長オルミンの温冷鮭サンドイッチさんのツイート: "CVE-2014-9322 #kernelvm [sokutenable]"
OS作れないマン WalB担当さんのツイート: "ROPは、コード領域で自分が欲しい命令列になるアドレスを頑張って探してジャンプする #kernelvm"
るくすさんのツイート: "久しぶりにヒープ系のエクスプロイト書いた。 WebKit OOB 1byte-writeでよろしくやるコードですね。これで分かる人は分かると思う。 (pwn2own 2014のやつ)"
$Hell on Sony Snatch the Kernel privilage from Browser // Speaker Deck
suzakiさんのツイート: "バイナリが本当のソースから作られたことを検証するdiffing Toolsに関するブログ。IDAProに類似度比較のPlugInを入れる。 https://t.co/OP4rHkMeTR Hacktivity18の”Diffing C Sources to Binaries”で発表される。 https://t.co/yJN3HNbi64"
Histories of comparing binaries with source codes | Unintended Results
OSC2019東京・春出展さんのツイート: "HMAC(key, msg) == signature; のどこが問題かという話.比較関数==は(大抵の実装では)先頭から調べて一致しなくなったらfalseを返すので,1文字目が一致するかしないかで応答時間が微妙に異なる.そこを計測できるとMACを推定することが可能."
uint256_tさんはTwitterを使っています 「Anti hacking compiler ってなんだろう」 / Twitter
uint256_tさんはTwitterを使っています 「https://t.co/FMlgTMBDMR」 / Twitter
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
mumumuさんはTwitterを使っています 「AddressSanitizer: A Fast Address Sanity Checker [ATC '12] 所謂Asanの比較的初期の頃?の仕組みと実装をまとめた論文.コンパイラのInstrumentation + Shadow Memory.スライドのSummaryに"C++ is suddenly a much safer language"って書いてあって:thinking_face: https://t.co/779BlbNITw」 / Twitter
serebryany_atc12_slides.pdf

code randomization

まさみさんは語りたいさんのツイート: "intelの人のcode randomizationのセッションに来た"
まさみさんは語りたいさんのツイート: "honkey tonkだ。"
まさみさんは語りたいさんのツイート: "kaslrはエントロピーが少なすぎてブルートフォース攻撃を許してしまうと。"
まさみさんは語りたいさんのツイート: "あー、これは来るぞ"
まさみさんは語りたいさんのツイート: "日立のときに最後に出した特許と同じ話するんじゃないかなー。"
まさみさんは語りたいさんのツイート: "関数単位でのreorderingか、少し期待はずれだけど、多分このあと変わるんじゃないか。"
まさみさんは語りたいさんのツイート: "function bodyをbasic blockに分割し、初期化時あるいは実行中にBBをreorderあるいはshiftすることでROPを防ぐ、という話を書いたことがある。symbol tableや関数アドレスはそのまま使えるがコードが別の場所に飛んでいる。"
まさみさんは語りたいさんのツイート: "うーむ、タイトルからspectre系の話だと思ってたのに。"
まさみさんは語りたいさんのツイート: "質問したいけど次の発表が隣だから"

CFI

FadisさんはTwitterを使っています 「LinuxカーネルがclangのCFIを有効にしてビルドできるようになったらしい。CFIはサニタイザの一種で、関数呼び出し時や戻り時に呼んで良い(or 戻って良い)アドレスに正しい型の引数を付けて飛んでいる事を確認する。ROPのgadgetを呼ぶような操作が検知される https://t.co/e9H0CEsZZz」 / Twitter
Clang CFI Support Upstreamed For Linux 5.13 - But Only On ARM64 For Now - Phoronix
FadisさんはTwitterを使っています 「LinuxカーネルをCFI付きでビルドするのは元々GoogleがAndroidの開発の為に内部で使っていた物で、現時点では64bit ARMのみが対応していてx86_64版は準備中らしい」 / Twitter

kernelvm

2017-11-18

CTF

No.1

Fadisさんのツイート: ". @Charo_ITCODE さんの「BLUE CTF 2017で出した問題の話」が始まります #kernelvm"
Fadisさんのツイート: "プログラムを乗っ取るために書き込みを試みる対象: 関数ポインタ、スタック上のリターンアドレスなどそれらを保持する配列のポインタ等、ジャンプ先を司っている値 #kernelvm"
Fadisさんのツイート: "関数呼び出しはほとんどのアーキテクチャにおいて関数が置かれたアドレスへの特殊なジャンプ(アーキテクチャによっては本当にただのジャンプ命令)だから、飛び先のアドレスが書き換わっていれば違うものが実行される #kernelvm"
Fadisさんのツイート: ".got.pltのポインタを書き換えて本来と違うコードの実行を行う。最近のアーキテクチャではデータ領域に置いた任意のデータの実行を阻む仕組みが備わっている事があるが、プロセス中に実行可能バイナリとしてロードされている他の実行可能バイナリなら実行できる #kernelvm"
Fadisさんのツイート: "ASLR PIEなどを使ったバイナリでは関数はランダムなアドレスに配置され、攻撃者が狙って特定の関数呼び出しを行う事が難しくなる #kernelvm"
Fadisさんのツイート: "バッファオーバーフローによってリンクリストのデータの次にあるnextの値が書き換えられる時、nextのアドレスを書き換えて次の要素に書き込みが起こるような処理を行えば任意の箇所に書き込みを行うことができる #kernelvm"
Fadisさんのツイート: "ASLRがある場合ライブラリ関数の配置がわからないため、アドレスリークが可能な脆弱性が無いと確実な乗っ取りは行えない #kernelvm"
Fadisさんのツイート: "偽のstrtabを用意してdynamicセクションを書き換えてライブラリ関数のアドレス解決時に別のアドレスが返るようにする #kernelvm"
Fadisさんのツイート: "strcmp関数を読んだ時実際に実行される関数がsystem関数になるような偽のstrtabを用意し、strcmpに実行したいコマンドを渡してシェルを得る #kernelvm"
Fadisさんのツイート: "CTFで8/554チームがこの問題をクリア → まずまずの難易度 (まずまずとは) #kernelvm"

No.2

Fadisさんのツイート: "printf("%3$d",2,1,0); // 0が出る printfでは指定した位置の引数を$で引っ張ってくる事ができる #kernelvm"
Fadisさんのツイート: "printf( "%3$*4$d%5$n", 2, 1, 0, 5, &a ) // 文字数を出力することもできる #kernelvm"
Fadisさんのツイート: "printfのformat stringで足し算ができる!!! #kernelvm"
Fadisさんのツイート: "format stringで処理系を作るwww #kernelvm"
Fadisさんのツイート: "プログラムカウンタ、リンクレジスタ、汎用レジスタ、関節参照アドレスレジスタ等を用意し、全てprintfに引数として渡し、format stringを駆使してこのレジスタ上で計算を行う #kernelvm"
Fadisさんのツイート: "引き算: 2の補数の足し算ができれば良い → 補数を求めるテーブルを用意 #kernelvm"
Fadisさんのツイート: "このprintfの問題は狂気じみた問題にもかかわらずCTFで11/554チームが解けた #kernelvm"

@fadis_

Fadisさんのツイート: "最近のメモリで見られる 同じ行に連続してアクセスすると直接アクセスしていない領域の値が化ける現象(RowHammer問題) を利用してLinuxで権限昇格ができる模様 http://t.co/10kwCTzMyJ"
Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
Fadisさんのツイート: "「バッファオーバーランによる脆弱性の仕組みを学びましょう、まずここのリターンアドレスが潰れるようにシェルコードを… stack-protector「スタック破壊を検知しました」 NXビット「そもそもそこ実行できんで」 ASLR「シェルコードの中で呼んでるその関数、そこにはないよ」 「」"
Fadisさんのツイート: "スタックに任意の書き込みが出来る状態から任意の処理を実行出来るようにするためには、popでレジスタに値をロードして、retで走らせたい命令列がある場所にジャンプする、と"
Fadisさんのツイート: "そんなわけでROPはまず目当てのレジスタにpopしてretqしてるところを探す事から始まる、と"
Fadisさんのツイート: "よっしゃ、ROP動いた"
Fadisさんのツイート: "retを使わない事でReturn Oriented Programmingを阻止する話を探してたら、retじゃない命令でReturn Oriented Programmingする論文を見つけちゃったところ https://t.co/pkdYlxJYAr"
Return-oriented programming without returns
Fadisさんのツイート: "CRIU: Linuxで実行中のコマンドのダンプと復帰を行うツール https://t.co/HbYJgGHVn4 #kernelvm"
Fadisさんのツイート: "範囲外参照の不具合とWebCore::CSSSelector::specifyを組み合わせて1bitだけ書き込むことができる → ArrayBufferのサイズの情報を書き換える→ArrayBufferから範囲外の値を読み書きできるようになる #kernelvm"
Fadisさんのツイート: "自由に書き換えられるようになった領域にさらにArrayBufferViewを作って、ベースアドレスを書き換えてさらに広い領域を自由に書き換えられるようにする、と #kernelvm"
Fadisさんのツイート: "そのままこの領域にバイナリを書いてvtableを書き換えてジャンプしてもNXビットが立ってて実行されない → Return Oriented Programmingだ! #kernelvm"
Fadisさんのツイート: "stack pivotを使って書き換え可能な領域がスタックだったことにする #kernelvm"
Fadisさんのツイート: "iretが#SS例外を投げるとユーザ空間のGSのままカーネルが実行されるバグがLinuxカーネルに見つかる → その後呼び出される関数がGSが指す構造体に0を書き込む → ユーザ空間から指定した位置に0を書き込むことができる #kernelvm"
Fadisさんのツイート: "PS4はFreeBSD4で動いている → ページフォルトハンドラが書き換え可能になっているため、ここを書き換える #kernelvm"
Fadisさんのツイート: "Linuxの場合は割り込みテーブルがリードオンリーになっているため、カーネル内でROPをして各種保護を切って書き換える #kernelvm"
Fadisさんのツイート: "A Turing complete ROP compiler https://t.co/olv8tOFzBR #kernelvm"
download;jsessionid=7BE7708C4BC9D07131666776F6159B34
Apple、iOSやmacOSなどの脆弱性を多数修正 | スラド アップル
Fadisさんのツイート: "stack-protectorはスタック破壊を「検知」することはできるけど「修復」することはできなくて、従ってカーネルのstack-protectorは攻撃者がring 0で任意のコードを実行しうる脆弱性を、攻撃者がカーネルパニックさせられる脆弱性に弱める物で、スタック破壊による攻撃を無力化する働きはない"
FadisさんはTwitterを使っています 「stack protector同様ASLRもforkしただけでは配置を変えられない。攻撃者はバッファオーバーラン脆弱性を使って既知のカナリアの後ろのリターンアドレスを書き換える事で「子プロセスがクラッシュしたかどうか」でASLRで配置換えされたページがどこに行ったかを探る事が出来る。これがBlind ROP、と」 / Twitter
FadisさんはTwitterを使っています 「で、ここまでの手法はいくらでも子プロセスをクラッシュさせられる場合専用だったわけだけど、BlindSide(https://t.co/xeEaTxQ5f5)はこれにSpectreを組み合わせて、ないかもしれないページを読んだ後で無かったことにしてその時の応答を観測する事で、プロセスをクラッシュさせずにASLRを乗り越える」 / Twitter
BlindSide - VUSec

@tanimocchi

もっちぃさんのツイート: "Side Channel Analysis via Model Counting Constraint Solvers https://t.co/YbVLNq3pur Side Channel Analysis Using a Model Counting Constraint Solver and Symbolic Execution https://t.co/wXQx1WHOhl String Analysis for Vulnerability Detection and Repair https://t.co/lQsOs1Sb5p… https://t.co/nBTZiopJN6"
もっちぃさんのツイート: "サイドチャネル攻撃耐性のあるコード設計&バイナリ生成技術も既に研究されていて、その紹介スライドは下記が良いかなと。 Verifying Cryptographic Implementations with F* https://t.co/4CEBFBDlPt… "
Verifying Cryptographic Implementations with F*

るくすさんはTwitterを使っています 「2年ぐらい前にアメリカにいた時に「ゼロデイを見つける時代は終わりだ。これからはいかにバレないようにゼロデイを"埋め込んでいくか"の時代が来るんだぜ」って言われて、んなアホなと思ってたが最近マジでそうなりつつあるな」 / Twitter
るくすさんはTwitterを使っています 「当時ですら既に国防総省肝いりのきな臭そうな(?)バックドア挿入の研究プロジェクトあったから今とかもっと凄そう」 / Twitter
品川 (utshina2)さんはTwitterを使っています 「これは ring 0 に対してはやってなかったか。」 / Twitter
Microsoft Word - exoshim.docx - tr15-001.pdf
Tsukasa #01さんはTwitterを使っています 「まさかのこの性質を使っている論文を見つけてしまった。 Brookes et al. https://t.co/vQHHUeI3kM」 / Twitter
品川 (utshina2)さんはTwitterを使っています 「Readactor の方が先かなぁ。 https://t.co/XniM2nuPsH」 / Twitter
Readactor:メモリ開示に強い実用的なコードランダム化| IEEEカンファレンスパブリケーション| IEEE Xplore

株式会社リチェルカセキュリティ
オープンソースセキュリティへの取り組みを集約した“Open Source Security Foundation”が設立 - 窓の杜

JIT

トランポリン

trampfd

FadisさんはTwitterを使っています 「libffi等の厄介な関数呼び出しをするソフトウェアは実行時に関数呼び出しを変換するトランポリンを作るが、トランポリンはexecutableかつwritableなページを要する為、攻撃者に絶好の任意のコード置き場を与える。そこでLinuxに新機能trampfdが提案されている https://t.co/iG7mBWegnU」 / Twitter
Microsoft Engineer Proposes "TRAMPFD" For Improving Linux Security - Phoronix
FadisさんはTwitterを使っています 「trampfdは「レジスタを書き換えスタックに何か積んで飛び先に飛ぶ」トランポリンをカーネルに作らせる。trampfdを作成し、レジスタとスタックの操作と飛び先を設定し、mmapして割り当てられた領域にジャンプすると、レジスタとスタックの操作が行われ、飛び先に飛ぶ。この領域への書き込みは禁止される」 / Twitter

トランポリン - 兼雑記
独自CPU開発で学ぶコンピュータのしくみ - 伊藤剛浩, 川田裕貴 - Google ブックス
アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita
セキュアなプログラマー: バッファー・オーバーフローに対抗する

PyPy

Tracing JIT

型アノテーション

アノテーション - Wikipedia
26.1. typing — 型ヒントのサポート — Python 3.6.5 ドキュメント
Pythonの関数アノテーションと型ヒント、typingモジュール | note.nkmk.me
Pythonではじまる、型のある世界 - Qiita
Python の型アノテーションと ast モジュールで, python コードから C/C++ コード生成に思いを馳せる - Qiita
Python と型アノテーション
型アノテーション · GitBook
PythonのTypeHints ~型アノテーション~ - Tocyukiのブログ
Pythonと型 〜 Docstring、関数アノテーション、型推論 〜 - Blank File
[翻訳] PEP 0484 -- 型ヒント (Type Hints) - Qiita
RPython 型付け器 — pypyja 1.7 documentation
PyPy - RPython toolchain — PyPy 1.6 documentation

トレーシング実行時コンパイル - Wikipedia
Tracing just-in-time compilation - Wikipedia
PyPy Status Blog JA: 部分評価とトレーシングの比較 Part 1
PyPy Status Blog JA: FlowGraph 言語のための単純なトレーサ
PyPy Status Blog JA: FlowGraph 言語のトレースの最適化
より大きなフローグラフ言語の例
web.archive.org/web/20130122090621/http://www.longsleeper.com/
Wayback Machine
#3 PyPyについての講演,ハンズオン,スプリント:そうだ! EuroPython 2011へ行こう|gihyo.jp … 技術評論社
Tracing the Meta-levelとは?PyPyのJITコンパイラについて - TECH-MICCHON.jar
流行りのJITコンパイラは嫌いですか? — PyPy Advent Calendar 2011 v1.0 documentation
言語のJITコンパイラをその言語自身で作る事の意義とは - Togetterまとめ
どきっ!mrubyだらけのTracing JITコンパイラ解説 バグりもあるよ - Qiita
Tracing_JITs11_tracing_the_meta_level.pdf
The Essence of Meta-Tracing JIT Compilers.pdf
BoCuFiRi09_246.pdf
Laurence Tratt: The Impact of Meta-Tracing on VM Design and Implementation
Tracing the meta-level: PyPy's tracing JIT compiler | Request PDF
Runtime feedback in a meta-tracing JIT for efficient dynamic languages | Request PDF
Trace-based just-in-time compiler for Haskell with RPython
pycket-draft.pdf
34

RPython

Frequently Asked Questions — RPython Documentation
Getting Started with RPython — RPython Documentation
Welcome to RPython’s documentation! — RPython Documentation
rpython 0.1.4 : Python Package Index
PyPy - RPython toolchain — pypyja 1.7 documentation
PyPy - RPython toolchain — PyPy 1.6 documentation
Building An Interpreter In RPython - PyCon Japan 2016 // Speaker Deck
Pyrlang: RPythonを用いた高性能仮想機械 – 増原英彦研究室
PyPyの基礎知識まとめ その1 - Qiita
RPythonの情報とRPythonで実装されている言語処理系 - rokujyouhitoma's blog
RPythonToolChainでOok!を実装した時のノウハウ紹介。PyPy Advent Calendar 2011 7日目 - rokujyouhitoma's blog
Shibu's Diary: PyPyよりも5倍高速な最速のPython処理系
RPythonで書かれたRuby処理系Topazで遊ぶ
RPythonについて軽く | κeenのHappy Hacκing Blog
Graal/Truffleについて軽く | κeenのHappy Hacκing Blog
Hideyuki TanakaさんはTwitterを使っています: 「なるほどMesaPy(´・_・`) / 2件のコメント https://t.co/40dKogXBMU “GitHub - mesalock-linux/mesapy: A Fast and Safe Python based on PyPy” (11 users) https://t.co/itU9MPPTVE」 / Twitter
mesalock-linux/mesapy: A Fast and Safe Python based on PyPy
Hideyuki TanakaさんはTwitterを使っています: 「RPythonのCの部分はFormal Verificationして、外部ライブラリはRustのものに置き換えてメモリ安全という話なの(´・_・`)」 / Twitter
RPythonについて軽く | κeenのHappy Hacκing Blog

continulet

覚え書き: Pausable Unittest その1 (continulet と tasklet)
アプリケーションレベルのスタックレス機能 — pypyja 1.7 documentation
Emerge Technology: pypyのスレッドとかgreenletとか何か

OSDN

Python処理系「PyPy 4.0」リリース、起動時間を大きく改善 | OSDN Magazine
「PyPy 5.0」リリース、起動時間やメモリ使用量の短縮が行われる | OSDN Magazine
Python実行環境「PyPy 5.1」公開、ウォームアップ時間やメモリ要求をさらに強化 | OSDN Magazine
「PyPy2.7 v5.6」リリース | OSDN Magazine
「PyPy 5.9」リリース、NumPyとPandasをPython 2.7向けでサポート | OSDN Magazine
「PyPy 7.0」リリース、アルファ段階の機能としてPython 3.6対応を追加 | OSDN Magazine
aarch64に対応した「PyPy 7.2」が公開 | OSDN Magazine

PyPy - Wikipedia
PyPy Advent Calendar 2011 6日目 Frequently Asked Questions - YAMAGUCHI::weblog
ryu22eBlog跡地:第八回ありえるえりあ勉強会 ~PyPyのキホンの気 に参加しました #arielarea
PyPy 紹介
次世代言語 Python による PyPy を使った次世代の処理系開発
PyPy開発へようこそ — pypyja 1.7 documentation
Coding Guide — PyPy documentation
PyPyのPyObjectの実装が謎い - Togetterまとめ
PyPyの論文つぶやき - Togetterまとめ
Python を速くする取り組み - methaneのブログ
PyPyがCより速いケース - karasuyamatenguの日記
PyPy 4.0登場 - SIMDベクトル化機能付きJIT搭載 | マイナビニュース
PyPy 5.0登場 - 起動処理が30%高速化 | マイナビニュース
さらに高速化、PyPy 5.1登場 | マイナビニュース
PyPy ソースコードリーディング事始め - プログラマのネタ帳
PyPy Advent Calendar 15日目 - 低レベルっぽいことをやってみる - プログラマのネタ帳
PyPy Status Blog: PyPy JIT for Aarch64

メソッド・キャッシュ

メソッド実行結果をキャッシュする - うなの日記
rubyのメソッドをキャッシュするコードです。詳細はブログで紹介してます。 http://ameblo.jp/syou007/entry-11468918541.html
インライン・メソッド・キャッシュによる動的ディスパッチ高速化(1/3) - @IT
The Story of Method Lookup - Qiita
第15章 メソッド
API キャッシュを有効にして応答性を強化する - Amazon API Gateway

グリーンスレッド

グリーンスレッド - Wikipedia
Green threads - Wikipedia
Inside Meinheld - Qiita

goroutine

【翻訳】goroutine の仕組み - まるまるこふこふ
build-web-application-with-golang/02.7.md at master · astaxie/build-web-application-with-golang
Go言語の並列処理 goroutineとchannel - Qiita
Go言語感想文 - なるせにっき
nobonoboさんのツイート: "一旦 #golang のgoroutineに慣れちゃうと他の環境でネイティブとグリーンそれぞれに同期操作が別々のため基礎ライブラリが2セットにダブってしまってるの超めんどくさすぎてツライ。"
GoConで発表してきたのでついでにruntime以下の知識をまとめていく #golang - niconegoto Blog
Futureとその周辺 | κeenのHappy Hacκing Blog
島鉄雄さんのツイート: "Emacs Lisp に Async/Await を実装しましたよ。 仕事のほとんどは generator.el と promise-core.el で済んでるので、TypeScript のやり方を参考に繋げただけです。 これで非同期処理を同期処理と同じように書けるよ。… https://t.co/YYOhoR1g33"
TAN-Y(たに)さんのツイート: "・コルーチンは使うだけなら簡単。 ・std::futureは標準でawaitできるけど戻ってくるスレッドが毎度生成のワーカースレッドなので事実上使い物にならない。(まあこれは仕方ない) ・C++/WinRTはUWPのランタイムとからめてうまくawaitできるようにしてるんだろうなあと想像。"
Big Sky :: 書評「Go言語による並行処理」
渋川よしきさんのツイート: "既存のgenerator base coroutine、coroutineとしても使えるけど、外部インタフェースとしては第一はiteratorなんだよな。coroutineがプリエンプティブ・マルチタスクのための言語機能というのであれば、今後一番複雑なタスク管理の中心になるasyncioと親和性高くデザインされる、というのは違和感ない"
C++ でコルーチン (async/await 準備編) - Qiita
C++ で async/await をする - Qiita

C3線形化

The History of Python.jp: メソッド解決順序(MRO)
よくわからないので実装して理解するRubyのメソッド解決順序 - Qiita

Threaded code

スレッデッドコード - Wikipedia
Threaded code - Wikipedia
第一級ラベルを持たない言語におけるDirect Threaded VMの実装 | κeenのHappy Hacκing Blog
Rubyist Magazine - YARV Maniacs 【第 3 回】 命令ディスパッチの高速化
direct threaded code - imHo
Direct Threaded Code
Threaded Code - moiの頭の中
楓 software: direct threaded code

NaN boxing

NaN boxing - 枕を欹てて聴く
mrubyのJITの64bit対応 - Qiita
NaN boxing
NaN Boxing - albertnetymk's notes
zuiderkwast/nanbox: NaN-boxing in C
design patterns - What is the purpose of NaN boxing? - Software Engineering Stack Exchange
NaN-BoxingによるJavaScriptの最適化 | CodeLunch.fm
value representation in javascript implementations -- wingolog
NaN-Boxing [sean.cm]
Yukihiro Matsumotoさんのツイート: "@miura1729 NaN boxingはそのうちやってみたいんですが。64bit対応が難しそうです。LuaJITの対応方法がどうにも理解できない。どうせ自分はまだ32bit環境だから32bitだけ対応するかなあ。"
Internals - SpiderMonkey | MDN

VM

vmgen で簡単なレジスタベースの VM を作る(1/2) - Qiita
vmgen で簡単なレジスタベースの VM を作る(2/2) - Qiita
VMの本を見てみた: なつたん
Dalvik仮想マシンのアーキテクチャ
Software Basic
Java SE Specifications
Java仮想マシン - Wikipedia
Java仮想マシントリビア - JVM仕様のベリファイアの説明がPrologで書かれている! - Qiita
JVMの中身を可視化してみた
JVMのメモ | Java好き
Kazuho Okuさんのツイート: "何度でも言うけど this[n] って C++ だと合法的なテクニックだし実際に使われるから! 僕のMacBookの中にあるコードを検索するだけでも用例が見つかる。ちなみにこれは JavaScirptCore(SafariのJS実装)の CallFrame.h https://t.co/toppExfr7t"
Kazuho Okuさんのツイート: "メモリ上に連続に一次元として配置されるオブジェクトかつ隣接するものの参照が必要になる場合に有用なテクニックであることを考えると、言語処理系以外にエディタの文字処理(バリアントセレクタ)とかでも使ってそう"
Kazuho Okuさんのツイート: "なんでこれが良いか解説すると、言語処理系のVMスタック上の値はそれぞれ異なる型をもつ(例:呼出フレーム、リターンアドレス、引数)ので、たとえば呼出フレームからリターンアドレスを参照するのは this[OFFSET_OF_RETURN_ADDR_FROM_FRAME] になる"
Kazuho Okuさんのツイート: "スタックフレーム上の各値をそれぞれ異なる「正しい型」で表現しているから、コーディングミスを抑制することができるわけで、良いコーディングパターンなわけです。もちろんコンストラクタの呼出をprivateにしたり、サブクラスでメンバ変数の追加を禁止するなどの前提があるけど"
Kazuho Okuさんのツイート: "他の用例としては MySQL のクエリプラン構築コードに this[-1].next_select = sub_select_op; ってのがある。jon用のクエリプラン生成時に、直前の命令の属性を書き換えてる感じなのかな"
Kazuho Okuさんのツイート: "まあ正直mysqlのコードはアドホックなところが割とあるのでアレだけど"
Kazuho Okuさんのツイート: "クラスファイル内のLineNumberTable削除してから比較すればコメントやインデント変更の影響を検知することはなくなると思うけど、それが簡単にできるツールないのかしら / “Javaのリファクタリングした際にclassファ…” https://t.co/7hvYnGXD9u"
Javaのリファクタリングした際にclassファイルの差分比較をしてテスト要否を判断したい - Qiita
[調査]JVMのスタックサイズについて - Akira's Tech Notes
眼力 玉壱號さんのツイート: "JVM、中に interpreter 持ってるけど、byte code 解釈する部分は立ち上がりの時点で template の穴埋めして動的生成していたりもする cf. https://t.co/LFbIMbouhG… "
openjdk.java.net/groups/hotspot/docs/RuntimeOverview.html#Interpreter|outline
今後のJavaのサポートやアップデートについてJavaチャンピオンが執筆したドキュメント、Java is Still Freeの日本語訳を公開 - Fight the Future
Javaは今も無償です - Google ドキュメント
YARV命令ごとの実行コストを知るには - なるせにっき
JVMことはじめ その1: クラスファイル - Qiita
report.pdf
Nextcloud
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「Pharoのツヨツヨ兄ちゃんがSlang(Smalltalk VMを記述している、CにトランスレートされるSmalltalkサブセット)でのVMプログラミングについて「2つの異なる意味論を持つ言語の両方でたまたま同じ動作をするソースコードを書くというパズル」と言っていたのを思い出した。」 / Twitter
Miura HidekiさんはTwitterを使っています 「分かる気がする。確かにそんな感じ。私の場合はソース言語のサブセットではなく、内部構造(ASTや型情報)からターゲット言語(C)の変換メソッドだけど」 / Twitter

バイトコード

バイトコード - Wikipedia
Javaバイトコード - Wikipedia
プログラミング言語を作る/静的・バイトコード実行型言語を作る
簡易スタック型VM(バイトコードインタプリタ)でのフィボナッチ数計算速度 - sileのブログ
Rubyist Magazine - YARV Maniacs 【第 2 回】 VM ってなんだろう
チューニングのためのJava VM講座(前編):Hotspot VMの基本構造を理解する (2/2) - @IT
Javaバイトコードの読み方 - わらばんし仄聞記
Java VMとバイトコードとマイコンの親和性は良好? - Lynx-EyEDの電音鍵盤 新館

チューニング(キャッシュ)

herumiさんのツイート: "https://t.co/ge6QtuNysQ MKL-DNNはそのあたり(キャッシュサイズを見て実行時コード生成のパラメータを変える)のことをやってるようです。 https://t.co/gLmXqSEPfS ただcpuidはAWSなどのVM環境(のせい?)では結構適当な値が返ることがあるようでときどきトラブってます。 https://t.co/TV80bXyBnK"
yohさんのツイート: "正直 キャッシュ階層とかメニーコアNUMA構成を活用した"最適"性能チューニングを考え出すと 髪の毛が何本あっても足りないので お近づきになりたくはない領域..."
yohさんのツイート: "#nakamecpp L1$ラインサイズの話題ででてきた L3$による性能ペナルティの話 https://t.co/kzY6aSdzeP このあたりで図解されてて面白いかも x86だとCPUID命令で情報とれるやつ→ https://t.co/wDDyMZn1Lb"
Gallery of Processor Cache Effects
The CPUID Explorer: Part 2
yohさんのツイート: "#nakamecpp で指摘のあった「既存std::lock_guardを複数Mutex対応しないの?」 https://t.co/BOtardjiuQ 当初提案ではまさにその通りで、ABIを壊すからscoped_lockとして新規導入したよとのことでした。ちゃんと書いてありましたね m(_ _;m)"
Variadic lock_guard (Rev. 2)
nakameguro_feature.cpp vol.8
docs/nakamecpp8_20180913.pdf at master · yohhoy/docs
mkl-dnn/jit_avx512_core_fp32_wino_conv_2x3.cpp at 19588d1484911a3dc7933b32ce71d2f1b9bbbb78 · intel/mkl-dnn
Prevent cores_sharing_data_cache being zero on Intel Xeon E5 v2 by playertwo · Pull Request #67 · herumi/xbyak

Ruby

mrubyのJITの概要 - Qiita
「Ruby 2.6.0」が正式リリース ~JITコンパイラーの導入でパフォーマンスが向上 - 窓の杜
「Ruby 2.6」リリース、JITコンパイラを導入 | OSDN Magazine
Ruby 用の JIT コンパイラを作りました。ただし VM のではない。 | Chiba’s website
Yadriggy C · csg-tokyo/yadriggy Wiki
Ruby 2.6正式版リリース。JITコンバイラを初めて実験的に搭載 - Publickey

Java

LTS

Red Hat、Windows版OpenJDKの長期商用サポート提供を発表 - Publickey
AWSが独自のOpenJDK「Amazon Corretto」発表。AWS内部で使っていたJavaを外部提供へ。Java 8は2023年まで、Java 11は2024年まで無償でLTSを提供 - Publickey
Microsoft Azure上での実行目的ならJavaの長期サポート(LTS)を無料提供、MacやWindowsでの開発用途もOK。マイクロソフトとAzul Systemsが提携で - Publickey
AWS版OpenJDKの「Amazon Corretto 8」正式版リリース。少なくとも2023年6月まで無償でアップデート提供 - Publickey
OpenJDK を開発する流れ - #chiroito ’s blog
AWS、Java 11対応の独自OpenJDK「Amazon Corretto 11」プレビュー版を公開 - Publickey

Javaでなぜ問題が起きるのか 〜システムをきちんと運用するための基礎知識:連載|gihyo.jp … 技術評論社
Java-MA16-JIT.pdf
shuJIT: a Java Just-in-Time Compiler for x86
shudo/shujit: Java Just-in-Time Compiler for x86 processors
Java12新機能まとめ - Qiita
ところでJavaのRaw Sring Literalsはどうなってるの? - きしだのはてな
JDKの新しいリリース・モデル、および提供ライセンスについて
米Red Hat、「OpenJDK 8」と「OpenJDK 11」の開発を統括することを発表 | OSDN Magazine
RedHatがJava 8および11の幹事になる
EclipseとOracle、javaxパッケージ名前空間と商標の扱いに関する合意を断念
Javaは今でも無償ですという話と最近のJava Webフレームワーク / Java is still free and Java Web FW - Speaker Deck
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Java EE仕様はJakarta EEに改名された
米Microsoft、JVMのチューニング技術を持つjClarityを買収 | OSDN Magazine
「AzureをJavaにとってよりよいプラットフォームにする」、マイクロソフトがJavaツールベンダのjClarityを買収 - Publickey
JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】 | Backlogブログ
JIT コンパイラのコンパイラスレッド、コード最適化について - それが僕には楽しかったんです。
JIT コンパイラのコードキャッシュ - それが僕には楽しかったんです。
Java のJIT コンパイルについて - それが僕には楽しかったんです。

スライド

Java仮想マシンの実装技術
静的型付き言語用Just-In-Timeコンパイラの再利用による、動的型付き言語用コンパイラの実装と最適化
mrubyのJIT
V6でJIT・部分適用・継続

blog

Scheme インタプリタにおける仮想マシンアーキテクチャの最適化
Gauche:VMの最適化:JIT:予備実験
DSAS開発者の部屋:最近のPython-dev(2017-04)
won't fix: JIT platform by major browser vendor (Feb 2013)
米国から見た日本のRuby事情(翻訳)
VMに手を加えずRubyを高速化するJITコンパイラ「YARV-MJIT」の話 - k0kubun's blog
CRuby向けのLLVMベースのJITコンパイラを書いている話 - k0kubun's blog
ヒープメモリに実行権限を与える件 - syuu1228's blog
LL Future, tracing jit, IBM Java Just-in-Time Compiler - NyaRuRuが地球にいたころ
Binary Size, Partial Memory Mapped File, Just In Time Compile, Latency and Throughput - NyaRuRuが地球にいたころ
JIT コンパイラの Dead Code Elimination を利用して,同一の CIL から複数の実装を生成する - NyaRuRuが地球にいたころ
Kazuho Okuさんのツイート: "局所性が悪い(TLB miss)というよりcache line collisionじゃないのかな / “RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog” https://t.co/DFVdPtX0Cc"
RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog
JITあれこれ | κeenのHappy Hacκing Blog
自作JavaScriptエンジンの進捗 - uint256_t's blog
論文メモ: HHVM JIT: A Profile-Guided, Region-Based Compiler for PHP and Hack | κeenのHappy Hacκing Blog
code bloat - Google 検索
JITコンパイル時の関数呼び出しの扱い方 - 茅の下
melancholic afternoon
melancholic afternoon
https://cfallin.org/blog/2020/09/18/cranelift-isel-1/
v8 "Launching ignition and Turbofan" 和訳 - kakts-log
How JIT Compilers are Implemented and Fast: Pypy, LuaJIT, Graal and More | Carol's Blog
Project Zero: JITSploitation I: A JIT Bug
Project Zero: JITSploitation II: Getting Read/Write
Project Zero: JITSploitation III: Subverting Control Flow
The MIR C interpreter and Just-in-Time (JIT) compiler - Red Hat Developer

infoQ

Lua: 組込みスクリプトエンジン、新しい高性能VMを搭載したLuaJIT 2.0
Javaの新JITコンパイラ、Graalを解説
Safari、新しい低レベルコンパイラB3 JIT導入 | TECH+
WebKitがWebAssemblyを完全にサポートした
AppleがLLVM JITを使用してWebKitのJSエンジンをスピードアップ
Unladen Swallow 回顧録 - YAMAGUCHI::weblog
Introducing the B3 JIT Compiler | WebKit

POSTD

JITコンパイルでの冒険 パート1:インタプリタ | コンピュータサイエンス | POSTD
JITコンパイルでの冒険 パート2:x64 JIT | コンピュータサイエンス | POSTD

GitHub

rhizome

Miura HidekiさんはTwitterを使っています 「これはすごい。ひょっとしたら、最高のJITコンパイラの教科書なのでは? https://t.co/6fDaUuHwRN」 / Twitter
chrisseaton/rhizome: A JIT for Ruby, implemented in pure Ruby
Jay Kumogata🔢さんはTwitterを使っています 「そんなことできるんだ。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@jay_kumogata はい、RubyでRubyのJITコンパイラを書くことは可能です。すごく簡単なものですが、私も書いたことがあります。 https://t.co/yASTkcD6S8」 / Twitter
どきっ!mrubyだらけのTracing JITコンパイラ解説 バグりもあるよ - Qiita
Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata 処理系標準機能でその処理系のJITコンパイラを書けるようにした場合、ユーザコードが適当なバイナリ作って呼び出すってこともできちゃうんだけど、あんまり気軽に触って欲しくないと時にうまく権限管理する定番ってありますかね。外部ライブラリリンク可能なら結局何でもできるからみんな気にしてない?」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata FFI(JNI)を禁止するのは大前提として、JVMのJava bytecode verifierが一番の定番じゃないかと思います。ちょっと保守的でしょうからもう少し自由があり得るかもしれませんが」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata なるほど、しかしverifierまでやるのはネイティブコード対象だとちと手間がかかりますね。完全なsandboxを提供したいわけじゃなくて、内部状態をぶっ壊しちゃうコードをうっかり書いちゃうのを防ぎたいって思うんですが、徹底しないとあんまり意味が無いのかなあ。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata ネイティブコード対象だとあるバイトコードをどういうコードに落とすかは任意なのであまり意味がない気がします。バイトコードで悪意を持ってバッファオーバフロー攻撃とかを防ぐにはverifierは必要な気がします。うっかりだとどうなんでしょうかね? 続く」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata 自明に無限ループになりえる条件さえ検出できれば(完全にやるのは不可能ですが)何とかなる気もします。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata 心配してるのは、JIT用内部ルーチンのネイティブコード組み立て→実行可能ページに置いてcall、というのがユーザから気軽に呼べちゃうと、ちょっとでもミスるとABI守らずにスタック壊したりヒープ壊したりしちゃうコードが実行できちゃうなあ、というとこなんですよね。安全マットが欲しい。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata なるほど。実行可能ページのアクセスを許した時点でJITとか関係なくまずい気がします。悪意が無い場合だとどうなるんだろう?決められたAPI経由(Xbyakみたいな感じ)でしか機械語命令を書き込めなくてその時点でVerifilerが動くという仕組みにすればよいのかな?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata リフレクションのある言語だと内部的に使ってるルーチンが呼べちゃったりするので、処理系内部で権限管理してユーザからの直接呼び出しを禁止するとかかなあ。Gaucheで試してるFFIは動的コード生成があるんですが、実行可能ページへのネイティブコード書き込みやジャンプ、というユーティリティ→」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata にはアクセスさせたくないので、「初期化時のみ束縛が存在→内部ルーチンは定義時に束縛をクロージャ内に取り込む→初期化ルーチンの最後で危ないユーティリティへの束縛を消す」というのをやってみてはいるんですが。他の処理系で何かやってるのかなあと。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata これはエレガントですね。この手の危ない機構は公開されないのかもしれないですね。例は全く知らないです。」 / Twitter

Morgan-Stanley/hobbes: A language and an embedded JIT compiler
k0kubun/llrb: LLVM-based JIT Compiler for Ruby
Links.md
vnmakarov/mir: A light-weight JIT compiler based on MIR (Medium Internal Representation)
runtime/docs/design/coreclr/jit at master · dotnet/runtime

Twitter

その他

Miura Hidekiさんのツイート: "mrubyのJIT、インテルさんの言うとおりにしたら速くなったのでインテルすげー https://t.co/QKwwuxomP0"
小倉唯さんのツイート: "あと JIT compiler だと runtime に cpuid に query かけて best op 選ぶチャンスがあるか."
Rockridgeさんのツイート: "JavaScript JITエンジンへの新機能追加をRust言語で行えるようにするメタJITコンパイラをMozillaが実験的に開発中。名をHolyJitという。安全なコードを書けるメリットがある。 / “HolyJit: A …” https://t.co/MUfaa2wq7n"
HolyJit: A New Hope | JavaScript
とみながたけひろさんのツイート: "コンパイラの本はいっぱい(?)あるけど、インタプリタの本ってあんまりないよねえ…。あとバイナリトランスレーションとかCPUじゃなくてGPUとかのエミュレーションとかも。まあ真面目に実装すると色々特許とかリバースエンジニアリングとかが絡んで政治的に面倒くさいからな…"
瑣末u 🗹さんのツイート: "動作中のプロセスを解析してJITコンパイラでメモリ上のプログラムを書き換えてCPU性能を改善するツールらしい。現在対応しているのはMySQL系だが今後増える模様。 / “Dynimize: CPU Performance Vir…” https://t.co/CpLQ4oNwmw"
Dynimize: CPU Performance Virtualization
ロックフリーのkumagiさんのツイート: "JITの効果の結構大事な部分が関数のインライン化だからそれを阻害するネイティブ関数呼び出しは鬼門っていうの、pypyでmsgpackのC拡張動かしてベンチマーク取った時に痛感したな。"
眼力 玉壱號さんのツイート: "JavaScript 界隈でも似たような話は出てましたね(cf. https://t.co/HIBHHtHpRe ) 言語境界を跨いで inlining 出来ないと速くならない(に対する1つの approach が #GraalVM なのかもしれない)… "
ぼうくんさんのツイート: "Js の Array sort と自前 quick sort のパフォーマンス差は JIT がかかればかかるほど大きくなるし、これは V8 とかの JS エンジンがより効率化するほど広がる http://t.co/g0oroGZu"
yemotoさんのツイート: ""HHVM JIT: A profile-guided, region-based compiler for PHP and Hack" https://t.co/7tPa8JC6SP #engineer #feedly"
HHVM JIT: A profile-guided, region-based compiler for PHP and Hack | the morning paper
渋川よしきさんのツイート: "関連研究?では日本語入力で使うLOUDSも簡潔データ構造だし、あれは木構造だから言語処理系の中でも使い所が多そうな気がする。 : 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ https://t.co/GpBB4RW0z1"
簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
渋川よしきさんのツイート: "JIT、ネイティブにするしない、ではなくて、アルゴリズム選択みたいなのもあると楽しそうだなあって少し思ってる"
Shiro Kawaiさんのツイート: "Gaucheはrequireされるfeatureごとに「まだrequireされてない」「require解決中」「providedされた」の状態を持ってる。この状態テーブルは排他制御されるので一つのスレッドが解決中なら参照しようとした他のスレッドは待たされる。循環は検出してエラーにしてる https://t.co/qTJ8urw8uL"
2019-04-20-akr-autoload-rubykaigi-after-party.pdf
Shiro Kawaiさんのツイート: "循環というか相互依存か。自分がrequire中に他のfeatureをrequireしようとしてそれが既にrequire中になってたら諦める。既にそれまで読んで実行されちゃった分は巻き戻せないんだけど、そもそもそういう関係を作るのが設計ミスってことにしてる。"
Fadisさんのツイート: "Webサーバの性能向上の為に度々破天荒な物を作るFacebookが今度はC++をJITコンパイルしてスクリプト言語扱いする手法を編み出したらしい。ソースはコンパイル済みヘッダと共にLLVM IRに変換されOrcJITで実行される。この手法はEuroLLVMで発表されているがOSS化はされていない https://t.co/KRLU1QcQ9C"
Facebook Is JIT'ing C++ Code To Treat It Like A Crazy Fast Scripting Language - Phoronix
FadisさんはTwitterを使っています 「JavaScriptでは関数の引数の型が実行するまで確定しない為、ある型で実行された際に作られたJITコンパイルの結果が以後の関数呼び出しで再利用できるかを実行環境は常にチェックしている → WebAssemblyの関数は型が確定している為この処理を 丸ごと省略できる、を #kernelvm」 / Twitter
R. ShioyaさんはTwitterを使っています 「スクリプト言語では組み込み関数はCとかで書かれてるのでそっちのが高速ってのが相場だと思うけど,javascript に関しては「ネイティブの(特定のパラーメタに)専用化されたコード &gt; JIT された js の専用化コード &gt; ネイティブの汎用コード」があったりして,自前で書いたほうが全然速いことあるな」 / Twitter
R. ShioyaさんはTwitterを使っています 「node.js だと,parseInt(16)(10 は専用化ルーチンが実装されてるのでそっちのが速い),split(入力があんま長くない時),readline あたりは注意深く組めば数割から倍以上のレベルで自前の方が速いね.ただ,古代C言語文字列プログラミングみたいなことを今更やるはめになる…」 / Twitter
R. ShioyaさんはTwitterを使っています 「あとルーチン自体は自前の方が速くなっても,変数の使用量が増えるせいか Minor GC の回数が豪快に増えてかえって遅くなるとかもあるのでなかなかムズカシイ」 / Twitter
κeenさんはTwitterを使っています 「Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework (DLS - Dynamic Languages Symposium) - DLS https://t.co/1yikKpSmwf」 / Twitter
Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework (DLS - Dynamic Languages Symposium) - DLS

CacheIR

ドッグさんはTwitterを使っています 「Firefox の JIT コンパイラが大きく改善されたらしい.昨年開発された Baseline コンパイラの inline cache を利用することで型情報を削減し,多くのサイトで 5-15% の高速化.Nightly で試せる | 'Dogfooding Warp' https://t.co/fUjJa0ra43」 / Twitter
ドッグさんはTwitterを使っています 「Firefox のインラインキャッシュ CacheIR について: https://t.co/EaAh7b4k04」 / Twitter
CacheIR: A new approach to Inline Caching in Firefox
ドッグさんはTwitterを使っています 「s/多くのサイトで/多くのメトリクステストで/」 / Twitter

smi

R. ShioyaさんはTwitterを使っています 「v8 の JIT トレース見てたらたまに型の一貫性がとれなくなったとかで deopt が起きてて不思議だったのだけど,どうも整数が31ビット範囲を超えると内部的に倍精度型に型が切り替わるのでそのあおりをくらって構造体全体やそれを見てる関数の最適化コードが根こそぎ破壊されてたと言うことがわかった」 / Twitter
R. ShioyaさんはTwitterを使っています 「これ,メンバが必要とする値の範囲の変化に応じて動的に構造体の再構築と関連する部分の再コンパイルをしてるわけで,そう思うと結構すごいことやってるなと思う.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya 最初から8byte確保して、適応的にint64 or double切り替えとかではダメなんですかね、、、」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu smi (small integer) というのが定義されていて,union 的にポインタに埋め込む感じの実装になっているからのようです.31 ビットなのは互換性のためらしく,64bit アーキなら本来は 63? ビットまではいける気もします. https://t.co/j9PLf2ntEC https://t.co/3RDJOsANt5 https://t.co/EovPvfPhXK」 / Twitter
Elements kinds in V8 · V8
V8エンジンでのJavaScriptの機能と最適化コードの書き方に関する5つのベストプラクティス | POSTD
V8 javascript engineについての細かい話 (Node.js Advent Calendar 2017) - abcdefGets
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど。 64bitだと63bitまで行けるにしても、int -&gt; double についてはサイズだけでなく、ポインタ埋め込みから、ヒープ確保なdoubleオブジェクトに変わる感じなのですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「まあこの辺はmrubyのJITでもやっているからこの手のJITコンパイラでは普通かと。mrubyのJITはコードを破壊するコードを使わなくなったメソッドのコード跡に置いておくって方法」 / Twitter

部分評価

Shuhei KadowakiさんはTwitterを使っています 「Dartの話がめちゃくちゃ魅力的。AOTとJITの良い部分を使い分けられたらいろいろな楽しいことできるよね。開発の柔軟性とリリースでのパフォーマンス両立できるとかめちゃくちゃいい。 #camphor_day」 / Twitter
Miura HidekiさんはTwitterを使っています 「どういう話か気になる。Rubyの究極のコンパイラはAOTで徹底的に解析さえれた後、プログラムコードと共にそのプログラムにカスタマイズされたJITもAOTのコンパイル時に生成する形だろうなって今の所思っている。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@miura1729 部分評価を取り入れた感じですね。わかります。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@zacky1972 なるほど、そう言う考え方も出来ますね。コンパイラのサブセットなどをランタイムの一環として持つみたいなイメージでいました。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@miura1729 Pelemayでも近々同様の仕組みは必要だと見越しています。できるだけAOTで生成し、プロファイラー情報をもとに最小限のJITコード生成をする感じにしたいです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@zacky1972 やはり必要ですよね。実際に実行しなくてもおそらく抽象実行で必要な情報が集められる気がします。コンパイル速度が非現実的になるかもですが。再定義が起きうるとか、evalが実行される・evalでサポートが必要な言語仕様(数値のみとか)、が得られるんじゃないかと思います。」 / Twitter

Java

ABAさんのツイート: "Javaで2 * (i * i)が2 * i * iより速くなる理由。JITのループアンローリングによって生成されるアセンブリコードが大きく変わるため https://t.co/fo92ZP5xwo"
FFFumihiro MMMatsuiさんのツイート: "演算順序変わるからバイトコード変わるまではうんそうだよなって感じだけどその段階では速度差の原因が自明ではなくてJIT生成コードまで掘り下げにゃならんのな"
FFFumihiro MMMatsuiさんのツイート: "確かにスクリプト処理系のVM高速化の時とかもある程度以上はjavap結果からのイメージと素直に繋がらなくなってそれ以上はJVMともっと下側のやり取りまで見えないとわからんなって感じした"
FFFumihiro MMMatsuiさんのツイート: "for文にJVM側でSIMD効かしてくれる挙動も、確かfor文の中身がちょっと複雑になるとJREバージョンによって速度違ったし。そういうシビアさを気にして結局そこは高速化はほどほどにして、部分的には元に戻したりもした"
FFFumihiro MMMatsuiさんのツイート: "ほんとに特定環境で突き詰めたらVnanoのベクトル演算は倍精度8GFLOPS近く出せたんだけど結局5GFLOPSあたりの感じで着地した"
FFFumihiro MMMatsuiさんのツイート: "配列の算術演算を複数コンボで連ねる時に a[ i ] = b[ i ] + c[ i ]; みたいなパックしてSIMDに投げやすそうな雰囲気の単位に切って回した方がいいのか a[ i ] = b[ i ] + c[ i ] + d[ i ]; みたいに詰めた方がいいのかとかそういう試行錯誤だったっけ 確かどっちが速いか環境によってた"
FFFumihiro MMMatsuiさんのツイート: "あくまでも特定の1つのコード内において試しただけなのでこの書き方だけ抜き出して有利不利は言えなさそうだけど、ちょっと前の環境だと後者が結構伸びて数割有利で、今の環境だと両者トントンで、なので後者はなんかシビアそうなので演算器オブジェクト実装したけど無効化して前者が動くようにしてる"
FFFumihiro MMMatsuiさんのツイート: "これだ。 高速化のために実装したもののFLOPSが環境で結構大きくブレるっぽいので無効化してる2連ベクトル加算器オブジェクトの処理: https://t.co/BsHRxKVOhv 代わりに動いてるのは普通に1連のこっち: https://t.co/Vm2MeSsz6h 4~8GFLOPSくらいの間の変動幅なのでたぶんSIMDの効き方が違う?"
FFFumihiro MMMatsuiさんのツイート: "このあたりのやつ演算対象データ全体がCPUの何次キャッシュまでに載りきるかどうかで速度何倍も違うけど、一応は前者も後者も両方全部1次キャッシュに乗り切る領域で測ったはず、確か"
FFFumihiro MMMatsuiさんのツイート: "後者のベクトル長を横軸にしたFLOPS値のグラフはこれ https://t.co/b34UZTqdZK SIMD 有効/無効はjava実行時のオプションでUseSuperWord(だっけ?)有効(確かデフォ)にしたり無効にしたり"
FFFumihiro MMMatsuiさんのツイート: "そんななので、やっぱJava上だけで速くする時って、普段はバイトコード読んで効率的か?はそれなりに有用な情報と思うけど、結局JVMはスタックマシンで、CPUというレジスタマシンにJITして、んでCPUの機能も使ったりするので、バイトコード見た印象から乖離した不思議な速い遅いは確かにあるっぽいなと"
FFFumihiro MMMatsuiさんのツイート: "さっきの記事に納得したのでした。 着地できた"
FFFumihiro MMMatsuiさんのツイート: "そういえばProject Panamaだっけ? JavaでSIMD機能のAPI叩けるようになるとかいうやつ超期待してる"

Erlang OTP24

Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ErlangはOTP24でJITコンパイルされるようになったが、JITを入れるまでの経緯がなかなか興味深い。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「OTP24で入ったJITはとても愚直なJITだ。最適化は考えない。とりあえずネイティブコードはどんなコードであれ早いのだから愚直にネイティブコードに置き換える。結果としてだいぶ早くなった。」 / Twitter
Miura HidekiさんはTwitterを使っています 「そのアプローチだと計算主体のトイプログラミングだと効果あるけど、大きなプログラムだとワーキングセットがでっかくなって逆効果な気がする &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「JITコンパイラはネイティブコードを置き変える効果より、命令の粒度が小さくなって最適化しやすいことによる効果の方が大きいような気がする」 / Twitter

@RKX1209

るくすさんのツイート: "DalvikVM、最初はDEXインタプリタとプロファイラ動かしつつ、ボトルネックな所をJITにするのは知っていたけど、最近のARTはAOT(Ahead-of-Time)で最初にコンパイルしてしまうのか。加えてランタイムな情報を元に一部だけコンパイルし直すと"
るくすさんのツイート: "けど全てAOTだとコスト高すぎるので最初はJITにしておいて、充電中とかのアイドル時にコンパイルするみたいな仕組みに変わった? いずれにせよすごいチューニング力だな..."
るくすさんのツイート: "@slankdev BSD含め、kernel interpreterは大体JIT対応してるはずですね"
るくすさんのツイート: "ああそういえば今年のセキュキャンには"セキュアなCPUを作ろう"なんてコースがあって、データの型チェックとかUse-After-Free防止のためのシグネチャの仕組みなんかをCPUがやってくれるという中々アツい物っぽいです。興味のある人ぜひ #seccamp"

@kazuho

Kazuho Okuさんのツイート: "歴史的に言うと、インタプリタの歴史においては逐次パース&実行のほうが、CPUとメモリが潤沢になった近年までは一般的な形式だったんじゃないの"
Kazuho Okuさんのツイート: ".@ockeghem @mattn_jp たとえばシェルスクリプトの処理系は今でも行単位だと思います"
Kazuho Okuさんのツイート: "JITの中間表現にCコード使うアプローチ、アムダールの法則との戦い辛そうなの以外にも、エリアシング関連の無駄なオーバヘッドがコンパイル時と実行時にある気がするんだのね"
Kazuho Okuさんのツイート: "crubyのJITがCコンパイラ経由なの、今まで得心が言ってなかったけど、今日の話聞いて納得したというか、競争がある中で段々と速くしていくのは正しいんだろうなと思った"

@shinh

shinichiro hamajiさんのツイート: "MJITのdlopenを置き換えるパッチ書いてたりしてた話について書いた https://t.co/J1mfh50erH まとめるとdlopenのオーバヘッドを調べる程度の役には立つんじゃないの、という気持ちで作ったという感じです。あと .o て定期的に直接ロードしたくなる (https://t.co/cuRJhCqjNm とか tinycc はそれできる)"
MJIT で dlopen 使わずに ELF オブジェクトを直接ロードする話 - 兼雑記
Dynamic Test Runner 0.0.3 - 兼雑記
Shiro Kawaiさんのツイート: "Cコード動的に生成してコンパイルしてdlopenという手は20年以上前にシミュレーションツール作った時にやったことある(シミュレーションの式が変更される度にコンパイル)。ずっと使ってるとメモリ食いつぶすのは再起動してねで済ませた。自力でロードはさすがに考えなかったなあhttps://t.co/TdAbFyRMOG"
Shiro Kawaiさんのツイート: "いや、メモリ食いつぶすのは、処理系のGCの都合でdlcloseできない事情があったせいだったような気がする。だとしたら自力でマップしてても同じことだったかもしれん。"
shinichiro hamajiさんのツイート: "Mach-O とかならともかく、 ELF の arch 追加はたぶんそれほど大変ではないかな…ということで x86:https://t.co/sPnxLg24CD と arm:https://t.co/gAqR0QZyYa やってみた。 MJIT で動くかは謎… https://t.co/bNphJDuJ8C"
Add support for 32bit x86 · shinh/objfcn@fc6d8db
Add support for ARM · shinh/objfcn@92e5047
NeoCatさんのツイート: ".so経由で読むのが不都合ならバイナリを自力で読めば…とは思うけどarch依存もありそうだしやっぱり実用的ではないですよね…。RubyKaigiでLightWeight-JIT作ってるという話もあったけどこれもMRI並のarch対… https://t.co/i7YFGDdUjp"

@blackenedgold

κeenさんのツイート: "VMとかJITとかのテクニックが色々載ってて良い資料だった。所でJITのコードの goto **buf;のインパクトが凄くて… Virtual machine and javascript engine https://t.co/DiFH3mTa6z"
Virtual machine and javascript engine
κeenさんのツイート: "インタプリタを作る本がないとは言ってないですよ。少ないと。そして欲しいのはただ作るだけじゃなくて高速なものを作る本が欲しい。シンプルなインタプリタとVMの話から命令フュージョン、Threaded VMやJIT、word boxingやNaN boxing、global dbとメソッドキャッシュなんかの話が載ってる本が欲しい"

Miura HidekiさんはTwitterを使っています 「JITコンパイラのデバッグ、Xbyakを使ったネイティブコードを直接生成とC言語生成では、Xbyakを使った方が簡単で、期待しないコードが出てきたときはワッチポイントを掛けるだけでいい。一方、C言語生成ではどこで生成されたものか分からないから、例えばコメントを生成するとかやるけど、めんどくさい」 / Twitter

GDB JIT Interface · v8/v8 Wiki
早稲田大学リポジトリ
Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか? – ゆびてく
esbasic0011 - essen-wiki
LuaJIT 解析 - Qiita
SML#でJITコンパイラを作る軽い話 | κeenのHappy Hacκing Blog
かRuby 2.6のJITで実装か検討を行なった最適化集 - Qiita
Kinx での JIT、そして MIR の話 ... Ruby だけでは勿体ないネ - Qiita

GC

nursery

uint256_tさんはTwitterを使っています 「うん? https://t.co/pPoEGLXNjS」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@uint256_t スタックポインタをスタック種類分管理しないとならないのが面倒そうです。 スタックをnurseryとして使う(popせず、一杯になったらgcする)という処理系がありますが(Chicken Scheme)、そこからの発想で特定の種類のオブジェクトのnurseryを設ける、というのはGaucheでやってます。」 / Twitter
_ko1さんはTwitterを使っています 「@anohana @uint256_t 溢れたら全体でgcですか?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@_ko1 @uint256_t nurseryは溢れたらそこだけgcします。一種の限定的な世代別で、nurseryを指すポインタはVMのレジスタやスタックなど限られた場所にしかないので軽いgcです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t つまり、nurseryはBOXINGされたオブジェクトを格納するというイメージですか?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @_ko1 @uint256_t ヒープの第0世代みたいな感覚です。単にポインタ移動でアロケートできるから速い+ほとんど一時的オブジェクトだから溢れてgcする時点では本当のヒープに移す生きてるオブジェクトは少ない、という。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t なるほど!すっきりしました。ありがとうございます」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @_ko1 @uint256_t これを徹底したのがChickenで、オブジェクトはまずCスタック上にアロケートされ、関数はリターンでスタックをポップせず、スタックが溢れそうになったら活きてるのだけヒープに移して先頭にlongjmpします。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t なるほど。スタックマップの実装を工夫すればスタック上はUNBOXに出来そうですね」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 @anohana @_ko1 @uint256_t tcfmで話されていたネタですね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 @anohana @_ko1 @uint256_t あれ?どの回でしたっけ?」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 @anohana @_ko1 @uint256_t https://t.co/Viq5jXjSNO」 / Twitter
‎Turing Complete FM:Apple Podcast内の19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗)
Miura HidekiさんはTwitterを使っています 「ヒープの第0世代、新しい目線を頂いた。この目線で次期プロジェクトを検討しなおしたい &gt;RT」 / Twitter

リージョン推論

Orumin de Izumoensisさんのツイート: "参照カウンタの GC とかはあったほうがいいとおもうけど"
ぶんちょうさんのツイート: "まあ普通に自動でやりたいのでリージョン推論でもGCでもいいのだけど"
Orumin de Izumoensisさんのツイート: "リージョン推論、静的にメモリ管理されるし自動的によくやってくれて最高っぽい"
Experimental Rhino develop-log: 徒然なるままにrust書いて;スタックベースのリージョン推論とGCの話
定義 RBMM: リージョン推論に基づくメモリ管理 - Region-Based Memory Management
リージョンについて | κeenのHappy Hacκing Blog
静的なメモリ管理の話。リージョン推論とλ計算からRustまで | κeenのHappy Hacκing Blog
The GC Handbook - 10.2 Region inferencing(リージョン推論) その1 - 毎朝ほんを30分くらいよむますブログ
The GC Handbook - 10.2 Region inferencing(リージョン推論) その2 - 毎朝ほんを30分くらいよむますブログ
Non-Lexical Lifetimes - Qiita

Boehm GC

Boehm GC - HoneyComb
Boehm GCの使い方
Boehm GC ライブラリを使って C/C++ でもガベージコレクションしよう
Boehm GC ライブラリを使って C/C++ でもガベージコレクションしよう(1)
LinuxC | GC
A garbage collector for C and C++
Boehm garbage collector - Wikipedia, the free encyclopedia
BoehmGCでC++でもガベージコレクション♪ - きままにブログ
Boehm GC人門 - snipsnipsnip
Lush Green
LLVMで動くオブジェクト指向言語を作ってレイトレした - 近&況
boehm gcを触ってみた - 近&況

Java

Java VisualVM
Javaガベージコレクションのエッセンス
JavaVM監視・解析ツール HeapStatsを使ってみた | キャスレーコンサルティング 技術ブログ
Java 8リリースの変更
www.is.titech.ac.jp/~sassa/kenkyuu-memo/agesen-garbage-collection-PLDI98.010308
G1GCのログの読み方 - sugarlife's blog
チューニングのためのJava VM講座(後編):ガベージコレクタの仕組みを理解する (1/2) - @IT
チューニングのためのJava VM講座(前編):Hotspot VMの基本構造を理解する (1/2) - @IT
インフラエンジニアのメモ : GCログが再起動のたびにログが上書きされてしまう
Java VisualVM
IBM Knowledge Center - 並行マーク
PowerPoint Presentation
正確なGCへの道
第5回 Java VMの情報を取得する(前編):Javaでなぜ問題が起きるのか 〜システムをきちんと運用するための基礎知識|gihyo.jp … 技術評論社
Java における Scavenge GC と Full GC の違い - スタック・オーバーフロー
ZGC - オラクルの巨大ヒープ向けガベージコレクタ
Java 10 Release Candidate 1 公開
Javaの超低レイテンシなGCアルゴリズム、ZGCをコンパイルして動作を試す - くろの雑記帳
島鉄雄さんのツイート: "Java で開発中の ZGC が驚愕のスペックなんでビビった。 TB 単位のヒープでも止まる時間が 10ms 以下というと、十分ゲームで使えるレベルに思える 代わりに通常の処理が少し遅くなるようだが、少しぐらいなら大した問題ではない 同様のものが自前で実装出来れば最高だが… https://t.co/HZNcbz1L2l"
The Z Garbage Collector - An Introduction
「Java 12」リリース | OSDN Magazine
島鉄雄さんのツイート: "Java 12 の ZGC の性能評価の記事があったけど、やっぱ凄いわ…これ以外の GC が必要なのかと思ってしまう。 メモリが大量に載っている環境用みたいな触れ込みだったけど、8GB でも良好な結果だ。 これを C とかでも使えるようにライブラリ化されないかな。 https://t.co/4hy3x7CJQH"
サマーインターンシップでHBaseをJDK 11で動かしZGCとの性能を評価してもらった話 - LINE ENGINEERING
島鉄雄さんのツイート: "良く考えたらライブラリ化は無理だった… こういう最新の並行 GC は read barrier の様な部分をコンパイル時に仕込まないといけないから、コンパイラ込みの実装が必要なんだよなぁ。"
Switch式とShenandoah GCを試験的に備えたJava 12がリリース
島鉄雄さんのツイート: "Java11のZGCはポインタの上位数ビットにフラグを埋め込んでるけど(いわゆるtagged pointer、ZGCではcolored pointer)、仮想記憶を使う事でマスク不要にしてる。 ポインタを0x0fとすると0x1fや0x2fを0x0fにマップする事で0x0f, 0x1f, 0x2fは同じメモリにアクセス出来る。 だから現状Linux専用のようだ。"
島鉄雄さんのツイート: "64bit ポインタ基本的に 58bit しか使われておらず、上位 16bit が空いている。 ここに型情報やらフラグを埋め込んだりしてるけど、ポインタとして使うたびにマスクして上位ビットを 0 にする必要がある。 使ってない部分は CPU が無視してくれれば、仮想記憶を使ったトリックなんて必要なかったんだ。"
島鉄雄さんのツイート: "おかげで、ZGC は家庭用ゲーム機や組み込み機器などに移植する事は出来そうにない。 なので、もし次世代 GC を移植したくなった場合は、Java12 の Shenandoah GC が候補になるかな。"
島鉄雄さんのツイート: "> 58bit しか使われておらず、 48bit の間違いだった…"
島鉄雄さんはTwitterを使っています: 「コンパクションのあるGCの場合は、大抵ポインタのポインタを使ってるよ。(Java12のshenandoahとか) JavaVMは参照の実装方法を規定してないから、そういう実装も出来ると思うけど、C++も別にコンパイラがそういう風にコンパイルすれば良いだけだと思う。 https://t.co/AVYdETuc5H」 / Twitter
oooooさんはTwitterを使っています: 「@yuyabu2 GCがコンパクションするとオブジェクトのアドレスが変わります。つまりGCのある言語ではポインタが使えません。そのためJavaではポインタよりも抽象度の高い参照という概念を導入しています。ちなみにC++の参照はポインタのシンタックスシュガーでしかないのでJavaの参照とは別物です」 / Twitter
oooooさんはTwitterを使っています: 「@shima_tetsuo そうですね。だからポインタ=アドレス値という関係が壊れるという話しです」 / Twitter
島鉄雄さんはTwitterを使っています: 「@ooooo いや壊れてないよ。 ポインタ=アドレス(オブジェクトのアドレス) ポインタ=アドレス(GCが管理している領域のアドレス)→アドレス(オブジェクトのアドレス) と間接参照が1つ増えてるだけで。」 / Twitter
oooooさんはTwitterを使っています: 「@shima_tetsuo それは言葉遊びでは?ポインタがオブジェクトのアドレスを直接指さないならCで言う所のポインタとは言えないでしょう」 / Twitter
島鉄雄さんはTwitterを使っています: 「@ooooo 自分が言いたいのはC++とJavaの参照はCのポインタと同等という事ですが、C++やJavaでコンパクションを実装するにはポインタのポインタが必要といったけど、もしCで実装する時も同じようにポインタのポインタを使います。 要するにアセンブラ的に全く同じコードになるでしょう。」 / Twitter
yuyabu@ネスペ10/20さんはTwitterを使っています: 「@ooooo @shima_tetsuo ダブルポインタも一応ポインタでは?」 / Twitter
oooooさんはTwitterを使っています: 「@yuyabu2 @shima_tetsuo そういう意図の話しではないのです。わかりにくかったらごめんなさい」 / Twitter
yuyabu@ネスペ10/20さんはTwitterを使っています: 「@ooooo @shima_tetsuo うーん理解不足なのでダブルポインタがポインタかどうかという話をしているようにしか見えません。すいません。 https://t.co/8zVH614ZvT (やっぱりこういう論争についていけません...)」 / Twitter
yuyabu@ネスペ10/20さんはTwitterを使っています: 「参照、参照渡し、参照の値渡し あたりの論争はあんまり理解してない」 / Twitter
「Jakarta EE 8」リリース、Java EE 8と完全互換 | OSDN Magazine
[速報]Java 13が登場。ZGCの改善やSwitch文の実現など新機能。 Oracle Code One 2019 - Publickey
高梨陣平さんはTwitterを使っています: 「JDK11にはGCが無ければどれだけ速いかを検査するための何もしないGC、Epsilonが用意されている。 https://t.co/bkiSg689Cj」 / Twitter
Heapothesys - Amazon Corretto によるオープンソース GC レイテンシベンチマーク
OpenJDK 16のShenandoahガベージコレクション:並行参照処理 - 赤帽エンジニアブログ
JVM における G1GC とヒープの雑な話 - それが僕には楽しかったんです。

Android

富豪的 Android プログラマの為の Eclipse Memory Analyzer Tool 入門 - sandbox
Eclipse Memory Analyzer Tool と Android 環境での Out of memory デバッグ | Drowsy Dog's Diary
アンドロイドアプリのThreadがリークするとき « 大阪のアンドロイド/iOS・ Webアプリ開発会社 ノーティス
Leak canaryで メモリリーク調査

C#

[sos]!GCRoot:オブジェクトを参照しているオブジェクトのパスを表示
Microsoftが.NETの手動メモリ管理機構をSnowflakeとして公開
.NET の「実行時型情報」は immutable かつ GC 不可能 - NyaRuRuが地球にいたころ
.NET GC & Memory (1) - NyaRuRuが地球にいたころ
.NET GC & Memory (2) - NyaRuRuが地球にいたころ
変数スコープの最後までオブジェクトは生きているという誤解 - NyaRuRuが地球にいたころ
write barrier - NyaRuRuが地球にいたころ

Ruby

Twitter

κeenさんのツイート: "CoWさせるためにBitMapで管理ってRubyで結構前から取り組んでるよね。 Island Life - GC切って性能向上 https://t.co/lMSGajMKMA"
Kazuho Okuさんのツイート: "ruby専用のarenaを作っとくのが一番いい解決策なんじゃないのかな(そこはGlobal VM Lockとるからひとつでいいわけだし) / “Malloc Can Double Multi-threaded Ruby Prog…” https://t.co/LcY7hq33y9"
Malloc Can Double Multi-threaded Ruby Program Memory Usage
Kazuho Okuさんのツイート: "色んなスレッドに紐付いたarenaに、gc対象のオブジェクトから紐付いたmalloc領域を作っちゃうのが問題、というのが正しいかな。それらの領域のほとんどは短命なオブジェクトなのでgc時に解放されるが、一部は長命なのでスラブは解放されない。というのがいくつものarenaで発生する"
Yukihiro Matsumotoさんのツイート: "Rubyも malloc で確保するメモリについてはやってるんですが、GPU のメモリは対象外ですね。… "
Kazuho Okuさんのツイート: "なるほどありがとうございます。任意のクラスのオブジェクト(GPUメモリ、ファイルデスクリプタ、etc)について、それぞれカウンタをもち、どれかが閾値を超えた時点でGCを動かすのが理想なんだろうなぁと思いました… "
Urabe, Shyouheiさんのツイート: "malloc以外でもrb_gc_adjust_memory_usage() っていう最近追加されたAPIはあるんですよ。 https://t.co/dKQukYvTyU ただGPUみたいなアドレス空間から違うやつは厳しい。あくまでメインメモリのプレッシャーしか計測してないので。… https://t.co/j2VEmprEBM"
Urabe, Shyouheiさんのツイート: "ファイルディスクリプタに関しては一応一発open(2)してみてerrnoがEMFILEとかで失敗したときはGCしてみる、みたいな処理は入ってますね… "
Kazuho Okuさんのツイート: "プロセス単位のfd制限がない場合にosの資源使い切ったりします?… "
Urabe, Shyouheiさんのツイート: "とくに考慮してないから使いきれると思われます。… "
Kazuho Okuさんのツイート: "V8とかだとGC外に確保されたメモリ量のカウンタがあって、それをベースにGC起動するようになってるって話は前にしましたっけ… "
そのっつ (Naotoshi Seo)さんのツイート: "RubyなどGCな言語でGPUを使っていると、GPUメモリを大量に使っていてもメインメモリ上では全然使っていないように見えてGCしなくてもまだ良いんじゃね?って処理系に思われてしまうんだけど、Pythonなど参照カウントな言語だと参照がなくなった瞬間にGPUにメモリを返却できるので嬉しいのです。"
Kazuho Okuさんのツイート: "共有オブジェクトの生成と管理に制限を設けることで、マルチスレッド環境でのGC等の並列性がどう高まるのかが鍵だと思うし、そのへんの話を楽しみにしてる #rubykaigiA"
Kazuho Okuさんのツイート: "共有オブジェクトは専用のGCアリーナにプロモートしてそこで適宜GCするみたいなやり方なのかなぁと想像"
Kazuho Okuさんのツイート: "複数のアリーナをもつGCにして、共有オブジェクトから参照されるオブジェクトは専用のアリーナに移動させるみたいなやりかたではないのか... #rubykaigiA"
Kazuho Okuさんのツイート: "実装としては移動もしくはコピーによるmessage passingなのね #rubykaigiA"
Kazuho Okuさんのツイート: ""shared object" って言い方をしてるけど、"no shared" なmessage passingだって言った方がわかりやすいのでは(内部では必要に応じてデータ共有するんだろうけど) #rubykaigiA"
Kazuho Okuさんのツイート: "immutableなオブジェクトを交換するメッセージパッシングなら意味論的にはメッセージは全部コピーでよくて、GuildごとにVM別で良いし、GCやVMを共有する背景にはメッセージパッシング以外にやりたいことがあるからだと思うんだけど、具体的に何なんだろう #rubykaigiA"
Kazuho Okuさんのツイート: "kh_mt_t をラップする型をつくって、その型の中にROMテーブルへのポインタを追加し、RClass から参照するのはラップされた型にすればうまくいきそう #rubykaigiC"
Miura HidekiさんはTwitterを使っています 「Rubyのコンパクションってどうやって参照元を書き変えているのかな?とずっと疑問だったけど解決した。多くのアプリケーションで効果がありそうな気がする。」 / Twitter
Yukihiro MatsumotoさんはTwitterを使っています 「Link: Ruby Garbage Collection Deep Dive: Compaction | Jemma Issroff https://t.co/jHdanerOEZ」 / Twitter
Ruby Garbage Collection Deep Dive: Compaction | Jemma Issroff

Rubyist Magazine - レアでアレなGCの話
第5章 ガ-ベージコレクション
GUIアプリケーションなどが保持するmrubyのオブジェクトのGC対策 - Qiita
最近のruby-core (2016年2月) | Money Forward Engineers' Blog
最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年4月) | Money Forward Engineers' Blog
最近のruby-core (2016年9月) | Money Forward Engineers' Blog
RubyでOSやGCを書く野望 - Qiita

D

D言語のGCの仕組み
ガベージコレクション - プログラミング言語 D (日本語訳)

Go

Go言語の低レイテンシGC実現のための取り組み | プログラミング | POSTD
本の虫: Goは32bit開発に不適
Go言語のリアルタイムGC 理論と実践 | プログラミング | POSTD
GolangのGCを追う | SOTA
論文紹介:The benefits and costs of writing a POSIX kernel in a high-level language | ブログにしてブログにあらず
go gc algorithm 101 - Speaker Deck

Mozilla

ServoのDOMバインディングの話 - snyk_s log
Garbage collection - SpiderMonkey | MDN
Rockridgeさんのツイート: "Fx54:マルチプロセス機能(e10s)有効時、ユーザーの入力中はインクリメンタルGCの処理は停止時間の最も少ないものだけを実行するようにした。 / “1338518 – Consider to not run 40ms GC …” https://t.co/tYITC2kaeA"
Rockridgeさんのツイート: "Fx58:ガベージコレクションに関する処理の一部を非同期化した結果、メモリ解放の処理能力がアップした、ということのようだ。 / “1298018 - Investigate allocating nursery chunks i…” https://t.co/aDjcs0HF1G"
Rockridgeさんのツイート: "Fx63:ガベージコレクションの処理を改善した件について、詳細な内容が綴られている。最近のCPUで効果が高いらしく、Intel Core i7-6600Uの環境でSpeedometerのスコアが2.5%アップした。参照:… https://t.co/QUBapMkcRi"

Cycle Collector

なかのん&マジックさんのツイート: "最近見たクラッシュバグを見てると、Cycle collectionは仕組みかGeckoでの実装のどちらかがまずい感じしかない。普段のrefcountのincrementのコストを無視できるゆるいプロダクトなら良いんだけど。"
GC and CC logs - Mozilla | MDN
Interfacing with the XPCOM cycle collector | MDN
言語の GC 機能と参照カウント (中編) - muddy brown thang
A Cycle Collector on Gecko - Backnumbers: Steps to Phantasien

Google

V8 5.4ではJavaScript Engineのガベージコレクタ改善でヒープメモリ使用量を最大40%削減、パーサ性能も向上 - Publickey
どどんとふ公式鯖中の人さんのツイート: "Ciscoのサーバーは、BIOS設定に標高ってパラメーターがあって、設定値に応じてメモリーのバックグラウンドチェックの頻度が変わるのを最近知った。 会社ぐるみで割と本気で宇宙線気にしてる。 https://t.co/rWosoTuieb"
ロボ太さんのツイート: "宇宙線問題、BlueGeneは例外飛ばしてプログラマ側でチェックポイントリスタートかけるんで、どこで例外が来ても大丈夫なようにコードを書くのが大変だったと聞いたけど、京コンピュータはハード側に命令リトライ機構を備えているので、プログラマはそこを気にしなくて良かった。"
Kentaro HaraさんはTwitterを使っています: "「宇宙線が降ってきてメモリのビットが狂う」「ハードウェアのバグでメモリのビットが狂う」というのは非常にまれな現象だけど、Chromeくらいのユ
Kentaro Haraさんのツイート: "Oilpan(BlinkのGC)でヒープコンパクションが有効化されました。アプリによっては数MBのメモリ削減になります。Operaで先駆けて実装されたものを(Operaブログ:https://t.co/ruZu1wRswf)、Operaのお友だちがBlinkに移植してくれました!"
Kentaro Haraさんのツイート: "ちなみに、そのヒープコンパクションのパッチがこれ(https://t.co/s0hfSf8hmr)。まるでC言語の教科書みたいにポインタのポインタをめまぐるしく駆使した技巧的な実装で、レビューするだけで丸々3日以上かかりました(やってることの複雑性からしてやむをえない)。"
Rockridgeさんのツイート: "本記事ではWebコンテンツの表示のカクつきをジャンクと呼び、Chrome 46時点までにこのジャンクを減らすべくガベージコレクションの一部処理を別スレッド化するなどの改良を加えたことを説明している。 / “V8 JavaScri…” https://t.co/801xJuIaKf"
Rockridgeさんのツイート: "GoogleはChrome搭載のV8にOrinocoと呼ばれる新しいガベージコレクション機構を組み込もうとしている。これまで以上に処理の別スレッド化を進め、スイープすべきオブジェクトの選別手法も洗練させた。 / “V8 Java…” https://t.co/TAuj8oIEJT"
Rockridgeさんのツイート: "Chrome 51ではOrinoco(新しいガベージコレクション機構)の一部機能が実装されているほか、WebAssemblyの初期段階のサポートも行われている。 / “V8 JavaScript Engine: V8 Relea…” https://t.co/9rm2ShZREn"
Kentaro Haraさんのツイート: "Chromeのメモリヒープを眺めてると、Gmailを長時間放置すると3〜5割くらいのフラグメンテーションを起こしている。C++なのでコンパクションするのは難しいのだが、オブジェクトの割当を賢くするだけでもフラグメンテーションは大幅に減らせるはずで、"
Kentaro Haraさんのツイート: "たとえばオブジェクトを割り当てるときに、型やサイズをヒントに寿命を予測して、短寿命のものと長寿命のものを別ヒープに振り分けるだけでも相当マシになる気がする。これこそ機械学習させたいのだが、if文ひとつを挿入することも許されない性能カチカチのmallocの世界でどうやるか。"
Kentaro Haraさんのツイート: "(っていうか一般論として、ブラウザがページを読み込むときに発生するオブジェクトのアロケーションパターンなんてだいたい似通っているはずで、dynamic profilingベースで割当アドレスを最適化できれば相当マシにできる気はする。勝負はいかにそれを軽く実現できるか。)"
V8 JavaScript Engine: Concurrent marking in V8
Kentaro Haraさんのツイート: "Oilpanプロジェクトを始めてほぼ6年、ついにBlinkとV8の統合GCをローンチしました!!(๑˃̵ᴗ˂̵)و https://t.co/KahYum19aQ https://t.co/EXabaWg2lu さて次はBlink側のコンカレントGCを作るか・・・。"
unified-heap: Enable per default (I473f85bb) · Gerrit Code Review
Towards a Unified Blink and JavaScript Heap // slidr.io
Unified V8-Blink Garbage Collected Heaps - Google グループ
nhirokiさんはTwitterを使っています 「講演する機会を頂きました。Chrome (Chromium) がウェブ特有の実行モデルやセキュリティモデルを守りながらどのように V8 と協調しているのか、そのアーキテクチャを紹介する予定です。他にもチームメイトが C++ / JS を跨ぐクロスコンポーネント GC と Web IDL コードジェネレータについて話します。」 / Twitter
Blink GC API reference
Cross-Component Garbage Collection – Google Research

Apple

Rockridgeさんのツイート: "Riptideは次期Safariに搭載される新しいコンカレントGCシステム。ガベージコレクション処理の非同期化と並列化を進めるなどし、長い停止時間の発生を極力抑えたという。 / “Introducing Riptide: Web…” https://t.co/vx33WpTcFX"

blog

κeenのHappy Hacκing Blog

WebAssemblyでGC | κeenのHappy Hacκing Blog
Thoughts on GCs | κeenのHappy Hacκing Blog
Kazuho Okuさんのツイート: "C言語でアプリケーション書く最大のメリットのひとつが、メモリ管理戦略を含むデータ構造の設計を自由に行えるというところだというのは、強調してもしすぎる論点ではないと思う… "
Kazuho Okuさんのツイート: "H2OはWebサーバとしては小規模だけど、メモリ確保手法だけでもmalloc/free、プール、参照カウント、バッファ(一定サイズを越えるとtmpfsベースになる)の4種類を使い分けるようになってるし、まあそんな感じでやるもんです。大容量バッファをメモリ管理戦略の一部にできるのは64bit時代ならでは。"
Kazuho Okuさんのツイート: "細かいこと言うと、メモリを逐次解放するつもりがないなら、malloc呼ぶのは誤り。大きなブロックを確保して、先頭から順次使っていくのが正しい戦略です。処理が単純化し使用メモリ量が減り局所性が向上する結果、速度が向上する。世代GCやサーバ等多くのプログラムで用いられる一般的な手法です"
Kazuho Okuさんのツイート: "リクエストで使う文字列→リクエスト毎のプールで確保し、完了時にまとめて解放 同一H2接続のリクエスト間で共有するHPACK文字列→参照カウンタで確保しプールに登録。全てのリクエスト完了時に解放 POSTデータ→tmpfsにフォールバックするバッファに確保 H2接続を表現するオブジェクト→malloc/free"

Tociyuki::Diary

Oberon システムのゴミ集め - Tociyuki::Diary
型記述子ごとの Cheney Copying ゴミ集め (その 2) - Tociyuki::Diary

DSAS開発者の部屋:最近のPython-dev(2018-06)
ざっくりわかった気になるモダンGC入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
clearstackの話 - 兼雑記
LUA 5.1 の GC - NyaRuRuが地球にいたころ
Island Life - GC切って性能向上
Flashのガベージコレクション – 遅延参照カウント « Rest Term
本の虫: C++30周年を記念してCFrontのバグ調査をしてみた
Memory allocation (& GC 処理) : メモリの確保処理 (GC 処理) : slow-path の処理 (4) GC 処理 : ParallelScavengeHeap の場合 : Minor GC の処理
簡単なGCを書いてみたらメモリ使用量が1/1000になって驚いた話 · うさぎ小屋
GCアルゴリズム詳細解説
ガベージコレクションの実装法と評価
GCが止まらない - Documents
メモリリークが起こってしまう原因は?予防策もご紹介します! | Qbook
JDK 13のShenandoah GC パート1:ロードリファレンスバリア - 赤帽エンジニアブログ
JDK 13のShenandoah GC パート2:転送ポインタワードの廃止 - 赤帽エンジニアブログ
JDK 13のShenandoah GC パート3:アーキテクチャとオペレーティングシステム - 赤帽エンジニアブログ
JDK 14のShenandoah GC パート1:自己修正バリア - 赤帽エンジニアブログ
JDK 14のShenandoah GC パート2:並行ルートとクラスアンロード - 赤帽エンジニアブログ

スライド

Miura Hidekiさんのツイート: "GCでメタデータを省略すると言えば、Precise garbage collection for Cという論文があって面白いよ、手前みそだけど紹介のスライド作っているので見てみて https://t.co/RDfj88iarb #tcfm"
Precise garbage collection for c
GCと1bit | κeenのHappy Hacκing Blog
introduction-to-modern-gc // Speaker Deck
WebAssemblyでGC | κeenのHappy Hacκing Blog
make of MiniGC
shinjuku.rs#12:ruruby_2 - Google スライド
Rustでつくるガーベジコレクタ - Speaker Deck
GCと1bit | κeenのHappy Hacκing Blog

POSTD

Haskell、OCaml、RacketでGCのレイテンシを測る | コンピュータサイエンス | POSTD

GitHub

nyuichi/gc.h: Header file-only Non-moving & Precise GC for C (< 100LOC w/o comments)

Qiita

C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita
MiniLispのガベージコレクションを解説する - Qiita

Twitter

その他

Fadisさんのツイート: "shared_ptr、計測してみると割と無視できないオーバーヘッドになってたりするから、激しくポインタをつつくループの前とかでは、「shared_ptrをローカルスコープに置いてその範囲での寿命を保証」した上で「同じアドレスを持つ生ポインタを同じスコープに置く事でオーバーヘッドを回避」は良くやる"
INADA Naokiさんのツイート: "昨日 #tcfm のQ&Aで紹介していたGCのデバッグ(エンバグしたところからずっと後で問題が起こる)に使ったツール、これです。 https://t.co/lJCIEDXOSB"
渋川よしきさんのツイート: "参照カウントも、カウンタの増減を自動化できるかどうかで、GCとしての使い勝手はだいぶ変わるよね。"
Kentaro Haraさんのツイート: "同僚「去年、家をコピーGCしたときにさー・・・」(邦訳:去年、家を引っ越したときにさー) マイナーGC => 毎週のお掃除 フルGC => 大掃除 コピーGC => 家のお引越し コンサーバティブGC => また使うかもしれないから取っておこうと断捨離できないタイプのお掃除"
NaOHaq(仮性ソーダ)さんのツイート: "Copying GCだと解放されるTreeのtraverseは起きない。けど代わりに生きているTreeがcopyのためにtraverseされる。 https://t.co/wUbatymBiQ"
Rockridgeさんのツイート: "Fx57:インクリメンタルGCのスライス時間を調節し、応答性に影響を及ぼすような長い処理停止を抑制。 / “1368972 - Increase slice time for long-running incremental G…” https://t.co/zTA79nT3lL"
INADA Naokiさんのツイート: "#tcfm Python の GC は言語仕様じゃなくて、実際に PyPy は参照カウント使ってないので with 文使わないとリソース開放が遅延して問題起こしますね。"
shinichiro hamajiさんのツイート: "世代別GCと命令融合を持ち、従来の最速実装の2倍速く2倍省メモリなインタプリタすごい!(ただし言語はUnlambda)… "
iroriさんのツイート: "はてなブログに投稿しました Unlambdaインタプリタを作った - iroriの日記 https://t.co/CnBPs0q648 #はてなブログ"
Unlambdaインタプリタを作った - iroriの日記
hikaliumさんのツイート: "主流のアーキで上方伸長スタックを採用しているものは聞いたことがないです。(「熱血アセンブリ入門」曰く、xstormy16というマイコンは上方伸長のようです。) 上方伸長だとスタックオーバーフローでreturn pointerを書き換えられずに済むという利点があると知って、なるほどと思いました。… https://t.co/Kx1yOaFH9u"
Kazuho Okuさんのツイート: "mrb_str_catが非破壊結合だから非効率ってのはそのとおりだろうけど、なんで12GBもメモリ使ったんだろう。GCはlive objectのメモリ使用量の定数倍しかメモリ使わないように設計してると思うんだけど、なにか秘孔があるのかな #builderscon"
島鉄雄さんのツイート: "Unity の GC がどうなってるか調べたら Boehm 使ってるのかよ… これじゃゲームがカクカクになるだろうと、更に調べたらみんな苦労して GC が発生しないように頑張ってるようだ。 ゲームプログラマは、ホントによく訓練されてるよ… https://t.co/q3BN03ngjq"
UnityのGCはどんな実装になっているのか │ Aiming 開発者ブログ
島鉄雄さんのツイート: "インタプリタを実装する時には C を使う事が多いけど、例えば Lisp の場合 Object form = list(...); eval(form); の様に書くけど、こうなると form はレジスタやスタックに載ってる可能性があって、GC を行うときにルートから辿れなくなり、コード実行中での GC がほぼ不可能になる。(続く)"
島鉄雄さんのツイート: "Bohem GC は、アセンブラを使ってレジスタやスタックにアクセスしてこの問題に対処しているけど、C だけで実装したい場合は、自前のスタックを用意して PUSH(list(...)); eval(); ← 引数はスタックから取り出す こんな感じで全てのオブジェクトを自前のスタックに積むことにより、(続く)"
島鉄雄さんのツイート: "コード実行中でも全てのオブジェクトを走査する事が出来て GC が実装可能になる。 要するに、スタックマシーンを実装する事になり、GC の観点からもバイトコードにコンパイルする事は必要な事だという結論に至った。"
島鉄雄さんのツイート: "PS4版ドラクエ11の記事だけど、 > まだガベージコレクションに絡む画面のカクつき問題が残ったままになっていました。 > さっき言った画面のカクカク問題の対策は1月から始めて5月まで続いて、すごく時間がかかりましたね。 GC は罪な奴だぜ… https://t.co/j6JneI70KP"
島鉄雄さんのツイート: "一方、UE4 ドキュメントには > UE4 のガーベジ コレクションは高速かつ効率的です。 ホントかよ… リアルタイム3Dゲームでカクつかない GC が出来ればいいけどね。 Java11 に実装された ZGC がそうであるんじゃないかと思ってる。 https://t.co/n472hA2m6O"
島鉄雄さんのツイート: "でも、ドラクエ11 の成果が UE4 に盛り込まれたらしいから、今の UE4 は大きめのプロジェクトを動かしても、カクカクしないのかもね。"
Kazuho Okuさんのツイート: "GCの有無の基準は、「いつ回収するか」を意識する必要があるかどうかで決まるんだろうな。その基準でいうと、refcountは「穴があるGC」。Rustの所有権は、いつ回収するかを明示するための手法であって、意識しなくてよくなるわけではない"
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Cのコード生成系をいじって正確なGCをサポートして、LinuxにGCを入れた例がありますね。 (https://t.co/dX31V8jVjT (PDF)) この論文紹介を私が発表したことがありますのでよかったこっちも...  https://t.co/RDfj88iarb」 / Twitter
ismm09-rwrf.pdf
monochromeさんはTwitterを使っています: 「@miura1729 なるほど!面白いですね。今だとGoで書き直せ、って話になるんでしょうけど。 CRubyには全く使えないな〜と思って読んでいたら、論文中でも動かそうと頑張ってみたけど全く動かないのでさじを投げた唯一の例として挙げられていました。まあそりゃそうだ。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 たしかにGoで書き直す方が現実的ですね。あの論文を読んでからOSはむしろGCのある言語で書くべきと思っています。CRubyはまあポインタでビット演算しているから無理でしょうね」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 gVisorみたいなバリバリに使われているシステムソフトウェアがGoで書かれて普通に動いているので、実用上も問題なさそうですね。あとはRustみたいな方向性ですかねえ。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Rustみたいな方向性は制約が強すぎてリファレンスカウントの山になって却ってよくないと思うんですけどね。定量的な評価がみたいです。」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 GoでOS作る話はdrumatoさんが論文紹介していました。ちょっと遅いけどまあまあ良い、という話。 https://t.co/RL8aZUKUP4」 / Twitter
The benefits and costs of writing a POSIX kernel in a high-level language
DrumatoさんはTwitterを使っています: 「この論文ではHLLの機能の中でもGCについてフォーカスしていて、 自動的メモリ管理による「安全性」と「パフォーマンス」はトレードオフの関係にあると主張しているんだけど、 あれ、じゃあRustでOSカーネルを実装してC実装と性能比較したみたいな論文って無いのかな? と思ったらあるっぽい https://t.co/8ReN7PGFVe」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 Rustはunsafeなコードを認めていないわけじゃなくて、必要なら範囲を明示して使えるし、unsafeなライブラリ関数も多数用意されているんですよね。あと、標準でスレッド安全が保証されているのは大きいと思っています。(まだ勉強中なので見当違いかもしれませんが」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 なるほど、静的解析。昔はOSを高級言語で書くなんてって言われたわけですから変っていくんじゃないでしょうかね」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 OSだとunsafeじゃない部分がどのくらいあるのかな?って思いましたが、結構あるのかな?unsafe割合しだいですが、スレッド安全はありがたそうです。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 リフレクションタワーはリフレクション話で一番面白いところですからね。Rubyはこの辺で出てきた知見を取り入れていますが、タワーが無かったり当初より美しくないですね。まあ、当初のは実装がすごく難しいですけど」 / Twitter
monochromeさんはTwitterを使っています: 「@miura1729 Ruby、クラス定義とかが不必要なまでに動的に可能で処理系作りながら何なんだこれは…と思っていたんですが、動かしながら自分自身に機能を追加したり変更したりするモデルが念頭にあったんだとすると、なるほど~と感じました。」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 この手の話はもともとLispが発祥なんですけど、30年くらい前に色々混乱していたのを整理してリフレクションって名前を付けたものです。この時整理したものをまともに実装すると凄く重いのでいまではリフレクション機能っていうとRubyも含めて昔のLispのもののようなものが多い気がします。」 / Twitter
ドッグさんはTwitterを使っています 「ガベコレで Eden 領域というのがあって,何だろうと思ったらいわゆる Nursery のことなのか.オブジェクトが生まれるところが Eden で,Young 領域に"追放"される(一度 Young に行くともう戻ってこれない).オブジェクトが犯した罪とは…」 / Twitter
Shinya KatoさんはTwitterを使っています 「GC が当たり前の言語を使っている人に malloc とか free とかの話しても「何それ?」ってなりそう」 / Twitter
Miura HidekiさんはTwitterを使っています 「GCが当たり前の言語を使っているユーザ、なぜかGCやメモリ管理のアルゴリズムに詳しいという説があってな ... &gt;RT」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「GC のデバッグは、ヒープが満たすべき不変条件とある特定の時点で成り立つ表明を検査する関数を用意して、疑わしいところすべてに配置するという原始的な方法で行った。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Snapshot GC は mutator と collector が(協調的に)並行に動作するといっていいと思う。これと異なり以前実装した並行版というのは、 複数の mutator と複数の collector がそれぞれ固有の native スレッドで走るというもの。」 / Twitter

Learned Garbage Collection

Masahiro SakaiさんはTwitterを使っています 「Learned Garbage Collection https://t.co/JVH3M4pHi2 CPythonのGCタイミングを強化学習で。状態はアロケーションを行うバイトコードのアドレスと現在の使用メモリ量、アクションはGCしないかk以下の世代のGCで、報酬は時間あたりのリクエスト処理数などで、(DQNではなくテーブルを用いる)Q学習。」 / Twitter
Learned garbage collection | Proceedings of the 4th ACM SIGPLAN International Workshop on Machine Learning and Programming Languages
Masahiro SakaiさんはTwitterを使っています 「いくつか工夫を入れたバージョン&ベンチマークプログラムではCPythonのデフォルトよりも良い結果。Webサーバの例で、GCをOSのI/Oとオーバーラップするような方策が学習出来てたりするの面白い。 スライド: https://t.co/tbBO5kN7Wi 講演動画: https://t.co/RcLvn1zbJd」 / Twitter
Learned Garbage Collection - Google スライド
Masahiro SakaiさんはTwitterを使っています 「CPythonではGCはあくまでリファレンスカウンタの補助で、(回収可能な)サイクルが存在しない状態でGCしても無意味というのがやっぱり特殊なのと、あと一般にはコンテキスト(=コールスタック)の情報を何らかの形で状態に含めないとうまくいかないんじゃないかと思った。」 / Twitter

ハザードポインタ

Ryou Ezoeさんのツイート: "ハザードポインターの概要は理解した。ハザードポインターというのはGCの手段だ。ロックフリーデータ構造では複数のスレッドが同時にポインターを参照していることがあるので、メモリーを破棄するには何らかのGCが必要になる。"
Ryou Ezoeさんのツイート: "GCをどうやって実装すればいいのか。参照数をカウントしてしまえばいいが、他の方法としてハザードポインターが考案された。"
Ryou Ezoeさんのツイート: "ハザードポインターの仕組みは簡単だ。 1. スレッドはポインターを使う前にスレッドに紐付けられたハザードポインターにポインターを格納する 2. ポインターの参照するメモリを破棄する前に、すべてのハザードポインターに同じ値のポインターが存在しないことを確認する。"
Ryou Ezoeさんのツイート: "ハザードポインターにポインターが存在するポインターはどこかのスレッドが使っているので破棄してはいけない。あとで破棄する。ハザードポインターに存在しないポインターはすぐに破棄してよい。"
Ryou Ezoeさんのツイート: "問題は、スレッドごとにハザードポインターを確保し、必要がなくなったら解放する仕組みを効率よくしかもロックフリーで実装するのが難しいということだ。"
Ryou Ezoeさんのツイート: "正直ハザードポインターがロックフリーで実装できるならリファレンスカウントもロックフリーで実装できるのでは。"

@blackenedgold

Rust

κeenさんのツイート: "ふむ。メモリ管理やスレッドセーフティに厳格なRustの上になんでもありなGCを実装するのはかなりの苦しみなんだけどやってのけたのか Shifgrethor I: Garbage collection as a Rust library https://t.co/NdA6XdM1K7"
withoutboats/shifgrethor: research
κeenさんのツイート: "withoutboats/shifgrethor: research https://t.co/JIPM4BNW5B"
Shifgrethor I: Garbage collection as a Rust library
κeenさんのツイート: "これ使ってkappaLisp作り直してみるかな"

κeenさんのツイート: "そういえばブログ記事、なんか勢いで書いたのでCopy GCのゴミ回収が速いって書いてたけどあれ、多くの場合嘘だよね"
κeenさんのツイート: "そうか。分散合意しようとすると1つのノードでGCが走ると他のノードにも影響があるのか。 Rust in TiKV · TiDB Blog https://t.co/vTRg2l2TuO"
κeenさんのツイート: "CopyGCについても言及しようと思ったけど巨大なTree育ててる時点で既にGCコスト払ってるのでいっかと思って放置してました"
κeenさんはTwitterを使っています 「全てイミュータブルで使われるときにコピーする、それでGCレスにできると思うけどコピーコストが嵩んで恐ろしく遅くなるんじゃないかな?例えばconsなんて何回コピーが走るか怖くてできなくなる。」 / Twitter
Miura HidekiさんはTwitterを使っています 「たとえば、線形論理っていう理論を使って注意深く参照数を高々1にすることでGCを無くしたLisp、liner lispってのがあります。昔、その記事を書いたことがあるので、良かったらどうぞ https://t.co/PN4xfy9RZy」 / Twitter
GC撲滅への道 - GC Advent Calendar - miura1729の日記
ACM Sigplan Notices 27, 8 (Aug. 1992), 89-98.
1+1ができない子と線形論理 - 檜山正幸のキマイラ飼育記 (はてなBlog)
Let's try ML Kit with Regions
Home Page
だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「メモリ管理の手法としては ・スタックのみ ・手動メモリ管理 ・参照カウント ・GC ・リージョン推論 などがあって、それぞれメリットデメリットがあるわけで、既存の手法にあるような欠点を持たない全く新しい手法が無から生まれることは考えづらい」 / Twitter
だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「もしも全く新しい方法が登場するとしても、いきなり実用的な言語に実装されるのではなく、先に論文が出てそう」 / Twitter
Miura HidekiさんはTwitterを使っています 「処理をトランザクションとして見て、そのトランザクションを終了したらそれに関わるメモリを開放するって言う感じのメモリ管理は組み込みでは一杯やられていそうだし、あんまり論文は無さそうな気がする」 / Twitter
uint256_tさんはTwitterを使っています 「計算理論 破綻しそう」 / Twitter
╹ω╹linguini.leanさんはTwitterを使っています 「@uint256_t どういうふうに」 / Twitter
uint256_tさんはTwitterを使っています 「@1inguini 事前にどのようにメモリが消費されるのかわかるなら, 停止性問題解けそう (適当)」 / Twitter

@anohana

Shiro Kawaiさんのツイート: "#tcfm 16回 https://t.co/JfkqRA6N4P VMWareの二重スワップ問題、二重丸め問題とかデュアルGC問題とか、「賢い二者がお互いに相手のことを気づかずに手を出してダメダメになる」みたいなメタな問題構造があるようなないような。"
Shiro Kawaiさんのツイート: "いや二重丸めやGCは乱択化(一方の賢さを減じる)では解決にならないから別のクラスの問題と考えるべきかな。"
Shiro Kawaiさんのツイート: "今主流のアーキテクチャ(CPUで選べる場合はOS込み)で、上方向に伸びるのを採用してるのってありますか? 自分でGC書いてた頃はautoconfマクロでチェックしてた覚えがありますが最近気にしたことないなあ… "

tracing GC - Google 検索
井山梃子歴史館さんはTwitterを使っています 「自動的/手動的 暗黙的/明示的 大域的/局所的 の3軸ぐらいで分類するのが良い」 / Twitter
GCアルゴリズム詳細解説
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合はやはり GC がらみかなあ。シングルスレッドでもマーク漏れはつらかった。並行 GC のバグは最終的にコードからリバースモデリングしてモデル検査で問題点を見つけた。」 / Twitter
Goでの並行処理を徹底解剖!

GPU

SPIR-V

KhronosGroup/SPIRV-Cross: SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.
KhronosGroup/SPIRV-Headers: SPIRV-Headers
KhronosGroup/SPIRV-Tools
KhronosGroup/SPIRV-LLVM: LLVM framework with SPIR-V support. It's intended to contain LLVM <-> SPIR-V converter and serve as a foundation for LLVM-based front-end compilers targeting SPIR-V.
Khronos SPIR-V Registry
OpenGL で SPIR-V のシェーダー
すらりんさんのツイート: "OpenGL 使い(自分) が求めていたのは GL_ARB_get_program_binary ではなく GL_ARB_gl_spirv 。コードからコンパイル済みの中間データなのでおそらく他環境へ持って行っても大丈夫なはず(未検証"
Fadisさんのツイート: "OpenGLではシェーダはGLSLという高級言語の状態でランタイムに渡し実行時にコンパイルするが、大量のシェーダを使う今日のグラフィックではこのコンパイル時間が深刻な問題になっていたため、事前にコンパイルしておける中間言語SPIRを後付けで規格化し、拡張で対応していた"
Fadisさんのツイート: "VulkanではSPIRの後継にあたる中間言語SPIR-Vがランタイムが要求するシェーダの形式になっており、Vulkanに対応した環境ならどこでも事前にシェーダをコンパイルできる。Vulkanの規格は高級言語に何を使ったかは問わない"
Fadisさんのツイート: "で、使い慣れたGLSLをVulkanで使いたい人の為にGLSLをSPIR-Vにコンパイルする拡張が用意されてる https://t.co/fLUP7rhFd3"
Fadisさんのツイート: "これ、VulkanにGLSLを足す拡張ではなく、OpenGLランタイムがVulkan用のSPIR-Vを吐けるようにするOpenGLの拡張なんだなw"
Fadisさんのツイート: "MesaのAMDGPUドライバのGLSLコンパイラをNIRに対応させたい→Vulkan側にSPIR-V→NIR→マシン語の実装が既にあるからGLSLをSPIR-Vにコンパイルしよう→MesaにARB_gl_spirv実装の機運 https://t.co/S00U7UHxz1"
Fadisさんのツイート: "ARB_gl_spirvってのはOpenGLランタイムがGLSLをコンパイルして、それを自分で実行するのではなくVulkanの中間言語形式SPIR-Vで出力できるようにする拡張。これを使えばGLSLで書いたシェーダをコンパイルしてVulkanに食べさせる事ができる"
Fadisさんのツイート: "今年のGSoCに「SPIR-VをLLVM IRにコンパイルしてCPUで走るVulkanレンダラ」を目指す学生さん登場。メンターはMesaのRADEON用Vulkanドライバの人。まだ殆ど何も無いけどgithubにリポジトリが出来てる https://t.co/42YzLu8KMq"
The Git Repository For The Vulkan Software Renderer In Development - Phoronix
google/clspv
SPIR-Vシェーダー拡張を統合した「OpenGL 4.6」が公開 | OSDN Magazine
Christopheさんのツイート: "SPIR-V back-end in Microsoft HLSL compiler: https://t.co/GdN1DC0nP8"
Fadisさんのツイート: "HLSLをSPIR-Vにコンパイルする場合の機能の対応関係について https://t.co/B9LNM9RfgW"
DirectXShaderCompiler/SPIR-V.rst at master · Microsoft/DirectXShaderCompiler
GPGPU戦争の歴史を紐解く ―勃発から現在に至るまで― - syghの新フラグメント置き場
OpenGL 4.6の進化点やOpenCLの将来について,Khronos Group代表のNeil Trevett氏に聞いてみた - 4Gamer.net
いぐにすさんさんのツイート: "GPGPU黎明期に飛びついて少し触った人(の一部)、「自分もGPGPUの経験あるけどメモリ足りないしhost/deviceのメモリ転送コスト高い」と言い出すんやけど、現代は1枚10GB搭載グラボ簡単に手に入るので知識をアップデートして欲しい"
Fadisさんのツイート: "マッピングでややこしいメモリ転送が簡単になったし、カーネル内からカーネル呼べるようになって動的な並列度の変更もしやすくなったし、コンパイラは初期より正しくC++を読むようになったし、ちょっとした用途なら便利なライブラリが揃ってるし、確かに初期のCUDAの感触は微塵も役に立たないな"
Fadisさんのツイート: "クロノスグループ、LLVM IRとSPIR-Vの双方向の変換を行うトランスレータを公開。LLVM IRに落とせるプログラミング言語を使ったシェーダの記述やLLVMがサポートするアーキテクチャ上でのシェーダの実行等への応用が期待される https://t.co/WYUcm2otdF"
Khronos Officially Announces Its LLVM/SPIR-V Translator - Phoronix
FadisさんはTwitterを使っています: 「RustのサブセットをSPIR-Vにコンパイルする猛者が現れた。SPIR-VはGPUで実行する処理の中間表現で、従来GLSLやHLSLをコンパイルして作る物だった。Vulkan等はこれを食べてGPUのネイティブバイナリを作る。サブセットはRust Like Shading Language(略してRLSL)と呼ばれている https://t.co/hHFlGkCoJp」 / Twitter
RLSL Allows Running A Subset Of Rust On Vulkan/SPIR-V Enabled GPUs - Phoronix
FadisさんはTwitterを使っています: 「W3CがWeb Gameに関する進捗報告の中で、WebGPUでSPIR-Vをシェーダの形式として利用できないかクロノスグループと議論した事が述べられているのがPhoronixの記事になっている。SPIR-VはVulkan等で使われているシェーダの中間表現、WebGPUはWebGLの後継とされるグラフィックAPI https://t.co/cr9bwswUPp」 / Twitter
Khronos + W3C Collaborating On SPIR-V Potentially Being The Shading Language For The Web - Phoronix
HPVM: Heterogeneous Parallel Virtual Machine についてのメモ - FPGA開発日記
FadisさんはTwitterを使っています 「HPVM: GPUのような並列度で性能を稼ぐアーキテクチャは現状それぞれの実装でPTXやHSAILといった中間言語を持っているが、これではアーキテクチャ非依存の最適化を実装しにくいので、LLVM IRを拡張してこの種の中間言語が持っている機能の和集合となるような物を定義したらしい https://t.co/NzRpbFLbCi」 / Twitter
HPVM - Heterogeneous Parallel Virtual Machine
FadisさんはTwitterを使っています 「HPVMで書かれたコードを、NVIDIAのPTXに落とすことも、AMDやARMで使われるHSAIRに落とすことも、OpenCLの中間言語形式SPIRに落とすことも、CPUのSIMD命令で実行する命令列に落とすこともできる、と」 / Twitter
てらモス♋️さんはTwitterを使っています 「コンパイラとは、実装とは別に形式論理的に定義されるプログラミング言語という制約条件下で最適化を行うプログラムなので、言語拡張というものは醜悪で、プログラミング言語上で並列化に関する構文を作りコンパイラがそれに基づいてコードを生成するというのは本筋だと思うですよ(´・ω・`)」 / Twitter
Cure-RiceさんはTwitterを使っています 「”謎の半導体メーカー”のコンパイラが指示行なしで種々の Fortran 構文を自動 GPU 並列化してくれるようになるらしい。 DO CONCURRENT は前にもニュースになっていたけれど、かなり広い範囲に適用されそう。 https://t.co/G7eFueIQZD」 / Twitter
てらモス♋️さんはTwitterを使っています 「もうハードウェアがあってソフトウェアがある時代じゃなくて、ソフトウェアがあってそれが高速に動作するハードウェアを作る時代やからな(´・ω・`)」 / Twitter

KTX 2.0

FadisさんはTwitterを使っています 「KTX 2.0が発表されたらしい。KTX 2.0はKhronosが標準化したテクスチャ画像を1つのファイルにまとめるコンテナ形式で、Basis Universal形式(GST)による圧縮がサポートされる。これは何種類もあるGPUが直接読める圧縮形式に変換できる中間表現で、変換をGPU上で行えるのが特徴 https://t.co/pklsAZVOWz」 / Twitter
Khronos KTX 2.0 Textures Enable Compact, Visually Rich, glTF 3D Assets - The Khronos Group Inc
FadisさんはTwitterを使っています 「KTX 2.0はテクスチャストリーミングを想定して小さいmipmapを先出しできるファイル形式になっている他、glTFからKTX形式のテクスチャを参照する為の拡張 KHR_texture_basisu がglTFに追加される。」 / Twitter
FadisさんはTwitterを使っています 「KTX 2.0のファイルのmagicが面白くて、KTXである事を確認するKTX 20の他に、7bit文字しか通らない伝送路でバイナリが壊れていない事を確認する\xab、改行コード変換でバイナリが壊れていない事を確認する為のCR LF、文字列と誤認するソフトウェアを減らす為の\x1aが入ってる https://t.co/w2Qgu2NyCn」 / Twitter
KTX File Format Specification

MIAOW

【連載】Hot Chips 27 - ウィスコンシン大学のOpen GPU「MIAOW」 | マイナビニュース
MIAOW GPU
VerticalResearchGroup/miaow: An open source GPU based off of the AMD Southern Islands ISA.
Raghuraman Balasubramanian's research works | University of Wisconsin–Madison, Wisconsin (UW) and other places
Enabling GPGPU low-level hardware explorations with MIAOW: An open-source RTL implementation of a GPGPU | Request PDF
Enabling GPGPU Low-Level Hardware Explorations with MIAOW: An Open-Source RTL Implementation of a GPGPU: ACM Transactions on Architecture and Code Optimization: Vol 12, No 2

PC Watch

【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第1回 ~固定機能からシェーダへの移り変わり - PC Watch
【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第2回 ~GPGPUへの最適化や電力効率向上へ進んだNVIDIA GPUの歩み - PC Watch
【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第3回 ~ビッグGPUから効率重視へ、そしてGCNへと繋がるAMD GPUの歴史 - PC Watch
【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第4回 ~GPGPU性能引き上げのカギとなるCPUとGPUの連携 - PC Watch
Apple、macOS/iOSで「OpenGL/CL」の利用を“非推奨”に - PC Watch
【後藤弘茂のWeekly海外ニュース】GTCでKhronosが明らかにしたAPIアップデート - PC Watch

マイナビ

コンピュータアーキテクチャの話

310-324

コンピュータアーキテクチャの話 (310) 超マルチスレッドプロセサである「GPU」に見るグラフィックス処理 | マイナビニュース
コンピュータアーキテクチャの話 (311) 現在のGPUの主流となっている「ユニファイドシェーダ」 | マイナビニュース
コンピュータアーキテクチャの話 (312) 固定小数点の演算から、浮動小数点の演算へ | マイナビニュース
コンピュータアーキテクチャの話 (313) 1つの命令で複数の演算器を動かす「SIMD」 | マイナビニュース
コンピュータアーキテクチャの話 (314) Teslaアーキテクチャが採用した「SIMT方式」 | マイナビニュース
コンピュータアーキテクチャの話 (315) ばらばらのメモリアクセスパターンを処理する必要があるSIMT方式 | マイナビニュース
コンピュータアーキテクチャの話 (316) GPUが高性能な理由 | マイナビニュース
コンピュータアーキテクチャの話 (317) 浮動小数点演算器の搭載により科学技術計算分野での活用が進んだGPU | マイナビニュース
コンピュータアーキテクチャの話 (318) GPUはどうやってマルチスレッド処理を行っているか | マイナビニュース
コンピュータアーキテクチャの話 (319) CPUに比べて圧倒的に多いレジスタ数 | マイナビニュース
コンピュータアーキテクチャの話 (320) なぜGPUにはDDR DRAMではなくGDDR DRAMが用いられるのか? | マイナビニュース
コンピュータアーキテクチャの話 (321) GDDR5の後継として検討されるHBM | マイナビニュース
コンピュータアーキテクチャの話 (322) GPUが用いるメモリのアクセス時間の短縮方法 | マイナビニュース
コンピュータアーキテクチャの話 (323) GPUで用いられるメモリのエラー検出手法とその訂正手法 | マイナビニュース
コンピュータアーキテクチャの話 (324) GPUのエラー発生頻度はどの程度のものであるか? | マイナビニュース

325-349

コンピュータアーキテクチャの話 (325) エラーの検出方法 | マイナビニュース
コンピュータアーキテクチャの話 (326) 1ビット訂正ハミングコード | マイナビニュース
コンピュータアーキテクチャの話 (327) CMOSにおける消費エネルギーと動作速度の関係 | マイナビニュース
コンピュータアーキテクチャの話 (328) 「GPU」はスループット重視のプロセサ | マイナビニュース
コンピュータアーキテクチャの話 (329) GPUは膨大なバンド幅をどうやって実現しているのか? | マイナビニュース
コンピュータアーキテクチャの話 (330) レジスタファイルとシェアードメモリ | マイナビニュース
コンピュータアーキテクチャの話 (331) 汎用の科学技術計算におけるGPUのキャッシュの必要性 | マイナビニュース
コンピュータアーキテクチャの話 (332) シェアードメモリとキャッシュメモリは何が違うのか | マイナビニュース
コンピュータアーキテクチャの話 (333) GPUにおける1スレッドあたりのキャッシュ容量の考え方 | マイナビニュース
コンピュータアーキテクチャの話 (334) キャッシュのコヒーレンスはどのように保たれているのか | マイナビニュース
NVIDIA GPUのキャッシュを考える (335) キャッシュの実装を世代ごとに変化させてきたNVIDIA | マイナビニュース
GPUのコアと2次キャッシュの関係性 (336) CPUと異なるGPUにおけるコアと2次キャッシュの関係性 | マイナビニュース
CPUと異なるGPUのキャッシュ活用 (337) 実はそれほど速くはないGPUのメモリアクセス時間 | マイナビニュース
実はGPUは低速処理のプロセッサ!? (338) 1命令の実行時間は遅いが、複数命令の同時処理で高性能を実現するGPU | マイナビニュース
コンピュータアーキテクチャの話 (339) よくわかっていないGPUのハードウェアの造り | マイナビニュース
NVIDIA GPUの基本的な実行方式 (340) NVIDIAのGPUにおける実行方式 | マイナビニュース
事実上標準のGPUの実行方式とは? (341) GPUの事実上の標準となりつつある実行方式 | マイナビニュース
GPUで用いる2つの変数の大きな違い (342) 「nBlocks」と「nThreads」、2つの変数の大きな違い | マイナビニュース
NVIDIAの「ギガスレッドエンジン」 (343) 多数のスレッドを実行させるNVIDIAの「ギガスレッドエンジン」 | マイナビニュース
ワープスケジューラの仕組み (344) ワープスケジューラの仕組み | マイナビニュース
Kepler GPUの構成を読み解く (345) Kepler GPUの構成 | マイナビニュース
GPUの演算単位を推測する (346) Kepler GPUとMaxwell GPUの演算単位を推測する | マイナビニュース
レジスタ対応が固定ではないGPU (347) CPUとは異なり、レジスタ対応が固定ではないGPU | マイナビニュース
GPUにおけるメモリアクセス (348) 複数のデータの処理を一度に行うGPUのメモリアクセス | マイナビニュース
GPUにおける条件分岐の方法 (349) GPUにおける条件分岐の方法 | マイナビニュース

350-374

コンピュータアーキテクチャの話 (350) NVIDIAの世代別GPUに見るハードウェアの違い | マイナビニュース
GPUでスレッドを同期させる手法 (351) GPUでスレッドを同期させる手法 | マイナビニュース
コンピュータアーキテクチャの話 (352) GPUで用いられるシェアードメモリの原理 | マイナビニュース
コンピュータアーキテクチャの話 (353) GPUにおける1次キャッシュのコヒーレンシ | マイナビニュース
GPUのデバイスメモリの考え方 (354) GPUのデバイスメモリのアドレスの考え方 | マイナビニュース
GPUにおけるECCの考え方 (355) GPUにおけるECCの考え方 | マイナビニュース
なぜHBMが期待されるのか (356) 積層することで性能向上を図ったHBM | マイナビニュース
コンピュータアーキテクチャの話 (357) CPUとGPUの通信 | マイナビニュース
HPCでのCPU-GPU間データ転送方法 (358) HPCにおけるCPU-GPU間のデータのやり取り | マイナビニュース
コンピュータアーキテクチャの話 (359) GPUプログラミングを難しくするCPUとGPUのメモリの分散 | マイナビニュース
コンピュータアーキテクチャの話 (360) CPUとGPUで処理を分担する場合のメモリのコピー手法 | マイナビニュース
コンピュータアーキテクチャの話 (361) 仮想化で1つのGPUを複数ユーザで活用する | マイナビニュース
コンピュータアーキテクチャの話 (362) ATIを買収してGPUを手に入れたAMD | マイナビニュース
コンピュータアーキテクチャの話 (363) VLIW命令をSIMD実行することで効率を高めたATI | マイナビニュース
コンピュータアーキテクチャの話 (364) AMDの新GPUアーキテクチャ「GCN」 | マイナビニュース
コンピュータアーキテクチャの話 (365) GCNのブロックダイヤグラムを読む | マイナビニュース
コンピュータアーキテクチャの話 (366) GCNのスカラユニットとベクトル演算 | マイナビニュース
コンピュータアーキテクチャの話 (367) GCNの性能を活かすのに必要なコンピュートユニット内蔵メモリ | マイナビニュース
コンピュータアーキテクチャの話 (368) GCNアーキテクチャにおける1次データキャッシュの構造 | マイナビニュース
コンピュータアーキテクチャの話 (369) AMDのGPUが用いているデバイスメモリの種類 | マイナビニュース
コンピュータアーキテクチャの話 (370) ディープラーニングを支えるGPU | マイナビニュース
コンピュータアーキテクチャの話 (371) AlexNetの構造を読み解く | マイナビニュース
コンピュータアーキテクチャの話 (372) ディープラーニングの入力の重みの値を決める「学習」 | マイナビニュース
コンピュータアーキテクチャの話 (373) 「推論」の精度 - INT8でも性能低下は僅か | マイナビニュース

GPU MEMORY BOOTCAMP

GPU活用のためのMEMORY BOOTCAMP (1) 新人のCUDAプログラマを一人前に育て上げるGPU MEMORY BOOTCAMP | マイナビニュース
輸送機で考えるGPUのメモリ移動 (2) 輸送機で考えるGPUのメモリバンド幅とレーテンシ | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (3) 行列の転置を行う場合のメモリアクセス | マイナビニュース
NVVPでGPUアプリの性能を改善 (4) プロファイラの活用で、性能改善を図る | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (5) グリッドを大きくする方法 | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (6) メモリバンド幅の解析を実行し、さらに並列度を上げる | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (7) スレッドのメモリ読み出し要求の仕組みを知る | マイナビニュース
GPUにおける行列の転置を考える (8) 行列の転置では書き込みは飛び飛びアドレスになる | マイナビニュース
GPUのシェアードメモリを活用する (9) シェアードメモリ中での転置で、連続アドレスへの書き込みを実現 | マイナビニュース
GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (10) バンクコンフリクトを避けるには? | マイナビニュース

blog

本の虫: vectordash: 暗号通貨採掘している奴らに暗号通貨採掘よりは歩合のよい報酬を払ってGPGPU計算を購入するGPU版AirBnBみたいなサービス
OpenCLやる前にSIMD使い切れっていう幻想 - aokomoriuta's blog
Vectordash: GPU instances for deep learning
ハードウェアの速度をどう評価するか考える(2) ~メモリ、メモリ律速~ - arutema47's blog
GPUの温度と性能低下 - Fixstars Tech Blog /proc/cpuinfo
Intel GPU専用言語C for Metalの解説 - Fixstars Tech Blog /proc/cpuinfo
OpenACC vs OpenMP GPU Offloading (環境構築編) - Fixstars Tech Blog /proc/cpuinfo
OpenVINOでIntel HD Graphicsを活用する(導入編) - 少ないリソースを酷使する
LLVM IRからGPUの実行可能ファイルを出力するコンパイルフローのまとめ - Jicchoの箱
GPU向けコンパイラの最適化の紹介と論文のサーベイ - Jicchoの箱

Wikipedia

GPGPU - Wikipedia
General-purpose computing on graphics processing units - Wikipedia
FLOPS - Wikipedia
FLOPS - Wikipedia

Qiita

GPUSound入門 - Qiita
研究が"飛ぶ"瞬間 - Qiita
Clang で CUDA コードを NVPTX に変換するメモ - Qiita

Twitter

GPGPU

猫 a.k.a INAさんのツイート: "これ読むとPEZYがあのL1でやれてるのが不思議なんだけど隣の読みに行けるとか階層キャッシュのテクニックとかソフトウェア的なあれこれがあるんじゃろか"
Hideyuki Tanakaさんのツイート: "1コア当たり8スレッドにすることでレイテンシーを隠蔽しようとしてて、実際L2のレイテンシまでは完全に隠せるように行列乗算コードを書いているから、L1は現在のコードならば、どんだけ小さくてもそれなりの速度は出ますね…"
Hideyuki Tanakaさんのツイート: "700Mhzで、4サイクルに一回しか実行回ってこないし、ロード隠ぺいするための裏スレッドを使ってるので、まあそこらへんは一応頑張れば隠せるように用意はしてありますね…"
Hideyuki Tanakaさんのツイート: "GPGPUだと死ぬほど多いスレッドを使って勝手にレイテンシ隠そうとしてる感じだけど、まあ、PEZY-SCのでもそんなに大変なわけじゃないよ(大変)GPGPU向けのGEMM書いたことないからわかんないけど…"
Hideyuki Tanakaさんのツイート: "ほんとは4x2じゃなくて、8スレのラウンドロビンにしてくれ~って感じだけど、無理らしいからまあいいかという(´・_・`)"
Hideyuki Tanakaさんのツイート: "@objectxplosive うーん、パイプライニングなのかなあ?命令のレイテンシはMAD以外全部1命令分のサイクルだけど、メモリのレイテンシー隠蔽だけでそういうものなのかな?"
Hideyuki Tanakaさんのツイート: "@09SEPGR スレッド増やせば増やすほど簡単になるけど、増やし過ぎてもリソース食いすぎるし、そもそもレイテンシを隠すためだけにスレッドたくさん使うのもなんかよくない気がする(多分ハードウェアリソース的に?)んでまあその辺のバランスをとってるんだと思う"

ライセンス

VさんはTwitterを使っています 「自分が調べた限りハードウェアエンコーダで特許料支払われているのはほぼありませんよ。ちゃんと払っているのは Raspberry Pi くらいです。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「普通はハードウェアエンコーダつかうし当然そのハードウェアで特許料支払いされてるので関係ないのだけど、Dockerとかで動画エンコード機能を持ったツールを公開したいときとかにはハードウェア前提にしたり商用エンコーダ同梱できないから無償ソフトエンコーダ必要なのよね。」 / Twitter
VさんはTwitterを使っています 「NVIDIA や MPEG-LA にきちんと確認しているので間違いないです。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas ええぇ、ハードウェアエンコーダ屋さん、ライセンス料払ってなかったの!!! まぁ買う側で何とかしてくれ責任持たねぇって言いたい気持ちも分かるけど。 といっても、私がここでいうハードウェアエンコーダってチップやSBCレベルじゃなくて商用エンコーダ機器レベルのつもりだったのだけど。」 / Twitter
VさんはTwitterを使っています 「@dynamitter ARM / Apple / Intel / NVIDIA / AMD に搭載されているハードウェアエンコーダを商用で利用する場合はすべてライセンス取得が別途必須という認識です。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas まぁエンコード専用チップではないので、その機能使うなら自分でライセンス払ってねと言うのが自然よね。 組み込みのルネサスとかもSoC側で払ってなかった気がする。 エンコード専用チップの方は例えばソシオネクストとか払ってたりするのかな。やはりそれも採用側に任せてるのかな。」 / Twitter
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas そうか、Jetson Nanoちゃん...」 / Twitter

libcu++

FadisさんはTwitterを使っています 「NVIDIAがlibcu++のソースコードをApacheライセンスでGitHubに上げたらしい。libcu++はC++標準ライブラリに似たAPIをcuda::の下に生やすライブラリで、標準ライブラリと異なり定義された型や関数はデバイス側で使用する事ができ、値はホストとデバイスで直接やり取りできる https://t.co/WIEoSJLEsU」 / Twitter
NVIDIA C++ Standard Library Now Available Via GitHub - Phoronix
Overview - libcu++

histric-1

Out-of-Domain Awardさんのツイート: "今まで踏んだ一番ひどいエラーは、数千個あるCUDAコアのどれか1個だけバグでNaNしか返さなくなっていて、運悪くそのコアがアサインされるとbackpropagationで伝播してモデルが台無しになる。NaNを弾くコードを入れていないと数日経ってから気づくことになる"
Rockridgeさんのツイート: "Blinkの開発チームがWebGPU(新3DグラフィックスAPI)の実装を開始。WebGL/WebGL 2の後継となるもので、Safariが既に実験的に実装しているが、EdgeやFirefoxでも採用されるらしい。 / “Int…” https://t.co/elmcqYDaTl"
渋川よしきさんのツイート: "WWDCの話で1番やべえなってのは、Metal推奨でOpenGL非推奨化へ、という話ですね。"
Dustin Westphalさんのツイート: "OpenGL is deprecated in 10.14 Mojave. /eyetwitch… "
Apple Deprecates OpenGL & OpenCL - Phoronix
Jun Mukaiさんのツイート: "MetalとVulkanの関係ってどうなってるんだっけ?と思って調べたらhttps://t.co/InEoEGsj4b こういうのあるのか。OpenGLがなくなっても、こういうのをつかえばよいのかな"
Molten | Vulkan, and faster OpenGL ES, on iOS and macOS
Makoto Kato ︎︎さんのツイート: "MS has stopped investment for OpenGL at Windows 2000 era, then their API moves to DirectX. Apple wants to control APIs for GPU like MS..."
Fadisさんのツイート: "いまのAppleのOpenGLの扱いに対して、ジョブズの時代はこうではなかったというのは全くの間違いで、ジョブズ氏の時代からAppleのOpenGLの扱いは酷かった。ただ彼にはOpenGL2を強いられたあの時代でさえ、それを世界で最も先進的なグラフィックと言い切る能力があった"
ハガさんのツイート: "モバイルGPUのタイルベースなレンダリングとか複雑になるだけじゃん要らねーよと思ってたけど、タイルごとにラスタライズの解像度を変えられると知って急にとても良いものに思えてきた・・・。"
次世代のWebGPUの可能性 - WebGLと比較して理解する描画機能の違い - ICS MEDIA
Makoto Kato ︎︎さんのツイート: "自分の知ってる話と他の情報からすると、WebGPUはプロトタイプはAppleが作ったけど、正式なAPIは作り直し (他のOSやブラウザ的にありかないかも含めて) になるかもって話なので、今はAPIを覚えるのはフィードバック用でしかないと思うんだ"
Makoto Kato ︎︎さんのツイート: "No more Canvas API的な"
Makoto Kato ︎︎さんのツイート: "誰もVulkan -> Metalのトランスパイラ作りたいなんて思ってない (ANGLEのGLSL -> HLSLみちゃうとね)"
Fadisさんのツイート: "Vulkan 1.1で利用可能になったsubgroupは、同一Warp内の別のスレッドの計算結果を覗き見して演算を行う事が出来る。これによってイケてるハードウェア上ではWarp内でのreductionのような計算がシェアードメモリを使った場合より高速に行えるようになる。 …何この後ろのハードウェアが透けて見える機能"
chikoskiさんはTwitterを使っています: 「WebGPUの紹介記事。まだ先かな、と思っていたけどChromeでenable-unsafe-webgpuのフラグを立てると使える模様。簡単なコードとGPUの説明が続く。最後に行列の掛け算を使ったベンチマーク。256x256以上はGPUの方が早く、512x512以降は大きな差がつく。という内容: https://t.co/YtW91JmNES」 / Twitter
Get started with GPU Compute on the Web  |  Web  |  Google Developers
FadisさんはTwitterを使っています: 「プログラミング言語Taichi: 空間的に疎なデータを処理するコードを汎用的な言語で書くのが煩雑過ぎるから、データの保持方法の定義と、何らかの方法で保持されたデータを操作する処理を分離して書いて、CPUやGPUで効率よく実行出来るコードに落とせるDSL https://t.co/przYp05IzO」 / Twitter
Taichi
FadisさんはTwitterを使っています: 「あれば便利には違いないけど、これがオーバーヘッドなくライブラリで実現出来ないか、という点についてはC++なら出来んことはない気がする」 / Twitter
FadisさんはTwitterを使っています: 「Mitsuba2: オープンソースのグラフィックレンダラーMitsubaの後継。Mitsubaとの違いはメタいC++で書かれたレイに対する処理をCPUだけでなくGPUでも実行できるようになった点、それを自動微分して逆レンダリングができるようになった点、スペクトルレンダリングに対応した点等 https://t.co/MLf4BPe30G」 / Twitter
RGL | Mitsuba 2: A Retargetable Forward and Inverse Renderer
FadisさんはTwitterを使っています: 「いろんなプラットフォームで効率の良いSIMDな実行可能バイナリを生成する為の最適化はMitsuba2本体から分離されていて、Enokiなるライブラリにまとめられているらしい https://t.co/eNkdTLTII2」 / Twitter
mitsuba-renderer/enoki: Enoki: structured vectorization and differentiation on modern processor architectures

FadisさんはTwitterを使っています: 「学習済みのニューラルネットワークを使って評価を行う際に、重みの精度は出力の品質に影響を与えにくい事が知られている。このためGPUの命令は精度を下げて一度に計算できる行列のサイズを大きくするように拡張されており、NVIDIA Turingでは4bit整数で出来た行列の演算を高速に行う事ができるらしい」 / Twitter
FadisさんはTwitterを使っています 「今は昔ほどGPUが多様でないから低レイヤーAPIでいけるというのは間違ってて、メモリの構成はGPU毎に異なるし、タイルベースGPUがでかい顔してるし、TensorCoreみたいなの生えてくるし、出ていく先はsRGBじゃないかもしれないし、VRでマルチGPU(以下略)で、控えめに言って世紀末なんだよな」 / Twitter
FadisさんはTwitterを使っています 「じゃあ何でVulkanみたいな薄いAPIで多様なハードウェア抽象化できるかと言うと、抽象化出来てないんだ。Vulkanはハードウェアの違いを吸収しない。Vulkanは世の中には色んなGPUがあるという現実をそのままプログラマにつきつけてくる。プログラマは倒れる。」 / Twitter
FadisさんはTwitterを使っています 「VulkanとOpenGLの方向性の違いがわかりやすく出てるのがVK_KHR_surface拡張で、この拡張は普通の画面とはどんな物で、どうすれば画面に描画結果を表示できるかを定義する。これが拡張であるという事は「Vulkanが動く」だけでは画面表示能力は無いかもしれない、という意味になる」 / Twitter
FadisさんはTwitterを使っています 「@RKX1209 Bounding Volume Hierarchy。AABBを再帰的に重ねた木構造で、logオーダーである範囲に存在する要素を探せる。これを作っておくとある直線と交差する面を高速に求める事ができるからリアルタイムレイトレーシングには欠かせない。」 / Twitter
FadisさんはTwitterを使っています 「@RKX1209 動くシーンのレイトレーシングでは動きに合わせてBVHを素早く更新できる必要があって、これがリアルタイムレイトレーシング実現のための難題だったんだけど、ナウいGPUはBVH作る専用ハードウェア積んで解決してしまった」 / Twitter
FadisさんはTwitterを使っています 「netgpu: 1つのマシンに収まらないニューラルネットワークを扱うにはGPUの計算結果をネットワークに載せ、別のGPUを積んだマシンで受ける必要がある。このデータの移動をCPUが行うとボトルネックになるので、GPUとNIC でバッファを共有させ送受信の要求だけをCPUから行うLinuxカーネルのパッチがnetgpu」 / Twitter
FadisさんはTwitterを使っています 「netgpuの作者が、このパッチをバニラカーネルに入れようと提案したら激しく燃えた話。netgpuは現状nvidiaのGPUのみをサポートしており、nvidiaのプロプリドライバに付いてくるカーネルモジュールのコードが所定の位置にインストールされている事を期待しているのが原因 https://t.co/oNSAK4U0Ow」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t CPUよりも高速に計算させようと思うと意外と大変です。ボトルネックがCPUとGPUの間のI/O転送にあるので。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t CUDAやMetalの潜在能力を出し切るようなコーティングも結構大変ですね。」 / Twitter
FadisさんはTwitterを使っています 「GL_NV_command_list: OpenGLでGPUへのコマンドを記録して何度も繰り返し流せるようにする拡張。ランタイムのAPIから実際にGPUで実行するコードへ落とす作業はCPUを要する処理で、コマンド列を塊にする事でこの作業を事前に行いフレーム毎のCPUの負担を抑える。なにこのVulkan https://t.co/NX07BdsLEi」 / Twitter
https://www.khronos.org/registry/OpenGL/extensions/NV/NV_command_list.txt
FadisさんはTwitterを使っています 「Linux 5.11からTTMの実装が変わるらしい。TTMはGPUが触るメモリの管理を行うDRMのアロケータで、書き直された実装はロックの回避でメモリ確保がより高速になり、出来るだけ連続したメモリを塊で割り当てる事でTLBキャッシュヒット率が向上、AMDGPU等で性能の向上が期待できる https://t.co/MsDyLXhf9W」 / Twitter
New TTM Allocator For AMDGPU Graphics Memory Landing With Linux 5.11 - Phoronix
Ryo SuzukiさんはTwitterを使っています 「大量の三角形を、CPU で色や座標の情報を決めずに GPU だけで描画する機能を追加 #OpenSiv3D (v0.6) 複雑な形状を早く処理できる。 https://t.co/Tmg7VXhbcK」 / Twitter
Ryo SuzukiさんはTwitterを使っています 「いわゆる null vertex buffer.」 / Twitter
FadisさんはTwitterを使っています 「ZLUDA: Intel oneAPI Level Zeroの上に実装されたCUDA Driver API。早い話がIntel GPU上でCUDAするための実装。ちなみにIntelはoneAPIをプラットフォーム非依存でアクセラレータを利用するためのAPIとしているが、Intel以外は乗り気ではない為事実上Intel専用になっている https://t.co/uuYSYSDQbD」 / Twitter
vosen/ZLUDA: CUDA on Intel GPUs
Yao Tadahito(八尾 唯仁)さんはTwitterを使っています 「機械学習のエントリー勢向けに計算性能は抑え目でもVRAMを多めにしてミドルレンジ価格帯のグラボって需要があると思うけど、そういうのが存在しないってことはグラボの値段ってVRAMが支配的なんだろうな…。」 / Twitter
FadisさんはTwitterを使っています 「GPUってIOMMUが適切に設定されたホストのメモリを触れるから、性能無視でメモリだけ広いマシンが欲しいならホストのメモリを使えば良いんじゃないかな」 / Twitter
FadisさんはTwitterを使っています 「コンピュータグラフィクス向けにGPUを使う場合も、GPUのデバイスメモリが狭くて必要なものが乗り切らん時は次善の手としてホストのメモリをスワップ領域として使うというのが割とよく行われる」 / Twitter
FadisさんはTwitterを使っています 「Mesaからswrastが削除されるらしい。MesaはOpenGL等のAPIのオープンソースな実装で、GPUが無い場合に備えてソフトウェアラスタライザを持つが、llvmpipeやOpenSWR等の新しいソフトウェアラスタライザの登場により初期の最も素朴な実装であるswrastは殆ど使われなくなっていた https://t.co/YEYShhhaWr」 / Twitter
Mesa 21.0 Has Finally Killed The Classic "SWRAST" Software Rasterizer - Phoronix
FadisさんはTwitterを使っています 「3DグラフィクスをCPUで処理するためにSSEだ3DNow!だとか言ってた時代があったなぁ。3Dグラフィクスをデバイス側で処理するGPUが家庭のPCに普及し出すのは90年代の終わり頃だし、DirectX 7時代のGPUはラスタライザから先はハードウェアで処理するけど座標変換はCPUでやれっていう仕様だったんだよな」 / Twitter
とみながたけひろさんはTwitterを使っています 「そのSSEでレイトレは高速に、、、と思ってたらいつの間にかレイトレもGPU側に入るようになったのであった(笑)」 / Twitter
jicchoさんはTwitterを使っています 「GPU最適化、GPUを使って何かの計算を最適化するのか、ある計算をGPUに合わせて最適化するのか、GPU上で行われる処理を最適化するのか」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 どれも興味ありますね。ただ,それぞれが戦略的に大きく異なるということは理解しているつもりです。」 / Twitter
jicchoさんはTwitterを使っています 「@zacky1972 最初の二つは、主に工学の分野で盛んに行われていますよね。最後の一つはハードウェア/ソフトウェアの観点からGPUを速く動作させようということなので、理学と工学が複雑に絡み合っている感じです。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 私は,まず3つ目の道を探究し続けて,そこから,第1・第2の道を探りたいです。」 / Twitter
ABAさんはTwitterを使っています 「C#のコードをGPU上でパラレルに動かせるようにしてGPGPUをC#プログラマに簡単に扱えるようにするためのライブラリComputeSharp / https://t.co/f6livgelDN」 / Twitter
Sergio0694/ComputeSharp at dev
FadisさんはTwitterを使っています 「メッシュの頂点数を減らすのはいいけど、その為に細長い三角形を生み出すのはやめよう。その三角形は接平面空間で計算するプログラマに刺さる」 / Twitter
FadisさんはTwitterを使っています 「NVIDIAがVulkanでCuBINを実行する拡張を作っている話。CUDAはホストのコードとデバイスのコードを同じバイナリの異なるセクションに置くが、新しめのnvccはデバイスのコードだけを別ファイル(CuBIN)に吐く事ができる。この拡張はそれをVulkanからロードして実行する為のもの https://t.co/VPheiKtwtJ」 / Twitter
NVIDIA Adding Experimental Vulkan Support For Executing CUDA Binaries - Phoronix
てらモス♋️さんはTwitterを使っています 「@Hishinuma_t CUDAからか... OpenMPが生成した PTX をどうやってオブジェクトファイルに格納するかについては(GCC の場合は) https://t.co/NeePioon3a ここにまとまっているわけで、これを真面目にパースしたらいけるはず........」 / Twitter
Offloading - GCC Wiki

002: HW Validation List · heterodb/pg-strom Wiki
Deno 1.8が、WebGPUサポート、動的アクセス許可などと共にリリースへ

Wikipedia

動的コンパイル - Wikipedia
トレーシング実行時コンパイル - Wikipedia
キャメルケース - Wikipedia
カーゴ・カルト・プログラミング - Wikipedia
Cargo cult programming - Wikipedia
フィーチャートグル - Wikipedia
命令スケジューリング - Wikipedia
タプル - Wikipedia
オフサイドルール - Wikipedia
グラフ理論 - Wikipedia
グラフ彩色 - Wikipedia
Data dependency - Wikipedia
インテンショナルプログラミング - Wikipedia
インタプリタ - Wikipedia
シェープ解析 - Wikipedia
ポインタ解析 - Wikipedia
エイリアス解析 - Wikipedia
エスケープ解析 - Wikipedia
スレッデッドコード - Wikipedia
バイトコード - Wikipedia
ファイバー (コンピュータ) - Wikipedia
コルーチン - Wikipedia
ジェネレータ (プログラミング) - Wikipedia
イテレータ - Wikipedia
ワードマシン - Wikipedia
操車場アルゴリズム - Wikipedia
木構造 (データ構造) - Wikipedia
ボックス化 - Wikipedia
LISPマシン - Wikipedia

SPACE - 開発者の生産性を理解し計測する新フレームワーク

UEFI

その他

UEFI

Windows 10 PC UEFIの役割としくみ - DXR165の備忘録
Windows 8.1クロスロード:第9回 UEFIサポートとセキュアブート (1/2) - @IT
BIOS・UEFI操作画面の起動とブートデバイスの設定
BIOS or UEFI及び起動メニューの出し方:パソコン活用方法:So-netブログ
UEFI(BIOS)設定の知識 : 初めてのLinux
現在、Windows® OSをUEFIモードでインストールして使用しています。レガシーOSブートデバイスを第1 起動デバイスとして設定した場合、あるいはWindows Boot Managerを第2 起動デバイス以降に設定するとWindows® OSを起動することができません。 この問題の解決方法を教えてください。
毎秒2.7GBで神速!NVMe対応超高速SSD『Intel SSD750シリーズ』がヤバすぎる - 週刊アスキー
本の虫: LenovoのWindows 10 Signature Edition PCにLinuxのインストールを妨害する機能が発覚
本の虫: LenovoのWindows 10 Signature EditionがSATAがRAIDモードに固定されているのはIntelのせい
Tech TIPS:Windows 10で素早くUEFIの設定画面を起動する - @IT
UEFI モードまたは従来の BIOS モードでの起動
UEFI/GPTインストールしたWindowsの「ブート領域」の復旧方法 - ぼくんちのTV 別館
UEFI: The Oft-Rumored Death of UEFI's CSM Prophesied Again by Intel
retrageさんのツイート: "EFI Byte CodeのVMを作っている。一通りの命令セットの実装が終わったので、デバッグをしていく。デバッガ対応とかnative codeの呼び出し、バイナリのロードなど、まだやるべきことがたくさんある https://t.co/GbbikoxJs0"
retrage/ebcvm: EFI Byte Code Virtual Machine

セキュアブート

セキュアブート - ArchWiki
Linux FoundationがUEFIブート向けのセキュアブートシステムを公開 | マイナビニュース
Linuxのブートをセキュアにする「UEFI Secure Boot System」 - @IT
Acer Iconia W4にLinuxをインストール…失敗 ( UNIX ) - 占い猫 ペンタクル★キャット - Yahoo!ブログ
certificate 入門 パッケージ管理 - LinuxベースのディストリビューションでWindowsアプリケーションに署名する - CODE Q&A 問題解決
OpenSSL-based signcode utility download | SourceForge.net
ej-technologies blog Signing launchers and installers
druides
セキュアブートについて知ってほしい10のこと - wolfSSL
Device Identity as Yet Untold - Speaker Deck
ken\dさんはTwitterを使っています 「@KuniSuzaki @EurekaBerry @hkuni 今まではTPM内のみで電子署名ベースで完結していたSecure Boot in UEFIですが、動的な検査ができるようになったと解釈しております」 / Twitter
ArchLinux にSecure Boot を導入する - Qiita
3.2. Shim
suzakiさんはTwitterを使っています 「enovella/TEE-reversing https://t.co/EudzrygSQV 私のIIJセミナースライドがリンクされ恥ずかしい。 Trusted OS一覧は有用 HiSilicon/Huawei (TrustedCore) Qualcomm (QSEE) Motorola (Qualcomm SoC) HTC (Qualcomm SoC) Trustonic (Kinibi &amp; MobiCore) Samsung (TEEGRIS) @enovella_ Thank you.」 / Twitter
suzakiさんはTwitterを使っています 「enovella/TEE-reversing https://t.co/EudzrygSQV 書ききれなかったけど、下記の項目すごく大事。 TEE Fuzzing TEE Secure Boot Microarchitectural attacks applied to TEE」 / Twitter
ほぼすべてのLinuxのブートローダーに脆弱性 - PC Watch
There’s a Hole in the Boot - Eclypsium
ADV200011 | Microsoft Guidance for Addressing Security Feature Bypass in GRUB
ブートホールの脆弱性 - GRUB 2 ブートローダー - CVE-2020-10713 - Red Hat Customer Portal
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「grub[.]cfgが書き換えられた時点でそのシステム終わってますけどね https://t.co/V4NsylK3Wb」 / Twitter
Linuxで広く使われるブートローダー「GRUB2」にセキュアブートを回避できる脆弱性「BootHole」が見つかる - GIGAZINE
FadisさんはTwitterを使っています 「BootHole: GRUB2のgrub.cfgのパーサにバッファオーバーランを起こすバグがあり、細工したgrub.cfgで任意のコードを実行できる脆弱性。セキュアブートが有効であってもgrub.cfgは元々署名されていない為攻撃者によるコードの挿入を許してしまう https://t.co/kHuMomzj1n」 / Twitter
FadisさんはTwitterを使っています 「ブートローダの脆弱性、アップデートでトラブルが起きそうだなと思ったらもう起きてた。 RHEL8でBootHole修正版のGRUB2にアップデートするとshim経由でGRUB2を起動している環境でGRUB2がメニューにたどり着く前にハングする不具合が報告されている https://t.co/hrESKklfN1」 / Twitter
1861977 – RHSA-2020:3216 grub2 security update renders system unbootable
ブートローダーの「GRUB2」にバッファオーバーフローの脆弱性 | マイナビニュース
BootHole対策パッチによってRed HatやUbuntuが起動不能に。さらなるパッチが公開 - PC Watch
Bypassing UEFI Secure Boot with Thin-Hypervisor - Speaker Deck
Microsoft、セキュア ブートの迂回攻撃を防止するセキュリティパッチを再リリース - 窓の杜
Microsoft、Windows 10向けのUEFIセキュリティパッチを公開するも、問題発生により撤回 - 窓の杜
Multiple New Security Issues Hit GRUB Bootloader Around Secure Boot - Phoronix
Windowsのデバイスドライバをマイクロソフトに送って署名してもらう方法: なひたふJTAG日記
Satoshi TandaさんはTwitterを使っています 「Secure Bootもいろいろ難しさがあって、セキュリティ上問題のあるモジュールが署名されていると、それがするっと実行&悪用されてしまう、という問題があります。これはそういうモジュールとExploitの例 https://t.co/5VCoL9Vi9I (これはWindowsでもある問題ですね) Revocation…? なにそれ🤷🏻‍♂️」 / Twitter
HackingThings/SignedUEFIShell: Information about a signed UEFI Shell that can be used when Secure Boot is enabled.
セキュアブートできるOVMFをソースからコンパイルする - Qiita
Microsoft、誤ってマルウェア入りドライバに署名 - PC Watch
Microsoftがコード署名プロセスの弱点を突かれて誤ってルートキットに署名したことが判明 - GIGAZINE

mjg59

mjg59 | Microsoft's compromised Secure Boot implementation
mjg59 | Announcing the Shim review process
mjg59 | Avoiding TPM PCR fragility using Secure Boot
mjg59 | Linux kernel lockdown and UEFI Secure Boot
Fadisさんのツイート: "SecureBootが有効な場合に署名のないカーネルモジュールのロードの禁止、パワフルすぎるデバイスの使用の禁止等を行うKernel LockdownにLinus氏が難色を示している。SecureBootの有無でカーネルの振る舞いが変わると報告された問題の再現が難しくなるのが理由 https://t.co/ZrpQi26TSl"
Torvalds Expresses Concerns Over Current "Kernel Lockdown" Approach - Phoronix

Linux

UEFIBooting - Community Help Wiki
Comment #162 : Bug #1040557 : Bugs : Ubuntu CD Images
Unified Extensible Firmware Interface - ArchWiki
GRUB/EFI サンプル - ArchWiki
Linuxカーネル3.15リリース、サスペンド/レジュームの高速化など多くの新機能を追加 | OSDN Magazine
"えっお前んちのマザーボードlinux入ってんの?" UEFI Built in Linuxのススメ - Qiita

技術評論社

2020年2月14日 "Windows on Btrfs"を実現!? オープンソースのWindowsブートローダー「Quibble」:Linux Daily Topics|gihyo.jp … 技術評論社
maharmstone/quibble: Quibble - the custom Windows bootloader

PC Watch

2020年、ついにIntelのx86でDOSが動作しなくなる ~UEFIからレガシーBIOS互換を削除 - PC Watch
ESET、UEFI検査やホームネットワーク保護機能が強化されたセキュリティソフト最新版 ~他社ソフトの窓口サポートにも対応 - PC Watch
OS再インストールやHDD交換でも排除できない、UEFIルートキット「LoJax」 - PC Watch
Kaspersky、UEFIに感染するブートキットを発見。OS再インストールでは排除できず - PC Watch

Firmware Security

Microsoft relicensed EDK2 FatPkg to BSD!! | Firmware Security
Ulf: Attacking UEFI over DMA | Firmware Security
Google Pawn: Intel firmware dumping tool! | Firmware Security
new Apple tools: eficheck (and nvm) | Firmware Security
UefiToolsPkg: making UEFI more useful to system hackers | Firmware Security
UEFI-CheckScript: PowerShell script for SCCM/WinPE | Firmware Security
diablolot53/uefi-checkscript
William reviews ru.efi/ru.exe | Firmware Security
Toms Hardware: Win10 unsupported disk layout UEFI error howto | Firmware Security
efivalidate (and mojo_thor) | Firmware Security
VisualUEFIShell | Firmware Security
proposal: add Security Version to Linux Shim | Firmware Security
Apple Secure Boot | Firmware Security
RaspberryPiPkg – 64-bit Tiano Core UEFI for the Raspberry Pi 3 | Firmware Security
ebc.asm: EFI Byte Code Assembler macroinstructions for fasmg assembly engine | Firmware Security
Intel releases Firmware Engine for Linux and Windows | Firmware Security
LUV 2.2-rc2 released | Firmware Security
UEFIStarter: framework to simplify UEFI development with TianoCore EDK2 | Firmware Security
efi_analyzer: Analyze EFI binaries | Firmware Security
bootoption – Create a new EFI RT variable like BootXXXX but store the data in a property list | Firmware Security
DBXtool has support for Microsoft dbxupdate.bin | Firmware Security
Eclypsium at OPCDE: UEFI BIOS firmware analysis at scale | Firmware Security
Tianocore Security Advisory 27: Minnowboard UEFI Variable Deletion/Corruption | Firmware Security
RomDump: EFI BIOS dumping tools | Firmware Security
Gloader: A simple wrapper for efibootmgr that can be used to create an entry in UEFI. | Firmware Security
FindESP: tool to find the associated EFI System Partition from a given disk object or mount point | Firmware Security
UEFImarkEbcEdition: UEFI Byte Code (EBC) benchmark utility | Firmware Security
dkmsscripts: scripts to help with DKMS and UEFI boot keysigning | Firmware Security

英文記事

Adventures in Microsoft UEFI Signing | James Bottomley's random Pages
Display UEFI Firmware Version, Vendor, Revision and Build Date « Musings
BIOS and UEFI Firmware Version - Find in Windows
flat assembler - View topic - Multiprocessor support in UEFI
Another attempt at blogging
Simonas / huehuehuehuehue · GitLab
The bootstrap process on EFI systems [LWN.net]
Address Range Memory Mirroring
Linux 5.5 To Finally Wire Up EFI RNG Code For x86 As Another Source Of Entropy - Phoronix

blog

cupnes/bare_metal_uefi
UEFIやセキュアブートの勘違いしやすい設定30個 まとめ - ぼくんちのTV 別館
Step to UEFI (78) —–SERIAL_IO_PROTOCOL | www.lab-z.com
EFI_EVENTを使って非同期処理を行う - genkami.github.io
[FreeBSD-users-jp 95884] Re: UEFIモードでインストールしたがHDDから起動できない
*BSD_サポート_FAQ_FreeBSD_ハード、ソフト等_ハードウェアセットアップ(a) | HPE 日本
ディスクイメージをネットワークブートする – Raphine Project
UEFI + iPXE で自作 OS をネットワーク起動する - uchan note
【マザボ】 ASUSのZ390マザーボード環境にWindows10をインストールすると、勝手に『AsusUpdateCheck』というサービスが登録される。これはいったい? : ニッチなPCゲーマーの環境構築
BIOSとUEFIの歴史 - syuu1228's blog
UEFIのSecure boot + kdump・kexec - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
PCのUEFI BIOS NVRAM(設定情報) 調査メモ - DXR165の備忘録
Ubuntu14.04 と GPT と UEFI - Going My Linux Way - りなっくすいろいろ
ASUS Z97-ProのM.2 SSDにOSをインストールして起動する: 論外なおちゃん
Plextor M8Pe M.2 PCIe NVMe SSD 128GB 購入しました - DXR165の備忘録
Z77 Extreme4でPCIe NVMe SSDをOSブートさせる起動ドライブとして使う(BIOS書き換え,SM961+ST-M2PCE4XB) - If you are going through hell...keep going.
セキュリティキャンプでxv6を64bitUEFIから起動した話 | カオスの坩堝
サイバー攻撃から身を守る4つの方法 マルウェアアナリストが語る、日本が狙われる危険性とその対策 - ログミー[o_O]
小手先でつくる自作OS – UEFI bootからkernelロードまで | ふぁろぐねっと
自作OS(OS5)のUEFI+x86_64対応でやったこと/やっていること(そして-fPIEの謎挙動) - へにゃぺんて@日々勉強のまとめ
RustでUEFIアプリケーションを書く 2020 Edition - 重力に縋るな
現在作っているブートローダに関して - トトのメモ帳
UEFI エミュレータで遊ぶ
【ゼロからのOS自作入門】MikanOSをRustに移植する 1章・2章 - 日記

/var/log/hdk.log

日記 (2014 年 10 月上旬)
日記 (2014 年 10 月上旬)
日記 (2014 年 10 月中旬)
日記 (2014 年 10 月下旬)
日記 (2014 年 11 月中旬)
日記 (2014 年 11 月下旬)
日記 (2016 年 4 月下旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 9 月下旬)
日記 (2017 年 1 月中旬)
日記 (2017 年 1 月中旬)
日記 (2017 年 1 月中旬)
日記 (2018 年 3 月)
日記 (2019 年 1 月上旬)

/home/tnishinaga/TechMEMO

UEFIアプリでファイルを任意のメモリアドレスにロードする方法メモ - /home/tnishinaga/TechMEMO
UEFIで任意のProtocolを使ってプログラムを書くためにはどうすればいいのかメモ - /home/tnishinaga/TechMEMO
UEFIのHTTP BOOTを試してみる - /home/tnishinaga/TechMEMO
UEFIの呼び出し規則について - /home/tnishinaga/TechMEMO
UEFIで任意のProtocolを使ってプログラムを書くためにはどうすればいいのかメモ - /home/tnishinaga/TechMEMO

借り初めのひみつきち

Rust

Rust で UEFI のハローワールド - 借り初めのひみつきち
Rust 自作 OS 日記/Part 1 my new gear... - 借り初めのひみつきち
Rust 自作 OS 日記/Part 2 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 3 ブートローダー - 借り初めのひみつきち
Rust 自作 OS 日記/Part 4 フォントのはなし - 借り初めのひみつきち
Rust 自作 OS 日記/Part 4.1 おまけ - 借り初めのひみつきち
Rust 自作 OS 日記/Part 5 マルチタスキング - 借り初めのひみつきち
Rust 自作 OS 日記/Part 6 過去最大の更新 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 7 次世代の OS へ。 - 借り初めのひみつきち
妄想 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 8 🔔 - 借り初めのひみつきち
ロゼッタと林檎と - 借り初めのひみつきち
Rustの基本戦略 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 9 my new os... - 借り初めのひみつきち
Rust の Null Pointer Optimization - 借り初めのひみつきち
myos の描画アーキテクチャ - 借り初めのひみつきち
ぬるぽ警察24時 - 借り初めのひみつきち
妖精さんとなかよくなるほうほう - 借り初めのひみつきち

最小ステップで作る UEFI OS

最小ステップで作る UEFI OS - 借り初めのひみつきち
neri/moe: A Minimal Step OS using UEFI
neri (Nerry)
最小ステップで作る UEFI OS v0.1 - 借り初めのひみつきち
フォントのお話 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.2 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.2.1 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.3 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.3.1 - 借り初めのひみつきち
History
neri (Nerry)
最小ステップで作る UEFI OS v0.4 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.4.1? - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.5 - 借り初めのひみつきち
最小ステップで作る UEFI OS v0.5.1 - 借り初めのひみつきち

Twitter

Nerry@求職中さんのツイート: "Surface RTで確認したけどやっぱりUEFIアプリは基本0x1C2でWin32は0x1C4だった。 ただしbootarm.efiやbootmgfw.efiは0x1C2なのにbootmgr.efiだけは0x1C4になってる。"
Nerry@さんのツイート: "HPETのMain Count Value読むのは簡単にできた。… "
Nerry@さんのツイート: "IPIが飛ばせた?… "
Nerry@さんのツイート: "STIしないと割り込みおきないけどエラーコードは 0xFF2 の謎。0xFF3じゃないの?"
Nerry@さんのツイート: "実機のエラーコード0x7FBでしたね。 こっちの方が正しい気がする。"
Nerry@さんのツイート: "selector = 0x7F8 (int 0xFF) ldt = 0 idt = 1 ext = 1"
Nerry@さんのツイート: "やっぱりqemuのエラーコードおかしい。実機はintelもamdも0x7fbだった"
Nerry@さんのツイート: "PS2ポート存在するかどうかちゃんと確認するにはAML読まないとダメ?😱"
Nerry@さんのツイート: "FADTのIAPC_BOOT_ARCHはときどき嘘が書いてる機種があってPS2ポートの存在を正しく認識できない"
Nerry@さんのツイート: "SetVirtualAddressMapってEfiRuntimeServicesCode/EfiRuntimeServicesDataだけじゃ足りない機種もあるのね"
Nerry@さんのツイート: "一部機種で異常なEDID取得してるのはEfiEdidActiveProtocolGuidの呼び出し方間違ってるんだろうか・・・"
Nerry@さんのツイート: "UEFI Class 3の機種だと基本USB接続が多いけどSPIとかI2Cとかふざけてるものもある・・・"
Nerry@さんのツイート: "PS/2はレガシーではあるけど、今のところCSM搭載してるラップトップPCはPS/2接続のキーボードが主流のようなのでPS/2をサポートしないと操作できないから完全に無駄ではない。"
Nerry@さんのツイート: "タイマー割り込みで画面の左上のピクセル書き換わるようにしたら一部の機種でどうやっても変わらなくておかしいなって思ったら液晶の向きが左上だと思ってた場所が左下でしたね🤔"
Nerry@さんのツイート: "ときどきキーボード受け付けなくなるのspurious割り込み関係なんだろうか・・・"
Nerry@さんのツイート: "とある機種でEDIDの解像度がおかしい値だった→WindowsのEDIDみるツールだと常識的な値だった→UEFIで取得したEDIDよく見たら内容全部0だった💢"
Nerry@さんのツイート: "正確にはLocateProtocol(&EfiEdidActiveProtocolGuid...)とかの戻り値が0だったのでアドレス0のデータをEDIDだと思って読み込んでた"
Nerry@さんのツイート: "WindowsのUEFI要件が定まる前の機種でGOPの解像度とかも変"
Nerry@さんのツイート: "Win8の頃のミ田キーが画面の端に独立して付いてる機種で何となく押してみたらPS/2経由で何かが入力された(実際のスキャンコードは見てないけどたぶんWindows Key) こういうのはGPIOとか使ってると思ったけどそうでもないものもあるのね"
Nerry@さんのツイート: "マウスカーソル出た(出るだけ… "
Nerry@さんのツイート: "4k以上のディスプレイのEDID見てみたい😤"
Nerry@さんのツイート: "現在の実装 ・優先度未実装(すべてのスレッドが同じ優先度) ・スレッドの負荷はHPETを使って計測 ・タイマー割り込みで実行中のスレッドの負荷が一定数以上だった場合にquantumを消費 ・quantumが0になったスレッドをpreemption ・スケジューラーが1秒ごとにすべてのスレッドのload値を更新"
Nerry@さんのツイート: "単純にタイマー割り込みでpreemptする場合に比べて負荷が正確に反映されて公平なpreemptできてる(気がする"
Nerry@さんのツイート: "SIPI送れた… "
Nerry@さんのツイート: "MultiProcessor完全に理解した(n_cpuインクリメントしてhltするだけ)"
Nerry@さんのツイート: "もしかして個別にINIT SIPI投げるとダメなのか"
Nerry@さんのツイート: "動いたり動かなかったりよくわからん・・・"
Nerry@さんのツイート: "PICを使ってるとPS2をマスクするって発想がそもそもないのでPIC時代の感覚でPS2ポートを先に初期化するとAPIC側のマスクが解除されてなくて一部環境だとPS2初期化時に発生した割り込みが受け取れなくて止まる"
Nerry@さんのツイート: "moeのps2ドライバは割り込みが起きたらとりあえずデータを抜き取ってキューに突っ込んですぐiretしてる。 実際のデータ処理はhidスレッドでパケット解析とウィンドウイベントへの変換をしてる。この部分をユーザーランドに追い出すのは比較的容易だと思われる。"
Nerry@さんのツイート: "ウィンドウ背景にblur実装したい"
Nerry@さんのツイート: "きれいにblurするにはあらかじめ周囲数pixelの情報が必要だから現在の部分再描画実装じゃ綺麗に描ける気がしない:;(∩´﹏`∩);:"
Nerry@さんのツイート: "しかもウィンドウにblurかけるということは実際に必要なpixelは自分自身のウィンドウではなく下にある他人のウィンドウだったりするので再描画に必要な情報が多すぎる"

EFI_ABSOLUTE_POINTER_PROTOCOL の不思議 - 借り初めのものがたり
あべこべ。 - ねりりんと借り初めのものがたり
はりぼてOSをUEFIで起動する/5日目? - 借り初めのひみつきち
バイバイ、 gnu-efi - 借り初めのひみつきち
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL を置き換える - 借り初めのひみつきち
UEFI のクロス開発 - 借り初めのひみつきち
進捗的なもの。 - 借り初めのひみつきち
再度進捗的な。 - 借り初めのひみつきち
BIOS で消耗するな、 UEFI で消耗せよ。 - 借り初めのひみつきち
ACPI BGRT - 借り初めのひみつきち
きんきょうてきな? - 借り初めのひみつきち
WASM自作PCエミュレータ制作日記/5 - 借り初めのひみつきち
UEFI自作OS日記 v0.6 再始動 - 借り初めのひみつきち
最小の UEFI Hello World - 借り初めのひみつきち
EFER.LME と EFER.LMA - 借り初めのひみつきち
ACPI 2.0 - 借り初めのひみつきち
MYOS の起動処理概要 - 借り初めのひみつきち
initramfs - 借り初めのひみつきち
今週の MYOS 🎉 - 借り初めのひみつきち
GPD MicroPC の内蔵キーボードを使う方法 - 借り初めのひみつきち

livaの雑記帳

UEFI対応 - livaの雑記帳
grubのpf2ファイルの解析 - livaの雑記帳
自作OSにおけるUEFI対応戦略 - livaの雑記帳
UEFI対応(その2) - livaの雑記帳

Blog posts by @retrage

ELVMのEFI Byte Codeバックエンドを作る - めもちょー
文鎮化したMinnowboardを復旧させる - めもちょー
LLVMのEFI Byte Codeバックエンドを作る - めもちょー
OVMFのデバッグ - Blog posts by @retrage01
EFI_STATUSの値 - Blog posts by @retrage01
EDK2におけるDebugPrintErrorLevel - Blog posts by @retrage
UEFI向け9P File Systemを作ってクラウドからネットワークブートできるようにした - Blog posts by @retrage
ebcvm: A Usermode EFI Byte Code Virtual Machine - めもちょー
EFI stubなArch Linuxのインストール - めもちょー
技術書典5で「UEFI読本 基礎編 Linux編」を頒布 - めもちょー
EFI stubなLinux kernelのヘッダ部分を見てみる - めもちょー
BitVisorのEFI向けVMM Loader(1st stage)のコードを読んでみる - めもちょー
EFI Byte Code解説 - めもちょー

J’s Lab

PXE BootとIntel DCIを用いたLinux Debug環境 | J’s Lab
OVMFを使った簡単なUEFI Linux環境の構築の仕方 | J’s Lab
OVMFをソースデバッグするお話 | J’s Lab
そうだ、Intel DCIをしよう! | J’s Lab
Intel DCI 続編(資料まとめ) | J’s Lab

そそるめも

Z87系マザーのUEFIにNVMeドライバをロードした件 - そそるめも
Z87系マザーのUEFIにNVMeドライバをロードした件 - そそるめも
Intel SSD 750 にはOption ROMにUEFI向けNVMeドライバが入ってるっぽい - そそるめも

Converg.

EDK IIの基礎 - Converg.
EDK II Package - Converg.
Module開発 - Converg.

スライド・PDF

Network Boot from Bell Labs - Speaker Deck
準パススルー型VMM開発の難しいところ
yvr18-508.pdf
suzakiさんのツイート: "シリコン内のbootROMこそが、Trusted BootにおけるCRTM:Core Root of Trust Measurement。下記PDFの11ページの図が分かりやすい。 https://t.co/teuqFvo9qm CRTMがBIOSを計測してそれをTPMにextendすることから始まる。… https://t.co/qWwDVGcW1u"
Microsoft PowerPoint - af-congdon-tcg-overview-1104
retrageさんのツイート: "Wow. yabits was mentioned in the article. https://t.co/loj5lNiSVn"
yabits: Fast and lightweight yet another UEFI implementation | yabits
UEFIベアメタルプログラミング

最新SSDのキホン - AKIBA PC Hotline!
Open Source Firmware: Two Ends of the Spectrum | Intel® Software
UEFI Driver Writer's Guide · tianocore/tianocore.github.io Wiki
Specifications and Tools | Unified Extensible Firmware Interface Forum
Free Software EFI Drivers
C++编撰操作系统(1):基于 EFI 的 Bootloader_imooo软件程序bug解决方案
WinDbgとWindows XP/7/8/10のハンドルテーブル解析
UEFIのルートキット、攻撃に使われていることを初めて確認 | マイナビニュース
129機種3000万台超のDell製デバイスに影響する重大な脆弱性が見つかる、BIOS/UEFIレベルの任意コード実行が可能 - GIGAZINE

musl

snprintf

社会人でもOSを作りたいさんのツイート: "え、完全に誤解してたわ 。https://t.co/tLot6IEr6Q によればsnprintfは書き込んだバイト数を返すが、それはバッファが十分大きく、すべてのデータが書き込めたと仮定した場合のバイト数であるらしい。"
OS作れないマンさんのツイート: "データが書き込み先バッファより大きい場合、実際に書き込んだバイト数より大きな数が返ることになる。新しい関数scnprintfなら、本当に書き込んだバイト数を返してくれる、とのこと。"
snprintf() confusion [LWN.net]

musl - Wikipedia
musl - Wikipedia, the free encyclopedia
MinGW - Minimalist GNU for Windows | SourceForge.net
MinGW-w64 - for 32 and 64 bit Windows | SourceForge.net
_BitScanForward, _BitScanForward64
Visual Studio Tips - Windows 2000 Blog
LibC library musl ported to UEFI | Firmware Security
Rich Felker(@RichFelker)さん | Twitter
libc-testsuite - correctness and quality tests for libc implementations

cosmopolitan

hikaliumさんはTwitterを使っています 「MacでもWindowsでもLinuxでも動くバイナリが出来上がるの面白すぎる(というかそんなことが可能だったのか…)。 https://t.co/pXZ2DbgO81」 / Twitter
Cosmopolitan C Library
伊津野 英克さんはTwitterを使っています 「シェルスクリプトとして解釈できる Windows の exe で QEMU を実行して ELF バイナリを実行してる感じ? https://t.co/14z2RfWMMw」 / Twitter
Rui UeyamaさんはTwitterを使っています 「単一の実行ファイルなのにWindows/macOS/Linux/FreeBSD/OpenBSDで動く実行ファイルが作れるというCosmopolitanというプロジェクト、ヘビーに改造されたchibiccがリポジトリに入っている。 https://t.co/BJmfN3hrDc」 / Twitter
cosmopolitan/third_party/chibicc at master · jart/cosmopolitan
品川@学生・共同研究募集中さんはTwitterを使っています 「Windows/UNIX(macOS/Linux/FreeBSD等)/BIOSで実行できる単一バイナリ実行ファイル形式 actually portable executable (ape) が面白い。 https://t.co/Hh6DtqeEjp」 / Twitter
Actually Portable Executable
品川@学生・共同研究募集中さんはTwitterを使っています 「基本はファイルの先頭にマジックナンバー "MZ" が付いているので、Windows の Portable Executable (PE) バイナリとしてそのまま実行できる。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「UNIX系でシェルスクリプトとして実行すると、先頭部分は "MZqFpD='ヘッダ'" と解釈されるようになっていて、先頭のバイナリ部分は変数への代入になってスキップされて、その後ろにあるコマンドで macOS の Mach-O や Linux/FreeBSD の ELF のヘッダでファイルを自己書き換えして再実行している。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「BIOSから読み込んで実行すると、"MZ" は "dec %bp; pop %dx" になって無害、その後の "qFqD" は "jno 0x4a; jo 0x4a" でフラグの状態にかかわらずヘッダをスキップしてリアルモードのバイナリコードを開始できる。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「Arm でも実行できるようにするのは難しくないだろうけど、2つのバイナリを埋め込むことにはなるので、サイズは大きくなる。あと、UNIX系だと実行ファイルに書き込み許可が必要になるのが難点か。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「macOS かどうかの判定に "if [ -d /Applications ]; then" を使っているのは、微妙な気がするけど…」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「Windows と UEFI で同時に実行できるバイナリファイルを作るのは無理っぽいかな。同じ PE フォーマットだから。subsystem の値を無視するファームウェアならいけるのかな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Cosmopolitanのこのページ、chibiccにdoxygenコメントを読む機能を追加して自動生成したページらしい。 https://t.co/dCAZBmhtEY」 / Twitter
Cosmopolitan C Library

malloc

その他

動的メモリ確保 - Wikipedia
malloc(3)のメモリ管理構造 | VA Linux Systems Japan株式会社
50年前に作られたメモリ管理アルゴリズム「Buddy memory allocation」 (1/2):CodeZine(コードジン)
Project Zero: The poisoned NUL byte, 2014 edition
Visual Studio C++でメモリリークの検出 crtdbg.h CrtSetDbgFl | urashita.com
realloc関数怖い - ichirin2501's diary
'CVS: cvs.openbsd.org: src' - MARC
Protectable Memory "Pmalloc" Support For The Linux Kernel Updated Again - Phoronix
日記 (2014 年 1 月上旬)
メモリ管理
非カーネル用のスラブ・アロケータ - Tociyuki::Diary
mallocの動作を追いかける(環境変数編) - Qiita
std::alignを動的メモリ確保と一緒に使う - in neuro
論文「snmalloc: A Message Passing Allocator」(ISMM 2019)
mimalloc のメモリ管理 - Qiita
論文「Reconsidering Custom Memory Allocation」(OOPSLA 2002)
failmalloc - Google 検索
p20191226a - K-kiwi
50年前に作られたメモリ管理アルゴリズム「Buddy memory allocation」 (1/2):CodeZine(コードジン)
bump pointer - Google 検索
バンプポインタアロケータ - Google 検索
Ruby: mallocでマルチスレッドプログラムのメモリが倍増する理由(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社
alloc_alignedの野良実装 - 豪鬼メモ
reallocによる配列拡張の償却時間計算量 - 豪鬼メモ

MESH

論文「MESH: Compacting Memory Management for C/C++ Applications」(PLDI 2019)
[1902.04738] Mesh: Compacting Memory Management for C/C++ Applications
plasma-umass/Mesh: A memory allocator that automatically reduces the memory footprint of C/C++ applications.
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 アロケータとしても面白いが、memfd_create と mmap の合わせ技で、(実ファイル無しに)別々の仮想ページを同じ物理ページにマップという、カーネル的な技をユーザランドで…というテクニックは別の用途でも利用してみたいなぁ。… https://t.co/JaO3GU9M6O"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちょっと違うが、pdumpfsというハードリンクによる実体共有を活用したソフトを思い出したり。 そして、リンク多用を想定していない dump/restore がメモリ不足で落ちたり、NTFS仕様のリンク上限1024に引っかかったりと、普通では発生しない問題に遭遇しやすかった記憶も。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今回のアロケータの場合、一つのページに沢山の共有が発生した場合のカーネル性能への影響は、カーネルのページ構造などに依存しそう。 それと、物理ページのコンパクションに対し、仮想空間はむしろ疎な利用が増えていきそうな印象も。(64bitなら別に気にしなくても感はあるが)"
Kazuho Okuさんのツイート: "面白い。ある状況にむけた最適化を備えたmallocだと思えばvmaの上限値もブロッカーではない(最適化が効かなくなるだけ)と割り切れば使い手がありそう / https://t.co/Q0dHZmwGO5"
Kazuho Okuさんのツイート: "MESHはiOSアプリでメモリ不足になってきたらコンパクションする、的な使い方とかできるのかなぁ。できそうな気もするしゲームとかだとうれしい気もする"
takuya-aさんのツイート: "memfd_create()知らなかった。mmap()との合わせ技で、同じ物理アドレスを複数の仮想アドレスにマッピングでき、コンパクション時にそれを利用して仮想アドレスを不変に保つ。 / “論文「MESH: Compacting Memory Management for C/C++ Applications」(PLDI 2019)” https://t.co/NPEgjELKQn"

TCMalloc

Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (3) TCMallocでメモリ割り当てを高速化する | マイナビニュース
gperftools/gperftools: Main gperftools repository
デフォルトの malloc を差し替えずに tc_malloc を使う - Qiita
TCMalloc : Thread-Caching Malloc
g-TCmalloc.pdf
Google Perf Tools (tcmalloc) の使い方
Google Japan Blog: Google が公開しているソフトウェアの解説(その4)- Performance tools -
TCMalloc : Thread-Caching Malloc
How To Use TCMalloc? - Stack Overflow
Google独自のC/C++用メモリアロケータTCMallocがオープンソースとして公開へ

jemalloc

Rockridgeさんのツイート: "Fx52:jemalloc 4のバージョンを4.3.1にアップデート。しかし、いまだにjemalloc自体が有効化されていない。参照:https://t.co/Yb9QfsbvzR / “1277704 – Update jem…” https://t.co/lRfhoy8hP0"
Rockridgeさんのツイート: "Firefoxのメモリアロケータをmozjemallocからjemalloc 4に置き換える作業を続けてきたが、パフォーマンスの低下とメモリ消費量の増加が一向に改善せず、置換計画は破棄された。参照:… https://t.co/JX4WNdhnHo"
Removing Jemalloc 4 - Google グループ
jemalloc について調べたのでまとめた - zonomasaの日記
なかのん&マジックさんのツイート: "<input type=text>等のエディタのメモリ消費量を約半分に削減できる目処はたったんでやらないとな。 / Firefoxのメモリ消費量が右肩上がりで増加する場合の対策 - ククログ(2018-10-24) https://t.co/mYUVCtJLOT @_clear_codeさんから"
Firefoxのメモリ消費量が右肩上がりで増加する場合の対策 - ククログ(2018-10-24)
なかのん&マジックさんのツイート: "jemallocはフラグメント化を抑制するために一定の大きさの空間にオブジェクトを整理してるんだけど、TextEditorのinstanceの大きさを調べるとギリギリその閾値より大きい事が判明してしまった。"
なかのん&マジックさんのツイート: "なので、input要素が大量にあるフォームに実際に入力していくと、一気にメモリ使用量が上がっちゃう。表示しただけならセーフ。"
なかのん&マジックさんのツイート: "生の数字を言っちゃうと、今、TextEditorが1024バイトのエリアに配置されてる。実際は550バイト程度しか要らないんだけど。"
なかのん&マジックさんのツイート: "64bit版の話。たぶん、32bit版は512バイトの線を割り込んでるはず。"

mallocng-draft

7594591200220899443さんはTwitterを使っています 「mallocのメモリ消費といえばRich Felker が新しいmallocを考案中で、 https://t.co/mCPmHCJOpW まだ未完成だけどもデザインゴールとして「返せるメモリをOSに返そうとする」をやろうとしているんだよな、将来のAlpineとかに採用される見込み。」 / Twitter
richfelker/mallocng-draft: Working draft of nextgen malloc implementation for musl libc
SODA NoriyukiさんはTwitterを使っています 「@shyouhei OSに返すってのは、たぶんmusl libcの文脈ですよね… glibc malloc は既に返せるようになってるので。」 / Twitter
7594591200220899443さんはTwitterを使っています 「@n_soda もうちょっとアグレッシブなはず、例えば前に読んだのはreallocでサイズが減ったとき減った部分だけ返すとかします、今もそうなってるかしりませんが」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shyouhei 返すのを頑張りすぎると遅くなるので汎用OSだと加減が難しいんですよねえ。 musl libcは組み込み方面での利用が多くて、メモリ足りない度合いが高いので、頑張れるだけ頑張る方針なのかしら…」 / Twitter

mtrace

【メモリリーク】mtraceの使い方【glibc】 | FiS Project
メモリリーク検出:mtrace編 : しっくハック
Manpage of MTRACE
メモリーリークの検出:mtrace , valgrind:プログラマー社長のブログ:オルタナティブ・ブログ
mtraceでメモリーリークを検出する方法: 小粋空間
革命の日々! mtraceの使い方
mtraceを使ってみる - Akio's Log
Man page of MTRACE

Infallible memory allocation

Makoto Kato ︎︎さんのツイート: "Infallible memory allocationになって5年以上経つけど、昔のコードは未だにmoz_xmallocとかに対してnullptrチェックしてるんだよね。あれコンパイラとかで消せないのかしら"
Infallible memory allocation - Mozilla | MDN

スライド

Glibc malloc internal
katagaitai CTF勉強会 #1 pwnables編 - DEFCON CTF 2014 pwn1 heap
Kosaki - the malloc - - Togetter
Glibc malloc internal
The 67th Yokohama kernel reading party - YouTube
osdev_moku2 #2 - Google スライド
「京」におけるマルチスレッドmalloc / malloc on K computer - Speaker Deck

OSDN

「glibc 2.26」リリース、mallocのスレッド毎キャッシュによる高速化やUnicode 10サポートなどが導入される | OSDN Magazine

POSTD

OSのデバッグ:メモリアロケーション講座 | コンピュータサイエンス | POSTD

GitHub

rampantpixels/rpmalloc: Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
jemalloc
jemalloc/jemalloc
CCareaga/heap_allocator: A simple heap memory allocator in ~200 lines.
cubanismo/allocator: Incubator for a general Unix Device Memory Allocation library

Twitter

性能保証

Miura HidekiさんはTwitterを使っています 「リアルタイム性という観点なら、GC無しでもヒープからな動的なメモリ割り当てを使っているなら、フラグメンテーションが進んだ状況を考えるとmallocやfreeの時間の最悪時間の保障って難しいじゃないかな?」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 今どきのスラブアロケータなら(一定以下のサイズなら)フラグメンテーションは起こらず、最悪時間も保証できる気がしますが、空間利用効率は落ちますかね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 フラグメンテーションは起きずらいと思いますが、そのサイズのアリーナを使い果たした場合とか速度低下の状況は考えられそうです。」 / Twitter
monochromeさんはTwitterを使っています 「@miura1729 確かにガチのリアルタイムシステムだと「たまにしか遅くならないから許して」という言い訳は通用しなさそうですね。」 / Twitter

malloc 失敗

Egtra (ysk-noh)さんのツイート: "基本的にはそうなんだけど、「数百MBのメモリ確保に失敗→その他の致命的例外同様、ログ吐いて続行」を経験したことがある。何事にも例外はあるんだと学んだ。 https://t.co/irgtFQDCFQ"
Fadisさんのツイート: "「メモリが確保出来なかった」という理由で例外が飛んだ時、abortする以外にアプリケーションが出来る事は本当に少ない。デバッグの足しにしようとしてこの例外を捉えて行なった処理は大抵、再度メモリが確保出来ないという例外を飛ばす事になる"
島鉄雄さんのツイート: "> mallocが失敗した後だとprintf呼べない setvbuf() で自前のバッファを割り当てておけば一応呼べるはず。… "
SODA Noriyukiさんのツイート: "みんなホントにmalloc失敗で単にabortしてるだけなの? そんなことないよね。 「このmallocは(ユーザー入力やら通信相手の挙動やらによって)現実に失敗しうるしその場合にabortじゃまずい」的な場所限定なら、実用プログラムではふつう最低限の対処は入れてると思うしそう難しくないと思うんだけど。"
SODA Noriyukiさんのツイート: "640KBしかメモリがないMS-DOSでGosling Emacs動かすときにとった対処→ https://t.co/XMLSy0TkuG これは仮想記憶前提でmallocが絶対失敗しないという仮定のあるプログラムへの後づけのパッチなのでかなり無理してるけど、でもこの程度なら簡単。 GNU emacsなら元からもっとgracefulに対処してる筈。"
わたなべごうさんのツイート: "制御用の処理とかは別途外側にスクリプト言語とかで組んでおいて、低層のライブラリでメモリエラーでたら可能な限り解放かけてから外側の言語に例外なげて後処理をまかせる、みたいな書き方はしますね。ゲームだとクイックセーブしてごめんなさいしてタイトルに戻る… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのバッファ指定で実行ボタンを押すと即死、とか嫌がられそうです(笑) 特に、32bit環境だと「OSの空き仮想メモリはあっても、プロセス内の連続アドレス空間が無く」というパターンでコケることもあったりします。… "
まさみさんは語りたいさんのツイート: "結構abortしてる。kmalloc出来ないとか末期的だし。… "
SODA Noriyukiさんのツイート: "組み込み用とかはそのために固定サイズの配列使うのが多いですよね。 僕の仕事関係はUNIXサーバー用で、abortするとまずいけど、メモリはあるだけ限界まで使いたいので固定サイズにはできず、malloc()失敗にはそれなりに対処できるように作ってるつもりです。(もちろん抜けはあると思います)… https://t.co/TFCiKl58Nm"
SODA Noriyukiさんのツイート: "カーネルがminfree程度の空きメモリがあると仮定するのは(mmがそれを保証しようと努力する作りになってるわけで)アリですからね。 大きなサイズの動的メモリ確保については、gracefulに失敗する作りになっているところの方がふつうじゃないでしょうか?… "
yohさんのツイート: "「malloc失敗後にできることは何もない」って データ永続化や次回起動時のためのMinimum Grace Shutdown処理とかもせーへんの?さすがに怖すぎない?"
ケケモコソカメニハさんのツイート: "例えばエディタでファイルを開く時のメモリ確保はエラーハンドリングしないと、巨大ファイルを読み込ませたらアプリごと落ちましたというのはみっともないのでは……巨大なメモリ確保が失敗したからって後の実行に悪影響もないでしょうし適当なエラーダイアログ出してふつーに継続では"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでは、大き目データ群=VirtualAlloc(コミット済)、大き目になりうるデータ群=VirtualAlloc(アドレス空間確保)、それ以外はnew/mallocという使い分けで、前者2つはリカバリ可能な対処を入れてある、という感じ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "現実的にエラーになりうるメモリ確保はVirtualAlloc系に集約して、ほぼ発生しないはずのmalloc/newエラーは放置という割り切りをした、とは言えるかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VirtualAlloc(アドレス空間確保)の良い点の一つは、PTEを全く消費しないこと。(MSの資料だけだと心配だったので、実験して確認したり) まあ、予約空間の1/1024ほどのサイズですが。"
SODA Noriyukiさんのツイート: "ただしそういうアプリは、Cなんか使うのはやめて、もっと高級な言語使った方がいいだろうとも思ってますが。… "
まさみさんは語りたいさんのツイート: "エラーハンドリングしてるかという事なら、yesですよ。メモリ取れなければエラーを返す。… "
まさみさんは語りたいさんのツイート: "ただ、カーネル内でメモリが確保できない状況で、ユーザ空間に戻っても大したことはできないだろうなあと。… "
SODA Noriyukiさんのツイート: "小さなサイズのメモリが確保できないケースは、ユーザーに殺すプロセスを選んでもらうくらいしかできませんよね。これに対しユーザーが指定した大きなサイズのメモリを確保するたぐいだと、単にその処理だけ失敗させて以後ふつうにシステムが動き続けることも多いんじゃないでしょうか。… https://t.co/8inAx1SUKx"
Ryou Ezoeさんのツイート: "mallocが失敗した時 Linuxは失敗しない。メモリが足りなくなったらOOM Mac OSは失敗しない。メモリが足りなくなることはないという前提 Windowsはどういう戦略だっけ?"
SODA Noriyukiさんのツイート: "いや ulimit コマンドで制限かけられるので、mallocがNULL返すことがありますよ>Linux 例えば $ ulimit -v 10000 としておいて malloc(20000000) すると NULL が返ります。… "
TokusiNさんのツイート: "Win32は失敗する。Win64はどうだろう?確保しすぎるとOSの操作が困難になるぐらい重くなるから、その状態で更に確保して失敗するのは難しいんじゃないかなぁ… "
まさみさんは語りたいさんのツイート: "ああ、確かにサイズ依存ですね。あとはkernelで使うメモリなのかどうかも。… "
SODA Noriyukiさんのツイート: "ですよね。システムコールの引数サイズが可変でいったんカーネルメモリにコピーするみたいな処理だと、コピー先のカーネルメモリが確保できなかったら ENOMEM 返すのは簡単なわけで。… "
まさみさんは語りたいさんのツイート: "そんなこと無いやろ。error injectionもあるんやで。… "
Ryou Ezoeさんのツイート: "メモリ確保を失敗させると、今まで現実に動いてこなかったカーネル内のメモリ各区歩失敗のコードが動き始める。どんな不具合が表に出るかわからないので今更挙動を変えられない。しかし、メモリ確保が失敗しないならカーネルのメモリ確保失敗時のコードはすべて無用だ。"
まさみさんは語りたいさんのツイート: "Linuxカーネルでもレイヤが低いところでのメモリ確保は厳禁だし、逆にユーザに近いところはバンバン使う。そこはレビューで指摘されるしね。"
Miura Hidekiさんのツイート: "https://t.co/9Tulw464Mf 普通に売っている機器の組み込みプログラムはみんな何らかの対処をしていると思う。そうしないと、メモリが足りないから機械が動きませんじゃダサすぎる。"
Miura Hidekiさんのツイート: "まあ、あらかじめ非常用のメモリ領域を確保しておいてそれを使って要らない領域をfreeしたり圧縮したりがありがちなパターンかな?"
SODA Noriyukiさんのツイート: "小規模な組み込みプログラムはmalloc()使わず固定配列使ってるものが多いイメージがあります。ガラケーくらいリッチなハードになってもそんな感じに仕様で上限が固定数値になってたりとか。これがAndroid使ってるくらいまでリッチなハードになると対処してる方が多数派になりそうイメージが。… https://t.co/C5lCIXaYJT"
Miura Hidekiさんのツイート: "小さいのは確かにそうですね。あまりリッチなのだとメモリを使い果たしてもLinuxは落ちないという話になってアプリケーションレイアの話ではなくなる気もします。私が唯一経験のあるプリンタを想定していました。あと、おそらくテレビとかもそうじゃないかなと想像しています。… "
まさみさんは語りたいさんのツイート: "組み込み系とUnix系OSSとの相性が悪いの、mallocの話で理解できた気がする。小さいリソースから始めたプログラムは、リソースを固定的に扱い、徹底的に搾り取るのに対して、Unix系ではメモリは仮想化されたリソースで気にせず使うコーディングが許されてるからなあ。"
Fadisさんのツイート: "oomkillerが走るほどメモリが逼迫している場合、既にページアウトできるものは頻繁に追い出されている状況なはずなので、ハードディスク等の絶望的に遅い2次記憶を使っている場合、プロセスがoomkillerに落とされる前にまずホスト上でのあらゆる処理が死ぬほど遅くて何もできない、という状態になる"
星山 等(E-SW20改)さんのツイート: "とある仕事でボード刷新してメモリが倍増するからOS使うよう再設計できるって喜んでたら、μITRONのシステムコールで使うリソースを全部調べて全タスクぶん集計して、メモリきつかったから使うシステムコールを制限する哀しいお仕事が待ってた記憶が蘇った。 仮想記憶ナニソレな世界は切ない…。… https://t.co/x2VrokzT1I"
noblesse obligeさんのツイート: "最近はミドルの規模も大きいのでそこそこ余裕あるメモリを積んで動的に確保するほうが流行りなきがします。きっつきつにリソースを管理してるのはコストと性能要求がシビアで要件を満たすギリギリのSOCを選定するところですかね。… "
Satoru Uedaさんのツイート: "そのようなことも、ディストロが成長するのを阻害する要因。… "
GAUCHOさんのツイート: "弊社もついこの間まではコスト最優先でしたね。 いざ、スペックを見せられて、アホか!こんな貧弱なメモリーとプロセッサで作れるかー!ってなりましたもん。… "

abort

このコード、オシャカルトっ!さんのツイート: "malloc系の関数でmemory corruptionでプログラム終了するときとか、abort()でプログラム終了する時の処理が今までと変わったりしてるんだな。 GNU C Library 2.27 released - https://t.co/CFSv43R4Zw"
GNU C Library 2.27 released [LWN.net]
KOSAKI Motohiroさんのツイート: "glibc 2.27 でついにabortが正しく async signal safeになりました。いままではバカなことにabortないでIOをflushしていたので、signal contextなどで呼び出した時は最悪デッドロックしていました。abortの途中でデッドロックして嬉しい人はいないため、これはよい変更。というかなぜ20年ほっておいた"
まさみさんは語りたいさんのツイート: "abortが必要なほど複雑なプログラムは書いていなかった・・・とか?… "
Ryou Ezoeさんのツイート: "めったに起こらないので、ハードウェアの問題とかソフトメモリエラーを起こす程度の確率と同じであれば、そのように認識されてしまったで問題視されていなかったのかな。 https://t.co/xa88xIFMpL"
まさみさんは語りたいさんのツイート: "abortじゃなく、ちゃんとソフトウェアのエラーを回収できるように考えられたプログラムしか書いていなかったとか。そもそもabortが信用できないっていう状況なんだったら、そのようにソフトウェアを書くことが前提になっていた可能性もある。"
KOSAKI Motohiroさんのツイート: "abortがちゃんと動かないって地味に困るんですよ。バグってassertに引っかかったら、ちゃんと終了してほしいんですよ。プロセス終了してくれたら、外で監視ソフトが異常検知してリカバリに移れるんですよ。デッドロックはそういうチャンスが失われるんですよ"
SODA Noriyukiさんのツイート: "なんでこんなことになってんだっけと見てみたら、古いPOSIXだとflushが必要だと規定されてて、後でasync-signal-safe規定が入ったのか(→ https://t.co/1iuJ50DUpQ )。4.3BSD tahoeだとflushしてないので、これはSystem-V Interface Definitionが悪さしたんじゃないかしら。 https://t.co/EXX0VBOAnF"
abort
本の虫: glibcのabortマニュアルの中絶方針ジョークについて
Kazuho Okuさんのツイート: "RMSが実際に強権を発動したわけではないし、検閲規制委員会は誤訳だし、メキシコシティ云々も関係ない気が / “本の虫: glibcのabortマニュアルの中絶方針ジョークについて” https://t.co/swYqITC4yI"
Kazuho Okuさんのツイート: "まあ、RMSが「GNUは純粋な技術的プロジェクトではない」から、他のコミッタのコンセンサスを無視し強権を発動してジョークを戻す、と言ったのは確かだし、そういうプロジェクトなんだということなのかなーとは言いたくなる"

@kazuho

Kazuho Okuさんのツイート: "あれ glibc で free 時に解放されるメモリを何かでフィルする機能(macOSでいうところのMallocScribble)みたいなのってないんだっけ"
Kazuho Okuさんのツイート: "asanがscribbleもしてくれるんだっけ"
Kazuho Okuさんのツイート: "ああこれは負荷低くて良さそうですね。ありがとうございます https://t.co/pgFnkQ9q9y"
Yusuke Endohさんのツイート: "C 言語で、malloc でドカッと取ったバッファの中から、struct 用のバッファを切り出すポータブルな方法ってないんでしょうか"
Kazuho Okuさんのツイート: "@mametter structのサイズは必要なアラインメント(これは2のべき乗)の整数倍になるので、min(2**tzcnt(struct T), cache_line_size) みたいな感じてアラインメント取ればいけるはずです"
Yusuke Endohさんのツイート: "@kazuho それってポータブルなんでしょうか。。。"
Kazuho Okuさんのツイート: "@mametter 2のべき乗以外のところでアラインメントを取るアーキテクチャがない限りはポータブルだと思います。"
Tanaka Akiraさんのツイート: "@kazuho @mametter C11 には Every valid alignment value shall be a nonnegative integral power of two. という文章があって、2のべき乗なのは保証されているようです。(ちゃんと原文にあたったわけではありませんが)… https://t.co/BF7f4VTVaK"
Kazuho Okuさんのツイート: "これまでちゃんと考えたことなかったけど、char [128] を確保するようなケースだと、calloc のほうが malloc よりメモリ効率がいい実装がありえるのか。なるほどなぁという感じ"
Kazuho Okuさんのツイート: "最近のmallocだと差はないだろうけど、メモリプールから切り出す実装だとcallocのインターフェイスを踏襲すべきなのかも。そもそも小容量のmallocの最適化を狙っているわけだし"
Tanaka Akiraさんのツイート: "@mametter C11 に alignof が入ったんじゃなかったっけ https://t.co/xdOrRvtTaK"
Yusuke Endohさんのツイート: "@tanaka_akr これをつかって、char* を intptr_t にキャストして alignof の倍数になるように調整する感じでしょうか。うーん、なるほど"
Yaðuaki Möritaさんのツイート: "@mametter @tanaka_akr max_align_tみたいなのありませんでしたっけ"
Yaðuaki Möritaさんのツイート: "alignof(max_align_t)でアライン取ってしまえば効率は悪いけど変なアラインを踏むことはなくなりそう。C99とかだとmax(sizeof(long double),sizeof(uintmax_t))とかでアラインとればいいのかな"
Kazuho Okuさんのツイート: "C言語でアプリケーション書く最大のメリットのひとつが、メモリ管理戦略を含むデータ構造の設計を自由に行えるというところだというのは、強調してもしすぎる論点ではないと思う… "
Kazuho Okuさんのツイート: "H2OはWebサーバとしては小規模だけど、メモリ確保手法だけでもmalloc/free、プール、参照カウント、バッファ(一定サイズを越えるとtmpfsベースになる)の4種類を使い分けるようになってるし、まあそんな感じでやるもんです。大容量バッファをメモリ管理戦略の一部にできるのは64bit時代ならでは。"
Kazuho Okuさんのツイート: "細かいこと言うと、メモリを逐次解放するつもりがないなら、malloc呼ぶのは誤り。大きなブロックを確保して、先頭から順次使っていくのが正しい戦略です。処理が単純化し使用メモリ量が減り局所性が向上する結果、速度が向上する。世代GCやサーバ等多くのプログラムで用いられる一般的な手法です"
Kazuho Okuさんのツイート: "リクエストで使う文字列→リクエスト毎のプールで確保し、完了時にまとめて解放 同一H2接続のリクエスト間で共有するHPACK文字列→参照カウンタで確保しプールに登録。全てのリクエスト完了時に解放 POSTデータ→tmpfsにフォールバックするバッファに確保 H2接続を表現するオブジェクト→malloc/free"
Thoughts on GCs | κeenのHappy Hacκing Blog
Kazuho Okuさんのツイート: "ユーザ「終了時にメモリリークしてるってasanが言います」 僕(めんどいなー。どうせmainで確保してるコードだしallocaに変えよう。。。) ユーザ「修正を確認しました。ばっちりです」 僕「アラォッケーってか」"
Kazuho Okuさんのツイート: "goto禁止教の人たちはソースコード見せなければ無害だけど、メモリ解放必須教の人たちは防ぎようがないんだよね"
Kazuho Okuさんのツイート: "struct S *s; ... s = malloc(sizeof s); とかみんながやるミスでしょ。やったことない人いるの?"
Kazuho Okuさんのツイート: "p = malloc(sizeof *p) は不整合が脆弱性につながるイディオムなのでラッパ書いてる人も多いんじゃないかな"
Kazuho Okuさんのツイート: "「malloc失敗時にabortしていい」という主張は、malloc失敗を異常ケースとみなしていいという主張と同義なんだけど、昔はmalloc失敗はよくあることだったし、ディスクが遅いから自動保存なんてできなかったので、mallocに失敗してからファイル保存処理を実行できる必要があったとかなんとか"
7594591200220899443さんのツイート: "一年考えてまだなぜclangがこのコードを吐くのがバグじゃないのか理解できない。*p=1;(なにか);return *p;をclangはreturn 1;に最適化しているわけだけれども、なぜ(なにか)がpをぶっ壊してないことが静的に確定するのか?mallocがちょうどそのアドレスを返すことがあり得るよね?わからん。… https://t.co/2EJdGVDKqq"
John Regehrさんのツイート: "here we try to guess the value of a pointer -- LLVM says we cannot guess it and GCC suspects we can https://t.co/iPzc11HRdR"
Compiler Explorer
Miura Hidekiさんのツイート: "mallocをどう解釈するかじゃないかなー?mallocを厳密にメモリ領域を確保するという解釈ならmallocのコールとoffset 0のデリファレンスをコード生成しないといけないだろうけど、mallocはローカル変数のように同じセマンティクスが実現できれば実体は無くていいという解釈ならclangの方法も正しい"
Kazuho Okuさんのツイート: "mallocは常にエイリアスされ得ないアドレスを返すという関数宣言属性 __attribute__((malloc)) があって、それを認識してるだけでは?… "
Kazuho Okuさんのツイート: "というか、*(int*)0xfeedcafeする時点でimplementation-defined behaviorになり、そして当該処理系は、mallocが返しうる領域をユーザがmallocを経由せずに指定した場合の挙動は定めていない、ということのような気がします… https://t.co/PtQpVsTsua"
Kazuho OkuさんはTwitterを使っています 「slabっていうのかbinっていうのか知らないけど、各malloc実装があらかじめ用意している小容量のスロット群のサイズ一覧表みたいなのあるのかな。 何に使いたいかというと...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「たとえば、18バイトの領域が4個必要だったとして、それは固定で確保しておいたほうがいいのか、mallocで18バイト毎に確保すればいいのか、みたいなことをパッと判断したい。 32バイトのbinが使われるなら、要素あたりのメモリ使用量はポインタ含め40バイト になるからmallocしなくていいか、とか...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「20バイトのbinが使われるなら、mallocもありかな、とか... 実際は20バイトのbinなんてないと思うけど、例として挙げてます」 / Twitter
Kazuho OkuさんはTwitterを使っています 「最近の64bitサーバなら、一番オーバーヘッドが少ないmallocでも16,32,48,64あたりじゃないかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「だいたい、malloc/freeとか、フラグメンテーションが起こりやすい仕組み使ってていいのは中学生までやねん。プロは動的メモリ管理はハンドルでやってコンパクション対応する …って、じっちゃんが言ってた」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「これ若者にはギャグだと通じないんですが大丈夫かな… # 解説: # 仮想記憶導入前に作られた太古のMacOSやWindows には、生ポインタ(*p)じゃなくポインタへのポインタ(**p)を使ってメモリ管理をする仕組みがありpをハンドルと呼んでいたのぢゃ # OS側が**pを勝手に変更してコンパクションしてたのぢゃ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「仮想記憶がある場合、論理アドレスは一定に保ったまま物理空間でコンパクションできるので、(論理アドレスを使う)ユーザ空間ではコンパクションを気にしなくてよくなった、という言い方もできますね。ページサイズ&lt;&lt;物理メモリ量なら、それで問題ない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「マルチスレッドプログラムにおいてmmap, munmapが間接的に呼び出されるケースでは、freeのほうが圧倒的に重たいという理解して(tlb shootdownのため)」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「一昔前の「malloc より free の方が重い」という通説が今でも真なのかも私にはよくわからんし、この辺は本当にちゃんと実装をおっかけてないとわかんねーんだなこれが。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「malloc/freeの重さは実装や条件によって変わるから、前提なしに色々言うひとの意見は無視するぐらいでいい」 / Twitter

はろさんはTwitterを使っています: "#DroidKaigiA 「dalvikでは、dlmalloc, ARTではRosAllow。Segeregated free listを使い、並行メモリ割当に対応。」そういや、最近はjemallocがdefaultやね。Android."
OS作れないマン WalB担当さんのツイート: "OSのメモリ管理方法として、可変長メモリブロックの先頭に管理用ヘッダを埋め込んでリンクリストを形成する方法に名前がついてた気がするけど、なんだったかな。"
ゆたかさん🐬さんのツイート: "freeよりもmallocのほうがコストがかかるので、処理高速化のため実際に解放せずプールしているのだと思われます。 https://t.co/npAdD3xnfo"
Rui Ueyamaさんのツイート: "なぜ速いかというと必要なメモリをスタックだけからアロケートしているというのと(やっぱmallocは遅い)、適切な中間表現を作ってパーズと文字列化を分離しているからだと思う。適切なデータ構造を選べばプログラムは簡単で速くなるんだなぁという感じ。"
Rui Ueyamaさんのツイート: "いま思えばできる限り速いmallocを書くという課題(ベンチマークのスコアで点数がつく)は教育効果高かった。他人にシステムズプログラミングを教える立場になったらあれは活用したい。"
がちゃぴん先生さんのツイート: "glibc 2.26 がリリースされました。今回は小粒な変更な印象。malloc の per-thread cache がパフォーマンスインパクト大きそうかな"
Fadisさんのツイート: "mallocを使わないプログラマ、Cが透けて見えない言語の使い手の可能性と、ベアメタル魔人の可能性がある"
Fadisさんのツイート: "mallocを使わない人、最近はHugepageを使わないとTLBミスががががが、な人達もいるか"
島鉄雄さんのツイート: "ゲームだと以下の原因がある。 1.メモリが枯渇している→特定の手順の時だけメモリ不足になる→フラグメントにより大きな空きが無い 2.同じアドレスでfreeを2回する(malloc管理領域が破壊) 3.メモリ破壊(free後に書き込む等) 1.2.はmalloc()をデバッグ機能付きにすれば対処可能だけど、3.は地獄…… https://t.co/gpPYUz1hTu"
島鉄雄さんのツイート: "ちょっと間違ってた… 1.の場合は NULL が返ってくるだけだから malloc で SEGV は発生しなかった。(NULL チェックしてなければその後 SEGV だが) 3.は必ず malloc が SEGV する訳じゃないけど、malloc の管理領域を破壊すると malloc の SEGV が発生する、という感じか。"
OS自作 uchan_nosさんのツイート: "フル機能のsprintfは場合によってはmallocを呼ぶのでクソ.mallocとか絶対に呼ばないsprintfが欲しい."
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「20数年の時を経て、malloc/free論争の再開(笑) (当時、プロセス終了でリソース開放なら終了時freeは無駄、が多数派で終わった感) https://t.co/h9dteQ3XfV」 / Twitter
FadisさんはTwitterを使っています: 「C++のRAIIによる確実なメモリの解放、プロセスの寿命を超えて生存するNVDIMM上のデータの前では無力で厳しい」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「記事がめっちゃ長くて読めてないんだけど、高位アドレスから低位アドレスに向かって確保するのが効率的な理由を、誰か一言で理由を教えてくれませんか」 / Twitter
hikaliumさんはTwitterを使っています: 「@uchan_nos 高位から低位に確保すれば、アライメント合わせが切り捨て方向になる 確保サイズが空き容量よりも大きい時のオーバーフローの考慮が1個減らせる つまり条件分岐が減る だから速い」 / Twitter
Masaki HaraさんはTwitterを使っています: 「https://t.co/arNOjyAz8w 「確保しっぱなし」の簡易アロケーターを実装する場合、メモリ空間の上から下に向かって確保するのがよいという記事。たしかに何も言われないとつい下から上向きに実装してしまいそう。」 / Twitter
Always Bump Downwards
Masaki HaraさんはTwitterを使っています: 「@hutai 用語が古いのか仰りたいことが正確にはわかりませんが、おそらく問題をより複雑に読み違えているのでは。ここでは完全なヒープやガーベージコレクションなどは考えておらず、最もシンプルな形態のアロケーターを考えています。とりあえず元記事の前半を読むといいと思います。」 / Twitter
Masaki HaraさんはTwitterを使っています: 「@hutai 考えていることはシンプルで昔のアーキテクチャにも当てはまるはずなので、昔から「常識」だったとしてもおかしくないとは思います。ただ、それをこうしてブログにしてより多くの人に知らしめた人が偉いのであって、暗黙知だったとあとから主張されてもあまり意味がないのかなと思います。」 / Twitter
uchanさんはTwitterを使っています 「Intel Pinで解析対象プログラムのmallocを置き換え,ヒープオブジェクト一覧を得ることができた。『動的バイナリ解析の基礎』っていう同人誌に従ってやってみただけだけど。 https://t.co/L4ApEgvBKK https://t.co/SavCYgjuQK」 / Twitter
動的バイナリ解析の基礎 - バイナリイーター - BOOTH
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「とくにRustに限った話ではないが、例えばC++ならデストラクターを実行する必要がない型にしておいてmonotonic_buffer_resourceからメモリを確保するなどしてちょっと最適化できるかな。」 / Twitter
κeenさんはTwitterを使っています 「んー、この発想はなかった。RustにGCがないとはいっても、大きなデータ構造を開放するときはstop the world的なのは起きうる。それを別スレッドに逃がす話。 Rust: Dropping heavy things in another thread can make your code 10000 times faster https://t.co/s0CRKTvemi」 / Twitter
Rust: Dropping heavy things in another thread can make your code 10000 times faster
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「結局問題は、複雑なノードベースのデータ構造を構築する大量の小粒なメモリ群を一つづつ開放していくコストなので、専用のアロケーターを使えば効率的になる。」 / Twitter
Kentaro HaraさんはTwitterを使っています 「Chromiumのメモリ管理周辺のコードはガチガチに最適化してあるんだけど、たまに観察される現象が「関数をインライン展開しないほうが速い」。最近のCPUは相当賢いので、(インライン化による命令数削減のプラス効果)&lt;(コードサイズ肥大化による命令キャッシュミス増加のマイナス効果)になりうる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「見識ありそうな人達の結論は「(まともなOS上なら)終了時freeは時間の無駄」だったかな。」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「malloc and free とは: かつて fj.comp.lang.c というニュースグループにおいて「プロセス終了時に free すべきか否か」という議論が紛糾し、1年以上続いた。 https://t.co/j64t4aYS6g で読めるけど有益な情報は特にないので読まなくていい。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお「時間の無駄」と表現したけど、「無意味」なだけでなく、実際のUXを悪化(なかなか終了しない)させる場合は積極的に悪い、という含意もあり。」 / Twitter
ytakanoさんはTwitterを使っています 「mallocだけでaligned malloc作れるのか。メモ。 https://t.co/epXTIA5mwS」 / Twitter
Generating Aligned Memory - Embedded Artistry

AoiMoe a.k.aしお兄PさんはTwitterを使っています 「アロケータまわりも「専用アロケータが正義→今はmallocが正義やで→やっぱり専用アロケータが正義→……」って感じでトレンドが輪廻してる気がする」 / Twitter
Kentaro HaraさんはTwitterを使っています 「チームのみんなががんばってくれました!!🙂これまでChromeはmallocを使ってましたが、徹底的に最適化し尽くした専用メモリアロケータ(PartitionAlloc)に切り替えて、Windowsで22%のメモリ削減を達成しました。セキュリティ面も強くなってます。他のOSも順次置き換えます。https://t.co/S4Me4uN1nS」 / Twitter
Chromium Blog: Efficient And Safe Allocations Everywhere!
Miura HidekiさんはTwitterを使っています 「静的解析や動的プロファイリングをして、そのアプリケーションに最適なアロケータをコンパイラが生成するって考えているけどよい考えが浮かばない。もっと一般化してランタイムを生成するのそのうち行うようになると思う。」 / Twitter
Kentaro HaraさんはTwitterを使っています 「いまどきmallocを再発明してどうするのと言われそうですが、メモリレイアウトを完全に支配できるのでChromeによるChromeのための最適化を徹底的にかけられるんですよね。(あとこれ、大学時代から数えてぼくが関与した6個目のメモリアロケータ作品になります 笑。しゅみ・・・)」 / Twitter
Low-fragmentation Heap - Win32 apps | Microsoft Docs
GetProcessHeap function (heapapi.h) - Win32 apps | Microsoft Docs
HeapSetInformation function (heapapi.h) - Win32 apps | Microsoft Docs

PhoenixWiki

EFI SYSTEM TABLE - PhoenixWiki
EFI CONFIGURATION TABLE - PhoenixWiki
EFI BOOT SERVICES - PhoenixWiki
EFI RUNTIME SERVICES - PhoenixWiki
EFI LOADED IMAGE PROTOCOL - PhoenixWiki
EFI GRAPHICS OUTPUT PROTOCOL MODE - PhoenixWiki
EFI STATUS - PhoenixWiki
Category:Device Path - PhoenixWiki
EFI LOAD FILE PROTOCOL - PhoenixWiki
EFI MEMORY DESCRIPTOR - PhoenixWiki
EFI GRAPHICS OUTPUT BLT PIXEL - PhoenixWiki
EFI GRAPHICS OUTPUT BLT OPERATION - PhoenixWiki
EFI GRAPHICS OUTPUT PROTOCOL - PhoenixWiki
EFI GRAPHICS PIXEL FORMAT - PhoenixWiki
TianoCore EDK2: MdePkg/Include/Uefi/UefiSpec.h File Reference
Category:UEFI 2.0 - PhoenixWiki

MS

高速スタートアップ

System Power States (Windows)
イーサネット - Windows 10 hardware dev
「通常シャットダウン」と「完全シャットダウン」 Windows10高速スタートアップの設定 | Mechalog
富士通Q&A - ハイブリットシャットダウンからの復帰後のサインイン画面で、Num Lock状態が解除される場合があります。 - FMVサポート : 富士通パソコン
Windows 10で高速スタートアップを無効にする方法 – iBitzEdge
ハイブリッドブートを無効にする方法【Windows 8】 | MacRuby
シャットダウンと休止状態とスタンバイ(スリープ)状態の違いとメリットデメリット | パソコンの問題を改善
Windows 10(完全なシャットダウンを実行する) | PC Cafe サービス・サポート編 | パナソニック パソコンサポート
Windows10の通常シャットダウンと完全シャットダウンとスリープの違いとは | The Windowsマスター
Windows10の高速スタートアップって何?速いけど危ない?無効にする方法は? | ligamap
121ware.com > サービス&サポート > Q&A > Q&A番号 018214
Windows 8.1ミニTips (108) 「高速スタートアップ」有効時、BIOS/UEFIを呼び出すには | マイナビニュース
Windows 8.1ミニTips (110) 高速スタートアップが使うハイバネーションファイルのサイズを変更する | マイナビニュース
Windows 8レボリューション:第17回 素早い起動を可能にする「高速スタートアップ」 - @IT
Windows 8で実装された「高速スタートアップ」とはどんな機能か解説 - 道すがら講堂
Windows 8.1ミニTips (107) 高速スタートアップを有効にする | マイナビニュース
パソコンの電源を完全に切る方法 (高速スタートアップを一時的に無効にして完全にシャットダウンする方法) - マイクロソフト コミュニティ
Windows_Japanさんのツイート: "【実は違う「シャットダウン→起動」と「再起動」】 #Windows10 のシャットダウンでは、次の起動を高速化するために、“現在の環境を保存”する機能が働きます。 対して再起動では、“環境をリセット”して起動します。 #豆知識 https://t.co/pk5csWDib9"
Windows_Japanさんのツイート: "【「シャットダウン→起動」と「再起動」の違い】 #Windows10 のシャットダウンでは、次の起動を高速化するために現在の環境を保存する機能が働きますが、再起動では環境をリセットしています。パソコンの調子が悪くなった時は、高速化しない「再起動」を試してみてくださいね。 #豆知識 https://t.co/9o1FbvwS6w"
日記 (2014 年 11 月下旬)
exJP2QNBさんのツイート: "さらに『フルシャットダウン』なんてのもありますね。 シャットダウンより再起動、とのことですが、問題によっては、再起動では直らなくて、シャットダウン→電源オン、じゃないとだめなときもあります。 デバイスの電源管理の問題のときとか。… "
SODA Noriyukiさんのツイート: "SHIFTキーを押しながらシャットダウンするとか、あるいは[設定]=>[更新とセキュリティ]=>[回復]=>[今すぐ再起動する]=>[PCの電源を切る]で呼び出す奴ですね。高速スタートアップOFFのシャットダウンはこれと同じになるんじゃないかと思ってるんだけど、違うあるんでしょうか?… https://t.co/TPU9fhPnLC"
exJP2QNBさんのツイート: "PC内部のデバイスの電源管理に差があることがあります(某社だけ?じゃないと思いますが)。 バッテリー抜いたり、デスクトップならコンセントからプラグ抜いちゃえば、差はないですね。… "

Fast Boot

Windows7でもFastBootが効くってホント? - 週刊アスキー
自作PCをよくするワザ、教えます(3) ~マザーボード 初級編~ - AKIBA PC Hotline!
本の虫: Windows要件を満たしたPCで、Microsoftの屈辱的なライセンスに同意せず別OSを使うのが困難な状況

Microsoft relicensed EDK2 FatPkg to BSD!! | Firmware Security
Windows の UEFI プロトコル - Windows 10 hardware dev
ブート モード管理 UEFI プロトコル - Windows 10 hardware dev
Microsoft UEFI CA の署名ポリシーが更新されました – Windows ハードウェア認定ブログ
USB デバイスから Microsoft Surface を起動する
UEFI ファームウェア - Windows 10 hardware dev
UEFI 環境からのデバイス I/O - Windows 10 hardware dev
Windows UEFI ファームウェア更新プラットフォームの機能の検証 - Windows 10 hardware dev
/MACHINE (ターゲット プラットフォームの指定)
UEFI ベースの推奨ディスク パーティション構成
UEFI 検証オプション ROM ガイダンス - Windows 10 hardware dev
セキュア ブートの無効化 - Windows 10 hardware dev
Clarification of new Windows UEFI/SMM security feature | Firmware Security
PC OEM requirements for Device Guard and Credential Guard | Microsoft Docs
UEFI で OS 起動前の環境を保護する – Building Windows 8
山市良のえぬなんとかわーるど: Tips: Windows のインストール時に UEFI か BIOS か判断する方法
11月の月例アップデートで一部のLenovo製ラップトップが起動不能に - 窓の杜
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「VS2013まで、snprintf で n を超える場合、\0が付かない上に、戻り値に-1が返るという仕様だった。 https://t.co/KdPadErguz strncpy共々使いづらいため、snprintfz とか strncpyz みたいなオレオレ関数を作って対処していた。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「逆に、VS2015以降のsnprintfがC99準拠になっていたのを初めて知った。」 / Twitter
UEFI scanner brings Microsoft Defender ATP protection to a new level - Microsoft Security

Intel

The Linux EFI Boot Stub | Intel® Architecture Firmware Resource Center
https://firmware.intel.com/sites/default/files/resources/A_Tour_Beyond_BIOS_Memory_Map_in%20UEFI_BIOS.pdf
A_Tour_Beyond_BIOS_Memory_Practices_with_UEFI.pdf
Address Range Partial Memory Mirroring | Intel® Software
intel/ModernFW

Plamo Linux

第77回 Plamo LinuxのGPT/UEFI対応[その1]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
第78回 Plamo LinuxのGPT/UEFI対応[その2]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
第79回 Plamo LinuxのGPT/UEFI対応[その3]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
第80回 Plamo-6.1 released:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社

SMBIOS

SMBIOS | DMTF
www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.0.0.pdf

GitHub

clover/OhciDxe at master · Clover-EFI-Bootloader/clover
uefireverse/efiperun at master · jethrogb/uefireverse
EDK II white papers · tianocore/tianocore.github.io Wiki
fuchsia-mirror/gigaboot20x6: GigaBoot20x6 - A Simple UEFI Bootloader for Magenta
edk2/Command.c at master · vathpela/edk2
thasenpusch/ExOS at aca6a389d54ae7c08e5073eae50d1ef134d7b322
AuberLin/PiSmmSCRT
ornitorrincos/OS at 1d3284be4af4da2a9690b89ebd958e6ca53ce8e6
x86, efi: Retain boot service code until after switching to virtual mode · shr-distribution/linux@916f676
BOOT UEFI · seporaitis/fuchsia Wiki
uefi-programming/process.c at master · zhenghuadai/uefi-programming
MatthewClarkMay/secure-boot-mok-scripts: Set of scripts I wrote to simplify UEFI Secure Boot Machine Owner Key generation, and signing of Nvidia, VMware, and VirtualBox kernel modules. These MOKs can be used to sign other kernel modules as well.
Microsoft UEFI capsule update package on GitHub | Firmware Security
MS_UEFI/MsCapsuleUpdatePkg at share/MsCapsuleSupport · Microsoft/MS_UEFI
ちくわさんのツイート: "今現在開発中のyabits/uefiですが,OpenBSD 6.2が起動することを確認しました.これで少しはTianoCore以外のUEFIができた,と言えるのかな? https://t.co/P5uPiTPnhR https://t.co/5mFxTEpX5k"
yabits/uefi: A minoca based UEFI coreboot payload
Fadisさんのツイート: "Microsoft、TianoCoreのEDK2をforkして「ぼくのかんがえたさいきょうのUEFIアプリケーション開発用ライブラリ」を作るオープンソースプロジェクト Project Mu を立ち上げ https://t.co/huBeVkFboO"
Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore - Phoronix
Project Mu
Unofficial EDK2 nightly build | EDK2 Nightly Build
How to debug OVMF with QEMU using GDB · tianocore/tianocore.github.io Wiki
edk2/Readme.md at master · tianocore/edk2
retrageさんはTwitterを使っています 「はりぼて状態だけど,Rustで書かれたEFI互換なfirmwareでUEFI Secure Bootが利用可能なUbuntuの起動がImageの変更なしにできるようになった.shimとか使ってても動きます.」 / Twitter
retrage/rust-hypervisor-firmware at vanilla-ubuntu-boot
retrageさんはTwitterを使っています 「shimx64.efiとかのデバッグ,ソースコードが公開されている分winload.efiとかのデバッグよりはやりやすかった.」 / Twitter

Golden Key

Bungling Microsoft singlehandedly proves that golden backdoor keys are a terrible idea • The Register
Oops! Microsoft Accidentally Leaks Backdoor Keys to Bypass UEFI Secure Boot
Oops: Microsoft leaks its Golden Key, unlocking Windows Secure Boot and exposing the danger of backdoors
Microsoft Secure Boot key debacle causes security panic | ZDNet
Secure Boot Isn't So Secure After All: The Golden Key Is Out - Phoronix
Windowsマシンのセキュアブートを無効化できるセキュアブートポリシーが流出、解析結果が公開される | スラド セキュリティ
Windowsのセキュアブート機能が回避可能になっていたことが明らかに - GIGAZINE
Microsoft Mistakenly Leaks Secure Boot Key | Threatpost | The first stop for security news
Secure Boot snafu: Microsoft leaks backdoor key, firmware flung wide open | Ars Technica
Secure Golden Key Boot: (MS16-094 / CVE-2016-3287, and MS16-100 / CVE-2016-3320)
MSのセキュアブートバイパス問題--セキュリティ研究者らが経緯を明らかに - ZDNet Japan
Microsoft、UEFIセキュアブートのポリシーを誤って流出 | マイナビニュース

スラド

Windows 10ロゴプログラムではセキュアブート無効化オプションの搭載が必須ではなくなる | スラド Linux

OSDev

Broken UEFI implementations - OSDev Wiki
El-Torito - OSDev Wiki
Uefi.inc - OSDev Wiki
Debugging UEFI applications with GDB - OSDev Wiki
Livaさんのツイート: "qemuにgdbに繋いでデバッグすると「Remote 'g' packet reply is too long」とか言われてデバッグする問題、16bit->32bit->64bitの遷移が問題らしい https://t.co/jNipyBwgea #liva_notebook"

スライド

UEFIをつくる // Speaker Deck
UEFIでうごくゲームを作ってみた〜2017年夏休みの自由研究〜 // Speaker Deck
UEFI向け自作OSの紹介
EFI Byte Code Virtual Machine for Fun and Profit - Speaker Deck
Practical Rust (Hypervisor) Firmware - Speaker Deck
FadisさんはTwitterを使っています 「rust-hypervisor-firmware: KVMをバックエンドとして動くハイパーバイザ。コンテナのアイソレーション等を目的としており、物理ハードウェアのエミュレーションは目指しておらずvirtio等のデバイスだけを備えた軽量な実装になっている https://t.co/u1OlJwRWhu」 / Twitter
cloud-hypervisor/rust-hypervisor-firmware
Takahiro YamashitaさんはTwitterを使っています 「ExitBootServiceを呼び出した時点でRunTimeフェーズに移行する。 RuntimeServiceはメモリに残ってるから、そいつを意識してメモリ管理しないとダメなのか。 SetVirtualAddressMapをOSが呼ぶ必要がある。 #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「UEFIのランタイムサービスはブート時に一度メモリに置かれた後、OSが起動すると別のアドレスに退かされるため、リロケーションが2回行われる事になる #kernelvm」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@retrage ちなみにRuntime Servicesが保管されているメモリってOSから見るとReservedに見えるけど、直接中の関数を呼び出せるという不思議な作りですよね。EDK2だとnvmemデバイスのドライバが入ってるっぽくてちょっと面白い。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「EFIのRuntime Services、考え方がMS-DOSのhttps://t.co/vqtbFwavaYから変わってなくて面白い。」 / Twitter
Xavier NXのカーネルとVMの話
retrageさんはTwitterを使っています 「なのでWindowsだとIOMMU有効が推奨されています。若干違いますが同じような手法でBoot Servicesを書き換えてSecure Bootが回避できたりもします https://t.co/QXW9homgUB」 / Twitter
るくすさんはTwitterを使っています 「1.5倍速で観返してるけどEFI Runtime ServiceってOS起動してからもremapされて生き残ってるんだな。DMAとかで関数ポインタ書き変えれたらバックドアにできそう #kernelvm」 / Twitter
るくすさんはTwitterを使っています 「全く同じ試みがすでにされてた 草 Attacking UEFI Runtime Services and Linux https://t.co/z5Xp7hr1UP #kernelvm」 / Twitter
Security | DMA | Hacking: Attacking UEFI Runtime Services and Linux
るくすさんはTwitterを使っています 「remapする時は毎回同じアドレスに置かないほうが良さそうですよ "Luckily the location of the Runtime Services table is static and won't change between reboots" #kernelvm」 / Twitter
retrageさんはTwitterを使っています 「@RKX1209 はい、WindowsだとRuntime ServicesにもKASLRが効いていて毎回違うアドレスにremapされます(のでデバッグが大変だったり)」 / Twitter
Satoshi TandaさんはTwitterを使っています 「@retrage @RKX1209 Remapping (KASLR) は仮想メモリアドレスであって物理メモリ上ではリロケーションされないのでDMAに対しては意味ないですけどね 一般的なUEFIの実装はASLRないのでほぼアドレス固定なはず」 / Twitter
retrageさんはTwitterを使っています 「@SatoshiTanda @RKX1209 そういえばそうでした。訂正します。」 / Twitter

技術評論社

第441回 QEMU/KVMでUEFIファームウェアを使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第444回 Ubuntuにおけるセキュアブートの仕組み:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第446回 QEMU/KVMでセキュアブートを利用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第511回 UEFIの設定が変更できなくなる,あのバグの話:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

OSDN

「Coreboot 4.6」リリース | OSDN Magazine
米Microsoftが「Project Mu」を発表、同社のUEFIコアをオープンソースに | OSDN Magazine

Qiita

UEFI Advent Calendar 2014 - Qiita
"えっお前んちのマザーボードlinux入ってんの?" UEFI Built in Linuxのススメ - Qiita
gnu-efiでUEFI遊びをはじめよう - Qiita
FreeBSDのWindows8.1マシンでのデュアルブートのやりかた - Qiita

Twitter

その他

嶋田大貴さんのツイート: "UEFIブートの時に画面つながってないと grubがstuckするの、ECS LIVAだけの問題じゃないっぽい https://t.co/a8XwYlw7I6"
173210さんのツイート: "jethrogb/uefireverse https://t.co/HsgGU1LvPn Linuxで実際にUEFIアプリケーションを走らせてみるという荒業。その発想はなかった。"
iruka3さんのツイート: "ここでx86とかx86_64を持ち出さない理由は、intel系CPUでベアメタル・プログラムを組める人は特権階級な人達だけ、だから。 OS書いたりBIOS書いたりUEFI弄るような人。あとコーデックを高速化する人とか特殊な技能人 https://t.co/V27HEOrwea"
側転幼女おるみんちゃんさんのツイート: "UEFIとACPIとSATAとPCIeとUSBとネットワークでというモダーンなPCで自作OSみたいな本"
СЮУ1228さんのツイート: "@kotatsu_mi あとさぁ、UEFI App/Driverだと間口狭い感じするんだけど、x64入門とか自作OS本の新しいやつみたいに考えるともうちょっと間口広いと思うんだよな。実装的にはUEFI使う感じで"
СЮУ1228さんのツイート: "@kotatsu_mi 15日でできる!UEFI OS自作入門っていう本を二人で書こうぜ #題名ぱくり良くない"
Takanori Watanabeさんのツイート: "@tenpoku1000 いやね、ストレートマップで呼び出したら途中でポインタが吹っ飛ぶ症状がある実装があって、どうも一部のモジュールのフィックスアップがSetVirtualAddressMapで行われるということっぽいので試すかという状況。"
Tsukasa #01 [要出典]さんのツイート: "なるほど、VeraCrypt のレスキューディスクには新たな機能が搭載されてるんだね。UEFI のブート設定が初期化されたとしても、ブートメニューを再追加することができる。これで、BIOS アップデート後も大丈夫!"
Orumin de Izumoensisさんのツイート: "@syuu1228 /sys に UEFI の RuntimeServices が見えなくなるとかのオプションで、UEFI での起動には問題ないらしい"
ゆたかさん🐶さんのツイート: "UEFIモードだとLinux動作中にefibootmgrコマンドで、ブートオーダーを変えれて便利です。いちいち、BIOSのセットアップに入らなくてもよいので。"
太田 一季 (CV.どじょりん)さんのツイート: "@jisaku_Haswell BIOS Flashbackは生のBIOSバイナリ(.rom)を読み込んで直に書き込みするのね UEFI経由でアップデート用の、カプセル化されたバイナリ(.cap)は読み込まないのよー"
🍵🍡Tea Boyさんのツイート: "PC専門サイトでさえ、「BIOSからUEFIに移行」などと言う実態… BIOSはファームウェアですが、UEFIは仕様ですよ??"
tnさんのツイート: "なるほど! UEFIのTCP4 PROTOCOLのハンドラはEFI_TCP4_PROTOCOLのGUIDでLocateHandle使って検索して得るのではなく、EFI_TCP4_SERVICE_BINDING_PROTOCOLのCreateChildを呼ぶと得られるのですね!! 一歩進んだぞ!!!"
EFI_TCP4_SERVICE_BINDING_PROTOCOLとEFI_TCP4_PROTOCOLに関するメモ
ゆたかさんさんのツイート: "BIOS(UEFIファームウェア)はWindowsを起動することを目的として作られるので、BIOS内のOS定義(_OSIメソッド)はWindowsになっていて、LinuxはBIOSがどのWindowsバージョン向けに作られたかを判断して、ハードウェアを初期化しています。… https://t.co/sCRRVdxEz4"
品川 高廣さんのツイート: "そういえば先週 @retrage01 さんの独自UEFI実装 yabits (Yet Another UEFI coreboot Payload) の話を聞いてきました。起動時間が速いそうなので、QEMU + OVMF で UEFI 上の自作OSをやってる人は OVMF の代わりに使うと便利かもしれないと思いました。https://t.co/GCDsCfRMDd https://t.co/TGvQ87r3Kx"
研究千年牛酪情報保管庫菩薩さんのツイート: "MD RAIDのメタデータ領域を壊れたGPTと誤認識して修復しようとゼロクリアするマザボ.... / “scan.php?page=news_item&px=Linux-Software-RAID-ASRock” https://t.co/ULL25yU7Ye"
Some Linux Users Are Reporting Software RAID Issues With ASRock Motherboards - Phoronix
Rui Ueyamaさんのツイート: "lldを使うとUEFIアプリケーションが簡単にビルドできるよ、という話。これよく聞く話なので思わぬところで役に立っているらしい。僕はブートローダーとかは書いたことないです。 https://t.co/2h4ZHk66dX"
Goodbye Gnu-EFI!
NerryさんはTwitterを使っています: 「BGRT正しく表示されない問題どうも液晶の方向と画像の方向に原因がある気がするが、データ上はどの画像も0℃扱いになっててwindowsはどうやって判別してるんだ・・・」 / Twitter
NerryさんはTwitterを使っています: 「画像が縦長か横長で判別することにした:;(∩´﹏`∩);:」 / Twitter
ret2rangeさんはTwitterを使っています: 「UEFI、規格にないだけでEDK2で実装されているがゆえに実質標準で実装されていることになっているProtocolとかたくさんあるんだよなあ」 / Twitter
ret2rangeさんはTwitterを使っています: 「GRUBとかでもそういうのある前提の実装だったりする(Console Control Protocolとか」 / Twitter
ret2rangeさんはTwitterを使っています: 「デバッグでprintfがない環境で値を16進数で出力したいときva_arg使うほどでもないとき、BitVisorのloadvmm.efiにあるprinthex関数が何気に便利だった https://t.co/mfyf4k8HYC」 / Twitter
BitVisor loadvmm.efi printhex
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「fdは「空いている若い番号から使いまわされる整数」と言う点でハマりやすい。 (昔のUNIXはその性質を積極的に使って dup(2) とか…) なお、WindowsのHANDLEはオープン毎のシリアル番号付与で、意図しない再利用はまずない。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@ponkotuy 過渡期の UEFI 2.3b にギリギリ対応してなさそうだけど UEFI なマザーボードは微妙に貧弱なのでマザーボードの設定で CSM(UEFI の Legacy BIOS 互換機能)を無効化しないと,BIOS/UEFI 両方に対応したブートイメージだと BIOS boot のほうを優先して読むようなことがある」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@ponkotuy Windows も 7 とか UEFI boot 対応してるはずなのに CSM を無効化しない限り BIOS boot するようなことがあった(Windows 8 から UEFI 2.3b 対応(つまり SecureBoot 対応)がロゴシール貼る要件になったので,UEFI boot のほうを優先するようになった)」 / Twitter
全手動猫画像RT botさんはTwitterを使っています 「UEFI環境でNetBSDが起動しないときのトラブルシューティング、俺も教えてほしいよ。シリアルコンソールが無いと基本駄目ですね。あとはframebufferにどこまで進んだかをpixelで表現するくらいしかなさげ」 / Twitter
とみながたけひろさんはTwitterを使っています 「ソフトでもハードでもないからファームと呼ばれるようになったのに割と簡単にアップデートできるようになってしまい、何がファームウェアなのかというのも難しくなったなあ」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@takehiro_t ROM(ただしフラッシュメモリ)とか、あのへんわけわからんですね」 / Twitter
とみながたけひろさんはTwitterを使っています 「@satoru_takeuchi ですねー。いまどきもうbt,etherとかのmacアドレスが書き換え可能とか全く驚かないけど、ああそうかここもいまやROMじゃないんだと最初は驚いた記憶」 / Twitter
とみながたけひろさんはTwitterを使っています 「PCでない、で思い出したが、アングラ方面ではbiosと言えばゲーム機の本体ROMを吸い出したイメージで、isoと言えば光学ディスクを吸い出したイメージなのである。まあ「強いユニコード」とかと同じですな」 / Twitter
timelerさんはTwitterを使っています 「なんとなくだけどPCでない機器のデバイスドライバーのイメージ😅 いい方変えるとこれ以外はファームウェアとは呼びたくないww」 / Twitter
強いユニコード - Google 検索
Taisuke 'Jeff' Inoue #WFHさんはTwitterを使っています 「30年ほど前に担当してた「ファームウェア」はフロッピーからブートしてたのでまぁ… 汎用でないハード用のソフトはファームでいいんじゃないかと思うけど、最近はあんまり通じない感もあり、組込ソフト(embedded software)って言っちゃうことが多くなりました。」 / Twitter
retrageさんはTwitterを使っています 「Windows,UEFI Variableがサポートされていない場合を想定していないらしく,BCD由来の値を使った演算を行う場合に特定の環境でゼロ徐算が行われて例外が発生する.」 / Twitter
PG_MANAさんはTwitterを使っています 「ACPIのBootLogo GraphicってEfiBootServiceDataに格納されているんやな...おかげでこの領域をメモリ管理下に安易に置けない...」 / Twitter
retrageさんはTwitterを使っています 「前に見かけたのでDMA attackでメモリ書き換えてチートする、というのがあった」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「普通に調べごとしてたら偶然 Apex Legends のチートの実装にたどり付いたんだけど、特定バイト列探して目的データを見つけるのは古典的な方法として、UEFIにプログラムロードしてるのね……。OSからも見えないところで下でチートツール動いてるやん。これにまともに対処しろってのが無理だわ……。」 / Twitter

1MBを避ける

嶋田大貴さんはTwitterを使っています 「Linux 5.13より、x86(_64)では先頭1MBのメモリを使わないようになるとのこと。先頭の方のアドレスはBIOSにぶっ壊されがちで、個別に対処するのがしんどいのでもう固定で1MBリザーブにしちゃうと。 → Linux x86/x86_64 Will Now Always Reserve The First 1MB Of RAM https://t.co/UXmhGWh21o」 / Twitter
Linux x86/x86_64 Will Now Always Reserve The First 1MB Of RAM - Phoronix
FadisさんはTwitterを使っています 「Linuxカーネルはx86やx86_64で起動する場合にBIOSが使う可能性がある下位64kBのメモリを触らないようになっているが、一部のイカれたBIOSがOSに何の断りもなく下位1MBまで書き込んでいて、1MB以下にカーネルが何か書くと壊れる可能性があるので、1MBまで避けるようになった話 https://t.co/88Jf0ihKuo」 / Twitter
It Turns Out Windows Unconditionally Reserves The First 1MB Of RAM, Linux Was Just Late To Do So - Phoronix
FadisさんはTwitterを使っています 「このパッチについてWindowsも同じ問題にぶつかる筈だけどどうなっとるん、という話がでて、Windowsチームに確認をとってくれる親切なマイクロソフトの人が現れて「その問題があるからWindowsも結構前から先頭1MBは避けるようにしている」という話が飛び出してる」 / Twitter
FadisさんはTwitterを使っています 「1MBまで勝手に使うBIOS、そのPC/AT互換機は本当にPC/ATと互換がありますか感がある」 / Twitter
retrageさんはTwitterを使っています 「去年からCSMが無くなって本格的にx86システムはISAレベルでPC/ATとの互換性があるだけの周りのアーキテクチャは全く別ものなので今日のx86マシンはPC/AT互換機とは言えないと思う」 / Twitter
retrageさんはTwitterを使っています 「PCHになって久しいのに未だにノースブリッジ、サウスブリッジの図で説明されたりするともんにょりする」 / Twitter
Satoshi TandaさんはTwitterを使っています 「@retrage 去年CMSに何があったんですか? ググるとIntelは、2020年までにUEFIに移行する、と2017年に言ってたみたいですけど、実際はどうなんでしょう」 / Twitter
retrageさんはTwitterを使っています 「@SatoshiTanda はい、そのことです。upstreamのedk2でもCSMの実装が無くなっている(OvmfPkgには残っていますが)ようなのでUEFIのみへの移行が進んでいると思います」 / Twitter

OS ベンダ登録

Kimihiro Nonakaさんのツイート: "EFIブートの「/EFI/<OS vendor>/<OS image loader>] についてはUEFI spec https://t.co/STn4Gc05Go 2.7 (Errata A)だと「13.3.1.3 Directory Structure」に記載がある。OS vendorは https://t.co/kqpDxb4Kc4"
SODA Noriyukiさんのツイート: "Debian と FreeBSD はあるんですねえ… NetBSD も欲しいなあ… "
Kimihiro Nonakaさんのツイート: "UEFI Specification Workgroup Chairperson にメールを送れば良いみたいですけど… "
SODA Noriyukiさんのツイート: "おお、ちゃんと見るとそう書いてありますね。 担当は board@ になる気がするのでメールしてみました(のなかさんにも CC: したので届いているはず)。 あとは board member である @_ki_nu さんが取りこぼさずに推進してくれることに期待?(ぉ… https://t.co/ASKcVS5QeV"
Subdirectory Registry | Unified Extensible Firmware Interface Forum

virtio-fs

retrageさんはTwitterを使っています 「virtio-fsがLinux kernelにマージされたのは記憶に新しいけど,最近になってEDK2のOVMFでもサポートが入るようになった.https://t.co/3dt4j9v19C」 / Twitter
edk2/OvmfPkg/VirtioFsDxe at master · tianocore/edk2
retrageさんはTwitterを使っています 「面白いのが直接virtio-fsを実装しているのではなく,間にFUSEのインターフェースを経由して実装されている点.この抽象化レイヤーを使えば他の*nix系のFSを移植するのもやりやすくなりそう.」 / Twitter

@mhiramat

まさみさんは語りたいさんのツイート: "Linaroでuefi-toolsというのを作っていて、これはややこしいビルドを簡単にしてくれるらしい。"
まさみさんは語りたいさんのツイート: "サーバを作って売る上で、LinuxとEDK2って扱いがちょっと違うよね。LinuxはOSベンダがメンテ出来るけど、自社のCPUやボード部分のUEFI対応はある意味BIOSと同じなのでサーバベンダがしないといけない。そう考えるとハードベンダもOSS活動しないといけないのか。"
まさみさんは語りたいさんのツイート: "未踏、tianocore全否定なのか・・・。"
まさみさんは語りたいさんのツイート: "まあ、ソースコードがお世辞にもいいとは思えないし大きいし、というのは理解できるけど、tianocoreもOSSなんだよな。文句があるならまずコミュニティに相談したらどうだ、という風に思っちゃう。"

@nonakap

Kimihiro Nonakaさんのツイート: "EFI_BLOCK_IOのMedia->MediaIdってシステムでユニークという訳では無いんだなぁ…"
Kimihiro Nonakaさんのツイート: "FreeBSDのefipartを参考にDevice Pathをいじくる様に修正しないと駄目だ(´・ω・`)"
Kimihiro Nonakaさんのツイート: ""multiboot2 boot-services EFI specification" "multiboot2 EFI memory map specification" | NEWS - grub.git - GNU GRUB https://t.co/m9lIFSW7Y1"
Kimihiro Nonakaさんのツイート: "efbootだとConventionalMemoryとかLoaderCodeとかLoaderDataとかBootServicesCodeとかBootServicesDataとかが利用可能メモリとして認識されるので、message bufferをなるべく保持したいという要求に応えられない気がする(´・ω・`)"
Kimihiro Nonakaさんのツイート: "たとえばESXi 6.5のUEFI環境だと「000000000dfa8000/000000000fffffff: available [BootServicesData]」が最上位空きメモリ領域なのでmsgbufとしてここを使うはずなので、起動する度にUEFIがぶち壊すと思うんだけどどうなんだろうか"
Kimihiro Nonakaさんのツイート: "efibootを起動した時にConventionalMemoryとして認識されている上位アドレス空間をmsgbufとして使わないと駄目な気がするけど、こんなのUEFI実装によって違うからどうしようもない(´・ω・`)"
Kimihiro Nonakaさんのツイート: "BIOSとは違って最上位メモリアドレス付近は安全ではないのだ"
Kimihiro Nonakaさんのツイート: "Fのloaderは1GB未満、OのLOADSPACEは256MB未満のメモリしか確保しないけど、これを真似してもmsgbufの保護にはならないので真似するのは止めました。UEFIの実装によっては保護になるとは思うけど、そういう実装が多いのか少ないのかは知らん(´・ω・`)"

@yasuoka_m

YASUOKA Masahikoさんのツイート: "@nonakap O では、ExitBootService 後に memcpy しなおすことにしました"
YASUOKA Masahikoさんのツイート: "@naobsd efiboot のシリアルコンソールですが、結局、こんな感じに実装してみました。ここまで頑張った挙句、ポートの特定はいい加減なので、カーネルでは別のポートでした、という問題はありそうな感じなのが弱いです。:) https://t.co/88WqKKVXy6"
'Re: efiboot serial console support' - MARC

@uchan_nos

ファッション自作OSマンさんのツイート: "UEFIアプリとしてOSローダーを作る際のハマりどころ ・空きメモリ領域は機種によって違うので動的に取得する必要あり ・ABIの差。UEFIアプリのABIはMS x64 ABI、自作OSは大抵System V ABIで作るだろう… "
技術書典4 け-51 x86-64-128さんのツイート: "UEFIの仕様ではExitBootServices()した後はBootServiceを利用できないはずだが,実際にある実装では引き続きBootServiceが使えてしまう,らしい. #osdev_moku2"
setup.c\kernel\x86\arch - kernel/git/torvalds/linux.git - Linux kernel source tree
技術書典4 け-51 x86-64-128さんのツイート: "ESPってただのFATかと思っていたら,GUIDが違うのか.知らなかった. #osdev_moku2"

uefi.org

EBC_Driver_Presentation.pdf
UEFI_Plugfest_2011Q4_P5_Insyde.pdf
Windows Boot Environment
edk2-platforms/Silicon/Intel at master · tianocore/edk2-platforms
UEFI Summer Plugfest 2011
UEFI Revocation List File | Unified Extensible Firmware Interface Forum

Acknowledgements · EDK II UEFI Driver Writer's Guide
grub rescueで'grub_file_filters' not foundが出るときの対処方 | κeenのHappy Hacκing Blog
ubuntuのブートローダが壊れたけど、Live環境から「boot-repair」を使って無事修復できました - 日々過ごすブログ
GRUB2(UEFI)のコンソールからの起動メモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
fedora 30からgrubの仕様が変わったのでφ(..)メモメモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
このコード、オシャカルトっ!さんのツイート: "/boot/efi/EFI/xxx/にはBLS仕様になったgrub.cfgがあるので、grub.cfgを参照するというところは変わってなさそうです。… "

証明書

その他

crt.sh | Certificate Search
情報セキュリティ入門 - PKI(前編)---公開鍵を安全にやり取りする:ITpro
インターネット10分講座:RFC5952 -IPv6アドレスの推奨表記 - JPNIC
DigiCert サーバ証明書技術情報
CA/ブラウザフォーラムで可決された「Baseline Requirements ver1.0」の和訳版公開およびGMOグローバルサイン社の対応について - GMOインターネット株式会社
WebTrust(ウェブトラスト)について | SSL・電子証明書ならGMOグローバルサイン
opensslコマンドで証明書情報を確認したい。 | SSL・電子証明書ならGMOグローバルサイン
Webサイトに“安心”をプラス―知らないでは済まされないSSLサーバ証明書の仕組み:一般記事|gihyo.jp … 技術評論社
Symantec→DigiCertでSSL/TLS証明書はどうなる? 日本国内にも認証局構築へ、IoT機器市場も見据え - INTERNET Watch
パスワード解析などに使われる「レインボーテーブル」の仕組みとは? - GIGAZINE
Usage Statistics and Market Share of SSL Certificate Authorities for Websites, August 2017
23,000 HTTPS certs will be axed in next 24 hours after private keys leak • The Register
www7b.biglobe.ne.jp/~k-west/SSLandTLS/rfc2314-Ja.txt

LibreSSL

OSDN

「Heartbleed」セキュリティ問題を受け、OpenBSDがOpenSSLフォークの「LibreSSL」を開発 | OSDN Magazine
OpenBSD、OpenSSLからフォークした「LibreSSL 2.0」のPortable版をリリース | OSDN Magazine
SSLv3やSHA-0サポートを削除した「LibreSSL 2.3」リリース | OSDN Magazine
TLS/SSLのオープンソース実装「LibreSSL 2.4」リリース | OSDN Magazine
開発版LibreSSLの新バージョン「LibreSSL 2.5」リリース、iOSを新たにサポート | OSDN Magazine

Qiita

OpenSSL ライブラリを使ったハッシュ生成、暗号化(RSA, AES)、復号処理(RSA, AES)、署名生成(RSA)、署名検証(RSA) - Qiita
LibreSSL の意義 - Qiita
LibreSSL の現在(2018年2月時点) - Qiita
libtls で TLS 通信プログラミング(クライアント編) - Qiita
LibreSSL を Visual Studio でビルドする - Qiita

Wikipedia

LibreSSL - Wikipedia
LibreSSL - Wikipedia, the free encyclopedia
Comparison of TLS implementations - Wikipedia, the free encyclopedia

libressl-portable/portable: LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code.
Index of /pub/OpenBSD/LibreSSL/
libressl-portable/openbsd: Source code pulled from OpenBSD for LibreSSL - this includes most of the library and supporting code. The place to contribute to this code is via the OpenBSD CVS tree.
OpenSSL
OpenSSL BIGNUM
OpenSSLをSSL/TLSクライアントとして使ってみる | Siguniang's Blog
Kazuho's Weblog: SSL/TLSライブラリの正しい使い方(もしくは、コモンネームの検証について)
Kazuho's Weblog: Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話
第55回 LibreSSL 2.4.0登場:BSD界隈四方山話|gihyo.jp … 技術評論社
OpenSSLに代わるLibreSSL, 最初の30日間
「LibreSSL 2.6.4」リリース | Think IT(シンクイット)
LibreSSL ‐ 通信用語の基礎知識
h2o/neverbleed: privilege separation engine for OpenSSL / LibreSSL
Shigeki Ohtsuさんのツイート: "OpenSSLを始め幅広い暗号ライブラリのECDSA実装に対するサイドチャネル攻撃(CVE-2018-0495)が公開されました。メモリアクセスの測定と格子アルゴリズムを組み合わせ同一ホスト上のVMから秘密鍵を取得できるとのこと。 https://t.co/CZAy0bgL6Z"
Technical Advisory: "ROHNP"- Key Extraction Side Channel in Multiple Crypto Libraries
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「openssl の AES-NI 実装は Perlコードからasm(.S)を吐くような構造らしい。へぇ。 https://t.co/OeNXKbTVMu」 / Twitter
openssl/crypto/aes/asm at master · openssl/openssl

ルート証明書

Mozilla

Mozilla

Mozilla Security Blog

January 2018 CA Communication | Mozilla Security Blog
Distrust of Symantec TLS Certificates | Mozilla Security Blog
Root Store Policy Updated | Mozilla Security Blog
Update on the Distrust of Symantec TLS Certificates | Mozilla Security Blog
【翻訳】CA Certificate Policy バージョン 2.4 リリース - Mozilla Security Blog 日本語版
September 2018 CA Communication | Mozilla Security Blog
Why Does Mozilla Maintain Our Own Root Certificate Store? | Mozilla Security Blog
Mozilla’s Common CA Database (CCADB) promotes Transparency and Collaboration | Mozilla Security Blog

MozillaWiki

CA:Information checklist - MozillaWiki
CA/BR Audit Guidance - MozillaWiki
NSS:Root certs - MozillaWiki
CA/Certificate Change Requests - MozillaWiki

Network Security Services | MDN
mozilla mozilla/security/nss/lib/ckfw/builtins/certdata.txt
CA Certificate Policy バージョン 2.4 リリース – mozilla-japan – Medium
Let's Encrypt Root to be Trusted by Mozilla - Let's Encrypt - Free SSL/TLS Certificates
Mozilla CA Policy 2.4 Published | Hacking for Christ
Mozilla Root Store Policy — Mozilla
pkipolicy/policy.md at 2.4 · mozilla/pkipolicy
Mozilla Root Store Policy — Mozilla

FreeBSD

FreeBSDのSSLのルート証明書のパッケージ ca_root_nss
/pub/FreeBSD/ports/amd64/packages-8.4-release/security/ のインデックス

Japan GPKI

政府認証基盤(GPKI)のホームページ
地方公共団体組織認証基盤(LGPKI)
高木浩光@自宅の日記 - 民間ブランドが行政機関には無益なのならVeriSign独占化を避けるべき, LGPKI Application CAに将来はあるのか
Rockridgeさんのツイート: "Firefox 54で政府認証基盤(GPKI)のルート証明書は削除されたが、政府認証基盤アプリケーション認証局2ルート証明書は現在も追加に向けた手続が進行中だ。参照:https://t.co/a9yqP3Hocz / “1268…” https://t.co/6AePdDrowg"
Rockridgeさんのツイート: "Mozillaは、政府認証基盤アプリケーション認証局2ルート証明書を受け入れるかどうか審査中だが、終盤になって雲行きが怪しくなってきた。いったん要請を拒絶して、手続をやり直すべきとの意見が出てきている。 / “Japan GPK…” https://t.co/EwwapLY2Jo"
Makoto Kato ︎︎さんのツイート: ""The Japanese Government PKI may submit a newly generated root and key-pair for inclusion, and this submission can be made using the existing bug" https://t.co/8wmmF2EaHa"
Makoto Kato ︎︎さんのツイート: "新しいCA Root作れば通りそうではあるので、担当の方と予算次第ですかね。今後は"
Shigeki Ohtsuさんのツイート: "GPKIは、やっぱりMozillaで却下かぁ。https://t.co/6FF31r6Pzk この返事が致命的だったような気がする。素直にlintエラーの証明書を直ちに全部revokeすると返事していれば状況変わったかもしれないのに。"
Shigeki Ohtsuさんのツイート: "Japan GPKI Root Renewal Request https://t.co/JPTlbVx0Xc 5年前にルート証明書署名、4年前にアセスメント、色々問題有り2017年1月に修正完了。その間ずっと証明書を発行だけど規約不適合でまだ有効な証明書多数。いっその事最初からやり直しにすべき(今ここ)"
Shigeki Ohtsuさんのツイート: "GPKI側から2017以前の証明書をrevokeさせるから判断変えてもらえるかと。さっさと失効させてから交渉したほうがいいのにと思うのは私だけ? https://t.co/NfupIEQTxM"
Makoto Kato ︎︎さんのツイート: "LGPKIのルート証明書がRoot 4になってるのを今日知った。というか(もうかかわってないけど)CRYPTRECからの質問状で「Mozillaに申請中」って嘘の返答を言ってたような団体なので、LGPKIは信用してないけどね"
Makoto Kato ︎︎さんのツイート: "CA Browser Forum的にはWebTrust for CAじゃなくて、WebTrust for BRがほぼ必須になるんだけど、for CAとってますって書いてる自体、ホントLGPKIは分かってない"
Makoto Kato ︎︎さんのツイート: "bugzillaみればわかるとは思うけど、(今もめてる)GPKIでさえfor CAレベルからfor BRレベルにするのに1年以上かかったので、まぁね。。。"
Makoto Kato ︎︎さんのツイート: "CAプログラムはどういう団体であっても平等であるべきだよねと。どこの会社のCAプログラムとは言わないけどね"
Makoto Kato ︎︎さんのツイート: "MozillaのCAプログラム通らないってことはAndroidにGPKIのルートCAは入らないってことだからね。わかってない人おおそうだけど。Googleがポリシー変えれば別だけど"
GPKIよ、おととい来やがれ!(タイトルで煽るスタイル) - yumetodoの旅とプログラミングとかの記録
スラきちさんのツイート: "寝る前にGPKI@Mozillaのその後を見たが、「あなたCA要件4.9.1.1(9)満たせないって分かったから結論代わりません」と見事に蹴られてる。 該当要件は「4.9.1.1 CAは以下の状態になった証明書を24時間以内に失効させなければならない…(9)CP/CPS等に従わなくなった証明書」 行政庁で24時間は無理ゲー…?"
dynamis (でゅなみす)さんのツイート: "GPKI終わったのか。 担当者が悪いと言うよりは認証局としての最低要件を満たせるだけの(英語力、セキュリティ意識、業界動向の理解及び権限を持つ)スタッフを確保できない運用計画と予算で立ち上げた計画側の責任でしょうね。 https://t.co/J48F8sYh3w"
dynamis (でゅなみす)さんのツイート: "そう言えばHTTPサイトで証明書配ってるお笑い認証局も医療従事者向けに運用されてるな。 それに比べればGPKIはまだマシかも知れんが、今の日本のエンジニア軽視姿勢でまともな認証局運用できる日はこなさそうですね。"
Makoto Kato ︎︎さんのツイート: "外野向けに見える部分で色々GPKIのこと書かれているのは色々読んだけど、まぁ自分が担当者だったとしたらみんなCAプログラムパスできる自信あるのかなぁと"
Makoto Kato ︎︎さんのツイート: "個人的に言えば、担当者がというよりも予算ですね、あれの場合。なので担当者の問題というより政治の問題かと思う。特に国なので透明性が必要だからプロセスに時間もかかる"
Makoto Kato ︎︎さんのツイート: "なので総務省はWoTとかIoTとかに予算割り振る前にe-GOVに対してちゃんと予算振り分けて欲しかったというのが、内情を知る人間としてのGPKI の総括ですね"
Makoto Kato ︎︎さんのツイート: "行政管理局がもしまだやる気であれば、Application Root 3作って、WebTrust for BR通してって話になるし、また入札必要だろうからまぁ1年コースかと"
Makoto Kato ︎︎さんのツイート: "https://t.co/Vzbdv3znvY 記者さんってなんでWindowsな視点しかないんだろ。Mobileの視点がないと見え方が違うと思うんだ"
Firefoxが政府認証基盤のルート証明書を認めず、「ユーザーのセキュリティを害する」 | 日経 xTECH(クロステック)
KIMATA RobertHisasiさんのツイート: "MozillaがGPKIを認めなかった件。調べれば調べるほど「Microsoftは認めんなよ」感が"
Makoto Kato ︎︎さんのツイート: "GPKIについてみんな勘違いしているのは、昔 GPKI Application Root 1はちゃんとMozilla CA RootとしてApprovalされた (そのときの基準では)。その後SHA256なGPKI Application Root 2で置き換えるためにあのBugがあって、それがWontfixになったってこと"
Makoto Kato ︎︎さんのツイート: "ここ数年、CAに関してはとんでもないインシデントが多かったために許可基準が非常に上がってる"
Makoto Kato ︎︎さんのツイート: "MozillaのCA Policyのはバージョン上がるために基準が上がってってるんだけど、Microsoftは政府案件だといろいろ違うらしいってことがあるっぽくて、まぁ日本マイクロソフトの社長室かパブセクかはしらないけど、まぁ彼らが絡むとセキュアなんてないのではって思ってる"
Rockridgeさんのツイート: "Mozillaは、米国時間の2018年2月27日、政府認証基盤(GPKI)アプリケーション認証局2ルート証明書を受け入れないことを決めた。参照:https://t.co/vwlvWwY553 / “870185 - Add Re…” https://t.co/PDYdOhA7OK"

korea GPKI

Makoto Kato ︎︎さんのツイート: "みなさん知らないかもしれないけど、お隣の韓国のGPKIもRejectされてるからな https://t.co/SP67i880hG https://t.co/2Wm1XvRxJr"
Makoto Kato ︎︎さんのツイート: "韓国のGPKI、*.or.krを発行してたりして面白すぎなんですが、MSやChrome的にはなんのお咎めがないんですよねー https://t.co/mH0VpgmlZR"

Twitter

Rockridgeさんのツイート: "Mozillaのルートストアポリシーがバージョン2.5に改訂され、認証機関はネットワークのセキュリティに関する業界のベストプラクティスを実践することが求められるようになった。 / “Mozilla Releases Versio…” https://t.co/umzXruNNlY"
Mozilla Releases Version 2.5 of Root Store Policy | Mozilla Security Blog
Rockridgeさんのツイート: "Let’s Encryptのルートキー(ISRG Root X1)がFirefox 50においてデフォルトで信頼されることになる見込み。既存の認証局であるIdenTrustと提携することで早期に実現した。参照:… https://t.co/gsLgM6iXRG"
Jxckさんのツイート: "Firefox50 に先行して Let's Encrypt 自身の証明書が入るらしい。でもルートとして正式に認定されてない証明書入れるのってどうなんだろう。。 / “Let's Encrypt Root to be Trust…” https://t.co/SDEaymqosm"
Rockridgeさんのツイート: "Fx57:ルートCAモジュールの読み込みが非同期化された。起動速度の向上が期待できる。参照:https://t.co/ePDJWKjLST / “1372656 - load loadable roots on a backgr…” https://t.co/6qf6ul3j0P"
the root CA module now loads asynchronously - Google グループ
Rockridgeさんのツイート: "DigiCertがSymantecの認証機関ビジネスを買収したことで自動的に信用が回復することはなく、Mozillaが示す各種懸念事項に解決策を示す必要があるという話。 / “Statement on DigiCert’s Pr…” https://t.co/GHyUJDKv7u"
Rockridgeさんのツイート: "Fx59:セコム電子認証サービスのルート証明書が削除された。Fx58で無効化済み。参照:https://t.co/Qzdr85qfxm https://t.co/4GCbSbwSax / “1410544 - Remove "S…” https://t.co/hmSrIm3Avi"
Rockridgeさんのツイート: "「Firefox の 今後の信頼無効化措置 は Google Chrome と歩調を合わせており、GeoTrust、RapidSSL、Thawte、Verisign といったすべての Symantec ブランドに適用されます。」 https://t.co/CxvYlcqJ8l"
Symantec から発行された証明書の信頼が近く失われます (影響あり) | Firefox サイト互換性情報
Rockridgeさんのツイート: "Symantecから発行された証明書の信頼無効化措置は、Firefox Nightly 60で有効化されたが、Betaチャンネルへの投入については、Chromeの動向を見てから決める模様。 / “1442075 - Enforc…” https://t.co/JdDEcKKseM"
Rockridgeさんのツイート: "Mozillaの調査によれば、Symantecから発行された証明書の信頼無効化措置により、現在、トップ100万サイトのうちの約1%で、接続が安全でない旨のメッセージが出て閲覧が一時的に遮断される状況となっている。 / “Dist…” https://t.co/UAJGQLjgJm"
Distrust of Symantec TLS Certificates | Mozilla Security Blog
Rockridgeさんのツイート: "Mozillaの調べによると、Symantecの証明書を排除した場合、上位1万のWebサイトでエラーが出るケースは、2018年2月23日時点では299件だったが、同年3月16日時点では86件にまで減少した。 / “TLS Can…” https://t.co/F1vYvkNJR9"
Makoto Kato ︎︎さんのツイート: "Korean GPKIもなんかいろいろやらかしてる https://t.co/dLa69TsKdO https://t.co/IQrWNwChU9"
Rockridgeさんのツイート: "Fx63:Mac版でもsecurity.enterprise_roots.enabledをtrueに設定すると、OS側で信頼されたルート証明書を利用できるようになった。 / “1300420 - macOS (Mac OS X)…” https://t.co/v3NLtXSyqq"
Rockridgeさんのツイート: "Fx63:Nightlyチャンネルで、Symantecから発行されたすべての既存TLSサーバ証明書への信頼が取り消された。2018年10月23日にはリリース版でも同様の措置が執られる。参照:… https://t.co/297FL5Ltx5"

Overview of WebTrust Services | Chartered Professional Accountants of Canada
Principles and Criteria | Chartered Professional Accountants of Canada
Baseline Requirements Documents - CAB Forum
Symantec から発行された証明書の信頼が近く失われます (影響あり) | Firefox サイト互換性情報
Mozilla、Symantec証明書の信頼を段階的に削除 ~具体的なスケジュールをアナウンス - 窓の杜
10月公開の「Firefox 63」、シマンテック発行の証明書を完全に無効化へ--モジラが警告 - ZDNet Japan
「Firefox 63」でSymantec発行のTLS証明書が無効に ~トップ100万サイトの3.5%に影響 - 窓の杜

MS

Microsoft Trusted Root Program Requirements - TechNet Articles - United States (English) - TechNet Wiki
Microsoft 信頼されたルート証明書プログラム:証明機関の監査要件
より信頼できる証明書利用環境へ向けて~ Internet Explorer 11 SmartScreen 証明書評価 - 日本のセキュリティチーム - Site Home - TechNet Blogs
Rockridgeさんのツイート: "2018年7月末、Let's Encryptのルート証明書がMicrosoftのルート証明書プログラムにおいて信頼されるに至った。既にGoogle/Apple/Mozilla/Oracle/Blackberryからは信頼済みだとい… https://t.co/XUWFTtfkHq"
幼女 @mine02c4@mstdn.jpさんのツイート: "理屈上はDNSのレスポンスを書き換えて画面を返す用のサーバーのIPにすれば警告画面表示はHTTPでできる。これは普通の話。 でもですね、相手は日本政府なんですよ。彼らには「Windowsに信頼されたルート認証局」というのを持っているので、TLS証明書を発行できる立場にいます。"
ふたば@四葉技研さんのツイート: "政府による通信の監視で 通信速度が遅くなったらキレる"
tkrさんのツイート: "政府であろうと改ざんされてないことの証明なんだから認証局持ってること悪用したらだめでしょ。。"
Shigeki OhtsuさんはTwitterを使っています: 「Microsoftのルート証明書がMozillaに申請され最終レビュー段階に。Googleに続いてブラウザベンダが認証局を兼ねるとは。 / “Googleグループ” https://t.co/h3V9HC1sKd」 / Twitter
Shigeki OhtsuさんはTwitterを使っています: 「Windowsには以前から当然入っていたけど、Mozillaに入れば ca-certificate に入るからAndroidやNodeでも使えるようになるのよね。」 / Twitter
2020年末に期限切れになるルート証明書。「削除しないで」とMicrosoft - PC Watch

Apple

Root Certificate Program - Apple

Google

Google、自社向けのルート認証局「Google Trust Services」を開設 -INTERNET Watch
Root Certificate Policy - The Chromium Projects
Google Online Security Blog: Distrust of the Symantec PKI: Immediate action needed by site operators
旧Symantec系SSL/TLS証明書、3月15日以降順次、Google Chromeで失効 - INTERNET Watch
Rockridgeさんのツイート: "Google Chromeの開発チームがSymantec(旧Verisign)の発行済みSSL証明書を段階的に排除する方針を表明。Extended Validation(EV)のステータスは無視され、Chrome 59から64まで… https://t.co/hC19kG6VAy"
Google ChromeでSymantecが発行したSSL証明書の有効期限短縮やEVステータス無効化が提案される | スラド セキュリティ
Symantec発行のSSL/TLS証明書、Google Chromeで段階的な期限短縮案 -INTERNET Watch
Symantecが再びGoogleの信頼を失った件についてのメモ - Technically, technophobic.
Google Developers Japan: Symantec の PKI の無効化について: 要対応確認
GoogleとMozillaが独裁国家の認証するルート証明書をブロックすると発表 - GIGAZINE

Amazon

Shigeki Ohtsuさんのツイート: "うわぁ、Amazon Root CAがの4種(RSA/ECC)がFirefoxに登録されるわ。EV発行も 可能だ。 現在無料のACMから本格的なAmazon認証局サービスの提供に向かうのか。強いなぁ。 / “NSS 3.28.1…” https://t.co/YZ0MlfZPUT"
NSS 3.28.1 release notes - Mozilla | MDN
Shigeki Ohtsuさんのツイート: "Amazon Trust Services という別会社がAmazon Root CAを運用するのね。 https://t.co/eVYDVS10L0"
Amazon Trust Services LLC

Wget - きまぐれ手記
Certificate Authority Certificates
JVNVU#99936709: Savitech 製 USB オーディオドライバがルート CA 証明書を許可なくインストールする問題
渋川よしきさんのツイート: "CertUtil.exe -viewstore ROOTで、信頼されたルート証明書一覧を取り込みたいのだけど、GUIウインドウが立ち上がってしまう"
渋川よしきさんのツイート: "-viewstoreじゃなくて-storeならコンソールに出るっぽいが・・・日本語か・・・"
渋川よしきさんのツイート: "CertUtil.exeで-storeで保存されている証明書類を書き出しても30個ぐらいしかない。Macだとシステムのルート証明書で176個ある。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ESETをはじめインターネット防御を謳うソフトは、自前ルート証明書をPCにインストールしてhttpsの中身を監視するんですよね。 万一ESET側がクラッカーの手に落ちると、安全なhttpsサーバ相手でも被害を受ける可能性が出るという…ESETを信用するか、httpsサーバを信用するか?というジレンマに(笑)… https://t.co/THV4HtvHkx"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "GPKIは大変なことになってるけど、一方LGPKIはセコムすることになって、自治体にはインターネット側でも使いやすくなって朗報。 / “総合行政ネットワーク No. 185 1 第四次LGPKI移行の背景と その概要  第四次L…” https://t.co/36TNZprspT"
LGWAN-H3003.pdf
自堕落な技術者の日記 : 最近の証明書の話題(1) 韓国政府PKIのマズいワイルドカード証明書発行 - livedoor Blog(ブログ)
Kazuho Okuさんのツイート: "想定された挙動のはずです。例えばウェブブラウザは、ユーザ定義ルート証明書を検出した場合は HPKP を無視します… "
Vさんのツイート: "ローカルで MITM やるのありえないと思うんだけど、そう思うの自分だけ?"
Kazuho Okuさんのツイート: "アンチウイルス以外にもペアレンタルコントロール、コンプライアンス上の理由等によって通信のモニタリングが求められるケースはあるし、それはエンドポイント内でAPIを提供していく方向だと理解してる。現状のMITMはプロトコル実装の品質と硬直化の問題があるのでry"
Android7.1以前でLet's Encrypt証明書のサイトが見られなくなる | おそらくはそれさえも平凡な日々
古いAndroidスマホで2021年9月以降、一部サイトが閲覧不能に - PC Watch
GPKIよ、おととい来やがれ!(タイトルで煽るスタイル) - yumetodoの旅とプログラミングとかの記録
Google・Mozilla・Apple・Microsoftが「政府が国民にインストールを強制したルート証明書」をブロック - GIGAZINE

クロスルート証明書

Kazuho Okuさんのツイート: "新しいルート証明書が普及するまで使われるクロスルート証明書では? より長い鍵長のルート証明書へ移行する際にも使われてきた伝統ある技術かと / “自堕落な技術者の日記 : Amazon AWSの認証局が少し怪しい件 - lived…” https://t.co/LvNTjMaIIo"
自堕落な技術者の日記 : Amazon AWSの認証局が少し怪しい件 - livedoor Blog(ブログ)
[EV SSL] クロスルートとは何ですか。 | SSL・電子証明書ならGMOグローバルサイン
クロスルート証明書について | Symantec
クロスルート設定用証明書の設定について、どのような対応が必要でしょうか? | Symantec
SSLの中間証明書・クロスルート方式について | cloudpack.media
SureServer[2048bit] 用クロスルート方式について|Cybertrust.ne.jp
ルート・中間CA証明書のダウンロード|Cybertrust.ne.jp
クロスルート証明書って何? - [2013/02/11]
今更!理解するクロスルート証明書 - 農業生活を目指すシステムエンジニア
クロスルート設定用証明書ダウンロード|SSLサーバ証明書 ジオトラスト
シマンテックSSL証明書におけるクロスルート証明書についてのご注意 « - ValueSSL
オレオレクロスルート証明書 - Qiita

コードサイニング証明書

Twitter

@openlibsys

hiyohiyoさんのツイート: "コードサイニング証明書更新しました。 あと2年間はグローバルサインな証明書が使えます。 更なる更新はできないので、猶予期間中に移行先を決めないと・・・。 法人格がないとホント不自由な世の中になってしまいました。EVコードサイニング証明書欲しい・・・。"
hiyohiyoさんのツイート: "SHA-1 なコードサイニング証明書を取得するのも最後だろうなぁ・・・。 証明書の有効期限である2021/3/3以降にリリースするソフトは、7以降対応かぁ。2年後ぐらいに XP/Vista 向け最終版リリースかな。"
hiyohiyoさんのツイート: "コードサイニング証明書をUSB Tokenに格納することが必須となってしまい、コード署名するためにパスワードの入力が必要となってしまった・・・。 リリース作業が煩雑になってしまう。… "
hiyohiyoさんのツイート: "とりあえず、SHA-1とSHA-2両方の証明書でサインすることに成功。SHA-2な証明書でハッシュアルゴリズムをsha1とsha256の両方でやろうと思ったのですがどういうわけか失敗するのでsha256だけで実施。 Microsoft製exe/dllも2パターンでしか署名されていないので良いとするか。"
hiyohiyoさんのツイート: "SHA1とSHA2の証明書を明示的に選択するためには、/i を使いました。 for SHA-1 signtool.exe sign /v /a /n "Name" /tr https://t.co/PvnwuWmgfn /i "GlobalSign CodeSigning CA - G3" %1 for SHA-2 signtool sign /v /a /n "Name" /tr https://t.co/NaFzR2n2nU /fd sha256 /td sha256 /as %1"
hiyohiyoさんのツイート: "新しいコードサイニング証明書情報を追記しました。 https://t.co/riy9SxVZV0 次に公開するソフトから新しいコードサイニング証明書になります。"
デジタル署名 – Crystal Dew World
hiyohiyoさんのツイート: "EV証明書ではないので、しばらくはこんな感じで Windows Defender SmartScreen が発動しちゃいますorz… "

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsでコード署名をしても、すぐには警告が消えるわけではないが、署名の実績が溜まることで、新しいビルドでも警告が消えるようになるらしい。 これなら、コード署名を入れる価値がありそうだな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "signtoolでオレオレ署名をしてみたが、サインは末尾に付与される様子。 ビルドしたexeに追加データを付与しても、問題なく署名可能だった。(PEヘッダ・セクションを真面目に解析していない?) また、オレオレ署名でもタイムスタンプサーバに https://t.co/wbOzVI25sJ が使えた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今、コード署名取得に必要な DUNS番号を申請中。 コード署名を付ければ、しばらくして(コード署名の)評価値が上がってきて、新リリースでも誤検出されなくなる…はず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "DUNS番号を無事取得したので、コード署名をsslstore(米国)で取得中だが、購入後にcomodoへの登録内容アップロードで、Internal Server error が起きるぞ…やむなく英語チャット中。(現地時間は超早朝のはずだが…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "無事通過。あとはコモドからの電話確認だけになった。 ちなみに英語チャットで聞いた範囲では、コモドの電話確認は自動電話で番号を一方的に伝え、その番号をメールで返信する、というものらしい。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "DUNS番号がコモド側の使うDBから見えないらしい…数日待ってくれとのこと。 東京商工リサーチの登録からデータが伝搬する経路に、何らかのバッチ処理とか人手とかが介在しているのかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "sslstore(米国, thesslstore)だと、コード署名(comodo)3年間で248ドルだった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コモドからの検証用電話コールバック、意外と日本語の選択肢もあったが、「あなたの確認暗証番号は、です。XXXXXX」というSVO順の謎日本語だった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "無事、コモドから、"Your Code Signing Certificate has been issued." というメールが来た。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "無事、SignTool でインストーラにコード署名完了! (これで数ヶ月後に、アンチウイルス系のヒューリスティック誤検出が無くなると良いのだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(いくつかの発行ベンダが書いている資料と違い)、XP/Vistaでは、sha256コード署名が(非ドライバでも)上手く認識できないようだ。 とはいえ、コード署名はアンチウイルス誤検出に効果があれば十分なので、sha256を使う予定。(副署名をsha256にするhackもあるようだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "取得したコード署名、今日のお昼から、実践投入(某社で使われているIPMsg特別版に適用)する予定。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、コード署名をWindows証明書コンテナにインストールすると、exe/dll(SignTool)以外に、Office系全般とAdobe Reader(Acrobatでなくとも)でも署名可能に。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "これにsymantec/comodo等のタイムサーバを加えれば、法人向けに領収書などの電子化に使えてもいいはずだが、日本ではそのあたりは総務省管轄の家元商売になっていて、そこの専用の枠組みを使う必要がある、と。 https://t.co/U4Bg2tQAcl https://t.co/ESrYms2BGq"
認定タイムスタンプを利用する事業者に関する登録制度 | JADAC
申請料金 | 申請方法 | タイムビジネス認定センター
Shirouzu Hiroaki(白水啓章)さんのツイート: "まあ、SSL証明書も家元商売と言えなくもないが、一応、競争原理は働いているように見える。(コード署名はニーズが少ないせいか、海外と国内で3~5倍価格が違うとか、大した審査でもないのに年2-6万とか家元商売と化している感あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IP Messenger v4.94リリース。 Windowsコード署名を付与(今後アンチウイルスの誤検出が徐々に減るはず)、ログビューア改良等。 https://t.co/wDjue1IdtK #ipmsg"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SmartScreenにブロックされないことを確認。 (念のため、kasperskyとesetにホワイトリスト登録実施済)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名、Firefoxはsha1のみ、Chromeは主sha1 + 副sha2の二重署名。 IPMsgのsha2のみ署名はちょっと勇み足だったかな…XP/Vistaだと、ブラウザから直接実行できず、保存してから実行する必要。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "sha1 + sha2 に変更した場合、SmartScreenでsha2でのレピュテーションは引き継がれるのだろうか?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "一方で、サポート切れとなっている Vista/XP対応を残すのも如何なものか、という気もしたり。 サイトアクセスから推測すると、XP比率は1.0~1.2%、Vistaは0.2%。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "インストーラ等にコード署名を付与を始めて1ヵ月経過。そろそろ、カスペルスキー等へのホワイトリスト登録はしなくても良いかな。 (SmartScreenだと、初めての署名から数日で充分なレピュテーションを獲得した様子)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ノートンさん、ホワイトリスト申請制度を止めてしまったんだよなぁ… (カスペルスキーとESETは制度があるので、バージョンアップのたびに申請している)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名が無くなると、(UAC表示が変わる以前に)、リリースの度に、SmartScreen/アンチウイルス系に誤検出される羽目になりやすい。… "
窓の杜さんのツイート: "コードサイニング証明書がなくなることの影響として、UAC ダイアログの表示が変わります( digicert https://t.co/GGRZaJ56se より) https://t.co/Mf7aY5NbrJ… "
「Notepad++」v7.6.4が公開 ~EUのバグ報奨金プログラムで発見された脆弱性を修正 - 窓の杜
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名用メールアドレスに spamが届き始めた。 世の多くの例に倣って、コード署名にメールアドレスは付与しない方が良かったかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、Explorerの電子署名のプロパティ。 MSはメールアドレスを付与していない。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名を付与した自前インストーラに、事後に何か情報を付与したい場合、ファイル名にベリファイ付き情報を付加するくらいしか、有効な方法は無さそう。"

ゆきさんのツイート: "ACME End User Client and Code Signing Certificates https://t.co/WR6sLBVYnX ACMEでクライアント証明書やコード署名証明書やコードサイニング証明書を発行する提案仕様 #yuki_id"
draft-moriarty-acme-client-01 - ACME Client Extension
Kazuho OkuさんはTwitterを使っています 「コード署名の検証手法としては、そもそも不適です。CRLや、その発展技術であるCRLite, CRLSet の使用がより適しているかと思います。」 / Twitter

コードサイニング証明書を個人にも発行!! – Crystal Dew Blog
デジタル署名のまとめ(Vista x64対応) – Crystal Dew Blog
個人ソフト作者にとってのデジタル署名とは
個人ソフト作者がコモドジャパンでコードサイニング証明書を取ってみた
最も安い?コード署名証明書の取得(&使い方)
SHIROUZU Personal Log(2018-10-15)
コードサイニング証明書を買う前に (山崎はるかのメモ)
個人事業主として EV コードサイニング証明書を取得してみた | エレン・イーストのブログ
個人でコードサイニング証明書を取得してみた | エレン・イーストのブログ
「WinRAR」のWindows 10へのインストールが一時的に不可能な状態に - GIGAZINE
Linux Foundation Sigstoreがコード署名の暗号化を目指す

証明書失効

OCSP

Kazuho Okuさんのツイート: "単にOCSPレスポンダ内部でのバリデーションがクロスルートに対応してなかったんじゃないの? > 「クロスルート証明書を失効させるつもりが、同じ subject で同じ鍵である Root(R1) の証明書の方を失効扱いにしてしまった」 https://t.co/iQbrPncS5I"
Kazuho Okuさんのツイート: "証明書チェインのクロスルート検証がうまく動かない問題昔からいろいろあるし、CAが運用するOCSPレスポンダみたいな更新が難しいソフトにその問題が残っててもちっとも意外じゃない"
Kazuho Okuさんのツイート: "証明書チェインを検証するために辿るキーはDNとpublic keyだけなので、状況とも符合する"
Kazuho Okuさんのツイート: "たとえばopensslの1.0.1系列を使ったocspレスポンダを、古い中間CAが登録された状態で動かしてたら当該の挙動になるんじゃないかなぁ"
【翻訳】Firefox における OCSP Stapling - Mozilla Security Blog 日本語版
【翻訳】証明書失効確認の改善: OCSP Must-Staple と Short-lived 証明書 - Mozilla Security Blog 日本語版
Online Certificate Status Protocol - Wikipedia
Online Certificate Status Protocol - OCSP
https://tools.ietf.org/rfc/rfc6277.txt
https://tools.ietf.org/rfc/rfc2560.txt
https://tools.ietf.org/rfc/rfc6960.txt
Rockridgeさんのツイート: "Fx55:Nightlyチャンネルで、OCSPレスポンスを取得する対象をEV証明書に限定。また、EV証明書についてもタイムアウトの設定を2秒から1秒に短縮した。参照:https://t.co/S2rMKSy6bF / “1366…” https://t.co/uumZYZAfk4"
Rockridgeさんのツイート: "Fx57:Nightlyチャンネルで、OCSPレスポンスを取得する対象にDV証明書を再度追加した。 / “1390688 - re-enable OCSP fetching for DV certificates in Nigh…” https://t.co/OkyKbQxtnH"

モジラ、グーグルと同様の証明書失効チェック方法を採用へ - ZDNet Japan
Google Chrome、SSL証明書のオンライン失効チェックを無効に - ITmedia エンタープライズ
CA:RevocationPlan - MozillaWiki
証明書失効リスト - Wikipedia
CRLSets - The Chromium Projects
Rockridgeさんのツイート: "Fx50:証明書のブロックリスト(OneCRL)にKintoを用いる仕組みがリリースチャンネルでも有効化された。 / “1265008 – Enable the Kinto.js OneCRL client for releas…” https://t.co/RgkgoFeJEQ"
【翻訳】中間証明書の失効確認: OneCRL の導入 - Mozilla Security Blog 日本語版
GodaddyのSSL証明書にドメイン認証の脆弱性があり8850件の証明書が失効された | 徳丸浩の日記
障害報告:サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可について(第一報) - JPNIC
サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可についてのご報告 - JPNIC
Rockridgeさんのツイート: "Fx52:証明書のブロックリスト(OneCRL)の対象となるのは、TLSサーバ証明書のみとなった。Thunderbirdが扱うS/MIMEは対象外となる。 / “1312827 – make OneCRL only apply …” https://t.co/yqCnhUoUUa"
Kazuho Okuさんのツイート: "なんか、割と皆、サーバ証明書かルート証明書の失効問題だと考えてるみたいだけど、中間証明書やコードサイニング証明書がらみの問題でないという判断の根拠はあるのかしら"
Kazuho Okuさんのツイート: "テスト環境ではトラストチェインの検証時に、テストクライアントにあるより新しい中間証明書が自動的に使われていたが運用環境ではそれがなかった、みたいな可能性もありうると思うけど"
Shigeki Ohtsuさんのツイート: "めちゃ議論が白熱してたから追っかけられなかったけど結局DarkMatterのルートを入れず中間証明書も失効させることになったのか。Mozillaは漢だ。 / “Mozillaは悪名漂うUAEのDarkMatterをHTTPSの証明提供者として否認 | TechCrunch Japan” https://t.co/geOGUkAs3N"
Mozillaは悪名漂うUAEのDarkMatterをHTTPSの証明提供者として否認 | TechCrunch Japan
Shigeki OhtsuさんはTwitterを使っています: 「Googleのトーゴドメイン(https://t.co/AeIs0BgWED)の証明書がまた不正発行されてた(2年ぶり2回目)。CRLで失効されているけどOCSPまだGoodだ。レジストラがまたやられたか。 https://t.co/8QIIHeZahZ」 / Twitter
ゆきさんはTwitterを使っています: 「MozillaとGoogleは、カザフスタン政府により中間者攻撃を可能とする政府発行の証明書をブロックすると https://t.co/A5ZcXZwQdg」 / Twitter
Kazuho OkuさんはTwitterを使っています 「証明書の期限なんて短くていいんだよ。7日とか、CRLやOCSPの有効期限並に短くすれば、CRLとかOCSPとかややこしい仕組みが不要になる。そこまでどう持っていくか、の問題」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、コード署名は「実行時の期限切れ」は問題としないポリシーだな。(少なくともWindowsでは) これ、CRL入りすると実行時でもエラーになるのかな?」 / Twitter

証明書ブロック

Symantec

Google

Symantec、同社発行のSSL/TLS証明書を信頼してもらうための対策をGoogleに提案 | スラド セキュリティ
Chromeがシマンテックの古い証明書を信頼しなくなる今後のスケジュール(メモ) - ASnoKaze blog
Google Developers Japan: Chrome が Symantec の証明書に対する信頼を破棄する予定について
Google、Symantec証明書に対する信頼を段階的に削減。「Google Chrome 70」で完全削除 - 窓の杜
Rockridgeさんのツイート: "2018年10月23日からの週にリリース予定のChrome 70では、Symantec発行のルート証明書と結びつけられたほとんどすべての証明書が失効することになるという。 / “Google Online Security Bl…” https://t.co/tN62wZRVwT"

Mozilla

Mozilla、Symantecが発行した証明書の信頼性回復に関する議論に参戦 | スラド IT
Rockridgeさんのツイート: "FirefoxがSymantec(旧Verisign)の発行済みSSL証明書を段階的に排除していくスケジュールは、Chromeとおおむね一致する。リリース日の違いから数週間ずれる程度。 / “Final Decision by …” https://t.co/uHXwTO39Ey"
Rockridgeさんのツイート: "2018年5月のFirefox 60以降、Symantec(旧Verisign)によって2016年6月1日以前に発効されたTLS証明書をWebサイトが使用する場合、信頼できない接続である旨が表示される。2018年10月のFiref… https://t.co/R3D7FNtw8o"
Rockridgeさんのツイート: "Fx60:Symantec(旧Verisign)によって2016年6月1日以前に発効されたTLS証明書を失効させるが、互換性問題に備えて復旧用の設定を実装する模様。参照:https://t.co/6em1Yh9xSW / “14…” https://t.co/LSTU24RdmQ"
Shigeki Ohtsuさんのツイート: "トップ100万ドメインの1%強がまだSymantec証明書を利用しているので、MozillaがSymantec Distrustを1リリース延期するとのこと / “Delaying Further Symantec TLS Ce…” https://t.co/IWhB9OclEJ"
Delaying Further Symantec TLS Certificate Distrust | Mozilla Security Blog
信頼性の低いシマンテック証明書の置き換えが予想以上に遅いとMozillaが嘆き - GIGAZINE

Symantec系列CAの証明書がエラーになったりするのは少なくとも「2017年8月8日」からではないっぽい - Technically, technophobic.
Rockridgeさんのツイート: "2017年8月2日、Symantecが米DigiCert社にWebsite Securityおよび関連するPKIソリューション事業を売却すると発表した。Symantecは対価として約9億5000万ドルとDigiCertの株式の約3… https://t.co/X8Bu0SKLUp"
Shigeki Ohtsuさんのツイート: "シマンテックがPKIビジネスをDegiCertに売却しちゃった。 / “DigiCert to Acquire Symantec's Website Security Business” https://t.co/aT7fOLoRla"
DigiCert to Acquire Symantec's Website Security Business
Shigeki Ohtsuさんのツイート: "Symantecはシェア3位の14%, DigiCertは6位の2.2%。合わせても16.2%の3位のまま。独禁的にも問題ないのか。 / “Usage Statistics and Market Share of SSL Cer…” https://t.co/Z0M4zzS05s"
そのSSL/TLS証明書は大丈夫? Google Chromeからhttpsサイトとして信頼してもらえなくなる場合も!? - INTERNET Watch
旧SymantecのSSL/TLS証明書問題、DigiCertが対応ほぼ完了宣言、次はいよいよIoTセキュリティへ前進 - INTERNET Watch

WoSign/StartCom

Mozilla

Rockridgeさんのツイート: "2016年10月21日以降に発行されたデジタル証明書に関し、StartComおよびWoSignが発行したものは、Mozillaのルート証明書ストアにおいて信頼されない取扱いとなることが決まった。参照:… https://t.co/OfjasBepmH"
Shigeki Ohtsuさんのツイート: "Mozillaからの WoSign/StarCom へのペナルティ(6/21以降に発行された証明書は不正と判定し、現行のrootCAを将来的に削除する)が正式に決まりました。 / “Distrusting New WoSign …” https://t.co/Y83wWhfPYa"
Distrusting New WoSign and StartCom Certificates | Mozilla Security Blog
Shigeki Ohtsuさんのツイート: "WoSignからのMozillaの決定を受け入れるとのアナウンス。なんと有効な中間証明書を 1つ持つらしい。2017年6月から再申請をするとのこと。中国国内で50%のシェア持ってるのか。 / “Announcement abou…” https://t.co/62JBl9xk4h"
Announcement about Mozilla Action-WoSign SSL Certificates!
Rockridgeさんのツイート: "MozillaがWoSign/StartComのデジタル証明書に関する対策を発表。2016年10月21日以降に発行されたものにつき信頼しない措置は、Firefox 51から適用。将来的にWoSign/StartComのルート証明書… https://t.co/qOFfgGA2hv"
【翻訳】WoSign と StartCom による今後の証明書は拒否します - Mozilla Security Blog 日本語版
Rockridgeさんのツイート: "2018年1月リリース予定のFirefox 58で、WoSign/StartCom発行のルート証明書はMozillaのルート証明書ストアから排除される。 / “Removing Disabled WoSign and Start…” https://t.co/qH9fJNE8mf"
WoSign/StartComのルート証明書が「Firefox 58」から削除 - 窓の杜

Google

Google、Chrome 61以降でWoSignの証明書をブロックへ | スラド セキュリティ

MS

マイクロソフト、不正が指摘されていた中国CAの証明書を無効に - ZDNet Japan

Makoto Kato ︎︎さんのツイート: "はてなってRaidSSL使ってるから、あれChromeのCanaryとかFirefox Nightlyだともう無効な証明書として認識されちゃってて、せっかく常時HTTPS化したけどそもそもアクセスできなくなってるね。。。"
Makoto Kato ︎︎さんのツイート: "*.hatelabo.jpどうするんでしょ、あれ。ずっと証明書直さないけど"
IE11とEdgeでもついにSHA-1証明書使用サイトをブロックへ | スラド セキュリティ

EV証明書

Extended Validation Certificate - Wikipedia, the free encyclopedia
Extended Validation 証明書 - Wikipedia
メモ:EV証明書でブラウザのURLバーを緑色にするのもうやめない?という話 - Technically, technophobic.
Rockridgeさんのツイート: "EV証明書の取扱いについて熱心な議論が交わされている。どうやらMozillaの開発者たちは、アドレスバーの表示について、EV証明書を特別扱いしない方向に持っていきたいらしい。 / “On the value of EV” https://t.co/xmYbGb2DT2"
Rockridgeさんのツイート: "Fx63:DocuSignのルート証明書はEV SSL証明書として扱わない。 / “1476473 - Disable EV treatment for DocuSign roots” https://t.co/V0b92QmC0t"
「Google Chrome 57」にSymantec社のEV SSL証明書を正常に扱えない不具合 - 窓の杜
〔三菱UFJダイレクト〕銀行名変更にともなうサーバ証明書の切替について | 三菱UFJ銀行
Shigeki Ohtsuさんのツイート: "三菱UFJ銀行のEV証明書の件。Baltimoreへのクロス証明書を使えばRootCAがないのはWindows XP SP3より前しかなさそうだから、それだけ古いの使っているユーザを心配しているんじゃないですかね。 https://t.co/i40iQxafwa"
DigiCert Root Compatibility
Shigeki Ohtsuさんのツイート: "三菱UFJ銀行がBaltimoreへのクロス証明書を使わない運用だとJRE 1.4.2_17とFirefox1が影響受けそう。でも Mixed SHA256 EV hierarchy with a cross root under Baltimore Rootの構成ならほとんど大丈夫でしょ。 https://t.co/i40iQxafwa"
個人でEV SSL証明書が欲しい話 - Speaker Deck
FirefoxでオレオレEVSSL証明書 - Qiita
Yasuhiro Morishitaさんのツイート: "私は「CHromeによって選ばれた人」だったようです。EV証明書のサイトを開いてF12を押すと、コンソールにこんな表示が。 "As part of an experiment, Chrome temporarily shows only the lock icon in the address bar. Your SSL certificate with Extended Validation is still valid."… https://t.co/7FMKo2Z5ke"
Yasuhiro Morishitaさんのツイート: "私のGoogle Chrome、EV証明書でも組織名が出なくなってしまったのですが、何が悪いんでしょうか。ちなみにバージョンはWindows版の「69.0.3497.81(Official Build) (64 ビット)」。… "
Yasuhiro Morishitaさんのツイート: "(こういう表示をA/Bテストでして来るということは、Googleは将来、EV証明書の組織名表示をなくしたいと思っているということなんだな)"
Shigeki Ohtsuさんのツイート: "とうとう Google が ChromeでEVの組織表示をなくす FieldTrial を始めたようです。 https://t.co/vSF91Cj0x6"
Mitsuru SHIMAMURAさんのツイート: "これ、CA屋は大反発じゃないんですかね?Googleが強行するんですかね… "
Shigeki Ohtsuさんのツイート: "既に脅しをかけられてたので、一部 CA が anti-phishing の London Protocol を立ち上げてる途中だったんですけど… Digicertが抜けたりとあまりうまくいってないので、Gがさらに脅しをかけているのかもしれません。… "
Mitsuru SHIMAMURAさんのツイート: "ほー…。区別しないようにするというのはphising由来だったんですか… "
Shigeki Ohtsuさんのツイート: "FieldTrial にビンゴしてたようですね。 chrome://flags/#simplify-https-indicator で戻すことができると思います。… "
Yasuhiro Morishitaさんのツイート: "「Googleがブチ切れる先にある未来」という名言を思い出します😅… "
Shigeki Ohtsuさんのツイート: "AppleもSafariでのEV証明書の組織表示をやめるみたい。iOS12からなのか? https://t.co/4FsvWhapqc… "
201806AppleCABF.key
Shigeki Ohtsuさんのツイート: "iOS12のSafariで、EV証明書の組織表示がなくなったのが確認できました。padlock(鍵)マークとURLが緑色なので、まだOV/DV証明書との区別はできています。… "
Shigeki Ohtsuさんのツイート: "PayPalがクロス証明書を入れたらWindowでVerisign側のチェーンで評価され、ルートのOIDが変わりEV証明書と評価されなくなっていると。これ、ユーザが気づかなかったら実はPayPalにEV要らないかと。 / “Wh…” https://t.co/pAkQFSwRDw"
Rockridgeさんのツイート: "FirefoxがSSL証明書のEVステータスを評価するプロセスについて(公式)。 / “CA/EV Processing for CAs - MozillaWiki” https://t.co/E2HFqNYKnr"
CA/EV Processing for CAs - MozillaWiki
北河拓士 KITAGAWA,Takujiさんのツイート: "また、同名の会社を設立すればEV証明書を取得できてしまう。実際にセキュリティ専門家のIan Carroll氏が決済会社「Stripe Inc」と同名の会社を設立しEV証明書が取得できることを実証している。https://t.co/AhHtkDf8DI 費用は会社設立に100ドル、証明書取得に77ドルのみ。"
Brian SmithさんはTwitterを使っています: 「Chrome joins FirefoxOS &amp; Safari/iOS in dropping the EV indicator in primary browser UI. Nice! Looking forward to all browsers dropping all support for EV &amp; maybe even all certificate policies. Here's webpki's entire implementation of policies: https://t.co/UYJsX2qVTq ;) https://t.co/UOCnQ9q2BU」 / Twitter
webpki/src/cert.rs at 0573c1ec3fa4da14d74b9c6ee52087b80dadf16e · briansmith/webpki
Ryan HurstさんはTwitterを使っています: 「All our mistakes sooner or later surely come home to roost. - https://t.co/VS7iPn6zkB」 / Twitter
Upcoming Change to Chrome's Identity Indicators - Google グループ
Google Chrome EV表示の終焉 - ぼちぼち日記
Shigeki OhtsuさんはTwitterを使っています: 「Mozillaも、2019年10月22日リリース予定のFirefox70から、URLバーからEV表示を削除するとのことです。 / “Google Groups” https://t.co/nV3aTqPtpE」 / Twitter
Intent to Ship: Move Extended Validation Information out of the URL bar - Google Groups
Makoto Kato ︎︎さんはTwitterを使っています: 「当事者ではないので個人的な感触ですが、EVの件は、CA/Browser Forum (https://t.co/YTHViQCmPn) でAppleとかGoogleのEVに対しての話に対して、CA側が有効な解決策・回答がでなかったことの結論としか思えないんだけど」 / Twitter
CA/Browser Forum - CAB Forum
「Extended Validation 証明書」表示がChromeとFirefoxから消滅へ - GIGAZINE
Shigeki OhtsuさんはTwitterを使っています: 「SECOMさんが緊急メンテでテストEV証明書を誤発行してしまった件。既に全部失効させて対策案提示したけど、ドメイン認証してないのって突っ込まれている。無事収束してほしいな。 / “1576133 - SECOM: Mis-issued EV Certificates” https://t.co/Hmyyz57Ler」 / Twitter
1576133 - SECOM: Mis-issued EV Certificates
「Firefox」もアドレスバーのEV証明書発行元表示を廃止 ~鍵・盾アイコンの仕様も変更 - 窓の杜

CT

Certificate Transparency について|サイバートラスト
Certificate Transparency | ブログ | SSL・電子証明書ならGMOグローバルサイン
Certificate Transparency(透かし入り証明書)とは | シマンテック SSL
Certificate Transparency:業界レポート:セキュリティ編 - GMOインターネット株式会社
Certificate Transparency(透かし入り証明書)|製品・価格一覧|SSLサーバ証明書 ジオトラスト
自堕落な技術者の日記 : SSL証明書 - livedoor Blog(ブログ)
自堕落な技術者の日記 : Certificate TransparencyでわかったというThawteによるgoogle.com証明書の不正発行??? - livedoor Blog(ブログ)
自堕落な技術者の日記 : Deep Inside Certificate Transparency (その1) - livedoor Blog(ブログ)
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
Rockridgeさんのツイート: "Certificate Transparencyは「認証局が証明書を発行する都度、全ての証明書発行の証跡を、第三者の監査ログに記載する仕組み」。Googleが提唱し、RFC6962としてRFC化された証明書の誤発行を防ぐ新たな技術。 https://t.co/AoCuhCeZmk"
Rockridgeさんのツイート: "Chromeには既にCertificate Transparency(CT)の検証機能が導入されており、SSLサーバ証明書がCTに準拠している(=Proofが登録されている)かどうかを表示できる。Firefoxでも同様の検証機能が… https://t.co/qs8BeRF7wT"
CT対応を示すExpect-CTヘッダとは - ASnoKaze blog
Certificate Transparency
Shigeki Ohtsuさんのツイート: "去年の誤発行のペナルティで6月以降にSymantecが発行した全証明書にSCTがないとエラーにする制限がChromeに入りました。マジやるのか、Google恐し。 / “Issue 2109913004: Require Cer…” https://t.co/ysX34FlTd3"
https://tools.ietf.org/rfc/rfc6962.txt
Certificate Transparency の仕組みと HPKP から Expect-CT への移行 | blog.jxck.io
Shigeki Ohtsuさんのツイート: "おぉ、Googleに続いてAppleも2018年10月15日以降に発行される全証明書にSCT求めるCT Enforcementを行うと。 / “Certificate Transparency policy - Apple Su…” https://t.co/trtGhYv53e"
letsencrypt/ct-woodpecker: A tool to monitor a CT log for operational problems
Shigeki OhtsuさんはTwitterを使っています 「先月末に公表された構成管理ツールSaltStackの深刻な脆弱性によってDigiCertのCTLog2サーバを管理するmasterが攻撃されたようです。CT署名する秘密鍵が危殆化したという初めての事態になってしまった。 https://t.co/Xiyvktzgxl」 / Twitter
CT2 Log Compromised via Salt Vulnerability - Google グループ
Googleが開発した「改ざん不可能なログシステム」を構築できる「Trillian」とは? - GIGAZINE
サーバ証明書の不正発行に対するSCT Auditing - ASnoKaze blog

DANE

情報セキュリティ技術動向調査(2011 年上期):IPA 独立行政法人 情報処理推進機構
DNS-based Authentication of Named Entities(DANE) | GMOグローバルサインブログ

DNS CAA

DNS Certification Authority Authorization (CAA) | GMOグローバルサインブログ
DNS CAA とは:SSL | DigiCert
DNSサーバのCAA設定 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。
DNSのCAAリソース・レコード、使っていますか? | スラド IT
DNS CAA を設定した - @znz blog
Certification Authority Authorization (CAA) | Symantec
Qualysの SSL Server TestでA+評価を取得した設定例(2017-01-15時点, CentOS7 + Apache HTTPD 2.4.6) - Qiita

暗号

その他

blog

整数多項式が有限個の素数しか生成しない場合 | yasuokaの日記 | スラド
Kazuho OkuさんはTwitterを使っています 「いい記事。ソルトはbruteforceに対しては効果薄いしソルト使ってても公開したらダメ。sha256の方が速いのは暗号通貨向けの最適化考えると納得感ある / https://t.co/5NxsRbCtFe」 / Twitter
メールアドレスをハッシュ化したものを公開してもよいのか - しまたろさんの掃き溜め
Kazuho OkuさんはTwitterを使っています 「ソルトは解析対象がN個あるときのコストをO(N)に引き上げるものだけど(その極端な差がrainbow table)、今回の話はNが小さい場合なので」 / Twitter
メッセージダイジェスト(MD)、メッセージ認証コード(MAC)、鍵導出関数(KDF)の違いについてのメモ - ももいろテクノロジー
虚数乗法論 (2):楕円曲線の由来 - tsujimotterのノートブック
虚数乗法論 (1):イントロ - tsujimotterのノートブック

PDF

000055177.pdf
000090943.pdf
暗号鍵管理ガイドライン:IPA 独立行政法人 情報処理推進機構
セキュリティ関連NIST文書:IPA 独立行政法人 情報処理推進機構
楕円曲線の理論的及び実用的可能性
applied-quantum-safe-security_J.pdf

スライド

ブロックチェーン系プロジェクトで着目される暗号技術
BLS署名の実装とその応用
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
高速な暗号実装のためにしてきたこと
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明

infoQ

Tink - クラウド、Android、iOSに対応するGoogleの暗号化ライブラリ
Adiantumによりローエンドのスマートフォンでディスク暗号化が可能に
ポスト量子暗号とは - Jean-Philippe Aumasson氏に聞く

News

ブロックチェーンの秘密鍵、生体認証で生成 日立が新技術 - ITmedia NEWS
Google、社内サービスに利用する暗号ライブラリ「Tink」をオープンソースに | OSDN Magazine
Intelが完全準同型暗号に関するDARPAのプログラムでMicrosoftと協業することを発表 - GIGAZINE

情報処理推進機構:情報セキュリティ:セキュリティ関連 RFC
エンドツーエンド暗号化 - Wikipedia
google/tink: Tink is a multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.
キーペア (*.pfx) から秘密鍵のエクスポート - Web/DB プログラミング徹底解説
SSLサーバ証明書 : opensslで秘密鍵のパスフレーズを解除する方法 | DigiCert
Fadisさんのツイート: "RC4、最初にRC4と呼ばれる暗号を作ったRSAはアルゴリズムを公開していないけど等価な計算を行う方法が他所から公開されて、RSAはアルゴリズムを公開していないけどWebの標準の地位を確立して、RSAはアルゴリズムを公開していないけどこの暗号は弱いから使うのをやめよう、という話になってるの面白い"
[2107.04940] You Really Shouldn't Roll Your Own Crypto: An Empirical Study of Vulnerabilities in Cryptographic Libraries

秘密計算

秘密計算の発展
菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「秘密計算がWalletに使われているようなのでメモ --- Sepior’s MPC Technology Integrated into sbiwallet, a New Wallet Service Launched by SBI Digital Asset Holdings https://t.co/0ZRtpbWO8V」 / Twitter
Sepior’s MPC Technology Integrated into sbiwallet, a New Wallet Service Launched by SBI Digital Asset Holdings
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
暗号化したまま計算できる暗号技術とOSS開発による広がり

CRYPTREC

CRYPTREC | トップページ
CRYPTREC - Wikipedia
電子行政:キーワード - CRYPTREC暗号リスト:ITpro
情報処理推進機構:情報セキュリティ : CRYPTREC
CRYPTRECとは|Cryptography Research and Evaluation Committees - 意味 / 定義 : IT用語辞典
Shigeki Ohtsuさんのツイート: "へぇ、CREPTRECも進めるのか。/ ポスト量子暗号の代表的な方式について調査を行っており、調査結果を2019年末までに公表予定。 / “耐量子計算機暗号の標準化動向” https://t.co/eQtZDVvuAT"
ref4_takagi.pdf
Makoto Kato ︎︎さんのツイート: "2年位前にCRYPTRECで出したSSLサーバー管理のPDFにGPKIとかの証明書を手動インストールする話を入れるかどうかをあの文書作ってる時議論したけど、そもそも手動で入れるってことを許可する自体セキュアじゃないって結論になって最終的に削除した"
Shigeki Ohtsuさんのツイート: "CRYPTRECはChaCha20だけじゃなくx25519(ECDHE, 253bits)も認めないのかぁ。こりゃOpenSSL-1.1.x系をそのまま導入するとガイドライン違反になっちゃうよ。https://t.co/wn8GVeavEy"
CRYPTREC | トピックス
Shigeki Ohtsuさんのツイート: "ちょっ、GPKI発行の証明書でサイト運営しているCRYPTRECさん、ガイドライン満たしてよw… "
Makoto Kato ︎︎さんのツイート: "私は、新しい版は関わってないですが、高木さんとか島岡さんとかも関わってなくなっているので、いろいろダメな感じになってますね。 https://t.co/kC7Xje31ks"
Makoto Kato ︎︎さんのツイート: "SSL設定ガイドラインの1.0のところはサーバー側の面倒なところって、高木さんが書いてたとかあるし、証明書のところって島岡さんとかだから、2.0がダメダメなのは、まぁあの新しい委員が時代背景わかってないだけですね。これ。 https://t.co/21erXOccXG"
SSL/TLS暗号設定ガイドライン
Shigeki Ohtsuさんのツイート: "そこまでダメ感は感じないんですが、幾つか気になる点があるので、今まとめています。Changelogがほとんど書いてなく、今回の改訂のせいなのかちょっとわからないのが辛いですが。… "
Makoto Kato ︎︎さんのツイート: "それよりもだな、CRYPTRECのサイトがGPKI使ってるけど、Baseline Requirementみたしてない(監査法人がまともに仕事してない)のは、MozillaでRejectされてるのでわかってるんだけど、それを使うのはいかがなものなかなって思ってる"
Makoto Kato ︎︎さんのツイート: "1.0を作る際、数年おきに更新するようにしたいと言ってた話がちゃんと実行されているのは素晴らしいのですが、今回はいろいろ突っ込みたいところがあるので、次を作る時はもう少し人材を選んだ方がいいのではとは思うんですよ… "
Makoto Kato ︎︎さんのツイート: "2018年にもなって、SSL3.0を優先するのが望ましいとか、それだめでしょ。SSL3.0も基本無効しかあり得ないと思うんだが。そんなクライアント使ってることが問題なのではと思うんだが。"
Shigeki Ohtsuさんのツイート: "次は「0-RTT抜きでTLS1.3使え、以上」になるので、人材はいらないのではw そしたらCame***も…(以下自粛)… "
Makoto Kato ︎︎さんのツイート: "https://t.co/9LR0nQ3YJQ を作る時も、いろんな理由にかこつけて、カメなんとか以外の国産暗号を排除してるだけにしか見えないから、まぁ。。。"
CRYPTREC | 注意喚起情報
ディスカッションペーパーシリーズ(日本語版) 2019-J-15 要約 量子コンピュータによる脅威を見据えた暗号の移行対応

FIPS

連邦情報処理標準 - Wikipedia
FIPS 140 - Wikipedia
用語解説辞典|【公式】NTTPC
FIPSとは|連邦情報処理標準|Federal Information Processing Standards - 意味 / 定義 : IT用語辞典
NIST.gov - Computer Security Division - Computer Security Resource Center
FIPS – アマゾン ウェブ サービス (AWS)
7594591200220899443さんのツイート: "そういう系の話でいうとFIPS 140-2にも似たような話がある。OpenSSLのFIPS認証はOpenSSLをアップデートしてしまうと無効になるため、新しいcypher suiteに移行するなどといったことができない。https://t.co/EBAVcoIQJM "Criticism" の項… https://t.co/IzBx4YNM7m"
FIPS 140 - Wikipedia
Shigeki OhtsuさんはTwitterを使っています: 「NISTからCurve25519/448とEdDSA(ed25519/448)のドラフトが出たぞ(SP 800-186, FIPS 186-5)。米国政府がdjbを認めることになるのはなんか象徴的だ。 https://t.co/p5YQ5OT8lp https://t.co/3fXKKMV8Ol」 / Twitter
FIPS 186-5 (Draft), Digital Signature Standard (DSS) | CSRC

ARIA

Shigeki Ohtsuさんのツイート: "韓国の暗号ARIA(RFC5794)がOpenSSLに入った。default不可。Oracle DBがOpenSSLを使うかららしい。GCM対応してないのでTLSでは使えません。 / “Implementation of the…” https://t.co/voIQNeRgPV"
Shigeki Ohtsuさんのツイート: "ARIAのベンチ取ったけどasm対応もしてないからめちゃ遅い。これ、ホント Oracle DBで使うのか? 単に調達要件対応のためだけかもしれないなぁ。"

特権分離

Kazuho's Weblog: Unix系OSの権限分離の変遷について(もしくはなぜ、アプリ単位の権限分離が求められるようになったか)
Kazuho OkuさんはTwitterを使っています: "blogged / “Kazuho's Weblog: Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話” http://t.co/L69ZcPqcRM"
U+4E0A U+6797さんはTwitterを使っています: "Heartbleedの後 SSLの特権分離を速攻実装したの OpenBSDのrelaydなんだけど 言及されていないのか<neverbleed"

鍵交換

DHE

ディフィー・ヘルマン鍵共有 - Wikipedia
Fadisさんのツイート: "TLSの鍵交換はかつてはサーバ証明書にくっ付いた公開鍵を使ってRSAで行われていた。この方法には通信内容を丸ごと記録している第三者が居た場合、後から秘密鍵が漏れると通信内容が全部解読されるという問題があったが、そんな大掛かりな手を使う奴はいないだろうと思われていた。実際に現れるまでは"
Fadisさんのツイート: "で、その結果、教科書に書かれてるけどどこで使われているのか知らない物ランキング上位を狙えそうだったDiffie-Hellman鍵共有が「鍵共有の過程が見えていても鍵が分からない」という利点を買われて一躍TLSに欠かせないアルゴリズムになった"
FadisさんはTwitterを使っています: 「鍵共有に使う鍵は毎回変えないと後から秘密鍵拾ったマンに解読されるけど、鍵が変わると相手が本物かわからないから、相手を確認する公開鍵と共通鍵を作るための公開鍵が別で必要で、しかも両者の持ち主が同一である事が保証されなければならない。だから今日の多くの安全な通信路は2段階のDHを行う」 / Twitter
FadisさんはTwitterを使っています: 「という背景がわかるとWireGuardのアレが最高にcoolな通信プロトコルなのがわかる」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@fadis_ DH(鍵交換)は一回でもう一回は署名とその検証かと」 / Twitter
FadisさんはTwitterを使っています: 「@kazuho そうですね。安全な通信路の定番TLSがその方式なのに「多くの安全な通信路」は大げさでした」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@fadis_ ええ。というより、FSを実現するためには、長期鍵を暗号化に使ってはダメなんです」 / Twitter
FadisさんはTwitterを使っています: 「@kazuho 長期鍵は共通鍵の素の全てになっていてはいけませんが、共通鍵に至る過程の一部になることはできます。例えば長期鍵でDHしたFSでない通信路で一時鍵DHを行う事でFSは得られると思います」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@fadis_ そのような例では、長期鍵で確立した通信路が生きている期間をひとつのセッションとして扱うように思いました」 / Twitter
angel as ㌵㌤の猫さんはTwitterを使っています: 「@fadis_ @kazuho DH+DHでFSを確保する実例は知りませんが、RSA暗号+RSA暗号であれば、SSHv1で使ってますね。 ※ただプロトコル自体に脆弱性があるのと、RSA短期鍵がどうしても使いづらいので、今実用にはならないでしょうが」 / Twitter

ECDHE(x25519)

楕円曲線上の離散対数問題に対するアプローチ(Baby-step giant-stepとPollard's rho algorithm) - sonickun.log
Pari/GPで楕円曲線離散対数を計算してみる - ももいろテクノロジー
楕円曲線暗号の超簡単な理論の紹介 - Qiita
楕円曲線ディフィー・ヘルマン鍵共有 - Wikipedia
WebCrypto APIでECDH鍵交換を用いた暗号化を使ってみる - Qiita
クラウド時代の暗号化技術論(3):鍵が漏れることも想定せよ――クラウド時代における「楕円曲線暗号」の必然性 (1/3) - @IT
暗号スイートの暗号強度と、公開鍵のビット数の設定、及びRSAとECDHEでサーバ負荷の比較 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。
自堕落な技術者の日記 : ECDHE - livedoor Blog(ブログ)

認証

RSA

RSA

SageMathを使ってCoppersmith's Attackをやってみる - ももいろテクノロジー
plain RSAに対する攻撃手法を実装してみる - ももいろテクノロジー
RSAに対する適応的選択暗号文攻撃とパディング方式 - ももいろテクノロジー
Multi-prime RSAを復号してみる(Hack The Vote 2016 The Best RSA) - ももいろテクノロジー
RSA暗号運用でやってはいけない n のこと #ssmjp
Kazuho Okuさんのツイート: "良い。これならoaepとか特定のpadding推奨した方が良いのでは? / “RSA暗号運用でやってはいけない n のこと #ssmjp” https://t.co/fHDTsmoIFF"
Hironobu SUZUKIさんのツイート: "@knok gniibe先生は、RSAの計算時にあったサイドチャネルアタックの対応のために、計算コードを書き換えたのはその通り。ほぼそっくり入れ替えたんじゃないかな。しかもオリジナルより計算速度が上がったというオマケ付きで。"
www7b.biglobe.ne.jp/~k-west/SSLandTLS/rfc2313-Ja.txt
Shigeki Ohtsuさんのツイート: "djb がやったのは libgcrypt のRSA実装に対するサイドチャネル攻撃(CVE-2017-7526)で’RSA自体を破ったわけじゃないよね。 https://t.co/bYB7ABLrDi"
Hideyuki Tanakaさんのツイート: "もっともらしい雑誌とかにも、スパコンは早晩時代遅れになる技術であるから、量子コンピューターじゃないと意味がないし、量子コンピューターができればRSAのあらゆる鍵は数秒で分解できてしまうから、今の暗号は意味をなさなくなるとか、ため息しか出ないクソ記事乗ってるし、どうすればいいのか。"
Hideyuki Tanakaさんのツイート: "てかそれを論外のクソ記事だと判断できる人がそんなにいないものなのか。それなのにそれを信用できる人が多いのはどうしてなんだ。世の中困難なことが多すぎる(´・_・`)"
Hideyuki Tanakaさんのツイート: "量子コンピューターができるのを早晩とかいう人にとっては数十年が早晩なんだねとか、今のRSA暗号のビット数何ビットあるかわかっとる?とかショアのアルゴリズムはビット数の3乗に比例する時間がかかることとか、わかっとる?とかさあ(´・_・`)"
Hideyuki Tanakaさんのツイート: "ゲート型量子コンピューター、そもそも数千ビットまでスケールできるのか自体わかってないじゃん。そりゃいつかはできるのかもしれんけど、少なくともブレイクスルーがまだまだ必要だろうし、ブレイクスルー待ちのものが「早晩」できるとかいうのはさすがに楽観的過ぎるわなあと。"
Rui Ueyamaさんのツイート: "お、RSAをよく理解してない実装のせいで中国のQQブラウザがまったくインセキュアになっているっていう事例紹介、今月の話か。暗号の授業はタイムリーで面白いな。 https://t.co/XD8HYHtrIF"
Shirouzu Hiroaki(白水啓章)さんのツイート: "RSAのオレオレ実装、20年近く前の初代MagicConnect実装でも似た話があったかも(笑) (多倍長演算も含めて、完全自作RSAだった時代。今はパブリックなSSL実装に移行しているはず) https://t.co/PNUXropPDM… https://t.co/QFuj7i1OqH"
RSA 暗号がようやく分かった気がしたのでまとめてみる - tsujimotterのノートブック
RSA公開鍵暗号アルゴリズムを理解する
RSAが公開鍵暗号アルゴリズムをパブリック・ドメインに | 日経 xTECH(クロステック)
RSA暗号運用でやってはいけない n のこと #ssmjp
はじめに – まいとう情報通信研究会

ECDSA

Pari/GPでECDH鍵交換、ECDSA署名をやってみる - ももいろテクノロジー
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ECDSAは、nonce漏洩・再利用・低品質乱数で秘密鍵復元の可能性があるので、EdDSA/Ed25519を使いましょうという話。(Pythonコード例あり) yubikeyのRNGで、ECDSA用nonce 256bitのうち80bitが予測可能なバグとかすごいな、、、 https://t.co/GNUW9UPasS」 / Twitter
ECDSA: Handle with Care | Trail of Bits Blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IPAでも2011年にECDSA+nonce問題のレポートあり。 ただこの時点での想定より、もっと積極的に「ECDSAは使わない方がいい」という印象あるな、、、 https://t.co/AZMQNh3KQ4」 / Twitter
情報セキュリティ技術動向調査(2011 年上期):IPA 独立行政法人 情報処理推進機構
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そもそも、nonceが漏洩したらダメという条件ってECDSAくらいしか知らないなぁ…普通IVやnonceは再利用ダメだけど、公開前提なのが多い印象。」 / Twitter
電子署名DSA/ECDSAの数的構造(1/2) - Qiita

Ed25519

sshでed25519鍵を使うようにした - @znz blog
OpenBSD、デジタル署名付きパッケージシステムに | マイナビニュース
signify - sign and verify
七誌さんのツイート: "暗号とか以前に楕円曲線は難し過ぎて取り付く島がないと思っていたけど、Edwards曲線は高校数学でも扱えるような素性の良いものだそうです。 https://t.co/UQ74WzUdnN"
Shigeki Ohtsuさんのツイート: "OpenSSLでed25519の実装が入りそう。現在curdleで仕様策定中のed25519署名の証明書サポートまで入るとは驚き。 / “WIP: Ed25519 support by snhenson · Pull Reque…” https://t.co/EOf2LUuFNU"
Shigeki Ohtsuさんのツイート: "OpenSSLに Ed25519 が入ったでござるよ。 https://t.co/rx8rbTnLjS"
Add Ed25519 algorithm. · openssl/openssl@06c6d05
Shigeki Ohtsuさんのツイート: "ハッシュ計算中に電圧変化をかけて異なる署名を出力させてEd25519を破る技か。よく考えつくよなぁ。 / “How to defeat Ed25519 and EdDSA using faults” https://t.co/OgPN1Ne6xJ"
How to defeat Ed25519 and EdDSA using faults
kudelskisecurity/EdDSA-fault-attack: Fault attack agaisnt EdDSA demonstrated on an Arduino Nano board, allowing for partial key recovery and fake signatures.
https://tools.ietf.org/rfc/rfc6979.txt
https://tools.ietf.org/rfc/rfc8032.txt
Shigeki Ohtsuさんのツイート: "乱数を使わないEdDSAのメリットが逆に狙われちゃってるのね。署名が決定的なのはやっぱり辛い部分もあるんか。"
Shigeki Ohtsuさんのツイート: "おぉ、 djbのcurve25519, curve448(RFC7748)がNIST標準として採用されるのか。 / “Transition Plans for Key Establishment Schemes using Pu…” https://t.co/J3WBy3fs22"
Fadisさんのツイート: "Curve25519は素数2^255-19を使う楕円曲線だからこう名付けられてるけど、この命名規則には19の部分が小さい整数でないと名前が長くなるという欠陥があって、2^448-2^224-1を使う楕円曲線は2^224-1を名前にそのまま書く事を断念してCurve448と名付けられた。結果Ed25519よりEd448の方が安全になった…"
Fadisさんのツイート: "Curve25519と同じ命名規則で書くとCurve448はCurve44826959946667150639794667015087019630673637144422540572481103610249215"
Fadisさんのツイート: "コードがでかいほどバグを作りやすくなるから、Curve25519を出来るだけ小さく実装してみたよ、という論文。読めるコードで18ツイート(英文でも140文字だった時代の論文なので1ツイート=140文字)、人間に厳しい書き方をすれば12ツイートで実装できた、としている https://t.co/A5aPGPNCl9"
Wesley_Janssen___4037332___Curve25519_in_18_tweets.pdf

SSH

RSA公開鍵のファイル形式とfingerprint - Qiita
SSH 鍵 - ArchWiki
ssh公開鍵認証方式で接続 | server-memo.net
Fadisさんのツイート: "OpenSSHが自前のchacha20-poly1305とed25519を使ってOpenSSLなしで動くようになったのはOpenSSLのHeartbleedがあった後で、一見するとアレがきっかけで独自で暗号アルゴリズムを実装したように見えるんだけど、よく見るとchacha20-poly1305がOpenSSHに実装されたの、それより前なんだよな"

楕円曲線暗号アルゴリズムを理解する
SSHの公開鍵暗号には「RSA」「DSA」「ECDSA」「EdDSA」のどれを使えばよいのか? - GIGAZINE
14年間気づかれなかった暗号の脆弱性を発見、焦りと戦ったNECの若手研究者 | 日経クロステック(xTECH)
デジタル署名: 数学弱者のためのDSAの原理 - Qiita

対称暗号

AES

AES-NI

マスターIT/暗号技術:第3回 AES暗号化 - @IT
インテル® AES New Instructions (インテル® AES-NI) | iSUS
インテル® AES New Instructions およびインテル® セキュアキーによるインテル® データ・プロテクション・テクノロジー
AES-NI - Wikipedia

libtom/libtomcrypt: LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.
kokke/tiny-AES128-C: Small portable AES128 in C
jhjin/OpenAES: OpenAES library exported from
AES implementations - Crypto Wiki - Wikia
Rijndael Encryption Algorithm
Poly1305-AES: a state-of-the-art message-authentication code
BRG Main SIte
BrianGladman/AES: AES code
License Library - Brian Gladman License
License Library - Brian Gladman Dual BSD-GPL
5100d_answer.pdf
Advanced Encryption Standard - Wikipedia
Shigeki Ohtsuさんのツイート: "GCM で使う Intel CPU命令 PCLMULQDQ です。 https://t.co/Brr9cwj375 #html5j_e"
CLMUL instruction set - Wikipedia
AESで不正な鍵で復号した時に何が起きるか - Qiita
「katagaitai CTF勉強会 - 関東|hard」の復習(脆弱なAES暗号の攻撃法) - Qiita
AESを使ってみる - Qiita
Rockridgeさんのツイート: "Fx56:AES-GCMアルゴリズムの処理パフォーマンスが、Mac版やLinux 32bit版、Intel AVXをサポートしない環境などで大幅に向上した。TLS暗号として頻繁に用いられるアルゴリズムだという。 / “Impro…” https://t.co/Ekkq7UG8RV"
Improving AES-GCM Performance | Mozilla Security Blog
Shigeki Ohtsuさんのツイート: "AESだけなら鍵長を増やせば対策できるがGCMが破られるのか。CCMならいけるが性能が出ないんだよなぁ。 / “量子コンピュータが共通鍵暗号の安全性に与える影響” https://t.co/0pHvQw8txT"
量子コンピュータが共通鍵暗号の安全性に与える影響
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔、AES128よりAES256の方が攻撃しやすいパターンがある、という話題が出ていたが、結局、AES256の方が多数派になりつつある印象。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いや、少なくともwebサイト暗号化に関してはそんなことは無かった。 google/amazon/facebookなどは、TLS1.3に対応しつつ、AES128GCMを使っている様子。」 / Twitter
Kazuho's Weblog: QUICむけにAES-GCM実装を最適化した話 (1/2)
Kazuho's Weblog: QUICむけにAES-GCM実装を最適化した話 (2/2)

ChaCha20

Kazuho OkuさんはTwitterを使っています: "「暗号計算にかかる時間が鍵によって異なってはならない」ってのセキュリティ要件ですよ"
GoogleがTLSでの採用を提唱している共通鍵暗号方式「ChaCha」についてまとめた - sonickun.log
RFC 7539 - ChaCha20 and Poly1305 for IETF Protocols
Salsa20 - Wikipedia
Shigeki OhtsuさんはTwitterを使っています: "@voluntas AES-NIが使えない環境でこそメリットが出ます。仕組みが単純なのでAES-GCMと同等かそれ以上の速度が出ます。BoringSSLだとARM用のasmがあるので3倍ぐらい速いです。アンドロイドChromeはChaCha20を優先してCipher出してます。"
Nginxでchacha20 poly1305を有効にする - ASnoKaze blog
FadisさんはTwitterを使っています 「昨日カーネル/VMの懇親会でchacha20(salsa20)がpaperの段階でARMを意識してる話したけど、実際のpaper読み返してみたらARMとは明言してなくて、乗算が値によってサイクル数が変わるプロセッサがあって、そういうところに実装するときタイミングリークを防ぐのが辛いから乗算やだって言ってた」 / Twitter

3DESの扱いが変わってきた - 生存報告
Microsoft、IE11とMicrosoft EdgeのRC4暗号を計画より4か月遅れて無効化 | スラド セキュリティ
Kazuho OkuさんはTwitterを使っています 「暗号ライブラリ自前実装してはならぬ論よくわからないというか、暗号アルゴリズムを自作してはいけない、は正しいし、公開鍵暗号の安全な自前実装が難しいのもそうなんだけど、ブロック暗号はそんなに難しくないと思うのよね」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho それはkazuhoさんだから言えるセリフで、僕はたとえ正しいアルゴリズムが目の前にあっても、side channel attackその他に耐性のある実装をできる自信はないです…^^;」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda 最近の共通鍵暗号、テーブルも分岐も使わなくてすむように設計されてると思うんですよね」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho 安全だと判断できる十分な知識を自分が持っているという確信がないので躊躇してしまいます。 データの値に依存して実行時間の変わる演算を行っていないかは判断できそうな気はするんですが、値によって消費電力が観測可能なレベルで微妙に変わったりしないかはそもそも知らないですし…」 / Twitter
成瀬さんはTwitterを使っています 「「ブロック暗号は簡単!」って言いながらECBモードで NULパディングする未来しか見えない」 / Twitter

メッセージ認証

Poly1305

Poly1305 - Wikipedia
Poly1305-AES: a state-of-the-art message-authentication code
floodyberry/poly1305-donna: Implementations of a fast Message-Authentication Code

メッセージ認証符号 - Wikipedia
HMAC - Wikipedia

ハッシュ

SHA-1

Google Online Security Blog: Announcing the first SHA1 collision
GoogleとCWI、SHA-1衝突に成功、ハッシュ値が同じ2つのPDFを公開 -INTERNET Watch
Googleら、暗号学的ハッシュ関数SHA-1の衝突攻撃に成功 〜異なるファイルに同一ハッシュを持たせてなりすまし - PC Watch
GoogleのSHA-1のはなし
SHA-1ハッシュの衝突を現実的な時間で生成する攻撃「Shatterd」 | スラド セキュリティ
【翻訳】ウェブの世界における SHA-1 の廃止 - Mozilla Security Blog 日本語版
IIJ Security Diary: SHAttered attack (SHA-1コリジョン発見)
Rockridgeさんのツイート: "Firefox 51以降、SHA-1証明書を用いた場合は安全でない接続と判断される。この設定が適用されるユーザーは、リリース後に段階を追って増えていく。ただし企業ユーザーがルート証明書をインポートした場合は例外となる。 / “P…” https://t.co/WQd5TRabbr"
Google Developers Japan: SHA1 が初めて衝突
GitHub Enterprise、SHA-1衝突を実行不能にするパッチを適用へ -INTERNET Watch
Kazuho Okuさんのツイート: "sha1のコリジョンって、いったいどんだけデータためてたんだろ。2^64とかでもまだ1/2^40くらいの確率じゃないの? truncateしてたわけじゃないよね? データが同一だったわけでもないよね?"
Kazuho Okuさんのツイート: "で、2^60個のsha1ハッシュ値の間でコリジョンを検出するためには、2^64バイト以上のストレージが必要なわけで"
Kazuho Okuさんのツイート: "spares bit array使えばもうちょっと小さくなるかな"
Shigeki Ohtsuさんのツイート: "あーぁ、SHA-1のChosen-Prefix衝突攻撃がおよそ1000万円以下程度のコストで可能になったとの論文。これでSHA-1証明書は完全に終わりです。 / “Cryptology ePrint Archive: Report 2019/459 - From Collisions to Chosen-Prefix Collisions - Application to Full SHA-1” https://t.co/vpoSwrW7K8"
Cryptology ePrint Archive: Report 2019/459 - From Collisions to Chosen-Prefix Collisions - Application to Full SHA-1
Shigeki Ohtsuさんのツイート: "あっ論文には詳しく書いていないですが2^63.4まで絞れたようです。https://t.co/TCcgMzyFPY > With some additional improvements that we are currently working on, we evaluate that one can find a chosen-prefix collision for SHA-1 with a budget of less than 100K US$… https://t.co/igcIjofPh6"
Archive

SHA-2

Shigeki Ohtsuさんのツイート: "SHA-256 の衝突って f(x) = x の固定点のやつじゃないのかい?"
This is not a vulnerability, or worlds first · Issue #1 · laie/WorldsFirstSha2Vulnerability
アニメーションで感覚的にハッシュ関数「SHA-256」の算出過程を理解できる「SHA-256 Animation」 - GIGAZINE

SHA-3

Shigeki Ohtsuさんのツイート: "OpenSSLに SHA3 が来るのね。 AVX2/AVX512やらarmv4/v8など各種CPUのasm対応済 。どの程度性能が出るのかな。 / “Wire SHA3 to EVP. by dot-asm · Pull Req…” https://t.co/MJA0tXRlaR"
Wire SHA3 to EVP. by dot-asm · Pull Request #3943 · openssl/openssl

BLAKE3

FadisさんはTwitterを使っています 「BLAKE3のリファレンス実装の最初の安定版BLAKE3 1.0がリリースされるらしい。BLAKE3は流行りの暗号学的ハッシュアルゴリズムBLAKE2の後継で、計算手順をSIMD命令を使って並列化しやすい物にする事で、BLAKE2bと比較して3倍から6倍、BLAKE2bp比で2倍から4倍程高速に計算できる https://t.co/hgKaVbjsmJ」 / Twitter
BLAKE3 Cryptographic Hash Implementation Preparing For v1.0 Release - Phoronix
FadisさんはTwitterを使っています 「BLAKE3を巡っては、SIMDでスケールするというBLAKE3の特徴を活かして、GPUで爆速でハッシュ計算しようぜ、という試みもなされている https://t.co/OQ6KSOENoU」 / Twitter
BLAKE3 Cryptographic Hashing Function Sees Experimental Vulkan Implementation - Phoronix
ドッグさんはTwitterを使っています: 「暗号学的ハッシュ関数 BLAKE3.MD5, SHA-*, BLAKE2 より遥かに高速で,MD5 や SHA-1 と違い安全.任意の並列度(マルチコアや SIMD)で計算できる.SHA-2 や BLAKE2 と違い,1つのアルゴリズムで全ての platform で高いパフォーマンスが出せる | 'BLAKE3' https://t.co/6iN7yDMtI8」 / Twitter
BLAKE3-team/BLAKE3: The BLAKE3 cryptographic hash function

本の虫: GPGPU時代のハッシュアルゴリズム
Kazuho Okuさんのツイート: "電話番号入れたら登録済かどうかわかるんだろうし、10^9とか総当たりで解けちゃうレベルでは? > 「暗号鍵と共に不可逆暗号化(ハッシュ化)して保存されている為、運営者サイドでも電話番号はわかりません」 / “キャンセルDB” https://t.co/nLrEmtmS9F"
Kazuho Okuさんのツイート: "今はAESNIよりも、TLS 1.3等で多用されてるHKDFがIntel SHA Extensionsでどれだけ高速化されるかが気になってる"
HKDF - Wikipedia
HMACを利用した安全なAPIキーの送受信 | yohgaki's blog
ハッシュ(HMAC)を使って弱い鍵を強い鍵に変える方法 | yohgaki's blog
暗号学的ハッシュを安全に使うには? – yohgaki's blog
SHA_Performance_Review_In_UEFI: UEFI SHA1/SHA256 perf tests with C (and asm) | Firmware Security
FadisさんはTwitterを使っています 「digestpp: C++暗号学的ハッシュ関数ライブラリ。header-onlyで実装されたクラスにrangeやstreamを食べさせるとハッシュになって出てくる。md5 sha256といった定番の関数の他、blake2 sha3 skeinといったナウめの関数や、streebogのような変わり種の関数も備える https://t.co/jDAvmKvqtH」 / Twitter
kerukuro/digestpp: C++11 header-only message digest library

Key Transparency

Google Developers Japan: 透過性によるセキュリティ - Key Transparency
google/keytransparency: A transparent and secure way to look up public keys.

KMIP

クラウド利用における複数拠点の課題と「KMIP」という潮流 - IT、IT製品の情報なら【キーマンズネット】
shindo.pdf
OASIS Key Management Interoperability Protocol (KMIP) TC | OASIS
Key Management Interoperability Protocol - Wikipedia
IBM Knowledge Center - Key Management Interoperability Protocol を使用した鍵管理
自堕落な技術者の日記 : OASIS KMIP 鍵管理プロトコル - livedoor Blog(ブログ)
ニュース - HP,RSA,IBMなど,暗号鍵管理仕様「KMIP」を標準化団体OASISに提出:ITpro

mcl

herumi/mcl
ペアリング暗号ライブラリmclを使ってみる - Qiita
ペアリングの双線形性をmclを用いて確認する - Qiita
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
加法準同型暗号を用いて暗号化したまま画像のエッジ検出をする - Qiita

HACL*

Rockridgeさんのツイート: "Firefox 57には暗号プリミティブが公式に検証済みであるHACL*暗号ライブラリが導入される。これによりTLSの鍵交換に用いられるCurve25519アルゴリズムをサポートし、セキュリティの強化と高速化の両立が可能になった。 https://t.co/oQQFfUwXLN"
Verified cryptography for Firefox 57 | Mozilla Security Blog
mitls/hacl-star: HACL*, a formally verified cryptographic library written in F*

zk-SNARK

Rui UeyamaさんはTwitterを使っています: 「暗号通貨の授業かなり興味深くなってきた。ゼロ知識証明を使って、公開情報から送金記録の正しさ(だけ)を誰でも確認できるのに、誰が誰にいくら送ったのかは全然わからないZCashというものの仕組みを学ぶみたいな。こういうのはちょっと痺れる。」 / Twitter
herumiさんはTwitterを使っています: 「@rui314 zk-SNARKですね。数年前の提案者たちによる実装では、私のライブラリが使われていたりしました。 https://t.co/ym3QOVCgrK 和書だと今年発売された岡本龍明さんの『現代暗号の誕生と発展』が詳しいです。」 / Twitter
scipr-lab/libsnark: C++ library for zkSNARKs
Rui UeyamaさんはTwitterを使っています: 「@herumi まさにそうです。ここらへん、概念だけは知っていたようなものが見事にうまく組み合わされて、一見矛盾しているような要件をちゃんと満たしているシステムが作られていてかなり楽しいですね。あとnon-interactiveなゼロ知識証明というのがあるのはそもそも知りませんでしたが・・。」 / Twitter
herumiさんはTwitterを使っています: 「@rui314 パズルみたいで楽しいですね。 私の去年の勉強会の資料 https://t.co/Jb3ngtSGmm やOsukeさんの https://t.co/YuJyVeVOa3 なども参考になるかもしれません。」 / Twitter
Privacy on Blockchain - Speaker Deck

blog

How Firefox Sync keeps your secrets if TLS fails – Mozilla Tech – Medium
RSA 秘密鍵/公開鍵ファイルのフォーマット - bearmini's blog
本の虫: GNU/Linuxでお手軽に使えるCLIのファイル暗号化ツール
「月を入力すると日を返す多項式」と中国剰余定理 - tsujimotterのノートブック
認証付き暗号の鍵利用上限について - ASnoKaze blog

News

グーグルが耐量子計算機暗号の実験を開始 - ZDNet Japan
世界で誰にも解読されていない暗号問題を初めて解読! | 株式会社KDDI研究所
NICT NEWS
量子コンピュータでも解読が困難な新暗号方式が国内で開発 - PC Watch
NTT、世界最高性能の耐量子公開鍵暗号を実現する新手法 ~CCA安全性を付与して量子コンピュータでも改竄不可能に - PC Watch
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「既に把握済のNSA「…NEC許すまじ」とか思ってたりして。 https://t.co/acgT9LbZFp ちなみに、OCB2は初めて知った…後で勉強。 ECB/CBC/OFB/CFB までは古典、定番がCBCだったが脆弱報告が増えるにつれCTRに交代、さらに進化したGCMがメジャーに、という印象。 あとファイル暗号専用でXTXあたり。」 / Twitter
NEC、共通鍵暗号化方式OCB2に脆弱性を発見 - 週刊アスキー

POSTD

JOSEは、絶対に避けるべき悪い標準規格である | プログラミング | POSTD

GitHub

LoupVaillant/Monocypher: An easy to use, easy to deploy crypto library
B-Con/crypto-algorithms: Basic implementations of standard cryptography algorithms, like AES and SHA-1.
skeeto/enchive: Encrypted personal archives
Keccak Team
gvanas/KeccakTools: KeccakTools is a set of C++ classes that can help analyze the Keccak sponge function family, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. For more information, please refer to our website: http://keccak.noekeon.org/

Qiita

準同型暗号の最前線1(入門編) - Qiita
準同型暗号の最前線2(原理編) - Qiita
準同型暗号の最前線3(理論編) - Qiita
2つの公開鍵暗号(公開鍵暗号の基礎知識) - Qiita
中国剰余定理 (CRT) の解説と、それを用いる問題のまとめ - Qiita

Twitter

@herumi

herumiさんのツイート: "1回だけ乗算可能な加法準同型暗号の論文「Efficient Two-level Homomorphic Encryption in Prime-order Bilinear Groups and A Fast Implementation in WebAssembly」がASIACCS 2018に採択された。 https://t.co/Vaz2msN9dd 解説と実装はこちら https://t.co/2Ou4m5sh5G https://t.co/C58377CxZj"
ACM ASIACCS2018 Program – ASIACCS 2018
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
she-wasm | Two-level homomorphic encryption for Node.js by WebAssembly
herumiさんのツイート: ".@hikalium 帰り話した暗号化したままテーブル引きのデモはこちら。https://t.co/ONiAYWLRBD 数字をいれて[問い合わせる]で入力値を暗号化してサーバに送り、サーバは暗号化したまま対応する桁の円周率のテーブル引きをして暗号文を返し、クライアントでそれを復号します。https://t.co/y8dpLaZcOO"
紛失通信デモ
herumiさんのツイート: "CSS2018最優秀デモンストレーション賞受賞しました。ありがとうございます。 デモの一つ、紛失通信による円周率100万桁の問い合わせのソースコードはこちら。 https://t.co/dsWf1WuJkQ https://t.co/xZSQP3DBsn"
herumi/ot-by-l2he: Oblivious Transfer demo by L2-HE
herumiさんのツイート: "CSS2018の発表資料「レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明」を公開しました。 https://t.co/6nO9tikJiY https://t.co/GCHTSvNEht"
herumiさんのツイート: "今年のラボユースは暗号系3人とOS系一人担当。 AESを一から実装したい人には有限体や拡大体の解説などから始めました。もう一人は楕円曲線暗号をやりたいので射影座標やC++の解説など。最後は完全準同型暗号を実装したいガチな方。格子暗号は実装したことないので私も一緒に勉強させてもらおう。"
herumiさんはTwitterを使っています: 「SCIS2020 2C3 「ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用」の発表資料を置きました。 https://t.co/bmJIlvcEsu Arbitrary Univariate Function Evaluation and Re-Encryption Protocols over Lifted-ElGamal Type Ciphertexts https://t.co/62904XwYbX」 / Twitter
Cryptology ePrint Archive: Report 2019/1233 - Arbitrary Univariate Function Evaluation and Re-Encryption Protocols over Lifted-ElGamal Type Ciphertexts

@jovi0608

Shigeki Ohtsuさんのツイート: "Googleによる耐量子コンピュータの鍵交換暗号方式 CECPQ1が本格実験開始。 / “Google Online Security Blog: Experimenting with Post-Quantum Cryptogr…” https://t.co/I6quQhtuQU"
Shigeki Ohtsuさんのツイート: "予想通りGoogleは CECPQ2 に djb の NTRU Prime を使う予定か。IP周りの問題は解消してるのかな。"
Shigeki Ohtsuさんのツイート: "おぉ!n=60のLWEの格子暗号が解読されたか。60〜40までの殿堂入りは全部このチーム。GoogleのNewHopeはring-LWEでn=1024、将来的にどうなるか。 / “世界で誰にも解読されていない暗号問題を初めて解読…” https://t.co/gX9ujnCI6r"
Shigeki Ohtsuさんのツイート: "EdDSA証明書を規定する仕様(curdle-pkix)がIESG承認されました。これでTLS1.2におけるDJB三部作(ChaCha20-Poly1305, X25519, Ed25519)の完成です。 https://t.co/5thG1tuXUP"
[Curdle] Protocol Action: 'Algorithm Identifiers for Ed25519, Ed448, X25519 and X448 for use in the Internet X.509 Public Key Infrastructure' to Proposed Standard (draft-ietf-curdle-pkix-10.txt)
Shigeki Ohtsuさんのツイート: "TLSより先にOpenPGP,S/MIMEでCBC/CFBがやられちゃったのかぁ。 / “EFAIL” https://t.co/IOJMsvjvCH"
EFAIL
Shigeki Ohtsuさんのツイート: "S/MIME、簡単に署名削除できちゃうって意味ないやん。CBCで偽造されても文句言えないわ。 "Every S/MIME signature can easily be removed from the multipart/signed mail body" https://t.co/QCgDUHRb0P"
efail-attack-paper.pdf
Shigeki Ohtsuさんのツイート: "GnuPGPはMDC(Modification Detection Code Packet)による完全性チェック機能があるけど、ちゃんとエラーチェックしてなかったり、パケット型を完全性確保のないやつに変えられたりできちゃうと。圧縮機能が入っている分S/MIMEより平文取得が難しいと。"
Shigeki Ohtsuさんのツイート: "最終的にはAES-SIVを使うとかちゃんと認証付き暗号をサポートするような仕様にしなさいと。まぁ真っ当な流れだけど、これからどうするんだろう。"
Shigeki Ohtsuさんのツイート: "10年以上前にAES-GCMをCMSで使うRFC5084が発行されていたのに、S/MIMEで使うような動きはなかったと、はぁ。 https://t.co/C6E6hp1wtg"
OpenPGPとS/MIMEに脆弱性、暗号化メールを平文で取得可能に - INTERNET Watch
暗号化メールの内容が平文で漏洩する“EFAIL”脆弱性、欧州の研究者グループが発表 - 窓の杜
PGPとS/MIMEによる暗号化メールに、Efail攻撃に対する脆弱性が見つかる
Shigeki Ohtsuさんのツイート: "X25519はECDH(E)の鍵交換でed25519はEdDSAの署名。curdle-pkixで規定されたばかりのEdDSA証明書が出回らない以上EdDSAをガイドラインで使えるようにと求めてないのだが。あえて言及を避けているのか、本当に理解していないのか… https://t.co/SkM6IS342p https://t.co/2KaFKlD3Cj"
Makoto Kato ︎︎さんのツイート: "CRYPTRECはNISTを参考にする組織なので、NISTのお墨付きがあればあのCRYPTRECのリストに入るけど、EdDSAってNIST的にお墨付きつけたんでしたっけ?EdDSAの背景がNISTが信用できないというところからはいったし。 (最近暗号関係追っかけてないから知らない)"
Makoto Kato ︎︎さんのツイート: "HTTP/2、TLS1.3の時代になるんだから、そろそろ (NTTへの配慮があるにしろ) Camelliaをあの設定ガイドに入れるもはどうかなぁとは思ってはいる。ハードウェアで最適化できているものではないしね"
Shigeki Ohtsuさんのツイート: "近い内に出るNIST SP 800-186で採用される予定です。https://t.co/WpfOswyv4j 今TLS関連のNIST更新はTLS1.3のRFC発行待ち状態な感じです。… "
Makoto Kato ︎︎さんのツイート: "なるほど。それだったら、おそらく2019年 or 2020年のCRYPTRECの推奨リストにおそらく含まれることになるので、次?のTLSサーバー設定ガイドラインに入るんじゃないですかね。神田さん次第か… "
Shigeki Ohtsuさんのツイート: "EdDSA証明書を発行するCAがないので特にガイドラインに入っていなくても問題ないと思います。RSA-PSSの証明書もまだ全然発行されていないし。CRYPTRECは署名方式だけ評価して楕円曲線自体の評価をせず、中途半端にNISTを参考にしているからこうなるわけで。… https://t.co/mY9RcOScf7"
Shigeki OhtsuさんはTwitterを使っています: 「openssl ciphersでTLS1.3のCCMがリストされない理由は属性がNON_DEFAULTに指定されているから(あまり使われていないしそもそも性能悪い)。明示的にオプション指定で登録すれば表示されます。https://t.co/to3sMOLdJC / “SSL/TLSとは何なんだ? 今こそ知ってもらいたいSSL/T…” https://t.co/VjT17vo5ck」 / Twitter
SSL/TLSとは何なんだ? 今こそ知ってもらいたいSSL/TLSのお話 〜 2回目 〜 TLS1.3 HTTP/2 のお話 | さくらのナレッジ
Shigeki OhtsuさんはTwitterを使っています: 「@voluntas ストリーム処理ができないのでGCMやPoly1305より性能悪いんす。当初TLS1.3のcipherから外れていたんですがAEADなのに仲間外れはアカンということで入れられました。無線通信ではCCMが結構使われているようですね。」 / Twitter
Shigeki OhtsuさんはTwitterを使っています: 「@voluntas wikipedia見ただけですが、WPA2とかBluetoothLEに使われているようです。 https://t.co/OyutxMruhx 理由はよくわかりませんが、GCMより単純なのでLow Deviceでもちゃんと実装できるからじゃないですかねぇ。」 / Twitter
CCM mode - Wikipedia

@fadis_

Fadisさんのツイート: "SPDYはTLSの圧縮を使っていたが、HTTP/2ではこの機能の使用は禁止され、TLS 1.3では圧縮が廃止された。ユーザが任意のデータをコンテンツに埋められる場合、圧縮後のサイズから暗号化されたコンテンツの内容が予測できる為である https://t.co/BFGVHuK4Lx"
CVE - CVE-2012-4929
Fadisさんのツイート: "「圧縮後のサイズで何圧縮したかバレるぞ」と「圧縮に要した時間で何圧縮したかバレるぞ」は暗号化と圧縮が一緒に出てくる状況で簡単に踏むから常に気に掛けておきたい"
Fadisさんのツイート: "気が付いたらブラウザのサンドボックスでx86バイナリを動かす技術の事じゃなくてナウい手法を実装した暗号ライブラリの事になっていたNaClさん"
Fadisさんのツイート: "EFAIL: PGP等で暗号化されたメールを経路上で悪意ある第三者が改竄できる時に、暗号化されたパートの上下に「<img src="ほげほげ/」と「">」を加えてmultipart/mixedで合体させるメールに改竄すると、受信者が暗号化されたパートを復号した結果に上下のパートをくっ付けて出来たURLにアクセスしてくる"
Fadisさんのツイート: "更にEFAILではOpenPGPがCBC modeを使っていて、しかも先頭のブロックが常にContent-type: multipart/signedである事を利用して、暗号化されたメッセージに<img src="を挿入できるCBC gadgetを作る。こちらの方法の場合mixedの結合が雑でないクライアントでも復号したメッセージを攻撃者に送ってしまう"
Fadisさんのツイート: "暗号を効果的に使うのは難しいなぁ"
Fadisさんのツイート: "RFC7693「BLAKE2は特別なHMAC関数を使わずにHMAC出来る」→HMAC1号 RFC5246「TLSでHMACする時はSHA-256以上の強度のハッシュをHMAC関数に通す事」 TLSの実装「仕方ないからBLAKE2をHMAC関数に通すよ」→HMAC2号 問題: TLSと無関係な規格がBLAKE2でHMACと言っている場合、その実装はどちらの事か"
Fadisさんのツイート: "暗号屋さんの論文、 右辺と左辺のバイト列を結合する っていう意味の演算子として || がよく登場するんだけど、よく脳内で勝手にlogical orと解釈されて3行くらい読み進めたところで型が合わなくなって ??? ってなる"
Fadisさんのツイート: "WireGuardの作者がLinuxカーネルに新しい暗号API Zincを提案している。曰く、既存のカーネルの暗号APIは高レイヤー過ぎて特定の暗号技術を部品として使いたい場合に使い辛いから、よりプリミティブでコンポーザブルな暗号APIを作った、とのこと https://t.co/zezc1YHowb"
Zinc: The New Crypto Library Being Worked On As Part Of WireGuard - Phoronix
Fadisさんのツイート: "オリジナルのWireGuardはカーネルのcrypto/ガン無視で独自で暗号を実装してるから、バニラカーネルに入れるのにあたって、なぜカーネルの標準の暗号APIを使わないのかという部分に説明が必要になったんだろうな"

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "「楕円曲線暗号の鍵長に512bitがなく521bitがある理由」 メルセンヌ素数だと演算量が少なく、2^512付近だと2^521-1が該当、という話。 RSAで公開鍵の指数を2^16+1にすることで、べき乗の演算量を減らす工夫を思い出した。(2進数で1になっている桁だけ計算すれば良い) https://t.co/sP7bZfbInB"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、RSAの公開鍵指数で、2^16+1 = 65537 以外の実装ってあるのかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "共通鍵暗号のCTRモードだと、暗号部のみ必要で復号部は不要…なのでHashで共通鍵暗号が作れる。 大昔、Pythonに共通鍵Libが無く、sha1+CTRを使った共通鍵暗号を作ったことがあるが、お話しにならないくらい遅かった(笑) ただ、xxHashに128bitが出来ると、AES-CTRとどちらが速くなるか興味がある。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「curve25519-sha256 と curve25519-sha256@libssh.org って、何が違うのだっけ…? https://t.co/pEbps6fjm0」 / Twitter
sshd_config(5) - Linux manual page
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「openssl ファイル暗号化」で検索すると、AESに鍵をそのまま渡すパターンばかりだったが、実用的には PBKDF2等を使った方が良さそう。 (公開鍵を指定するのも良いけれど)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「WindowsのCNG(Cryptography API Next Generation)だと、AESのブロックモードはCTRが無くGCMが使えるみたいなのだけど、最後のブロックを捨てれば同等になるのかな…?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(あとCTRとGCMだとカウンタが1つずれてるのを意識したほうが良さそう)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近はAES-NIとかハードウェアサポートで、下手なハッシュ系の乱数ストリームより、AESの方が速かったりするのだよなぁ。 (xxHash3 とはさらに高速だけど、これは非暗号学的)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号モードの GCM/CTR は、暗号も復号もベースとなる暗号は「暗号化ルーチン」しか使わない(=乱数ストリームとして使う、疑似ワンタイムパッド)。 GCM/CTR のみの使用を想定した、AESより高速&高セキュアな暗号方式の研究はあるのかな…?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「CNGじゃないと、AES-NI使ってくれないのだよな、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「AESをリファレンスC言語実装からCNG(bcrypt)に変えると、約8倍高速化。(256MB/s -&gt; 2GB/s。1GB領域に対して) (AES-NI効果だが、ECB呼び出し+自前CTR計算のためこの程度。GCM呼び出しだと3GB/sに)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ElGamalとか暗号値のまま2倍にすると、復号値も2倍になるという、大昔は「改竄に弱い(ただしGCM等で防御可)」と微妙な目で見られた、準同形な性質を活用と。 なおDB&検索語を暗号化したまま検索=秘匿検索暗号はまた別かな? https://t.co/TVvDwgoYQS」 / Twitter
Googleが世界初となるFHEの汎用トランスパイラーをオープンソース化 ~暗号データを復号せずにそのまま処理 - 窓の杜

@kazuho

Kazuho OkuさんはTwitterを使っています 「SSLShader の crypto offload 部分、OSSだったのか。しかしスループットはともかくレイテンシみると使いづらそう https://t.co/Jt3OdGdPK0 https://t.co/X31ZrhIlsS」 / Twitter
lwakefield/libgpucrypto
SSLShader - GPU-accelerated SSL Proxy
Kazuho OkuさんはTwitterを使っています 「約10年前のデータなので、レイテンシが1/10になってれば、ありなのかもしれないけど」 / Twitter

Rockridgeさんのツイート: "民主・共和両党の議員で構成される米国議会暗号化ワーキンググループは、2016年末の報告の中で、「暗号化を弱めるいかなる手段も国益に反する」と述べた。FBIが求めるバックドアには反対ということ。 / “Bipartisan Con…” https://t.co/58wxxHcs2E"
Rockridgeさんのツイート: "Firefoxアカウントではパスワードを元に認証キーと暗号キーを生成し、認証キーのみをサーバに送る。ユーザーのデータは暗号キーにより暗号化済みであり、認証キーが漏洩してもデータの復号はできない。 / “How Firefox S…” https://t.co/h8cvuv9QSi"
黒木玄 Gen Kurokiさんのツイート: "#数楽 楕円曲線暗号に応用されているEdwards曲線の加法公式はヤコビの楕円函数(cd t, sn t)=(cn t/dn t, sn t)の加法公式に一致する。ヤコビさんは約200年後に自分の名のついた楕円函数の加法公式がこんな形で応用されるとは思って無かっただろう。"
Rui Ueyamaさんのツイート: "授業で教授がAES暗号の仕組みを解説しているのだが、実装するの簡単じゃんと思っても、素人実装は絶対に微妙な穴ができるから、授業を受ける前に決して自分では実装しないと誓ってくれと生徒に言っているw"
Rui Ueyamaさんのツイート: "たぶんいろいろ噛み合ってないと思いますが、AESに対するサイドチャネル攻撃とその対策法などを知り尽くした人でなければ実際にセキュアなAES実装を書くのは難しいという意味です。たとえばdjbのこの論文ではタイミング攻撃を考慮してない昔のAES実装を使ったSSLを破ってます。https://t.co/4gSg0LGhIY… https://t.co/gw1A9ZwYr9"
Rui Ueyamaさんのツイート: "というわけでAESの仕組みを学ぶのはよいことだけど、実装はいろいろ落とし穴があるので、自分で書くよりセキュリティ専門家のレビューを経た信頼できるコードを使いましょう、という話。実際問題RFCとかに載っているコードをそのままコピペして使えばいいので、再実装したい場面もほぼないと思います。… https://t.co/UgnJxStz6h"
hsjoihs@数情物化語さんのツイート: "SHA-1について調べていたら面白い記事を見つけた(署名の検証に使っている暗号学的ハッシュをstrncmpで比較してしまっているため、160ビットの署名の大半が情報量が捨てられてしまう可能性があるというもの) https://t.co/Q7kjJnaZuJ… https://t.co/2QYu8Br7V9"
debugmo.de :: Thank you, Datel.
Makoto Kato ︎︎さんのツイート: "opensslなんて使わずにAESのコードを直書すればわかるけど、ThunderXのAESのインストラクション、むっちゃ遅い。Cortex-A53だと15倍近く速くなるのに、ThunderXなんて6倍くらいにしかならないから。"
Makoto Kato ︎︎さんのツイート: "SHA2とかも同様でThunderXはCortex-Aシリーズに比べると遅いんだよね。。。"
suzakiさんのツイート: "面白かった。 楕円曲線暗号の鍵長に512bitがなく521bitがある理由 https://t.co/fAIJFugaDL パラメータに計算の効率が非常によい素数2^(521 -1)を使いたかったためです. ある論文には,521bitのほうが半分以下の256bitの時よりも計算速度が速くなっている... ルセンヌ素数を使うことによる効率化...… https://t.co/flUI3XOAjd"
楕円曲線暗号の鍵長に512bitがなく521bitがある理由 | maidsphere
Ryo SuzukiさんはTwitterを使っています 「cryptographically secure が要求される用途なら Salsa / ChaCha で、non-secure な MT19937 や Xorshift からの置き換えかつ 2^128〜2^1024 の周期で十分なら xoshiro 系が短くて速い。」 / Twitter

乱数

スレッドセーフ

キノコになりたい🍄さんはTwitterを使っています 「スレッドセーフな乱数生成アルゴリズムとかあるん C++の&lt;random&gt;に存在したりしてる・・・?」 / Twitter
yohさんはTwitterを使っています 「@onihusube9 ぐろーばる・みゅーてっくすで保護した単一(グローバル変数)の乱数生成器を持てばよいというお話です?」 / Twitter
ドッグさんはTwitterを使っています 「@yohhoy @onihusube9 もしくはスレッドごとに乱数生成器を持てば良いだけな気も.mt19937ar でもせいぜい内部状態 2kb とかそんなんですし」 / Twitter
yohさんはTwitterを使っています 「@Linda_pp @onihusube9 よほど特殊な事情がない限り、スレッドごとに乱数生成器期を持つべきでしょうねw 疑似乱数なのでシードを意図的にずらす/真の乱数を使わないと、全スレッドで同一乱数列になってしまう点だけ注意が必要かなと。」 / Twitter
yohさんはTwitterを使っています 「@Linda_pp @onihusube9 https://t.co/3pyzXC4iZn みたいなことを過去に書いてました。」 / Twitter
スレッドセーフという幻想と現実 - yohhoyの日記(別館)
てらモス♋️さんはTwitterを使っています 「決定論的な乱数生成機を複数のスレッドで独立にエントロピーで初期化しても、あんまり大量に生成すると同じ列に入ってしまう可能性がちょっと上がるわけで、その可能性もちゃんと消した独立な列を取れる方が望ましいという用途はある」 / Twitter
Keigo NitadoriさんはTwitterを使っています 「@yohhoy @Linda_pp @onihusube9 単にseedを変えるだけでは誕生日のパラドックス的な衝突うが起こりやすいですよね。周期をスレッド数の2乗で割ったぐらいが十分に大きければいいんでしょうか?」 / Twitter
yohさんはTwitterを使っています 「疑似乱数こわちか :;(∩´﹏`∩);:」 / Twitter

人間向けの補正

R. ShioyaさんはTwitterを使っています 「今日やったアルゴリズム入門の講義では疑似乱数がテーマで、感想ながめてたら「RTA で出てくる乱数調整の意味がやっとわかりました!」てあったのだけど、あれは確かに話題として面白くて取り上げるといいのかもしれない」 / Twitter
R. ShioyaさんはTwitterを使っています 「今日の講義では一様乱数は人間が感じるランダムさとはちょっと違うとか、ゲーム会社にいる後輩から聞いたガチャの乱数に補正入れたり入れなかったりする話もしたんだけど、スク○ニはきちんとしてると言う話をしたのにテーブルで今揉めてるのでこれも来週やったら面白いかもしれん」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya 人間が乱数作ると、偏りっぽい並びやキリのいい数字が、過度に弾かれる的な話ですかね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya あとiPodのランダム再生にクレーム入った逸話とかもありましたね。 (ランダム再生では、本当のランダムを使ってはダメと)」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu はい,そんな感じの話です.ちゃんとした乱数だと直感よりも偏った(ように見える)連続が発生することはままあるので,それはそう言うものなのだとか,ゲームのガチャでは極端に不幸な人が一定数は出るので補正を入れているところもあるとかそんな話をしました.」 / Twitter

seed 固定

ゆうだいさんはTwitterを使っています 「乱数ってseed固定したら,ほかの環境でも結果が再現されるの?」 / Twitter
Willy 🌧米国大学教員さんはTwitterを使っています 「@physics303 詳しい事は分からないですが、「Rでseedを指定して乱数発生させて結果を提出」と言う宿題を出すと例年、みんな同じ結果を出してきます。」 / Twitter
StoneDotさんはTwitterを使っています 「@physics303 乱数生成アルゴリズムとシードが一致すれば、再現するはず。 ただ、浮動小数点数の計算結果が環境によって変化する可能性があるので、乱数振る振らないが、浮動小数点数の計算結果に依存する場合は再現しない可能性もある」 / Twitter
ゆうだいさんはTwitterを使っています 「@StoneDot ありがとう.初歩的な質問で恐縮なんだけど,その理屈で行くと,乱数シードを固定すると,同じPCを再起動しても,基本的には同じ乱数が生成されるよね? (np.random.seed(0) とかにしてnp.random.uniform(-1,1,10)とかすることを想定しているから乱数生成アルゴリズムは同じはず)」 / Twitter
StoneDotさんはTwitterを使っています 「@physics303 Yes です。再起動後も生成される乱数は維持されます。 /dev/urandom みたいな外部エントロピー使わない乱数ではない限り同じ結果になりますー」 / Twitter
Kaggleに登録したら次にやること ~ これだけやれば十分闘える!Titanicの先へ行く入門 10 Kernel ~ - Qiita
Taku KudoさんはTwitterを使っています 「詳しくは https://t.co/C2cQxC3x5S 失敗からこうなっている。 Thus, the API and implementation for previous iterations of generators within Google is, in many respects, effectively frozen in place and cannot be improved.」 / Twitter
abseil / The Abseil Random Library
Taku KudoさんはTwitterを使っています 「意外かもしれないが、absl::Random の疑似乱数はseed を与える機能が意図的になくしてある。テスト等で決定的動作にするために悪用されることがほとんどで、その結果修正不可なテストが増え、擬似乱数本来の改善が滞る結果になるから。使う側は乱数の本来の意味を理解して使うべき。」 / Twitter

Twitter

カスペルスキー

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号学的な乱数は、量子効果や熱雑音によるハードウェア生成が一番良い。 だが「特定ハードウェア実装が信用できるか」問題は別途あって、例えばLinuxは Intel CPUの乱数命令をseedの一部にしか使用しない保険を掛けてたはず。 https://t.co/pd66rQzPxv」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「ただの擬似乱数と暗号学的に安全な擬似乱数は違うってのはセキュリティの基本なのですが、意外にちゃんと教えられてない気はしますね…私も学部授業のレベルでは教えられてない… とにかく「よい乱数」ってホントに奥が深くて難しい話なのです。だから素人が手を出すよりOS提供の関数を使うのが吉。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このコードだと、seedは100ns以降のカウンタを32bit圧縮となり、3億ではなく42億パターン(これも十分小さいが)になる。 (元英文解説だと、ここは使われず、time(0)が使われるとある…元ネタを確認しないとダメなgigazine記事(笑)) https://t.co/tKLNqF3vBT」 / Twitter
カスペルスキーのパスワードマネージャーが生成したパスワードは総当たり攻撃で爆速突破が可能と判明、一体なぜか? - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C++だと、std::random_deviceを使えば、その環境でベストな暗号学的乱数が使ってくれる印象ある。 https://t.co/a9Cpd9hbq5 (なおパラノイア的には、IntelのHW実装やMSのCrypto実装をどこまで信用する?問題は残る(笑))」 / Twitter
random_device - cpprefjp C++日本語リファレンス
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「あー確かに書き方悪かったかも。OS提供の関数には「ただの擬似乱数」と「暗号学的に安全な乱数」があるのでちゃんと使い分けましょうね、という話です。 WindowsはかつてCryptAPIにCryptGenRandomがあったんですが今はCryptAPI自体が非推奨になってて、CNG APIのBCryptGenRandomを使うお作法です。」 / Twitter

ぐらふぃさんのツイート: "胡散臭いけどやばい論文です https://t.co/92Mb6ZGmT4 Learning From Pseudo-Randomness With an Artificial Neural Network–Does God Play Pseudo-Dice? - IEEE Journals & Magazine ニューラルネットに π や eといった数学定数とか Mersenne Twister の次の桁を予測させると統計的に優位に当たってる"
Learning From Pseudo-Randomness With an Artificial Neural Network–Does God Play Pseudo-Dice? - IEEE Journals & Magazine
Kazuho OkuさんはTwitterを使っています: 「CSPRNG(暗号論的擬似乱数生成器)じゃない乱数生成器はこうやってシードされてたりするから、セキュリティに関係する要件で使ってはいけないし、使わない限り問題ない。あるいは自分で urandom 等CSPRNGの値を注入して初期化してもよい https://t.co/kMa4KmGta9」 / Twitter
せり (zeriyoshi)さんはTwitterを使っています: 「はい、 PHP のメルセンヌ・ツイスタの固定化に成功しました syscall time, gettimeofday, getpid の結果が同一の場合必ず同じ乱数が生成されます https://t.co/7RTh6Oqu3W」 / Twitter
songmuさんはTwitterを使っています: 「ゲームとかだと、乱数生成器作成時に使ったシードを記録しておけば、同じ状況を制限できるので便利、とかありますね。ソシャゲ開発していたときにやっていて、調査などに使っていた。」 / Twitter
songmuさんはTwitterを使っています: 「「なんでバトルの結果がこうなってるんですか?」みたいな問い合わせに対して、手元で再現させて検証してから返答していた」 / Twitter
songmuさんはTwitterを使っています: 「制限じゃなくて「再現」!」 / Twitter
渋川よしきさんはTwitterを使っています: 「@songmu 僕もやってました。」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「LAMP 系のマイナーな環境だと高精度のタイマもpidもちゃんと取れなくて、ランダムに生成されるはずのセッションIDがたまに衝突するとか...」 / Twitter
S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「余りをとるのは常套手段だけど割り切れないとわずかに歪むし、素朴にやり直すと最大回数がboundできないけど、やり直さないで完全に一様にする方法はあるんだろうか。ないとしたら、不可能であることはどう証明(というかそもそも定式化?)するんだろう。(よく知られている解があったらすみません) https://t.co/JEBMpWwZPL」 / Twitter
ぼんてんぴょん(Bontenpøn)さんはTwitterを使っています: 「例えば00000~99999の範囲で一様乱数を発生させてくれる機械があって、0~99の乱数がほしいとき、下2桁を見ればいい。ところが0~74みたいな中途半端な範囲の乱数がほしかったら?「下2桁が75~99のときはやり直す」というのもアリだが、5桁を全部見て75で割った余りを取っても、おおむね一様になる。」 / Twitter
Yutaka OIWAさんはTwitterを使っています: 「@esumii ・ダイス振りn回以下のプロセスは、ぴったりn回のプロセスで表現可能(結果決まってからも余計に振る) ・k面ダイスn回のプロセスでの各出力の発生確率は k ** -n の倍数 ・あとは、nがいくつでも均等にならないことを帰納法なり代数なりで証明 でいいんじゃないでしょうか。」 / Twitter
Yutaka OIWAさんはTwitterを使っています: 「@esumii あとこの件は、適切な割り算さえ入れれば、1回の試行で決定できる確率を 1/2超にできる。 そうすると、試行回数の期待値は2未満になるので、乱数がマトモなら、分布が歪むリスクを避けてまでループを避ける理由はない。 各回を独立試行にする限り、繰返し回数(処理時間)と出力値の相関もない。」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「実務的な話で言うと、実行時間のずれあるいは確率分布のずれを無視できる範囲にしてくれれば良くて、つまり、ダイスを一定回数振ってから剰余とる形が良さそう」 / Twitter
SAKASHITA HirosiさんはTwitterを使っています: 「PHPで使われている疑似乱数関数mt_randについて、2つの出力値を得ることで残り全てが予測できる手法が編み出された模様です(中身はあまり読んでませんが…)。この関数で使われているMT法が暗号学的に十分セキュアでないことは聞いてましたが、これはびっくり。 https://t.co/Caj1nOK2Be」 / Twitter
The Hacker NewsさんはTwitterを使っています: 「Breaking PHP's mt_rand() with 2 values and no bruteforce https://t.co/UwPLKeAuB9 Given two mt_rand() output values separated by 226 others, it is possible to compute, without any brute-force, the original seed, and therefore obtain any previous or subsequent mt_rand() output. https://t.co/EzxaraBgN6」 / Twitter
Breaking PHP's mt_rand() with 2 values and no bruteforce
Ryo SuzukiさんはTwitterを使っています 「疑似乱数生成器 Xorshift の現代版、「Xoshiro」シリーズの C++ ラッパーライブラリのプロジェクトを公開しました。C++20 の標準乱数生成インタフェースに対応、ゲーム開発や研究プロジェクトに便利です (MIT ライセンス) https://t.co/JITqLE1thj」 / Twitter
Ryo SuzukiさんはTwitterを使っています 「xoshiro256++ はメモリ消費 32 バイトで周期 2^256-1 の乱数列を生成、BigCrush 検定に合格する統計的品質。 一方 C++ 標準の std::mt19937 はメモリ消費 5,000 バイト(!)で周期 2^19937-1, BigCrush の一部に失敗する。 Xoshiro 開発者の解説記事 https://t.co/fH4AOGExdD」 / Twitter
xoshiro/xoroshiro generators and the PRNG shootout
Reputeless/Xoshiro-cpp: Header-only Xoshiro/Xoroshiro PRNG wrapper library for modern C++ (C++17/C++20)
Shiro KawaiさんはTwitterを使っています 「@HPetegari もっと単純な話で、例えば8bitのランダムな整数をmod 26すると、0-21は10/256、22-25は9/256の確率で得られるので偏りが出るということです。良く使う手は、ランダムuint8を取って、それが234(=26*9)未満ならmod 26、以上なら再試行します。」 / Twitter

RdRand - Wikipedia, the free encyclopedia
セキュアキー対応インテル® データ・プロテクション・テクノロジー: Gazzang 社のケーススタディー | iSUS
Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理 – びりあるの研究ノート
Xorshift - Wikipedia
Xorshift - Wikipedia, the free encyclopedia
Lagged Fibonacci 法 - Wikipedia
Mersenne Twisterの出力を推測してみる - ももいろテクノロジー
高梨陣平さんはTwitterを使っています: "V8で採用された新Math.random向けのアルゴリズムの元となったアルゴリズムxorshift32が3行のシフト演算しか行っていないのに疑似乱数として良い性質を持っていることの解説 https://t.co/H33lXhFaLc"
Z3Pyでxorshift128+の出力を推測してみる - ももいろテクノロジー
Z3Pyでglibc rand(3)の出力を推測してみる - ももいろテクノロジー
Fadisさんのツイート: "CVE-2017-11671: gccがRDSEEDしたあとアプリケーションがキャリーフラグを読む前にキャリーフラグを書き換える命令を挟んできて実際には乱数取れてないのに取れた気分になってしまう不具合 https://t.co/JcvhFdbTyp"
oss-sec: CVE-2017-11671: GCC generates incorrect code for RDRAND/RDSEED intrinsics
最終回 発見プログラミング:増井ラボノート コロンブス日和|gihyo.jp … 技術評論社
乱数生成器とゲームと諜報活動の話|Rui Ueyama|note
十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama|note
Kazuho Okuさんのツイート: "PRNGの乱数性をどうプログラム内で担保するかについての僕の意見は https://t.co/crYMKCmrU0 のスレに記したとおりです"
Kazuho Okuさんのツイート: "@__gfx__ それなら現実問題として、ランダム性を仮定しつつ、仮定が破れた場合にはassertion failureにする、くらいがバランスよさそう"
Rui Ueyamaさんのツイート: "@kazuho 分散システムですぐにコリジョンが確認できない場合はどうしますか。"
メルセンヌ・ツイスタ - Wikipedia
メルセンヌ数 - Wikipedia
リュカ–レーマー・テストの証明 - Wikipedia
GIMPS - Wikipedia
「史上最大の素数」約2年ぶりに更新、50番目のメルセンヌ素数で桁数は2324万9425桁 - GIGAZINE
randの既定シード値は1 - yohhoyの日記

素因数分解

素因数分解を (RSA を破壊するレベルで) 劇的に高速化

Tsukasa #01さんはTwitterを使っています 「真偽はともかく、ちょっととんでもない論文が出てきたんだが。国際暗号学会の未査読論文だが、素因数分解を (RSA を破壊するレベルで) 劇的に高速化するアルゴリズムを開発したと主張している。 https://t.co/ApzLqRmjqR」 / Twitter
Cryptology ePrint Archive: Report 2021/232 - Fast Factoring Integers by SVP Algorithms
ManishさんはTwitterを使っています 「Seems like Schnorr just dropped a paper that reduces prime factorization to a shortest-vector-problem on a much smaller basis, and this might actually be the death knell of RSA? https://t.co/pN38MFn0zZ」 / Twitter
Léo DucasさんはTwitterを使っています 「@chelseakomlo @asanso @_henrycase @FredericJacobs @CryptoBits_eu #SchnorrGate update: the new version of March 3rd is much easier to test, requiring SVP in dimension as low as 47 (down from 1800 !). Out of 1000 trials, no factoring relations was found. https://t.co/AXRQ6z3Dqm」 / Twitter
lducas/SchnorrGate: Testing Schnorr's factorization claim in Sage
Kazuho OkuさんはTwitterを使っています 「今のところ否定的な印象が多そうなイメージではあります https://t.co/N9CQbeJRew」 / Twitter
Tsukasa #01さんはTwitterを使っています 「@kazuho 流石に現段階ですぐ「真だと仮定する」のは危なすぎますが、再現実験はしたいですね……。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@a4lg 引用したツイートは、実際に実装して試したけど機能しない、という専門家のツイート(再現コード含む)ですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「RSAの素因数分解は懸賞金かかってるのが色々あるので、今回の手法が機能するなら、やぶろうとする人たちがいて、最初にやぶった人が権利を主張するために解を公開するだろうという見立ては妥当だと思う https://t.co/ohhpWVeHVH」 / Twitter
RSA Factoring Challenge - Wikipedia
Kazuho OkuさんはTwitterを使っています 「既存手法でRSA-829が解かれてるのだから、劇的な進歩があったならRSA-896を解くのは当然可能なはずだ、と」 / Twitter

LGPL

GNU Multi-Precision Library - Wikipedia
素数判定プログラム2 C言語 GMPライブラリ : Yuki Nakata's Blog
素数判定プログラム3 C言語GMPライブラリ : Yuki Nakata's Blog
ecm.gforge.inria.fr

単純な素因数分解アルゴリズムを実装してみる - ももいろテクノロジー
Msieveを使って大きな数を素因数分解してみる - ももいろテクノロジー
Msieve download | SourceForge.net
Msieve 日本語情報トップページ - OSDN
Msieve の使い方
素因数分解プログラム msieve
OpenSSLとPythonでRSA暗号の原理を知る - ももいろテクノロジー
wbhart/bsdnt: BSD Licensed Bignum Library
YAFUを使って大きな数を素因数分解してみる - ももいろテクノロジー
フロイドの循環検出法 - Wikipedia
ポラード・ロー素因数分解法 - Wikipedia

BASE64

Base64 - Wikipedia
BASE64エンコード - UIC
base64ってなんぞ??理解のために実装してみた - Qiita
Base64のデコード - オンラインBase64のデコーダ
BASE64とは - 意味 / 定義 / 解説 / 説明 : IT用語辞典
Base64 Decode and Encode - Online

blog

自堕落な技術者の日記 : HPKP(HTTP Public Key Pinning)公開鍵ピニングについて考える - livedoor Blog(ブログ)
自堕落な技術者の日記 : X.509証明書の識別名などで使われるMulti-valued RDNとjsrsasignのサポートについて - livedoor Blog(ブログ)
自堕落な技術者の日記 : 最近の証明書の話題(2): CloudFlare DNS 1.1.1.1サイトのIPv6証明書 - livedoor Blog(ブログ)
自堕落な技術者の日記 : 最近の証明書の話題(3): デジタル証明書形式の電子委任状のプロファイルに関する考察 - livedoor Blog(ブログ)
SSL/TLS証明書、その特性について – カスペルスキー公式ブログ
HTTPSが安全とは限らない | カスペルスキー公式ブログ
余分な証明書を悪用した、ドメインへの中間者攻撃とDoS攻撃 | カスペルスキー公式ブログ
CVE-2020-0601でわかるMSのTLS証明書検証プロセスについて
インターネットをよりロバストに。RPKIはじめます | IIJ Engineers Blog
改めて知ろう、SSLサーバー証明書とは?(第二回) - さくらのナレッジ
Google Developers Japan: キーストアの鍵の構成証明
本の虫: 健全なP2Pネットワークの信用のためには全利用者の参加が必須であるという話
高木浩光@自宅の日記 - NEDOのサイトで4つのサプライズ, PKIよくある勘違い(0)「サーバ証明書は単なる暗号鍵であり認証局の署名は実在証明にすぎない」
オレオレ証明書を使い続ける上場企業をまとめてみた - megamouthの葬列
Windows CryptoAPIの脆弱性によるECC証明書の偽造(CVE-2020-0601) - ぼちぼち日記
ZeroSSL ならIPアドレスのサーバ証明書が取得できる - ASnoKaze blog
DigiCertによるプライベートアドレスの逆引き名の証明書誤発行 - ASnoKaze blog
AWSにおけるSSL証明書の基本的な取扱い | 外道父の匠
Chrome58になると自己署名の証明書がエラーになるので、OpenSSLに詳しくなった話
JSON先進署名フォーマット「JAdES」解説 【第2回】先進署名フォーマットとプロファイルとは何か | GMOグローバルサインブログ
TLS証明書チェッカーcheck-tls-certの公開 - インフラエンジニアway - Powered by HEARTBEATS
heartbeatsjp/check-tls-cert: Check-tls-cert is a TLS certificate checker.

スライド

動的証明書読み込み ngx_mruby編 #hoscon / GMO HosCon 2016 // Speaker Deck
秘密分散法の数理
AM03_shimaoka.pdf

Let's Encrypt

ACME

autocert - GoDoc
crypto/acme/autocert at master · golang/crypto
jetstack/kube-lego: Kube-Lego automatically requests certificates for Kubernetes Ingress resources from Let's Encrypt
GKE でサービスを HTTPS と HTTP/2 に対応する(kube-lego 編) - Qiita
Google Container Engine上でLet's Encryptによる証明書を自動更新する(kube-lego) - Qiita
jetstack/kube-lego - Docker Hub
Shigeki Ohtsuさんのツイート: "Let's EncryptのACME TLS-SNI-01問題は同一IPでマルチユーザホスティングで任意の証明書がアップロードできる所があったからか。ブラックリストを作って再開するらしいが根本解決はできるのかな? / “018.…” https://t.co/bgF6sTzfMv"
Shigeki Ohtsuさんのツイート: "Let's EncryptのACME脆弱性の対応方針:TLS-SNI-01の利用は廃止の方向に。新規アカウントはSNI-01の利用禁止。既存アカウントはrenewalに限定。今後HTTP-01、DNS-01 のvalidationに移行を進めていくとのこと。… https://t.co/oe9ReJ1aAL"
Let’s Encryptが「ACME v2」とワイルドカード証明書サポートを開始 | OSDN Magazine
Rockridgeさんのツイート: "Let's Encryptでは、2018年3月14日のACME v2プロトコルの導入に伴い、ワイルドカード証明書の発行をサポートした。 / “ACME v2 and Wildcard Certificate Support is…” https://t.co/7VfbVMOAhJ"
Let’s EncryptとACME | IIJ Engineers Blog
続 ACME | IIJ Engineers Blog
xenolf/lego: Let's Encrypt client and ACME library written in Go
containous/traefik: The Cloud Native Edge Router
ゆきさんのツイート: "ACME Client Extension https://t.co/7TKBabYB4I ACMEを用いてクライアント証明書、コードサイニング証明書発行する拡張仕様。カジュアルな気持ちで読み始めたけど、難しい... #yuki_id"
draft-moriarty-acme-client-00 - ACME Client Extension
End of Life Plan for ACMEv1 - API Announcements - Let's Encrypt Community Support

クロスサイン

https://twitter.com/kazuho/status/1387965341855219721 の想定回答
Kazuho OkuさんはTwitterを使っています 「面白い。そんなことになってるのか。R3自体が変わるわけじゃないのでショートチェーンは自分でチェーン作れば変えられそうだけど、R3自体が今年9月で寿命だからそれまでかな / https://t.co/NATgCsxkKS」 / Twitter
Let's Encryptのルート証明書切替周り(完結編) | おそらくはそれさえも平凡な日々
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho すみません、良く判って無いのですが「それまで」の意味は何でしょうか??」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu サーバ証明書 —&gt; R3 --&gt; DST Root CA X3というショートチェーンを作れるのは、です」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu R3の次の中間証明書については、新方式に移行する以上、DST Rootに署名してもらうことはしないでしょうし」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho なるほど、判りました。 ご説明ありがとうございます。」 / Twitter

ファーストサーバ、無料SSL証明書「Let's Encrypt」の取り扱いを開始 -INTERNET Watch
無償SSLサーバー証明書Let&#8217;s Encryptの普及とHTTP/2および常時SSL化 | OSDN Magazine
Let’s Encrypt - ArchWiki
Rockridgeさんのツイート: "Let’s Encryptが国際化ドメイン名(IDN)を含むデジタル証明書の発行をサポート。 / “Introducing Internationalized Domain Name (IDN) Support - Let's …” https://t.co/9ywe6D5OTY"
Autumn Goodさんのツイート: "2016年1月から2017年3月までに Let’s Encrypt が発行した"PayPal"の文字列を含む証明書はcrt.shで調査すると15,270件あったようです。もちろんほとんどはフィッシングで使われています。この傾向だと今年末にはさらに2万件増える見込みとのこと。 https://t.co/v32Qw4scSb"
2017/05/19にLet's Encryptで起こっていた障害についてのメモ - Technically, technophobic.
Let's Encrypt、ワイルドカード証明書を2018年1月より無料提供 -INTERNET Watch
ロリポップ!利用者向けにLet's Encryptの無料SSL証明書発行サービスを提供、GMOペパボ -INTERNET Watch
Let’s EncryptのSSL証明書で、安全なウェブサイトを公開 - さくらのナレッジ
Let's Encryptのワイルドカード証明書対応はこうなる? DNS-01のみか - Qiita
Rockridgeさんのツイート: "2017年12月時点で、Let's Encryptが発行したアクティブな証明書の数は4600万を突破。2018年中に9000万を目指す。また、2018年2月27日にはACME v2プロトコルを導入し、ワイルドカード証明書の発行を全… https://t.co/YWxZ14wH1U"
ユーザーガイド - Let's Encrypt 総合ポータル
Shigeki Ohtsuさんのツイート: "文科省外局のスポーツ庁の広報ページ https://t.co/qmRFNAsEYY でも Let's Encrypt のDV証明書を利用しているんですが… 他の https://t.co/lcSQE0omPH ドメインでちらほら。httpしか提供してないサイトよりよっぽどましかと。 https://t.co/vFqWfZMJBT"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "うわー!証明書がLet‘s Encrypt!東証一部上場企業のサイトとしては衝撃的やな…この会社の情シスのレベルとか、この会社がサイバーでの信用というものをどう考えているかとか、色々考えさせられるわ… https://t.co/9UMVfA6BUl"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "この辺はまぁhttps://t.co/3fYww1OH4oの信頼で推すというのならまぁそうなんですねとしか言えません.民間CAにOVしてもらうのも結構面倒があるようなので,GPKIが正常化したら解決するのかなぁと思ってます…道のりはもう少しありそうですが.LGPKIが最近SECOM依拠になったので見習って欲しいなと.… https://t.co/s5Dju4emcw"
Shigeki Ohtsuさんのツイート: "最近更新したGPKIの証明書を見ると https://t.co/J8DYsMrdi6 LGPKIと同様の正常化?するのではないかと淡い期待を持って見ています(ごめんなさい島岡さん)。 https://t.co/jlwCng5hKf も再来週expireなので同様に正常化していただきたいものです。… https://t.co/kJ6GZTFv6b"
上場企業やgo.jpドメインでもLet's Encryptのサーバ証明書の利用が広がる | スラド セキュリティ
ssh port forwardingとstone経由でLet's encryptのワイルドカード証明書を作成する - .mjtの日記復帰計画
Let's Encryptさんのツイート: "Let's Encryptは1億5000万のドメインで使用されています。 https://t.co/RFNQqW12O5… "
Looking Forward to 2019 - Let's Encrypt - Free SSL/TLS Certificates
Shigeki OhtsuさんはTwitterを使っています 「Let's Encrypt続報: 未更新の130万証明書の半数以上が利用中。影響度を考慮しBR規定の5日以内の失効を止め、残り83日のExpireを待つ方針。引き続きモニターと連絡を継続。今後この様な大規模インシデントに対応できるよう失効通知するプロトコルの開発を進めると。 https://t.co/yNoxD0IrEk」 / Twitter
1619179 - Let's Encrypt: Incomplete revocation for CAA rechecking bug
nsdでの letsencryptワイルドカード証明書の自動更新
Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記
Shiro KawaiさんはTwitterを使っています 「あああ、SchemerがCommon Lispでよくやるミスだ。参照取っちゃう以外にクロージャに閉じ込んじゃうのもありがち。やはりループ変数を破壊的変更するのは人類の手に余るのでは https://t.co/k6AdNy068V」 / Twitter
mattnさんはTwitterを使っています 「んータイムライン見てると Go の言語的な性質の様に書いてる人がいくらかいるけど、これ他の言語でも起きるよ?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@zacky1972 そっち行っちゃえば心配の必要がなくなるってのは自明ですが、ここでの話題は「ループ変数の更新は破壊的変更と気づきにくいからはまりやすいのでは」という話でして… なおSchemerにはループは再帰呼び出しに見えるので当然新しい束縛だろうと思うわけです」 / Twitter
FadisさんはTwitterを使っています 「certbotのnginxプラグインを使ったLet's encryptの証明書の仕込みが簡単すぎて、TLS簡単になったなぁ、となった」 / Twitter
Kazuho OkuさんはTwitterを使っています 「今日、lets encryptの証明書取得したら4段になってて、おーって思った。メジャーなCAが4段発行するのひさしぶり感ある https://t.co/LPUM1W8d7d」 / Twitter
Kazuho OkuさんはTwitterを使っています 「「2021年9月以降は今回のクロス証明書の状態の維持管理ができないので違反しているように思います」MUSTがあるのは同節最終段落で、ルート失効のタイミングで仕様を満たす検証機は失敗するようになるから問題ない気が / https://t.co/Fz1I9lRxtY」 / Twitter
Let's Encryptのルート認証局移行についてちょっと調べてみた - Qiita
Kazuho OkuさんはTwitterを使っています 「別の言い方をすると、Androidが仕様に反しルート証明書の有効期限検証していないのが問題であって、そこは、わざわざそうしている歴史的経緯がわからないと議論できないと思うけど僕は経緯をしらない」 / Twitter

BIMI

BIMIとは? | SendGridブログ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GMailの場合、BIMI対応した企業ロゴ表示には、VMC(Verified Mark Certificates ) というロゴ証明書が必要。 DigiCertでのVMC料金は紹介割引で$899(定価$1499)、またロゴは事前に商標登録されている必要がある、と。 https://t.co/x8Gz6hD2rm」 / Twitter
DigiCert Verified Mark Certificates
17: Let's Encryptの90日と1秒の証明書の対策のその後の議論の話、なりすましメール対策のBIMIとVMCの話 by ひとくちPKI • A podcast on Anchor
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VMCは、登録商標ロゴ+DMARCの紐づけ証明と。 類似ロゴを登録商標にした場合の誤認はありうるのかな? (商標は国ごとなので、国が違う類似商標など)」 / Twitter

S/MIME

上原 哲太郎/Tetsu. Ueharaさんのツイート: "S/MIMEは、有効期限が切れた証明書も全部残してないと古いメールの署名検証ができません。自分の過去の証明書もちゃんと残してないと古いメールが復号できなかったりします。ところが、その話をすると「おおっ」という反応がしばしば。つくづく使われてない技術だなと感じます。"

Qiita

Kazuho OkuさんはTwitterを使っています 「書いてる人、すごい体系的に知識をダンプしていてプロだと思うけど一点「TLS「改ざんの有無」の説明が不適切。デジタル署名ではなく、MAC ( 今はAEAD) で担当」これは不正確。ハンドシェイクの改竄確認はデジタル署名 / https://t.co/BBbFeDodxW」 / Twitter
公開鍵暗号関連のテキストの間違いの典型例 - Qiita
Kazuho OkuさんはTwitterを使っています 「ここまで細かく説明できる人だから、レコードレイヤの改竄検知はAEADだけど、ハンドシェイクレイヤはデジタル署名、というのも正確であってほしい、という」 / Twitter
Kazuho OkuさんはTwitterを使っています 「自分はここまで細かく網羅的な文章を書くことはできないだろうなーって思いつつ気軽にツッコミ入れてるだけです念のため」 / Twitter
Shigeki OhtsuさんはTwitterを使っています 「@kazuho PSK mode だと MAC(Finished) もあるかと。AEADじゃないですが。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@jovi0608 おっしゃるとおりですね。PSKモード関係なくFinished「も」ある、という表現が的確でしょうか」 / Twitter
Shigeki OhtsuさんはTwitterを使っています 「@kazuho はい、そうですね。CertVerify と一部役割がかぶってて説明しずらいですが。」 / Twitter
図解 X.509 証明書 - Qiita

Twitter

目視確認

kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「Base64エンコードされた証明書などASN.1データを目読みできる人が一定数いる。JSONだとeyJとかで始まるくらいが関の山だが、証明書、CRL、OCSP、CMS SignedDataなどはもうちょっと見ることができて私のコツを紹介すると (1/4)」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・SEQUENCE(30)で鍵の大きさにもよるが長さが820xxxになるので先頭は概ねMIIかMI ・RSA公開鍵、署名値などは非印字バイトとなるのでスラッシュやプラスが所々多く入る ・逆にASCII印字可能な識別名の値、有効期限の値などはスラッシュ、プラスが入らない (2/4)」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・Base64は任意の3バイトを4文字で表現するので長い固定のバイトは後ろが3通りのみ ・rsaEncryptionやcommonNameなどの頻出OIDを3パターン知ってればその位置がわかる (3/4)」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・上記により識別名やsubjectAltName、拡張のOIDなどの場所が大体わかる ・頻出する拡張タイプOID、CMS属性タイプなどの3パターンを覚えると更に読める (4/4) これで、みんなもPEM形式のX.509証明書大好きになっちゃうよね」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「おっと、忘れてた ・証明書の後ろは署名値だから非印字文字を含むのでスラッシュ、プラスが多めだよ これ、マメ知識な!!! (5/5)」 / Twitter
kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「書き忘れ(2) ・主要な署名アルゴリズムのAlgorithmIdentifier構造も3パターン覚えておくと、tbsCertificateと署名値の区切りが大体わかってオススメだお」 / Twitter

histric-1

Yosuke HASEGAWAさんのツイート: "Chrome 58になって、組織内でオレオレ証明書つかってると、ルート証明書いれててもページ遷移毎にmissing_subjectAltNameで証明書のエラー画面が出るようになったので、いろんな会社で叫び声きこえてておもしろいけど大変そう。"
Rockridgeさんのツイート: "Fx52:security.enterprise_roots.enabledをtrueに設定した場合に、Windowsの証明書ストアに登録された証明書機関をチェックする範囲を拡大した。参照:… https://t.co/dolm0vhOaT"
Rockridgeさんのツイート: "Fx56:中国の認証機関であるChina Internet Network Information Center(CNNIC)が発行したEV SSL証明書を無効なものとして取り扱うことにした。 / “show_bug.cgi?i…” https://t.co/f0F9XW4dg2"
Shigeki Ohtsuさんのツイート: "うわっCIAのVault8 、ThawteのFake Root証明書を仕込んでカスペルスキーのWebサーバ証明書を作ってる。25年有効のシリアル番号1のSHA-1署名やん 。 https://t.co/98p2IZNMRa https://t.co/B01q0Wj0kR"
Makoto Kato ︎︎さんのツイート: "WebTrust for BRに準拠してない運用してるGPKIよりもLet's Encryptの方がCAとしてマシな気がするし、そもそもLet's Encrypt使わない場合でもEVな証明書使わない気がするんだよね、そういうサイト。"
himorin@5/19-20ベトナムフェスティバル2018さんのツイート: "そ、そろそろGPKIは部署ごとなかったことに・・・・したい・・・ですよねぇ。。… "
Makoto Kato ︎︎さんのツイート: "ソフトバンクテクノロジー配下のCyber Trust JapanのCAがBR満たしてないかも話出てたけど、どうなったんだろ"
Hideyuki Tanakaさんのツイート: "インターネッツのssl証明書は中間者攻撃を防ぐために必要な仕組みだったのに、いつの間にかお墨付きを与えるための高額商品みたいな商売になっていたのはなぜなのだろうか…(´・_・`)"
Rockridgeさんのツイート: "Fx63:証明書のエラーページのデザインが新しくなった。 / “1463755 - Update the design of certificate error pages” https://t.co/MKaN8OGt3d"
Shinko@C94金西も17bさんのツイート: "官報嘘だろ。 『オレオレ証明書インストールしてね』って頭湧いてんの。馬鹿なの? この国なんなの。まじかよ嘘だろ… https://t.co/UAyCRUkIga… "
Kazuho Okuさんのツイート: "iOS含むAppleのプッシュサービスが、デバイス毎にユニークなクライアント証明書を使いwifiの切替の度にTLS 1.2で接続していたから、ネットワーク上からデバイスの位置をトラッキング可能だったという話。昨年修正済 #ietf102j"
Kazuho Okuさんのツイート: "X509をひとことでいうと、証明書の署名鍵の証明する仕組。ダジャレじゃないよ!"
Shirouzu Hiroaki(白水啓章)さんのツイート: "カスペルスキーは、VirtualBox内のSSL通信にも侵入して、証明書情報を書き換えてMITMを強制してくるのか…… "
Rockridgeさんのツイート: "Comodo CAが2018年11月1日付けでSectigoへとブランド変更を実施。 / “Comodo CA Rebrands as Sectigo | Sectigo (formerly Comodo CA)” https://t.co/jsTnM8TY08"
Kazuho Okuさんのツイート: "TLS 1.2までは証明書を平文で交換していたが、iPhoneのプッシュ通知においてデバイスのトラッキングが可能になるなどの問題があり(証明書はデバイス毎に一意だから)、1.3で暗号化されるようになった、と言えば覚えやすいのかしら https://t.co/JmkiJmswr9… https://t.co/23JzcdISGH"
Push away your privacy: Precise user tracking based on TLS client certificate authentication - IEEE Conference Publication
Vさんのツイート: "TLS 1.3 で証明書が暗号化されて送られるのまだ広まってないのか。"
Kazuho Okuさんのツイート: "君たちの言っている公開鍵は、公開鍵交換なのか交換鍵署名なのか公開鍵暗号なのか"
Kazuho Okuさんのツイート: "公開鍵は必ずしも一般に公開して使うものではないのですよ。例えば、クライアント認証に使う公開鍵は、通信相手毎に違うものを使い、かつ、経路上では暗号化して第三者に見えないようにすることで、名寄せやユーザートラッキングができないようにする、というのが今日的なベストプラクティス… https://t.co/dlSXIw4xQC"
Kazuho Okuさんのツイート: "暗号応用の標準化に携わってる一技術者として言えることがあるとしたら、脅威モデルが何かという前提を明らかにせずに、あれが正しい、これが間違い、と主張するのは議論が空転するからさけたほうがいいよ、ってことですね"
佐々木聖也🍤인권さんのツイート: "> 経路上では暗号化して第三者に見えないようにすること ができるにもかかわらず,認証に共通鍵暗号ではなく公開鍵暗号を利用するのはなぜなのでしょうか。計算コストが無駄ではないですか?… "
Kazuho Okuさんのツイート: "いい質問だと思います。標準化されていて柔軟(たとえばTLSのクライアント認証機能を使えば、上位で動作するアプリケーションごとに認証機能をもたなくてよい)、セキュア(クライアントデバイス外に鍵が漏れることがない)、しばしばハードウェアサポートがある、といったあたりが理由かなと… https://t.co/VPFg4ndiiF"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば最近はさすがに、公開鍵の特徴を説明しようとして、RSAの特徴を説明してしまうパターンは減った気がする。 (昔、猿にはわからんだろうけど…みたいなタイトルで啓蒙していた人の成果かな?)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ここは明確に複数の事実誤認(RSAとDHの原理の混同、またDHの方が先)してますね。 それ以外に気になったのはどのあたりでしょう?… "
angel as ㌵㌤の猫さんのツイート: "これ…。第1回はいいけど…。山口准教授って、ガチの専門家のはずだよね。それでこの内容なの? 20年前だったらまだしようがないかもしれないけど、連載当時で2017年なんだよね。… "
ぎょうせいオンラインさんのツイート: "【連載】カフェ発マイナンバー・ICTが拓くセキュアで豊かな社会 第18回 鍵を公開しても安全? 公開鍵暗号と共通鍵暗号(1) 山口 利恵・東京大学大学院情報理工学系研究科ソーシャルICT研究センター特任准教授 https://t.co/PyURnDLUcY"
第18回 鍵を公開しても安全? 公開鍵暗号と共通鍵暗号(1) | ぎょうせいオンライン  地方自治の総合サイト

Shigeki OhtsuさんはTwitterを使っています 「Apple Safariが2020年9月1日以降発行の証明書の有効期限を1年(と+1ヶ月の398日)に制限をかけるようです。Chromeも追随しちゃうよな。 / “position-on-1-year-ssl-tls-certificates” https://t.co/PE4ehm5FrN」 / Twitter
position-on-1-year-ssl-tls-certificates
Shigeki OhtsuさんはTwitterを使っています 「Appleが2020年9月1日よりサーバ証明書の有効期限を最大398日に制限する正式アナウンスです。 / “About upcoming limits on trusted certificates - Apple Support” https://t.co/zZ7QtjieFZ」 / Twitter
About upcoming limits on trusted certificates - Apple Support
uint256_tさんはTwitterを使っています 「素数判定, miller rabin くらいしか知らないなあ」 / Twitter
ほまれちゃん☃️さんはTwitterを使っています 「@uint256_t AKS法、フェルマーテスト、ソロベイ・シュトラッセンテスト等々色々ありますね(自分はミラーラビンとAKS法しか実装したことがない)」 / Twitter

WebAssembly

WebAssembly Studio

mbebenita.github.io/WasmExplorer/
WasmFiddle
WebAssembly Studio
wasdk/WebAssemblyStudio: Learn, Teach, Work and Play in the WebAssembly Studio
Rockridgeさんのツイート: "既存のWasmExplorerとWasmFiddleを統合し、新機能を追加して、新たなオンライン統合開発環境であるWebAssembly Studioに生まれ変わるという。今のところAlpha版に近いBeta版の状態。 / “S…” https://t.co/o88We9ZzA3"
Mozillaが「WebAssembly Studio」発表。C/Rust/AssemblyScript対応のオンラインIDE - Publickey
Coding WebAssembly? New IDE Offers Alternative to Visual Studio -- Visual Studio Magazine
WebAssembly Studio: MozillaによるオンラインWASM IDEツール
AST explorer
chikoskiさんのツイート: "WebAssembly Studioってコールグラフを可視化する機能があったのか。https://t.co/4iP8e3qcvC #webassembly"

WebAssembly

WebAssembly/proposals: Tracking WebAssembly proposals
WebAssembly Specification — WebAssembly 1.0
WebAssembly Core Specification
WebAssembly Specification
WebAssembly
Roadmap - WebAssembly
Binary Encoding - WebAssembly
Tanks! Demo - WebAssembly
Submitting Feedback & Issues - WebAssembly
Modules - WebAssembly
JavaScript API - WebAssembly
Web Embedding - WebAssembly
NectarJS - JavaScript's God Mode
WebAssembly Tail Call - Chrome Platform Status
Embedding — WebAssembly 1.0
Instructions — WebAssembly 1.0
WebAssembly Core Specification
Introduction to WebAssembly — Rasmus Andersson
WebAssembly Reference Types - Chrome Platform Status
「Google Chrome 78」リリース | OSDN Magazine
WebAssemblyソースコードがGDB、LLDBを使ってブラウザ外でデバッグ可能に
WebAssembly/wasm-c-api: Wasm C API prototype
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「暗号関係の計算をサイドチャンネル攻撃から守る、などのためにconstant timeな命令をWasmに追加しようというproposal / 1件のコメント https://t.co/lzLoLIk7pr “GitHub - WebAssembly/constant-time: Constant-time WebAssembly” https://t.co/dkekeCzMFR」 / Twitter
WebAssembly/constant-time: Constant-time WebAssembly

MDN

WebAssembly Concepts - WebAssembly | MDN
WebAssembly テキストフォーマットから wasm に変換する - WebAssembly | MDN
WebAssembly JavaScript API を使用する - WebAssembly | MDN
WebAssembly テキストフォーマットを理解する - WebAssembly | MDN
WebAssembly のコンセプト - WebAssembly | MDN
WebAssembly | MDN
WebAssembly.Module - JavaScript | MDN
WebAssemblyコードのロードと実行 - WebAssembly | MDN
コンパイルされた WebAssembly モジュールをキャッシュする - WebAssembly | MDN
WebAssembly.instantiate() - JavaScript | MDN
WebAssembly.compile() - JavaScript | MDN
WebAssembly - JavaScript | MDN

W3C

WebAssembly Core Specification
WebAssembly JavaScript Interface
WebAssembly Web API
W3C、「WebAssembly」仕様について初めてのワーキングドラフトを公開 - Publickey
Rockridgeさんのツイート: "W3CでWebAssembly Working Groupが発足。WebAssemblyの標準仕様化を目指す。なお、引き続きCommunity Groupにおいて新機能の検討が行われる。 / “Launching the Web…” https://t.co/CnyEYnYFAJ"
WebAssembly Working Group Charter
Launching the WebAssembly Working Group | W3C Blog
public-webassembly@w3.org Mail Archives
W3C Strategic Highlights: Strengthening the Core of the Web (Web Assembly) | W3C Blog

asm.js

HTML5Experts.jp

Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーJavaScript が動く仕組み | HTML5Experts.jp
Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsの仕組みとコーディング例 | HTML5Experts.jp
Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーC / C++をasm.jsに変換するツールEmscripten | HTML5Experts.jp

blog

JavaScriptの実行速度を劇的に改善するasm.jsの特徴は、CやC++のような言語をJavaScriptのサブセットで記述すること - Publickey
asm.jsの基本的な使い方・まとめ
ハイパフォーマンスなWebを実現するasm.js/WebAssemblyとは――Mozillaのルーク・ワグナー氏に聞く:CodeZine(コードジン)
Emscripten によって生成された asm.js 対応コードは本当に人間が書いたコードより速いのか? : document
asm.jsとかPNaClとかLLVMに興味あったので調べて回ったら少しだけ理解できた話 - ひつじのにっき
Extending Emscripten to Support Objective-C — running iOS Apps on the Web

スライド

20170222-emscripten-fs // Speaker Deck
asm.js 減量やってみた // Speaker Deck
asm.jsとWebAssemblyって実際なんなの?
asm.js x emscripten: The foundation of the next level Web games
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略

Qiita

asm.js: 仕様と実装の今 - Qiita
asm.jsの速度検証 -その1- 何も考えずに書いてみる - Qiita

Twitter

Rockridgeさんのツイート: "asm.jsの並列的コンパイルについて解説した記事。Firefoxではasm.jsとWebAssemblyの処理パイプラインを共通化しており、asm.jsでもwasm IRがベースになる。これを独立したスレッドで最適化する。 https://t.co/fvEoHlZ05X"
Rockridgeさんのツイート: "Fx49:5MBを超える巨大なJavaScriptはメモリ内で圧縮が行われる。asm.jsの消費メモリ抑制に効果があるという。 / “1219098 – re-enable compression on large sources” https://t.co/BxTPVFXEgA"
chikoskiさんのツイート: "Emscriptenでサポートされているioctl のフラグですが、ざっと読んだ限りFIONREADとTIOCGPGRPだけが実装をもち、TCSETSとTIOCSPGRPはエラーが返るようです。他のは"bad ioctl syscall"となるようです。 #emsn"
Rockridgeさんのツイート: "asm.jsが何であって、何でないかということは、2013年6月という初期の段階でかなり詳細に説明されていた。 / “azakai: What asm.js is and what asm.js isn't” https://t.co/ivGMTBQa61"
Fadisさんのツイート: "Linuxカーネルの中にはインラインアセンブリが使われている箇所があるが、JavaScriptエンジン上でLinuxカーネルを動かすには、emscriptenのasm(JavaScriptを挟める)に置き換える必要がある #kernelvm"
maoさんのツイート: "WASMのパフォーマンスについて👀 良いのう。まぁ将来的にasm.jsはどの道廃止されるし。(2018.3からは非推奨警告が出る) WebAssembly Load Times and Performance https://t.co/bIVG7WrwRT"

Embind — Emscripten 1.37.3 documentation
WebIDL Binder — Emscripten 1.37.3 documentation
asm.js
PyPy.js
kripken/emscripten: Emscripten: An LLVM-to-JavaScript Compiler

LEB128

KMC Staff Blog:DWARF と有限状態機械
DWARF 3.0 Standard
LEB128な数の表現 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
LEB128 ‐ 通信用語の基礎知識
左シフト演算子および右シフト演算子 (<< および >>)
Little Endian Base 128 in JavaScript - Google スライド

setjmp

Cedec 2015 : EmscriptenとC++で作る ネイティブライクな 商用ブラウザゲーム(Making WebApp like…
Emscriptenチュートリアルコードの移植性と制限事項(a) - YUEDY
How would setjmp/longjmp be implemented in WebAssembly? - Stack Overflow
LLVM Weekly - #140, Sep 5th 2016
A cartoon intro to WebAssembly | Hacker News
src/setjmp/longjmp.c - external/github.com/WebAssembly/musl - Git at Google
Drop emscripten-fastcomp in favor of WebAssembly ? - Google グループ
⚙ D24121 [WebAssembly] Add asm.js-style setjmp/longjmp handling for wasm (reland r280302)
jfbastien/wasm-setjmp: Experimenting with setjmp / longjmp and exceptions in wasm
Does WASM share a stack with JS? · Issue #126 · WebAssembly/design

関数へのポインタ

WebAssemblyとコンパイラとランタイム | κeenのHappy Hacκing Blog
【WebAssembly】C/C++からJavaScriptで実装した関数を実行する - shogonir blog
【WebAssembly】wasm側で動的に作成したインスタンスをJSに渡す - shogonir blog
WebAssembly モジュールの作成と操作 | Mozilla Developer Street (modest)

スライド

20160903-WebAssembly // Speaker Deck
20161005-WASM // Speaker Deck
WebAssemblyに足りないもの - Google スライド
WebAssembly 入門 // Speaker Deck
コンパイラの人からみたWebAssembly | κeenのHappy Hacκing Blog
WebAssemblyとコンパイラとランタイム | κeenのHappy Hacκing Blog
NickBray_WebAssembly.pdf
詳説WebAssembly
はじめてのWebAssembly // Speaker Deck
20170924-html5conference-wasm // Speaker Deck
20171018-WASM // Speaker Deck
WebAssembly Proposals - Google スライド
chikoskiさんのツイート: "WASM 今の提案まとめスライド(TPAC2017でつかわれたもの)。今の状態、レポジトリ、提案者がまるっとわかって便利 https://t.co/50lGscy6wA #emsn"
WASM(WebAssembly)入門 ペアリング演算やってみた
WebAssembly future - Speaker Deck
WebAssemblyとABI | κeenのHappy Hacκing Blog
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
TypeScript で WebAssembly 処理系を書いた話 - Speaker Deck
AsteriusでHaskellの関数をJSから呼べるようにしてみた(けど失敗) (1)
tweag/asterius: A Haskell to WebAssembly compiler
C/C++とWebAssemblyを利用したライブラリ開発
emscripten_night_7.pdf - Speaker Deck
reg-viz/reg-cli: 📷 Visual regression test tool.
WebAssemblyが切り拓くフロントエンドWeb開発の未来
Updates in 2019 Q2 / WebIDL bindings - Google スライド
WebAssembly outside of the browser - Speaker Deck
Tiny WebAssembly Builds / WebAssembly Summit 2020 - Google スライド
Wasmコンパイラー作りの楽しみ (1)
Wasmリンカのつくりかた - Speaker Deck
WebAssemblyのWeb以外のことぜんぶ話す
Wasmで広がるEnvoyとIstioの世界 - Speaker Deck
チェシャ猫さんはTwitterを使っています 「多分、世界初の日本語資料です。#k8sjp Policy as Code と言えば OPA が有名ですが、Rego を書くのは実際つらい。Kubewarden では、好きなプログラミング言語で書いたポリシを Wasm にコンパイルして利用できます。 Kubewarden を使って任意の言語でポリシを書こう https://t.co/zPtygOKckA」 / Twitter
Kubewarden を使って任意の言語でポリシを書こう #k8sjp / Kubernetes Meetup Tokyo 42nd - Speaker Deck

スタックマシン

Twitter

chikoskiさんのツイート: "Stack machineでジャンプすると、スタックはどうなるんですかね。全部ポップしちゃっていいのかしら。"
からふるさんのツイート: "ジャンプ先とバランスするようにポップ、もしくは必要ならプッシュしてからジャンプが基本だと思います。… "
chikoskiさんのツイート: "バランスするがイメージつかないですが、例えば例外のようにジャンプしたまま戻ってこない場合は、必要なもの以外、全部捨ててしまって良いのかしら。… "
からふるさんのツイート: "単に外に抜けるだけでしたら、基本的にその「外」に相当するスタックの位置まで全部ポップします。ただ、ポップする前にしないといけない操作があれば、もちろん行ってからポップする事になります。ループに飛び込むとかであれば逆に必要なものを積んでから飛びます… "
chikoskiさんのツイート: "なるほど。積む時もあるんですねえ… "
からふるさんのツイート: "ジャンプ先は基本的に合流ポイントなので、スタックの状態を他の実行パスと合わせる必要があるのです。なので、積むか下ろすかは状況次第です… "

スタックマシン - Wikipedia
www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/comp-lecture/
プログラミング言語処理
プログラミング言語処理

Emscripten

Getting Started — Emscripten 1.37.3 documentation
Introducing Emscripten — Emscripten 1.37.3 documentation
API Reference — Emscripten 1.37.3 documentation
Porting — Emscripten 1.37.3 documentation
CyberDWARF Debugging — Emscripten 1.37.3 documentation
API Limitations — Emscripten 1.37.3 documentation
File System Overview — Emscripten 1.37.3 documentation
File System API — Emscripten 1.37.3 documentation
Portability Guidelines — Emscripten 1.37.3 documentation
FAQ — Emscripten 1.37.3 documentation
Debugging — Emscripten 1.37.3 documentation
Emterpreter — Emscripten 1.37.3 documentation
Interacting with code — Emscripten 1.36.11 documentation
Emscripten and WebAssembly
EmscriptenからSSEとかpthreadを使って爆速にする : KLabGames Tech Blog

Relooper

Alon Zakaiさんのツイート: "New C++ Relooper (blocks to JavaScript loops) now in great shape https://t.co/aLvxhFl9 , and ready for emscripten 2.0 https://t.co/v48XhKAx"
kripken/Relooper: this repo is deprecated, see the main emscripten repo
Zakai-Emscripten.pdf
WebAssembly Troubles part 2: Why Do We Need the Relooper Algorithm, Again?
azakai's blog: Reloop All The Blocks
emscripten/docs at master · emscripten-core/emscripten
emscripten/paper.pdf at master · emscripten-core/emscripten
emscripten/splashpres.pdf at master · emscripten-core/emscripten

制御フロー

Please Support Arbitrary Labels and Gotos. · Issue #796 · WebAssembly/design
Solving the structured control flow problem once and for all
Eliminating go to's while preserving program structure | Journal of the ACM
Bytecoder/SRC-RR-4.pdf at master · mirkosertic/Bytecoder
monochromeさんはTwitterを使っています 「CでできてRustにできないことってあるのだろうか?」 / Twitter
monochromeさんはTwitterを使っています 「label as valueはできないけどあれはgcc拡張なので。 gotoはできないな。」 / Twitter
κeenさんはTwitterを使っています 「@s_isshiki1969 もう少し詳しくいうと普通のジャンプくらいならloopや(名前つき)breakでどうにかできます。直接表現できないのはループの中に飛び込むgotoですね(双頭ループといわれるらしい) goto label; while(1) { label: } もちろん、チューリング完全な言語同士なので何かしらの翻訳は可能です。」 / Twitter
monochromeさんはTwitterを使っています 「@blackenedgold なるほど、それを許すと静的な解析が色々と辛くなりそうですね。 まあ機械語に落とせるものならRustでエミュレータ書けば翻訳可能ですね(こういう話ではない」 / Twitter

多倍長演算

WebAssembly向け多倍長演算の実装
FadisさんはTwitterを使っています 「ペアリングには楕円曲線暗号を使う→長い整数の演算が必要→多倍長演算ライブラリが欲しい→多倍長演算のアイデアは手で乗算をするときの筆算と同じで64bit同士のキャリーつきの乗算を行う事が筆算の1回の計算に対応する #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「多倍長乗算をする過程でmul命令がキャリーフラグを破壊するのが割と邪魔になるのでIntel CPUにはキャリーフラグを破壊しない乗算命令mulxが用意されている、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「wasmで多倍長演算を実装する場合キャリー付きの64bit演算がない→加算の場合は加算後の値と加算前の値を比較する事でキャリーフラグを取り戻せる #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「32bit単位で計算する方式と比較した結果、64bitで計算+carryを復元の方が若干早かった→32bit単位だと複数の加算のキャリーをまとめて扱える→これを活用して最適化した結果32bit単位で計算した方が速くなった、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「_ExtInt: clangの拡張で任意の長さのint型を作れる。多倍長演算はclangが勝手にやってくれる。C++に入れようという話もある #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「uint1024_t、パワみがある #kernelvm」 / Twitter
herumiさんはTwitterを使っています 「[z] += [y] * xの形([]は多倍長, xは64bit)の形を中間レジスタ少なくして計算するのに2個のCF, OFがあれば十分なので、長いビット長でもそれ以上フラグを増やす必要はありません。 https://t.co/8XtC1GB6is」 / Twitter
hotpepsiさんはTwitterを使っています 「512bitの乗算だとさらにもう一段のcarry flagが必要になるんですか? #kernelvm」 / Twitter
herumiさんはTwitterを使っています 「typedef unsigned _ExtInt(13) T;でand 8191(=0x1fff)するコードが生成されました。#kernelvm https://t.co/VBtv01UA9O https://t.co/Km3oxAoFEE」 / Twitter
Compiler Explorer
Takahiro YamashitaさんはTwitterを使っています 「_ExtInt 、発表では1024bitのインパクト凄かったけど、例えば13bit変数なんかも定義できちゃう? https://t.co/nQnZrwhnIy #kernelvm」 / Twitter
The LLVM Project Blog

blog

herumi

melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon
melancholic afternoon

histric-1

WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine
WebAssembly Troubles part 2: Why Do We Need the Relooper Algorithm, Again?
WebAssembly Troubles part 3: What About Alloca?
WebAssembly Troubles part 4: Microwasm
【WebAssembly初心者必読】バイナリコードを使って「 WebAssembly 」の基礎を徹底解説してみた! | ヌーラボ
WebAssembly(wat)を手書きする | 株式会社カブク
Writing WebAssembly By Hand
WebAssembly を使って自作言語をブラウザで動かしてみよう - はやくプログラムになりたい
パフォーマンス向上の次の一手はWebAssembly | フロントエンドBlog | ミツエーリンクス
Google V8 JavaScript EngineでのWebAssemblyのi32.addの実装を見てみる - めもちょー
Learning the Webassembly type system | Mauro Bringolf
C. Gerard Gallant: WebAssembly – Caching to HTML5 IndexedDB
Hijacking the control flow of a WebAssembly program
Wasabi
Olin – Defining a new operating primitive for event-driven services - 掃文資訊
The future of WebAssembly - A look at upcoming features and proposals
WebAssembly: 「なぜ」と「どうやって」 [翻訳記事] - DEV Community 👩‍💻👨‍💻
HIW 2018・Haskell Symposium 2018に行ってきた | IIJ Engineers Blog
WebAssembly版NCMBのビルドを簡単に行う方法 - ニフクラ mobile backend(mBaaS)お役立ちブログ
WebAssemblyを使って乱数調整ツールをWebに移植した話 - mizdra's blog
emruby: emscripten でブラウザで動く MRI - まめめも
WebPerl | Run Perl in the browser with WebPerl!
WebAssembly が WebGL ビルドのスタンダードに! – Unity Blog
[続] LuaをWebAssemblyにコンパイルして実行する話 | ブログ :: Web notes.log
WebAssembly 開発環境構築の本 | WebAssembly 入門
WebAssemblyを出力するMinCamlコンパイラを実装しました - a_kawashiroのブログ
例のアレをWebAssemblyで動かした - うひょー(ブログ)

histric-2

[続々] LuaをWebAssemblyにコンパイルして実行する話 | ブログ :: Web notes.log
WebAssemblyちょっとやる - バランスを取りたい
WebAssembly doesn’t make unsafe languages safe (yet) | Frank DENIS random thoughts.
WebAssemblyのAOTコンパイラを作った - 飽きっぽい人のブログ
|詳説|線形メモリとArrayBuffer |〜 wasm-bindgenではどのように文字列を扱っているのか?〜 - Mi in progress
WebAssembly: Neither Web, Nor Assembly, but Revolutionary — JavaScript January
Mozilla Hacks' 10 most-read posts of 2018 - Mozilla Hacks - the Web developer blog
Chrome Dev Summitに参加しました! - from scratch
ただの素人がフロー解析を通過した – 言語実装 Advent Calendar 2017 – kekyoの丼
Episode 49 – Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code – Misreading Chat
WebAssembly Troubles part 4: Microwasm
Rust/WebAssembly でレトロシンセをエミュレートする | hiromasa.another :o)
Lucet's performance and lifecycle
Vim on Wasm on Web Worker on Browser with Atomics - はやくプログラムになりたい
WASMでPCエミュレータ作った。 - 借り初めのひみつきち
neri/vpc: A PC Emulator implemented by WebAssembly
Virtual Playground
続・WASMでPCエミュレータ作った。 - 借り初めのひみつきち
夏休みだョ!WebAssembly Proposal全員集合!! | Kabuku Developers Blog
Running Wasm on V8 Without JS API – kanejaku.org

infoQ

コマンドラインJSONプロセッサJQをWebAssemblyでブラウザに移植する - Robert Aboukhali氏とのQ&A
V8がWebAssembly SIMDをサポート
WebAssembly 1.0がW3C推奨としてブラウザ上でネイティブ動作する第4の言語に
新たに創設されたBytecode Alliance、モジュールの安全使用のためにWebAssemblyナノプロセスを提案
WebAssemblyでホットリローディング、リモートデバッグ、統一的なハードウェアアクセスを実現する
WebAssemblyをブラウザの外で動かすWasmerを触ってみた
Istio 1.5: Lin Sun氏とNeeraj Poddar氏がistiod、Wasm、およびマルチクラスタサポートについて議論
Rustから生成されたWASMをCloudfareサーバレスワーカにデプロイする
WebAssemblyとBlazor: 何十年の問題を解決する
Grain: WebAssemblyファーストプログラミング言語 - WebAssembly Summit 2021
PyodideがWebAssemblyを使ってPythonとその科学スタックをブラウザに提供

Zenn

Webassemblyコンパイラを自作しよう
WebAssemblyで利用する|実践:形態素解析 kagome v2

Publickey

WebAssemblyがW3Cの勧告に到達。「WebAssembly Core Specification 」「WebAssembly Web API」「WebAssembly JavaScript Interface 」の3つ - Publickey
WebAssemblyが目指していること。ナノプロセスモデルの実現、システムインターフェイス、実行時リンクの実装など - Publickey
WebAssemblyをWin/Mac/Linuxで実行可能なランタイム「Wasmer 1.0」正式リリース。事前コンパイルによる高速起動やクロスコンパイルなどにも対応 - Publickey
WebAssemblyがSIMDをサポート、「WebAssemlby SIMD」がChromeやFirefoxで標準実装。画像処理や物理演算など高速実行 - Publickey
CDNのエッジでJavaScriptとServiceWorkerを実行できる「Cloudflare Workers」がWebAssemblyに対応 - Publickey
VMよりコンテナよりもさらに軽量な分離技術、V8のIsolateを用いてサーバレスコンピューティングを提供するCloudflare Workers - Publickey
PythonインタプリタをWebAssemblyへコンパイル、Webブラウザで稼働するPython環境「Pyodide」。Mozillaが開発中 - Publickey
Fastly CTOに聞く、同社がWebAssembly実行環境の「Lucet」をエッジコンピューティング環境として開発している理由とは? - Publickey
Fastly、WebAssemblyランタイムのサーバレス「Compute@Edge」ベータ公開 - Publickey
WebAssemblyで、JITコンパイラに迫る高速なJavaScriptエンジンを実装へ。Bytecode Allianceが技術解説。JavaScript以外の言語でも - Publickey
uint256_tさんはTwitterを使っています 「https://t.co/dyOhAhlQry 時代が追いついてきた」 / Twitter
ブラウザがJavaScriptを直接サポートしない世界 - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「参照型の説明が違う気がする。WASMの参照型は他の変数への参照ではなく、ホスト環境のオブジェクトへの参照のはず。」 / Twitter
PublickeyさんはTwitterを使っています 「ブログ書きました: スタンドアロンなWebAssemblyランタイム「Wasmer 2.0」正式リリース、Win/Mac/Linux対応。SIMDに対応、実行速度が約50%改善、参照型対応など https://t.co/K2Nwu5mzv1」 / Twitter
スタンドアロンなWebAssemblyランタイム「Wasmer 2.0」正式リリース、Win/Mac/Linux対応。SIMDに対応、実行速度が約50%改善、参照型対応など - Publickey
WebAssemblyアプリ開発で最も使われている言語はRust、注目の機能はスレッドなど。The State of WebAssembly 2021 - Publickey

借り初めのひみつきち

Wasm on Wasm - 借り初めのひみつきち
wasm ランタイムの高速化 - 借り初めのひみつきち
今週の MYOS - 借り初めのひみつきち
今週の MYOS - 借り初めのひみつきち
Rust 自作 OS 日記/Part 7 次世代の OS へ。 - 借り初めのひみつきち

Fastly and partners form WebAssembly-based, open-source community Bytecode Alliance
mallocを使えるようにする(libcのコンパイル) | ブログ - Sumire Articles
ClangでWebAssemblyにコンパイル | ブログ - Sumire Articles
What should the memory layout look like for wasm modules? · Issue #81 · rustwasm/team
WebAssembly.Memory() - JavaScript | MDN
物体検出器 EfficientDet をブラウザで高速推論 - OPTiM TECH BLOG
Web 以外でも期待される WebAssembly - Blockchain との親和性について - LINE ENGINEERING
Using WebAssembly threads from C, C++ and Rust

WASI

CloudABI

Introducing CloudABI
NuxiNL/cloudabi: Definitions for the CloudABI data types and system calls
NuxiNL/cloudlibc: CloudABI's standard C library

MozillaがWASIイニシアティブを発表、WebAssemblyをすべてのデバイス、コンピュータ、オペレーティングシステムで動作可能に
Updates in 2019Q1: specs and WASI - Google スライド
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「MozillaとFastlyが推進してきたWebAssemblyのシステムプログラミング対応版WASIを更に押し進めるため昔からJS向けSIMD実装など貢献し続けてるIntelとRedHatが参加する形でBytecode Allianceを設立するとのこと。WASIのランタイムには組み込み想定のもあるし楽しみ過ぎる。 https://t.co/GHcgVVBsCb」 / Twitter
Announcing the Bytecode Alliance: Building a secure by default, composable future for WebAssembly - Mozilla Hacks - the Web developer blog
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「長大だけど背景とか技術的視点で解説したHacksブログ記事もオススメ。 Nodeなどの既存エコシステムで問題になっている安全性の課題をランタイム設計から安全にすることで解消しつつハイパフォーマンスランタイムを実装していく。素敵。 https://t.co/qNwX8fm4zx」 / Twitter
New Bytecode Alliance Brings the Security, Ubiquity, and Interoperability of the Web to the World of Pervasive Computing - The Mozilla Blog
WasmerさんはTwitterを使っています: 「Great presentation by @kripken showcasing Asyncify to enable async calls in #WebAssembly. ...with a demo using setjmp/longjmp with WASI and Wasmer! 😍 🎥 Talks are recorded and will be published by @wasmsf soon https://t.co/DFmf0iHVqX」 / Twitter
chikoskiさんのツイート: ""Running WebAssembly on the Kernel" 衝撃的なタイトルですが、kernelモードでwasmを実行した話。wasmerのローダと、WASIの実装をkernel moduleとして実装するこで、ring0での実行を実現。TCPサーバーの例も付属。なおネイティブより10%程度の速度向上があった。理由は不明。 https://t.co/t1r6xSIhdh"
Standardizing WASI: A system interface to run WebAssembly outside the web – Mozilla Hacks – the Web developer blog
Masaki Haraさんのツイート: "https://t.co/saiSjSeTNr Rustのwasm32-unknown-wasiサポートが早速実装されてる。wasiはWebAssemblyをブラウザ以外(のサンドボックス用途)でも使うというやつらしい"
Add intial support for wasm32-unknown-wasi by alexcrichton · Pull Request #1307 · rust-lang/libc
chikoskiさんのツイート: "Lucet: fastly産のc / wasm32-unknown-wasiコンパイラ(Sandboxing WebAssembly コンパイラ、と彼らは呼んでいる)。バイナリの処理系もついてる。これもCraneLiftをバックエンドに使ってる。https://t.co/S0W0s9mJAn"
chikoskiさんのツイート: "clangのターゲットにwasm32-unknown-wasiを追加するには / WASI向けにCをLLVMでコンパイルするには。LLVM8はwasm-32-unknown-unknownをサポートしているので、そこにwasi-sysrootからlibclang_rt.builtins-wasm32.aを追加することで、コンパイルできるようになるらしい:https://t.co/Tom22DOcpg… https://t.co/5L6mPOH733"
Compiling C to WebAssembly using clang/LLVM and WASI. | Frank DENIS random thoughts.
WebAssemblyWeeklyさんのツイート: "Compiling C to WebAssembly using clang/LLVM and WASI https://t.co/qYBrzqfUab this brief little guide shows you how to get the latest LLVM and WASI tooling working together"
chikoskiさんのツイート: "WASIは周到に準備されてたんだなー感はあるな。もちろん様々な主体による継続的なツールに対する投資の結果ではあるのだけれど。"
chikoskiさんのツイート: ".@wasmerio 0.3.0リリース。WASIに早速対応。すばやい。Lua, SQLite, PHPも実行可能に。デモ有り。… "
chikoskiさんのツイート: "「既存プロジェクトをWASIに移植するには」1. clan-8を使うこと、2. setjmpやsocketをサポートしないので適切に修正すること、3. llvm-ar/llvm-ranlibなどのパスを正しく設定すること、4. configureも忘れずに修正すること、の4点がポイント、とのこと。移植の実例もあり。https://t.co/iJevDHWifX… https://t.co/dBvFUniyva"
Porting projects to WASI: the flite program
WebAssemblyWeeklyさんのツイート: "Porting projects to WASI: the flite program https://t.co/dwNDTilGFg flite is a tet-to-speech app - this post looks at porting it to WebAssembly using the WASI system interface"
WASI resources.md
chikoskiさんのツイート: "https://t.co/nMtZpZc33U あれ? --target wasm32-wasi になったの?"
wasi-sysroot/expected/wasm32-wasi at master · CraneStation/wasi-sysroot
Rui Ueyamaさんのツイート: "ブラウザ外でのWASMとか、それで大きなプログラムを動かすことを視野に入れて、ビルド速度のためにファイルフォーマットを多少変更してもらったことがある。 https://t.co/6hW1NkOpX4"
Announcing Lucet: Fastly’s native WebAssembly compiler and runtime
chikoskiさんのツイート: "さままざまな言語の資産を使える方がネットワーク効果が高まっていいもんね。"
Capsicum: Practical Capabilities for UNIX | USENIX
Capability-Based Computer Systems
Amoeba (オペレーティングシステム) - Wikipedia
WebAssemblyをあらゆるプラットフォームでセキュアに実行できるようにする「Bytecode Alliance」発足。インテル、Mozilla、Red Hatなど - Publickey
WebAssemblyをWebブラウザ以外の実行環境へ。システムインターフェイスへのアクセスを可能にする「WASI」の策定開始。Mozillaが呼びかけNode.jsらが賛同 - Publickey
WebAssemblyが50マイクロ秒以下で起動する「Lucet」。コンパイラとランタイムをFastlyがオープンソースで公開 - Publickey
Bytecode Alliance
chikoskiさんはTwitterを使っています: 「Emscriptenにstand aloneモードが追加:1) -oオプションにwasmファイルを指定するとこののモードに。2)WASIのエントリーポイントである_startを出力 3) WASIのAPIを可能な限り使う4) リロケータブルメモリのサポートが不要なのでサイドモジュールとして作ったものより軽量 https://t.co/ALCAtAmHIW」 / Twitter
Outside the web: standalone WebAssembly binaries using Emscripten · V8
WebAssembly Standalone · emscripten-core/emscripten Wiki
emscripten/runtime.js at 65271b0ed8e77d07ced7f6873c3582b6b0ae2719 · emscripten-core/emscripten
コンテナ技術を捨て、 WASIを試す. こんにちは、NTTの藤田です。 | by FUJITA Tomonori | nttlabs | Medium
ドッグさんはTwitterを使っています 「ブラウザ外 Wasm の一番のユースケースは個人的にはプラグイン機構だと思ってるけどどうなんだろう.クロスプラットフォームで動くし,サンドボックス内で動かせるから使える API に制限かけてやれば比較的安全にサードパーティプラグインを動かせるし」 / Twitter
ドッグさんはTwitterを使っています 「セキュリティをしっかり考えたいなら gVisor みたいな VM 使って実行環境を隔離したほうが良さそうではあるけど」 / Twitter
chikoskiさんはTwitterを使っています 「@Linda_pp プラグインは有力なユースケースだと思います。Shopify は柔軟性とセキュリティの両方を提供するために、WASM プラグイン採用してますよね。あと Server-less での利用も同じ文脈かなと理解してます。」 / Twitter
Yohei KusakabeさんはTwitterを使っています 「@Linda_pp EnvoyProxyのフィルターがWasmプラグインになったのはまさにそれですよね。同一プロセス上でWasmバイナリを動的にダウンロードして実行出来るしランタイムもある程度管理出来るしでかなり適したユースケースだと思います。最初に聞いたときはどゆこと?ってなりましたけどw」 / Twitter
ドッグさんはTwitterを使っています 「@yo__ohei Envoy のフィルタが Wasm で書けるの知りませんでした.ありがとうございます.まだ試験的みたいですが,確かに用途にフィットしていて良さそうですね」 / Twitter
Rust で WASI 対応の WebAssembly を作成して実行 - なんとなくな Developer のメモ
FadisさんはTwitterを使っています 「wasmがどんなにサンドボックス内に隔離されていても、外とやりとりするAPIに穴が開いていたら安全ではなくなるので、WASIのようなAPIには独自にセキュリティ機構が求められる #kernelvm」 / Twitter

Asyncify

Asyncify — Emscripten 1.39.2 documentation
GoogleChromeLabs/asyncify: Standalone Asyncify helper for Binaryen
Pause and Resume WebAssembly with Binaryen's Asyncify

Mozilla

5x

Rockridgeさんのツイート: "Fx52:WebAssemblyがデフォルト有効化。 / “1342060 – wasm: enable by default” https://t.co/zoPVRYdMbO"
Rockridgeさんのツイート: "Fx57:Nightlyチャンネルに、WebAssemblyの段階的コンパイルに関する試験的実装が投入された。 / “1277562 - Wasm: tiered compiler” https://t.co/JDSGMaOgrN"
Rockridgeさんのツイート: "Fx58:WebAssemblyでも、JavaScriptと同様にまずはBaselineがすべての関数をコンパイルし、必要に応じてIonMonkeyが最適化を行う。 / “1391196 - Enable wasm tierin…” https://t.co/sN68l2TzC7"
Rockridgeさんのツイート: "Fx58:WebAssemblyからJITコンパイルされたJavaScriptを呼び出す処理が約50%高速化された模様。参照:https://t.co/N8YOBj3Z7u / “1360211 - Merge WasmActi…” https://t.co/eUXUP41rp8"
Rockridgeさんのツイート: "Fx58:WebAssemblyのコンパイラが改良され、ダウンロード完了前のコンパイル開始(ストリーミング)が可能になったほか、メインスレッドで高速なコンパイルを行いつつ、別スレッドで最適化を進める仕組みも入った。 / “Mak…” https://t.co/1oBtpUzXk9"
Rockridgeさんのツイート: "Firefox 58でWebAssemblyのコンパイラが改良された効果は大きく、コンパイルの所要時間が数分の1で済むようになっている。参照:https://t.co/Wt4o5HTRBo / “Impressive WebAs…” https://t.co/DRdvXbmp8l"
Rockridgeさんのツイート: "Fx58:WebAssemblyのストリーミングは本バグが取り扱ったものとみられる。 / “1406421 - Baldr: actual streaming compilation of WebAssembly.compile…” https://t.co/A28nM21M6C"

6x

Rockridgeさんのツイート: "Firefox 60では、JIT entry stubの仕組みを導入してJavaScript関数とWebAssembly関数とで呼び出しに差がないようにし、WebAssemblyの高速化を図った。また、JIT entry stub… https://t.co/xADYt0JAM3"
Rockridgeさんのツイート: "Fx63:WebAssemblyテキストフォーマットの生成機能は、debugger.htmlに委ねて、SpiderMonkeyから削除。メンテナンスの負担が低下した。 / “1447591 - wasm:: Investigat…” https://t.co/zZjj0dXscY"
SIMD.js(ECMAScript 7)
SIMD型について - JS.next
Rockridgeさんのツイート: "Fx63:SIMD.jsの実装を削除。今後はWebAssemblyにおけるSIMDのサポートに注力していくことになるようだ。参照:https://t.co/XpYmu7g1WF / “1416723 - Remove SIMD.…” https://t.co/nYli69PpbO"
Rockridgeさんのツイート: "CraneliftはMozillaが開発中の低水準コード生成システムであり、FirefoxのWebAssemblyコンパイラとして導入され、将来的にはIonMonkeyの一部機能を置き換えてJavaScript JITコンパイラに… https://t.co/RVYYbGlWVz"
Rockridgeさんのツイート: "Fx64:Nightlyチャンネルでは、既にCraneliftが導入済みであり、javascript.options.wasm_craneliftの設定をtrueに変更すれば有効となる。参照:… https://t.co/WjKgkWCY1L"

@rockridge07

連載

Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第1弾。2008年のJITの導入以来、久々にJavaScriptのパフォーマンスが大きく向上するフェーズに入るという。 / “A cartoon intro to WebAssem…” https://t.co/TC0W4jBmPP"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第2弾。まずは前史であるJavaScriptインタープリタとJITのおさらいから。stubやbailing outの概念に加え、最適化についてもわかりやすい説明があって素晴らしい。 https://t.co/3rzNKlETYa"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第3弾。まだWebAssembly自体は出てこない。機械語とアセンブラ、さらに中間表現(IR)について、図を交えながら説明している。 / “A crash course in as…” https://t.co/t1Cpy2pWLZ"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第4弾。LLVMのIRからWebAssemblyへの変換についてや、モジュールの構造とコードの動作についてなど、一挙に核心に迫る。 / “Creating and working …” https://t.co/qXZod0OJ2F"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第5弾。WebAssemblyが通常のJavaScriptよりも高速に処理される理由を、Parsing/Compiling + optimizing/Re-optimizing/Ex… https://t.co/c9RUO6LEvm"
Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第6弾(最終)。2017年2月28日をもって、WebAssemblyはブラウザプレビューの段階を脱した。各社デフォルトで有効化していく。将来的にはDOMを直接操作可能にし、並列処理も… https://t.co/HdO4Hzemte"

histric-1

Rockridgeさんのツイート: "レイトレーシングのデモによる速度比較。JavaScript版よりもWebAssembly版(Rustから変換)のほうが、およそ9倍高速になったという。 / “Ray Tracing: WebAssembly vs JavaScr…” https://t.co/R6weunJ5lE"
RockridgeさんはTwitterを使っています: "WebAssemblyは、Mozillaが提唱するポータブルなバイナリフォーマット。LLVMなどを通じて生成される中間コードは、当初からasm.js相当の機能が確保され、動作
Rockridgeさんのツイート: "WebAssemblyはasm.jsとの互換性を保ちつつ、実マシンのコードに近い仮想的な命令セットが定義され、メモリが連続的に確保されるなどの特徴を有する。本スライドの最後あたりに将来的な機能についても言及がある。 / “201…” https://t.co/OBNvFx6Jls"
Rockridgeさんのツイート: "WebAssemblyは規格が候補版の段階に達し、各ブラウザでの実装も進んでいることから「ブラウザプレビュー」のフェーズに突入。MozillaはFirefox 52リリース版で有効化を目指す。既にasm.jsを超えるパフォーマンス… https://t.co/xeFEDDFrBC"
Rockridgeさんのツイート: "WebAssemblyとWebGL 2.0を組み合わせた美麗なデモの動画。なお、デモ本体はファイルサイズが約100MBあり、動作にかなりのマシンパワーとメモリを必要とする。参照:https://t.co/z9SNQej2dc https://t.co/mwqnQ0f5jX"
Why WebAssembly is a game changer for the web — and a source of pride for Mozilla and Firefox – Mozilla Tech – Medium
Rockridgeさんのツイート: "WebAssemblyは様々な点でasm.jsよりも高速に動作するよう設計・実装されている。コンパクトで解析の容易なバイナリフォーマットの採用、JavaScriptの制約を超えたCPU機能の活用、生成用ツールチェーンの改善など。 https://t.co/aT7e6rcQOU"
Rockridgeさんのツイート: "FigmaはWeb上でUIデザインを共同編集するためのアプリ。asm.jsからWebAssemblyに移行したところ、Firefox上で使用した場合におけるドキュメントの読み込み時間が3分の1になったという。 / “WebAss…” https://t.co/GpjtLnctH1"
Rockridgeさんのツイート: "「ブラウザプレビュー」フェーズ後のWebAssemblyのロードマップについて。 / “WebAssembly” https://t.co/TtgqkKKhSk"
Rockridgeさんのツイート: "WebAssemblyのコードの構造と機能を詳細に分析した記事。WebAssemblyにおいて、プログラムとライブラリの区別はなく、すべてがモジュールとして取り扱われるという。 / “Introduction to WebAss…” https://t.co/tmzOgBstp7"
Rockridgeさんのツイート: "HumbleNetはWebRTCとWebSocketsのラッパーとなるクロスプラットフォームなネットワークライブラリ。asm.js/WebAssemblyの形式でWebゲームに組み込むことで、対戦プレイを可能にする。 / “In…” https://t.co/joNpZrOJ9M"
Introducing HumbleNet: a cross-platform networking library that works in the browser ★ Mozilla Hacks – the Web developer blog

histric-2

Rockridgeさんのツイート: "コンパイル済みのWebAssemblyモジュールは今のところJavaScriptのインスタンスを生成して利用することになっている。生成時にはimportsオブジェクトという入れ物にvalues/function closures/… https://t.co/yhQjUcrfZX"
Rockridgeさんのツイート: "WebAssemblyのメモリ管理はArrayBufferを通じて行われる。これによりメモリは他の部分から分離されて安全性が高まり、ガベージコレクションの対象にもなりつつ、JavaScriptとの値のやりとりが可能になるという。 https://t.co/cot74Cf7Wg"
Rockridgeさんのツイート: "WebAssemblyには管理領域外のメモリに対しtableを通じて間接的にアクセスする仕組みがある。現在は利用ケースが限られているものの、将来的にDOMへのダイレクトアクセス機能を追加する際に生きてくるらしい。 / “WebA…” https://t.co/hgEqxUU6sl"
Rockridgeさんのツイート: "WebAssemblyコミュニティグループは現在、SIMDやマルチスレッディングによる並列処理の有効化に注力しており、Firefoxでも2018年初めにはそうした機能がリリース版に実装されて、ネイティブゲームのWebへの移行を後押… https://t.co/edPq6X7wb6"
Rockridgeさんのツイート: "OpenCVベースのリアルタイム顔検出デモを作成してWebAssemblyに変換した結果、パフォーマンスが同一アルゴリズムを用いたJavaScript版の10数倍になったとのこと。参照:https://t.co/7vfNAWG6Ph https://t.co/3wcMDiCiED"
Rockridgeさんのツイート: "WebAssemblyの最新動向をトピックとして掲載しつつ、情報交換や議論のためのフォーラムでもあるようなWebサイト。 / “Home | WebAssembly Rocks” https://t.co/JIPIbBX81E"
Home | WebAssembly Rocks
Rockridgeさんのツイート: "Safari 11とEdgeHTML 16ベースのMicrosoft Edgeがリリースされたことにより、メジャーなブラウザすべてでWebAssemblyがサポートされるに至った。WebAssembly自体の用途が広がっているほか… https://t.co/nNPUSXMbAM"
Rockridgeさんのツイート: "binaryen.jsはBinaryenのWeb移植版であり、JavaScriptからWebAssemblyのバイナリコードを生成できるという。TypeScriptもサポート。参照:https://t.co/JxXU0IIEXw https://t.co/LaybgGvW2S"
Rockridgeさんのツイート: "「Unityなどのゲームエンジンなどで普通に出力される」数十MbのWebAssemblyファイルは、「現在のブラウザだと起動までに大変時間がかかってしまい」、「『タップしてすぐに起動』という世界には遠いのが現状です」。 / “巨…” https://t.co/GL3iRTCjVe"
Rockridgeさんのツイート: "サムスンの調査によれば、配列のサイズが小さい場合、JavaScriptはWebAssemblyを上回るパフォーマンスとなる。大半のWebアプリはJavaScriptで十分であり、WebAssemblyはゲームのような計算量の多いW… https://t.co/k5XKvZwssk"
Rockridgeさんのツイート: "Rust言語をWebAssemblyに変換するモジュールは、JavaScriptとWebAssemblyを協調して動作させる仕組みを学ぶのに適しているという。 / “Baby’s First Rust+WebAssembly m…” https://t.co/GySOyIkzcr"
Rockridgeさんのツイート: "2018年7月にリリースされたUnity 2018.2では、WebGL出力の際にデフォルトでWebAssemblyが用いられるようになった。asm.jsが用いられていた従来に比べてコードサイズが10数%減ったという。 / “We…” https://t.co/irEQxQAGZL"

Rockridgeさんのツイート: "Large-Allocationヘッダは、目標よりも少し遅れてFirefox 53で有効化されるようだ。ただし、32bit版限定。 / “Web Games Platform: Newest Developments ★ Moz…” https://t.co/LwWYzkkIYR"
Rockridgeさんのツイート: "MozillaがWebAssembly Explorerと呼ばれるツールを開発中。ブラウザ内でC/C++のコードをコンパイルしてWebAssemblyに変換するとともにその過程を可視化する。生成されたWebAssemblyもテキス… https://t.co/RdcS92vr4Q"
Previewing the WebAssembly Explorer ★ Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "Mozillaの構想では、将来的にWebAssemblyはメール、SNS、ワードプロセッサなどのアプリやJavaScriptフレームワークにも採用されていく。文字どおりWebを変えていく力を持つので、MozillaはWebAsse… https://t.co/sZyjNr10ZP"
Why WebAssembly is a game changer for the web — and a source of pride for Mozilla and Firefox – Mozilla Tech – Medium
Rockridgeさんのツイート: "WebAssemblyベースのゲームなどが大量の連続的なメモリを確保できるように、Fx52でLarge-Allocationヘッダという仕組みを導入予定。e10s有効化を前提に独立のプロセスを割り当てる。32bit版Firefox… https://t.co/hGIg3w4sZx"
Rockridgeさんのツイート: "MozillaはWebassemblyのコードをまずBaselineがコンパイルし、その後バックグラウンドにおいてIonMonkeyがコンパイルしたものに順次置き換えていくという段階的コンパイルの仕組みを開発中だ。 / “Was…” https://t.co/SFYzOVC0Gp"
Rockridgeさんのツイート: "Emscriptenの開発スタート、asm.jsの導入、WebAssemblyへの発展という一連の流れを、Mozillaの開発者が語る。ゲームはユースケースであると同時にショーケースでもあり、他の分野にもWebAssemblyが広… https://t.co/GIsTGyx51x"
Rockridgeさんのツイート: "ソースマップ・パーサの一部をWebAssemblyで置き換えた(従前はJavaScript)ところ、最大5.89倍の高速化を達成し、パフォーマンスのバラツキも抑えられた。RustからWebAssemblyにコンパイルしている点もポ… https://t.co/HgW3lAeEnH"
Rockridgeさんのツイート: "最新のEmscriptenでは、生成するWebAssembly/JavaScriptについて不要なコードを含めず、無駄なコードを削除することで、サイズを従来の数分の1に減らすことに成功した。 / “Shrinking WebAs…” https://t.co/8UVetvYKj0"
Rockridgeさんのツイート: "2018年3月に発表された構想を実現させるべく、wasm-packの開発がアナウンスされた。Rust言語のクレートをWebAssemblyに変換してnpmパッケージ化する。 / “Hello wasm-pack! – Mozil…” https://t.co/bGIOywM1c8"
Rockridgeさんのツイート: "Binaryenコンパイラの最適化処理に新しくレベル4が加わった。レベル3と比較すると、生成されるWebAssemblyのサイズを20%削減できる一方、コンパイル時間は3倍かかるという。 / “Binaryen goes up …” https://t.co/9ntwdmcOxE"

Firefoxバージョン58でWebAssemblyが10倍高速化
Firefox 58では、WebAssembly実行がさらに高速化。飛んでくるパケットごとにコンパイル、実行中に裏でコードを最適化して動的に入れ替え - Publickey
Firefox 58でWebAssemblyの起動を大幅に高速化 - Mozilla Flux
Mozilla HacksのWebAssembly連載記事の和訳が開始 続編に期待(追記あり) - Mozilla Flux
Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsを高速に動作させる新しいコンパイラーターゲットWASMとは? | HTML5Experts.jp
WebAssemblyの基礎から最新動向まで、@chikoskiに聞いてきた! | HTML5Experts.jp
清水智公@chikoski氏が語る「WebAssemblyで何ができるのか?」#html5jplat|CodeIQ MAGAZINE
WebAssembly を速くするには? | Mozilla Developer Street (modest)
MozillaがWebAssemblyに向けたツールチェインの取り組み「Binaryen」を明らかに | OSDN Magazine
WebAssembly's post-MVP future: A cartoon skill tree - Mozilla Hacks - the Web developer blog
MozillaはWebAssemblyのパフォーマンスと機能に焦点を当てている
ドッグさんはTwitterを使っています 「Mozilla はブラウザの Wasm 実装に注力することになって,ブラウザ外の Wasm 処理系 Wasmtime のチームは Fastly が引き取ることになったのか.Fastly の Wasm 処理系 Lucet に Wasmtime が吸収されるのかな? | 'Bytecode Alliance: One year update' https://t.co/8to9T0g03Y」 / Twitter
Bytecode Alliance
ドッグさんはTwitterを使っています 「ちなみに Firefox では Wasm の JIT コンパイラ実装に Cranelift を使ってるので,Cranelift の開発は Mozilla も引き続き参加する」 / Twitter
κeenさんはTwitterを使っています 「WebAssemblyのエコシステムを牽引するBytecodeAllianceにはWebAssemblyのランタイムが2つあった。Mozilla製のWasmtimeとFastly製のLucet。今回の移籍で元々計画されていた2つのマージが進展する見込。」 / Twitter
Calls between JavaScript and WebAssembly are finally fast 🎉 - Mozilla Hacks - the Web developer blog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「#WebAssembly でJSのAPIをたくさん呼んでDOMの操作をするのは効率が良くないだろうと思っているんですが、世の中のWebAssemblyの事例を見ると、WebGLのAPIをたくさん呼んで複雑なグラフィックを描画する例が多くあるようです。これらは実はJSから直接呼んだ方が効率が良かったりしないのでしょうか?」 / Twitter

Google

Twitter

chikoskiさんのツイート: "V8に入ったWASMのコンパイルを速くするLiftoffの紹介。 Streaming APIとの組み合わせでコード出力がTurbofanと比べて10倍高速に。(最適化という意味での)品質は二の次で、スピードを重視。WASMを使ったアプリの起動がグッと速くなる https://t.co/3S9vvtb4pc"
V8 JavaScript Engine: Liftoff: a new baseline compiler for WebAssembly in V8
Rockridgeさんのツイート: "LiftoffはChrome 69でデフォルト有効化されるV8搭載のWebAssembly向けベースラインコンパイラ。既存のTurboFanで最適化する場合と比べ、コードのパフォーマンスは半分程度に落ちるが、生成は10倍近く高速に… https://t.co/UlBWojjT4S"
Rockridgeさんのツイート: "GoogleがPNaClを捨てて全面的にWebAssemblyにコミットする。2018年第1四半期にはChromeアプリと拡張機能以外ではPNaClはサポートされなくなるという。独自仕様による囲い込みの危険がなくなったのは素晴らし… https://t.co/NmM7lT9A6k"
Rockridgeさんのツイート: "Chrome 57(V8 5.7搭載)では、WebAssemblyがデフォルト有効化されている。 / “V8 JavaScript Engine: V8 Release 5.7” https://t.co/to7mwgq5Wl"
Rockridgeさんのツイート: "ChromeでWebAssemblyがデフォルト有効化へ。 / “Intent to Ship: WebAssembly” https://t.co/rRC6nqJGnt"
Rockridgeさんのツイート: "Firefoxと並んでWebAssemblyの実装が進んでいるChromeだが、現在もフラグを有効化しないと試すことができない。もっとも、規格が完成する2017年第1四半期にはデフォルト有効化の見込み。 / “V8 JavaSc…” https://t.co/t0u6WAE6mj"
Rockridgeさんのツイート: "GoogleはこれまでWebAssemblyのコードをasm.jsに変換してV8のTurboFanに処理させていたが、2016年12月にWebAssemblyをネイティブサポートした模様(デフォルト無効)。既にMassiveなどの… https://t.co/JM9sqkFaJZ"
dynamis (でゅなみす@もじら)さんのツイート: "V8はそもそもFullcodegenとかCrankshaftとかが残ってるのを今年捨ててBaseline JITのIngitionとOptimizeのTurboFanのセットに切り替えることもあって、TurboFanにJS由来のバイトコードも.wasmも突っ込むシンプル設計になる"
ドッグさんのツイート: "Google Earth で Wasm のマルチスレッド対応してるのか(あまり内部実装の話は無かったけど).sourcemap サポートは Chrome 71 から | 'Using WebAssembly and Threads (Chrome Dev Summit 2018)' https://t.co/BvT9X4i2j6"
Surmaさんのツイート: "If you start Canary with the `--js-flags="--experimental-wasm-simd"` CLI flag, you can play with SIMD in WebAssembly 🎉… https://t.co/uILOfpYdBb"

Google Developers Japan: V8 で WebAssembly を試験運用開始
Chromium Blog: Goodbye PNaCl, Hello WebAssembly!
Google Developers Japan: さよなら PNaCl、こんにちは WebAssembly
bitWalk's: WebAssembly と Google Chrome 51
Google Online Security Blog: Android Security Ecosystem Investments Pay Dividends for Pixel
rL318539
JavaScriptエンジン「V8 release v6.5」リリース。WebAssemblyバイナリをダウンロードと並行してコンパイル、ダウンロード完了とほぼ同時にコンパイルも完了 - Publickey
external/github.com/WebAssembly/v8-native-prototype - Git at Google
external/github.com/WebAssembly/musl - Git at Google
Project Zero: The Problems and Promise of WebAssembly
V8 release v7.0 · V8
WebAssembly Threads ready to try in Chrome 70  |  Web  |  Google Developers
Google、画像圧縮WEBアプリ「Squoosh」公開。ブラウザだけで圧縮やフォーマット変換が可能 - Engadget 日本版
Intent to ship: WebAssembly Threads - Google グループ

MS

EdgeでWebAssemblyを動かしてみる - ぷろじぇくと、みすじら。 - Misuzilla.org
Get started building .NET web apps that run in the browser with Blazor | ASP.NET Blog
aspnet/Blazor: Blazor is an experimental .NET web framework using C#/Razor and HTML that runs in the browser with WebAssembly
Rockridgeさんのツイート: "MicrosoftもChakraCoreにWebAssemblyを実装中。数か月以内にMicrosoft Edgeの開発版で使えるようにするという。うまくいけばWindows 10 Creators Updateに間に合うだろう。 https://t.co/Tl13XoFqqO"

Apple

Rockridgeさんのツイート: "次期Safari 11ではWebAssemblyをフルサポートする。B3 JITコンパイラをベースに、Build Bytecode Quickly(BBQ)とOptimized Machine-code Generator(OMG… https://t.co/iZ7DskdRPb"
Assembling WebAssembly | WebKit

Swift

kateinoigakukunさんはTwitterを使っています 「嬉しいお知らせです。WebAssemblyに提案していた相対アドレッシング向けの再配置タイプ実装がマージされました。がんばった。 [WebAssembly] Add new relocation for location relative data https://t.co/QYMGPzYvqH」 / Twitter
⚙ D96659 [WebAssembly] Add new relocation for location relative data
kateinoigakukunさんはTwitterを使っています 「コレが入ることで何が嬉しいかというと、Swiftのメタデータが使っている相対ポインタというテクニックがWasm上でそのまま使えるようになって、プラットフォーム間でデータ構造の差異がなくなります。とくに64bit対応を考えると絶対ポインタだとアドレスサイズが変わって全部壊れます。」 / Twitter
kateinoigakukunさんはTwitterを使っています 「詳しくは https://t.co/etuOYSMnqy」 / Twitter
SwiftのWebAssembly対応の進捗 | メルカリエンジニアリング
Swiftの関数型の実行時表現 - Speaker Deck

GitHub

rhmoller/wasm-by-hand: Small cookbook examples of writing WebAssembly by hand in .wast format
WebAssembly/wabt: The WebAssembly Binary Toolkit
WebAssembly/binaryen: Compiler infrastructure and toolchain library for WebAssembly, in C++
WebAssembly/design: WebAssembly Design Documents
design/Rationale.md at master · WebAssembly/design
design/Semantics.md at master · WebAssembly/design
design/Portability.md at master · WebAssembly/design
WebAssembly/spec: WebAssembly draft specification, reference interpreter, and testsuite.
WebAssembly/meetings: Information on in-person WebAssembly meetings
webassemblyjs · webassemblyjs
jfbastien/musl: musl libc experiment
Standalone WebAssembly Example
maierfelix/glmw: WebAssembly powered Matrix and Vector library
mbasso/gccx: Transforms CPX (JSX like syntax) into asm-dom Virtual DOM
chikoskiさんのツイート: "JavaScript のようなWASMのテキスト表現。全ての式に型アノテーションが付いてないところが、asm.jsより素晴らしい(それだけで十分)。https://t.co/JwIuBytJZb… "
Lord Of The Boardsさんのツイート: "I'm loving walt #javascript #WebAssembly https://t.co/0gGMPYh90z… "
ballercat/walt: Walt is a JavaScript-like syntax for WebAssembly text format
stevespringett/disable-webassembly: Browser hacks to disable WebAssembly (WASM)
hajimehoshi/wasm-bench: Wasm Benchmark Experiment
Kimundi/greenwasm: An implementation of the Webassembly spec in Rust
オレオレ言語を作る - Togetter
オレオレ言語を作る
sfpgmr/sgl2: TDOPパーサをベースとした言語を作っていく
rianhunter/wasmjit: Kernel Mode WebAssembly Runtime for Linux
https://wwwg.github.io/web-wasmdec/
wwwg/wasmdec: WebAssembly to C decompiler
WebAssembly
kgtkr/cl8w
WasmVM
WasmVM/WasmVM: An unofficial standalone WebAssembly process virtual machine
Wasmer
wasmerio/wasmer: High-Performance WebAssembly JIT interpreter
WebAssembly/threads: Threads and Atomics in WebAssembly
design/FutureFeatures.md at master · WebAssembly/design
WebAssembly逆アセンブルして調べるテスト
wasm-usui-book/get-started-webassembly.re at master · ukyo/wasm-usui-book
dcodeIO/webassembly: A minimal toolkit and runtime to produce and run WebAssembly modules.
Putting in All the Stops: Execution Control for JavaScript
cloudflare/worker-emscripten-template
retrageさんはTwitterを使っています 「今回のKernel/VMでWebAssemblyの話が出てくるらしいので,唾つけときます.WIPですがNetBSD RumprunをWebAssemblyにコンパイルしてリンクまで出来たのソースコードが以下にあります.https://t.co/P1ZEkAA8Cw」 / Twitter
retrage/frankenlibc at rump-wasm
retrageさんはTwitterを使っています 「rumpkernel+libcを合わせたもので136.5 MBのwasmバイナリができます.(なお,動くとはいっていない) https://t.co/xj7XoKJq2Q」 / Twitter
FadisさんはTwitterを使っています 「Proxy-wasm: wasmの実行環境に双方向の任意の言語で書かれた物に対するAPIハヤース https://t.co/IBJQezEH1n #kernelvm」 / Twitter
Proxy-Wasm
ドッグさんはTwitterを使っています 「Wasm module を事前に初期化してモジュールを初期化した状態に書き換えることで,Wasm のロードを速くするツールか.その分バイナリサイズは増えそうだけど | 'bytecodealliance/wizer' https://t.co/Xu1ArN7zIQ」 / Twitter
ドッグさんはTwitterを使っています 「結果として初期化以外で使わなかったコードとかは wasm-opt で消えるのか.なるほど」 / Twitter
bytecodealliance/wizer: The WebAssembly Pre-Initializer
Virtual x86

infoQ

WebでZoom: WebAssembly SIMD、WebTransport、およびWebCodecs
WebAssemblyランタイムのwastimeがReference Typeを実装、Wasmで複合型の処理が可能に
Ashley Williams氏がWebAssembly SummitでWebAssemblyの未来を語る
WebAssemblyでコンテナレスの未来を築く - WebAssemblyサミットでのKevin Hoffman氏の講演
Bytecode Allianceは、サーバサイドでのWebAssemblyの計画を示す
markdown-wasm:WebAssemblyで記述された非常に高速なMarkdownパーサー
WebAssembly: デフォルトで安全なエコシステムの構築 - WebAssembly SummitでのLin Clark氏の講演
"Wasmer" WebAssemblyランタイムを一般提供
V8 JavaScript Engine 9.0で、JavaScript to WebAssemblyのパフォーマンスを向上

Qiita

WABT: The WebAssembly Binary Toolkitを使ってみる - Qiita
WebAssemblyへのコンパイラ言語を簡単に実装 - Qiita
(Learn the Hard Way)nodejs-8でのWebAssembly自体を調べてみた - Qiita
lldでwasmをリンクするまで - Qiita
WindowsでWebAssemblyの環境を整える - Qiita
WebAssemblyのloopはまりどころ - Qiita
WebAssemblyのテストプログラム - Qiita
Rustで書いたWebAssemblyに文字列を渡すときにUTF16, UTF8, StringBuilderのどれが速いか計測してみた(ついでにNative RustとWebAssemblyの速度差も調べた) - Qiita
RustでWebAssemblyのライブラリを作るときは配列を引数にとらないように気をつけよう - Qiita
なぜWebAssemblyはasm.jsより速いのか - Qiita
WebAssembly のベンチマークとバイトコードと Lisp - Qiita
初めてRustでWebAssemblyするときに紹介したいチュートリアル (入門) - Qiita
NuxtでWebAssemblyが使えるようになったみたいなので動かしてみた - Qiita
オールRubyでフロントエンド開発を夢見て <デモあり> - Qiita
WebAssembly のベンチマークとバイトコードと Lisp - Qiita
WebAssemblyにコンパイルする言語を実装する - Qiita
WebAssembly / Rust / AudioWorklet でシンセ作ってみる - Qiita
WebAssemblyでカメラをリアルタイムにWebM動画に変換する - Qiita
RustからWebAssemblyを出力するまで(2019年3月現在) - Qiita
2019年のWebAssembly事情 - Qiita
WebAssemblyのbr命令について - Qiita
tkrさんはTwitterを使っています: 「あ、そっかwasmのlabelって完全にスタックスコープ離隔されてるのか」 / Twitter
tkrさんはTwitterを使っています: 「ブロック外のスタックにはアクセス出来ない(スタックを受け取らずに0 or 1の結果を返す事しかできない) i32.const 1 i32.const 2 block (result i32) i32.add end」 / Twitter
tkrさんはTwitterを使っています: 「(このwasmコードは無効)」 / Twitter
tkrさんはTwitterを使っています: 「つまりスタック的には frame→label→codeの完全な階層構造と考えて良さそう」 / Twitter
Node.jsでつくるNode.js-WASMコンパイラ - もくじ - Qiita
標準ライブラリ無しのWebAssemblyでDOOMを動かす実験 - Qiita
RustとWasmで静的ウェブページに日本語検索機能を追加する - Qiita
Envoy での WebAssembly サポートと WebAssembly Hub, WASM OCI Image Specification について - Qiita

Wikipedia

WebAssembly - Wikipedia
WebAssembly - Wikipedia

Twitter

その他

七誌さんのツイート: "WebAssemblyを少し眺めた。分岐で相対アドレスを使わずに構造化されているようで、ちょっとBrainf*ckに似ていると思った。 https://t.co/MrB6JRgGqP"
Kazuho Okuさんのツイート: "goto 禁止教を信じていた頃は while (...) { switch (...) { ... continue; } } とか書いたりもしてたなぁ。最近は while ブロックの最後にラベル置いて goto します"
Makoto Kato ︎︎さんのツイート: "Linが書いたHacksのWASMのbaseline compilerの話、HNではhttps://t.co/V45io6o5qq のベンチマークの話になってたけど、EdgeのWASMコンパイラでValidationがLazyだからロードだけは速いってのは初めて知った"
https://lukewagner.github.io/test-tanks-compile-time/
Rust and WebAssemblyさんのツイート: "Announcing the `web-sys` crate! 🎉🎈🎊 Bindings to ✔️ the DOM ✔️ Web Audio ✔️ 2D canvas ✔️ Web GL ✔️ fetch and the whole Web API!"
ドッグさんのツイート: "Wasm にコンパイルする前提の C++ のウェブフロントエンドフレームワーク,C++ のコードに唐突に JSX 記法が出てくる(仮想DOMが生成されるっぽい) https://t.co/rRvZYUh8eT"
asm-dom/todos.cpp at master · mbasso/asm-dom
herumiさんのツイート: "intを返す関数をvoidを返す関数ポインタ(引数の型は同じ)にキャストして使うとx64では大丈夫だけどwasmだと実行時エラー。それをチェックするにはwasm-ldに--check-signaturesをつける。しかしwasm-ld-6はバグっててそれをつけると逆にエラー。ld-7ではOKでした。@blackenedgold #compiler_study"
Yosuke FURUKAWAさんのツイート: "AudioWorkletからSharedArrayBuffer経由でwasm threadと直接データやりとりして、最後にAudioMixingEngineでUIにつなぎこむ、、!!ゴクリ #ChromeDevSummit_ja… "
petamorikenさんのツイート: "@tkihira 突然失礼します。こちらの記事のコンパイル済みの WebAssembly を IndexedDB にキャッシュする件についてですが、 https://t.co/QF98zqUFpA 残念ながら仕様から消えてしまい、Firefox の実装からも無くなってしまったので、追記していただけると幸いです。 https://t.co/qTsuGa3kLn"
dynamis (でゅなみす)さんのツイート: "貧弱だったWebRTCのエコーキャンセラーは年末あたりにバージョンアップして改善される一方、そもそもオーディオのコーデックとかも含めてWebAssemblyで実装してしまうアプリケーションが出てきてたりブラウザはメディア系も低レベルAPI提供の方向に向かいそうな話。 https://t.co/kF8T4X3e6R"
ドッグさんのツイート: "Wasm はスタックマシンだと仕様にあるけど実際 locals はそうなってないという話.元々 asm.js のバイナリ表現としてレジスタマシンで設計されていたものからスタックマシンに切り替えた経緯があるのか | 'WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine' https://t.co/BEwMJf7AnT"
WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine
Makoto Kato ︎︎さんはTwitterを使っています: 「パフォーマンストークでFFIが絡む話をする場合は、FFI部分を排除したデータがないと残念なプレゼンになるけど、まぁ結論として残念ですね」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「WASMのJITもTierがあるので、JSのTierをなくしたデータを取るんだったら、WASMも同じようにInterpreter/BaselineJITだけのデータをとって比較しないと意味ないのでは?」 / Twitter
VさんはTwitterを使っています 「WASM が未来なのすごくわかるなぁ。いつか汎用的な負荷試験ツールを作る日が来たら、シナリオは全部 WASM 化したい。好きな言語で好きなように書ける。」 / Twitter
Hiroaki NakamuraさんはTwitterを使っています 「@voluntas 同感です。まずはプラグインとかスクリプト機能がWASMになるんでしょうね。ゆくゆくはユニバーサルバイナリーの地位を確立するかもというのも気になります。 ただ現時点だとLuaJITのほうが軽かったりしないのかなあと気になっているのですが。まあでもWASMが広まっていくんでしょうね。」 / Twitter
VさんはTwitterを使っています 「@hnakamur2 まず Lua を覚えてもらうのと LuaJIT Binding を維持するコストが高いと思うんですよね。k6 がシナリオを JS にしたのは英断だなぁと思っています。「WASM にさえすれば何でもいい」というのは本当に強くて、あとは API をアプリ側に用意するというのは一番キレイな形だなと。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「アプリを動かすための仮想機械を作ったとしても、新しいプラットフォームで動かすには誰かがその仮想機械を移植する必要があるんだよな(そしてそれは「再コンパイルすれば済む」ような自明な作業ではない)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「元ツイートとは関係ないけど、Write once系の技術はdebug everywhereになりがち(抽象化に漏れがあったり、抽象化レイヤーの提供する機能が少なくて環境依存な方法を使ったりするような場合)」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyのセキュリティーについて https://t.co/MWJgBZqE4g とか読んで調べてるんだけど、Control Flow Integrityの辺りって処理系側が工夫しないと結構簡単にバッファーオーバーランとかで破られちゃうよな…」 / Twitter
Security - WebAssembly
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「いや、もちろん他の仕様も処理系がアホだと危ないのは当然なんだけど、ジャンプ先の制御って今自分が作ってるコンパイラーじゃ全然守れてないな…って。」 / Twitter
kateinoigakukunさんはTwitterを使っています 「&gt; wasm-ldに関する公式サイトというかドキュメントみたいのはどれを見ればよいでしょう? wasm-ldはlldのwasm向けポートなのでLLVMが公式ドキュメントということになるのかな? 一応申し訳程度のドキュメントがありますが、あまり期待しないほうが良いと思います!https://t.co/0gXTJKiEaK #wasmnight」 / Twitter
WebAssembly lld port — lld 12 documentation
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Wasmの例外やGCが実装してなお残る、高級なプログラミング言語のランタイムに必要な機能ってなんだろう。boxing・unboxingとか?軽量スレッドなんかも言語によっては必要かな?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@miura1729 物理CPUのinstruction setはハードウェアなので仕様先行にせざるを得ないが長い期間の蓄積がある& WebAssemblyみたいな仮想マシンコードも、50年くらい前からp-codeやAS/400の中間コードとして存在し、JVMや.NETのVM命令セットを含め、何度も何度も実装されて知見が蓄積されていますからね…」 / Twitter
FadisさんはTwitterを使っています 「Wasmer 2.0が出たらしい。WasmerはWeb以外でWebAssemblyを動かす実行環境。2.0ではNaNの振る舞いが中間表現の仕様に入ってfloatの最適化がかけやすくなる、バックエンドにCraneliftが使えるようになる、wasmのデシリアライズが爆速になる等の性能面で影響の大きい改善が目立つ https://t.co/o72eOOATzy」 / Twitter
Wasmer 2.0 Released With Significantly Faster Runtime Performance, Quicker Deserialization - Phoronix
ノーンさんはTwitterを使っています 「AssemblyScript雑なまとめ - WASMのInterface Type(外部とやり取りする型)で文字をUSVに移行するという提案(セキュリティーに問題があるため) - 8/3の会議でGoogleやMozillaなどに可決されそう - でもAssemblyScriptは死ぬので、「巨人には勝てんわ。すまん」と声明を発表 https://t.co/wJIstrB3A4」 / Twitter
mod_poppoさんはTwitterを使っています 「AssemblyScriptが死ぬ話、全然把握してないけど初期のUnicodeを16ビットに収めようとした連中が諸悪の根源であることだけはわかる」 / Twitter

users

@chikoski

chikoskiさんのツイート: "各ブラウザベンダ連名で出ているWASMの論文。簡約と検証のルールが明示されているのが良い。他のところにちゃんと明記されてないもんね。特にどのような簡約を行うとTrapが発生するのかがわかるところが重要:https://t.co/q0EeWovUsa"
Bringing the Web up to Speed with WebAssembly - PLDI 2017
chikoskiさんのツイート: "WebAssembly.compileStreamingが追加された意味。ファイルを全部ダウンロードしなくても、データが来たそばからコンパイルできる。… "
chikoskiさんのツイート: "WASMからCのソースコードとヘッダファイルを作るコンバーター。https://t.co/DrGr0V9jDf これは結構強力な気がする。うまくするとTypeScript(AssemblyScript)で書いたプログラムをCに変換できるのではないかしら。"
wabt/wasm2c at master · WebAssembly/wabt
chikoskiさんのツイート: "JS vs AssemblyScript vs Rustから出力されたWASMの速度比較がメインのWASM紹介記事。配列と文字列操作については、JSが圧倒的に速い。ブラウザに任せられるものは任せよう、というゴールデンルールはここでも健在かな… https://t.co/6HjJMy9D6z"
chikoskiさんのツイート: "Unityプロジェクトを使ったWASMの起動およびパフォーマンステストの結果。Firefoxがとても早く、Edgeも健闘。ストリームコンパイルを有効にしたChromeはロードがとても早くなっているのを見ると、ストリームコンパイル有無が大きいのだろうな https://t.co/UDU2h8zaP2"
chikoskiさんのツイート: "WASMからbuiltin関数を呼ぶより速いのウケるけど、当然といえば当然か。… "
Yosuke FURUKAWAさんのツイート: "まじか、JSからJSの関数呼び出すよりもJSからwasmの関数呼び出すほうが早くなるケースが大部分になりつつあると。JITとwasmのコンパイル後の距離が近くなったんだな。 / “Calls between JavaScript…” https://t.co/Y6Xbvs8VoG"
toVersusさんのツイート: "JIT/wasm で Activation Record を統一して JS => wasm が JS => JS 並に速くなった。JIT-ed JS も WebAssembly も機械語に翻訳されるのに、以前は別々の Activation Record を C++ でセットアップしており、コストが高かった。"
toVersusさんのツイート: "JS 側のパラメータを WebAssembly 側の関数に渡す前の unboxing 処理を C++ から JIT 直呼びに変更して、JS => wasm を高速にした。C++ のオーバーヘッドが無くなった。"
toVersusさんのツイート: "JS がインライン関数を持っている場合、JS => JS の速度に勝てないが、将来的に JS の中に WebAssembly をインライン化できるようにする予定。"
Wasabi - WebAssemblyにインジェクションしてデバッグを促進 MOONGIFT
toVersusさんのツイート: "JS のビルトイン関数の中で C++ で実装されている関数の呼び出しにファストパスを設け、wasm => JS built-ins を高速化した。現状、WebAssembly の値型の制約で、math 関数のみ有効。近々、WebAssembly に参照型が追加されるので、wasm-bindgen のように JS を経由する必要がなくなる。"
chikoskiさんのツイート: "Chrome CanaryでWASMのスレッド機能がプレビューできます。chrome://flags/#enable-webassembly-threads のフラグをenableすると使えます。スレッドについてはこちらにスペックがあります。https://t.co/lXH3TwY4xe… https://t.co/cEyD7AvlfI"
threads/Overview.md at master · WebAssembly/threads
bokuwebさんのツイート: "https://t.co/katFUFyNL8 のshared: trueでworker間で共有してるやつですよね?いまいちわかってないんですけど内部的にはsharedArrayBufferなんすか?… "
chikoskiさんのツイート: "サーバレスWASM…… "
chikoskiさんのツイート: "「WASMを君の洗濯機にも!」って書いてあって意味不明(褒め言葉)。FPGAに実装されたWASMのスタックマシン。https://t.co/AKt15VHcnf… "
piranna/wasmachine: Put WebAssembly in your washing machine
chikoskiさんのツイート: "「コンパイルはダウンロードよりも50M bit/s 速い」忘れがちだけど、ネットワークって随分と遠いところにあるのよね。https://t.co/h6WcuiVLog… "
chikoskiさんのツイート: "「低水準APIを提供するWebRTC NVと、WASMとの組み合わせでできることは広がる。カスタマイズされたWebRTC実装の持つ機能を、実装をWASMに出力してWebRTC NVと組み合わせて実現するといったこともできる」… "
chikoskiさんのツイート: "システムコールの呼び方を整理して、WASMの相互運用性をあげようという活動(かな)。今はRustで作ったWASMとEmscriptenで作ったものは、システムコールの呼び方が違うので、そこを統一したい、ということかな。面白いなー。 @wasmerio らしい要求だと思う。https://t.co/gn34VBSEkx"
WebAssembly & CloudABI – Wasmer – Medium
chikoskiさんのツイート: "https://t.co/XM7i4Bia1M によると、 命令セット、エンディアン、データ型、配置、呼出規約 システムコール、ファイルフォーマットを定めたものがABI。WASMの仕様で決まっていないのは、システムコールの部分だけ(こうなってるのは理由がある)。"
chikoskiさんのツイート: "面白い試み。評価のところが面白い。"Speed comparison per browser"のbrowser 3, 4が大勢なら効果大って言えるけど、1,2だけならどうなんだろう?ってところが特に面白い。JS/WASMの呼び出しコストと、JSに対する最適化の結果がブラウザによってバラバラなのが、この差を生んでるのかしらー。… https://t.co/yRGUJ74rZ9"
Yosuke FURUKAWAさんのツイート: "くぁーJSのホットスポットのところだけ最初からwasmにするっていうかっこいいアプローチ / “Replacing a hot path in your app's JavaScript with WebAssembly  |  Web  |  Google Developers” https://t.co/EZcSLKoIxN"
Replacing a hot path in your app's JavaScript with WebAssembly  |  Web  |  Google Developers
chikoskiさんのツイート: "twiggy is a code size profiler. https://t.co/2rMvCfcanE"
Introduction - Twiggy🌱
chikoskiさんのツイート: "WebAssemblyアプリの起動時間のほとんどはコンパイルに使われている。コンパイル結果をキャッシュして1000倍起動が早くなったよ、という記事。例に使ってるNginxはパーズとインスタンス化がそれぞれ10ms,20msなのに対し、コンパイルは1000msかかってる。これをキャッシュでほぼ0にするのでそりゃ速い。… https://t.co/2GUE83DHCS"
chikoskiさんのツイート: "ついでにハッシュアルゴリズムをSHA256からmeowashに変えて、1MBのバイナリのハッシュ値生成にかかってた時間が5msから4μsへと125倍も速くなった。meowashはこれかなhttps://t.co/3gG4xlwZnc"
chikoskiさんのツイート: "meowashはセキュティ目的に開発されていないが、https://t.co/e5cQzZBJTK のテストは全てパスしているし、開発陣が持っている大きなデータセットでも今のところハッシュ値の衝突は起きてないとのこと。キャッシュ用途には使えるってことかしら。"
chikoskiさんのツイート: "インストールという形を取れないから、インストールの最後に「最適化の作業中です」と言いつつコンパイルして、その結果をキャッシュするといったことは取れない(?)。モジュールに分解した上で、小さいプログラムを動かしつつ、裏でコンパイルしていくというアプローチになるのかな。"
chikoskiさんのツイート: "そういう賢いやつより、とりあえずバーストで転送してしまってガンガンコンパイルする方がいいのかもしれない。"
chikoskiさんのツイート: "C/C++からのWebAssembly作成解説本。導入から既存プロジェクトの移植まで幅広く対応してる感じ。ファイルの扱いに関する記述があることと、Web workersとの連携について述べられていることが、他にはない特徴だと思う。https://t.co/0FBeCHYr6M #webassembly… https://t.co/Ey0VmZyUFE"
Level Up with WebAssembly
chikoskiさんのツイート: "インラインWASM …… "
chikoskiさんのツイート: "WASMコンパイルされたwat2wasm (from https://t.co/ToKxthdHxQ)を使えば、watで書かれたWASMを、ダイナミックに評価することもできるよね。理論的には #webassembly"
chikoskiさんのツイート: "SIMD in wasm: Chrome Canaryでフラグつきで使えるようになったWASMのSIMDですが、Emscriptenでの試し方をざっくり解説した記事 https://t.co/vdxPv3T5re"
SIMD in WebAssembly – tales from the bleeding edge – brionv
chikoskiさんのツイート: "旧聞ですが、WebAssembly.compileとWebAssembly.compileStreamingの比較: https://t.co/xqj5YE6EYK"
Loading WebAssembly modules efficiently  |  Web  |  Google Developers
chikoskiさんのツイート: "Twiggy: https://t.co/aFJNd9dRGT #webassembly の関数呼び出しを解析するツール。使われていないコードや、逆によく使われているコードを探すのに使える。バイナリサイズを大きくしているコードも探せる。"
rustwasm/twiggy: Twiggy🌱 is a code size profiler
chikoskiさんのツイート: "WASMになったエンコーダを使って、音声をブラウザ上でmp3にしているみたい。おもしろー… "
Shunya Shishidoさんのツイート: "こえのブログ、すごいとは思っていたけど解説読んで震えている。FastlyとGCPのフル活用、PWA、Web Components、a11y、WASM、Perf Budgetsと、現代の技術全て注ぎ込んであそこまでの完成度に持って行けるのか〜悔しい!という気持ち。 https://t.co/ATSUQqggfD"
アメブロ2019: こえのブログでのPWA
chikoskiさんのツイート: "WASM向けJITコンパイラ/コードジェネレータのCrainlift。すでにFirefox Nightlyで使えるのか。フラグをつければ有効になる、とのことらしい。https://t.co/FfyO0Z409s"
In Firefox Nightly, an option has arrived to use cranelift for wasm compilation : rust
chikoskiさんのツイート: "その環境でサポートされているWASMの機能を調査するJSライブラリ。いまはミュータブルなグローバル変数、多値関数、多倍長整数のJSとの統合について調査できる。それぞれの機能を使った小さいWASMをインスタンス化して、その成否で調査をするという戦略。単純だけど、効果的だと思う。… https://t.co/q0SRRxZ7vV"
chikoskiさんのツイート: "ソースコードはこちら https://t.co/MHIEHZ3R9j。デモへのリンクもある。"
xtuc/webassembly-feature: Test if a WebAssembly feature is supported
chikoskiさんのツイート: "autoconfという向きもあるでしょうが、polifillが実装済みの不要な機能を落とすといった使い方もあるかと思います。どっちにしてもWebAssemblyはバージョンレスであることを歌っているので、プログラムがランタイムの能力に合わせることが必要だと思います。… https://t.co/n2MKQ9W9XZ"
Takashi Kawasakiさんのツイート: "autoconfの再来か。いろいろ先が心配にはなる。… "
chikoskiさんのツイート: ".@wasmerio による、各WASMバックエンドの性能比較。ベンチマークによる性能比較と、ビルド時間を比較している。時間をかけて最適化をすると計算は速くなるという結果。Craneliftがコンパイル時間が短い割には性能が出ている点が面白い。https://t.co/bo3vBhvk8D"
Benchmarking WebAssembly Runtimes – Wasmer – Medium
Intent To Shipさんのツイート: "Blink: Intent to Ship: WebAssembly Bulk Memory operations https://t.co/0lZNT6uZ6d"
Intent to Ship: WebAssembly Bulk Memory operations - Google グループ
chikoskiさんのツイート: ""Bulk Memory Operations and Conditional Segment Initialization": https://t.co/wFM4BD9lw5 memset / memcpy相当の命令を #webassembly に追加するプロポーザル。パフォーマンス向上が主なモチベーション。Blinkへのship approval request: https://t.co/rOAcpyWKch"
bulk-memory-operations/Overview.md at master · WebAssembly/bulk-memory-operations
Intent to Ship: WebAssembly Bulk Memory operations - Google グループ
chikoskiさんのツイート: "命令はまあ足せば足せるんだろうけど、どう足していくつもりなんだろう。CISC / RISCどっちのアプローチを取るんだろう?それとも、最近はそれ以外にもアプローチがあるのかしら?"
chikoskiさんのツイート: "WASMバイナリを呼ぶためのPythonライブラリ。"🐍+🦀+🕸 Python extension to run WebAssembly binaries."というリード文が可愛い。内部は@wasmerio とうまくPythonを繋げてる模様。… https://t.co/MModWL9nam"
chikoskiさんのツイート: "仕事を引き寄せる 愛され言語2019春(仮)の第6位がWebAssemblyの模様(StackOverflow調べ)。あれは言語、そう言語だけれども。… "
WebAssemblyWeeklyさんのツイート: "WebAssembly - one of the most ‘loved’ languages in the StackOverflow developer survey 2019 https://t.co/kAqWTgLmca… "
Stack Overflow Developer Survey 2019
chikoskiさんのツイート: "用途にあわせて @wasmerio がバックエンド(wasm-nativie codeコンパイラ)を切り替えられるようにした話。とにかく起動を早くしたい、もしくはハードウェアが重たいコンパイル処理に耐えられない→シングルパス。性能が欲しい→LLVM。その中間→CraneLift https://t.co/LE6Szk31T4"
A WebAssembly Compiler tale – Wasmer – Medium
chikoskiさんのツイート: "WebAssembly Package Manager(WAPM). npmライクなWebAssembly向けパッケージマネージャ。今のところはパッケージ数も少ないし、パッケージの粒度もまちまちなので、よくわからないけれど、依存グラフの解決をやってくれると楽しくなる、かもしれない https://t.co/rEDWrABK4Q"
Announcing WAPM: The WebAssembly Package Manager – Wasmer – Medium
chikoskiさんのツイート: "公開されているパッケージの一覧はこちら:https://t.co/znQZHYUFjH ."
wapm | WebAssembly Package Manager
chikoskiさんのツイート: "wapmの利用ガイド:https://t.co/C8DrMCuTaf npm同様に install でパッケージを取得する。公開はpublicコマンド。package.jsonの代わりにwapt.tomlにパッケージのメタ情報を記述する。tomlを使うところはRust由来な感じ。"
wapm | WebAssembly Package Manager
chikoskiさんのツイート: "publicではなく、publishコマンドでした。タイプミス"
chikoskiさんのツイート: "しゅーまい @__syumai さんにlikeされて思い出したけど、denolandと組み合わせると、結構面白くなるのでは。"
🦀 Ivan 🐘🐍💎 Enderlin 🕸さんのツイート: "JavaScriptCore as a WebAssembly binary, https://t.co/aQA2qyJObr. $ wapm install -g jsc $ jsc >>> function multiply(a, b) { return a * b } undefined >>> multiply(10, 20) 200 >>> Date() Mon Apr 15 2019, … Crazy :-). #webassembly #javascript #javascriptcore"
jsc - wapm
chikoskiさんのツイート: "Zephyr project(組み込み向けリアルタイムOS)の上で動くWASMランタイム。libcのサブセット(ほんとに小さい)付き。ワクワクするな!… "
Anas Nashifさんのツイート: "Nice to see a WebAssembly Micro Runtime project from @IntelOpenSource running on @ZephyrIoT. https://t.co/djBVKTv5bO"
intel/wasm-micro-runtime
chikoskiさんのツイート: "ざっとREADME読んだ限りでは、割り込み周りはOSが面倒みてくれて、WASM的にはイベントとして抽象化される感じ。より細かいアクセスはネイティブコードをインポートとして与える感じになるのかな… "
bokuwebさんのツイート: "うお、intelなのか。割り込みとのつなぎとかどうなるんだろうか。。。"
chikoskiさんのツイート: "WASM Unikernel…パワーワードすぎる。@wasmerio をOPS unikernel上で走らせてみた話… "
WebAssemblyWeeklyさんのツイート: "Running WASM Unikernels https://t.co/JJMoBksOoX - taking a simple Hello World app, compiling to wasm, running it on @wasmerio within an OPS unikernel"
Running WASM Unikernels
chikoskiさんのツイート: "WASM向けのtracing allocator。デバッグ向け。Rust製。Rustから作られたWASMのメモリ使用状況を調査できる。ブラウザでもNodeでも動作。 https://t.co/N54smbHKnz"
rustwasm/wasm-tracing-allocator: A global allocator for Wasm that traces allocations and deallocations for debugging purposes.
chikoskiさんのツイート: "1Passwoed、WebAssemblyを利用することで、Chromeでは最大13倍、 Firefoxでは同じく最大39倍の高速化に成功。… "
1Password X: May 2019 update | 1Password
chikoskiさんのツイート: "味わい深い結果。v8の型推論は強力なのだなとも思えるし、生存期間が長く計算能力が必要な処理にはWASMを使った高速化は有効なのだろうとも思える。さて実行回数に対する損益分岐点はどこらへんになるのだろうか、などなど。"
hiroppy🇮🇪さんのツイート: "Node.jsのECMAScript ModulesでWebAssemblyが使えるようになる🎉🎉🎉 https://t.co/LNPiT4UKvq… "
esm: --experimental-wasm-modules integration support by guybedford · Pull Request #27659 · nodejs/node
chikoskiさんのツイート: "WASMとES modulesとの相互運用性に関するプロポーザル(の説明スライド)なんだけれど、インポート、エクスポート、instantiationで、それぞれ何をやっているかを説明しているので、面白いかもしれない。文字がないのでわかる人はわかる、てきな感じかも、しれない。https://t.co/lFsG9XIoVc"
WASM ES module proposal
Running WebAssembly on the Kernel – Wasmer – Medium
chikoskiさんのツイート: "この速度向上は、kernelモードとuserモードの切り替えがないことに由来する模様。なお今回の結果は、起動は早いが最適化は不十分なシングルパスバックエンドを利用したもの(@wasmerio はバックエンドを切り替えられる)。最適化をより行うCrainliftやLLVMのバックエンドを使えばより早くなる見込み。"
chikoskiさんのツイート: "Bllockly (https://t.co/lwNdsDJCBO)向けのAssemblyScriptコードジェネレーターが作成された模様。つまり、ブラウザ上で動作しWebAssemblyにコンパイルできるビジュアルプログラミング言語がある、ということ。… https://t.co/VwZL2wQlv9"
Blockly  |  Google Developers
Robert Longさんのツイート: "Working on an @AssemblyScript code generator for Blockly and compiling it to WebAssembly in browser. Still a long way to go, but it looks doable. I'll open source it after I get a little further.… https://t.co/AuMqKuE4CS"
chikoskiさんのツイート: ".NetのアプリをWebAssembly化するまでの話。Blazorを使って.Netで書かれたHello Worldアプリを、WASM化するまでの流れが説明されている。https://t.co/uTjWM1ln8a"
WebAssembly-ifying .NET with Blazor
chikoskiさんのツイート: "Compiling C to WebAssembly without Emscripten: https://t.co/zoV5YJSoYP Clangを使ったCからWASMへのコンパイルを、step by stepで解説している。前提知識があまりなくても読めます。一般のCコンパイラ話として読んでも楽しい。"
Compiling C to WebAssembly without Emscripten — DasSur.ma
chikoskiさんのツイート: "あと超適当ではあるけれど、メモリアロケータを実装してみてもいるので、何気なくnew Array();とかやっている裏で、何がおきているかに興味ある人もどうぞ。https://t.co/zoV5YJSoYP from @DasSurma"
chikoskiさんのツイート: ""Audio Worklet Design Pattern":タイトルはAudio Workletだけれど、実質WASMを使ったストリーム処理のデザインパターン集になってる。データの受け渡し方法と、スレッド間の同期するかしないかが、デザインの分かれ目になっている。 https://t.co/qvJbiPmzQo"
Audio Worklet Design Pattern  |  Web  |  Google Developers
chikoskiさんのツイート: "サンプルコードはこちら:https://t.co/X7HG82OTop"
web-audio-samples/audio-worklet/design-pattern at gh-pages · GoogleChromeLabs/web-audio-samples
chikoskiさんはTwitterを使っています: 「さらっと書いてあるけど興味深い:Ayncifyによる非同期呼び出し。そして setjmp/longjmpのデモ。これでgoto文やexceptionを実現できる。 https://t.co/7S7YxHocwh」 / Twitter
chikoskiさんはTwitterを使っています: 「EmscriptenがLLVMバックエンドを使うようになったので、./emsdk install latestでPost MVP機能が使えるコンパイラがインストールされるようになりました。そして、fastcompを使いたいときは、latest-fastcompと明示するようになりました。」 / Twitter
chikoskiさんはTwitterを使っています 「Emscriptenを使わずに、Cでmp3デコーダをつくった話。 ヒープの管理方法についての説明が主なので、CプログラムのWASM化するさいにひろく参考になると思う。スタックの起点から上にヒープが伸びていく、ところがポイント https://t.co/bO8eSEaqua」 / Twitter
Minimp3 Wasm Without Emscripten – kanejaku.org
chikoskiさんはTwitterを使っています 「Conditional Sections. いくつかのsectionを複数回出現可能にした上で、sectionを有効にするための条件を記述するための conditional section を追加する。JS API も有効な機能セットを渡せるように拡張される、らしい: https://t.co/T0JbSAt73z」 / Twitter
conditional-sections/Overview.md at master · WebAssembly/conditional-sections
chikoskiさんはTwitterを使っています 「Firefox で使われているライブラリの一部を、WASMサンドボックス内で動かしてるよ、という話。 プロセスを作るまではいかないけど、メモリアイソレーションしたいというニーズに応えるため、RLBoxというサンドボックスを突くった、とのこと: https://t.co/sckg8jYfFB」 / Twitter
Securing Firefox with WebAssembly - Mozilla Hacks - the Web developer blog
chikoskiさんはTwitterを使っています 「論文:https://t.co/E6vAKhcnDi "we find the end-to-end memory overhead of RLBox to be modest—25% with SFI, 18% with process isolation—and transient, appearing only at content load time. The impact on page latency is small: 3% and 13% with SFI and process isolation, respectively"」 / Twitter
LibrarySandboxing/paper.pdf at master · shravanrn/LibrarySandboxing
chikoskiさんはTwitterを使っています 「NaCLについて、何も知らないんだけど、やっぱり振り返った方がいいんだろうか。」 / Twitter

@qwerty2501

クワーティさんのツイート: "どうしてwasmにはfloatにだけmax,min命令があるんですかねぇ。しかも条件が結構複雑で実装がだるいという"
クワーティさんのツイート: "wasmのfloatのminとmax命令よくわからんからlibcのfminとfmax関数にぶん投げてええか?"
クワーティさんのツイート: "relopとfbinopを実装したし、今日の進捗としてはこんぐらいでいいだろ"
クワーティさんのツイート: "LLVMBuildAShrとLLVMBuildLShrの説明がどこにも見つけられなくて困っている"
Atsushi Enoさんのツイート: "arithmetic shift right とlogical shift rightでは… "
クワーティさんのツイート: "あーそれだ。多分 ありがとうございます… "
クワーティさんのツイート: "LLVMにrot命令が存在しない・・・"
クワーティさんのツイート: "end命令のときに対応する命令がloopか、そうじゃないかで振る舞いが変わってくると思うんだけど"
7594591200220899443さんのツイート: "WASM案外遅くねえか?っていう報告が出ている https://t.co/sSZM7zkCPk"
[1901.09056] Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code
qwerty2501さんのツイート: "遅い理由として考えられるのは、 - 規格上余計にマシンコードと比べて余計に仮想メモリの処理が入る - ブラウザの最適化実装が甘い - スタックマシンなので言語のコンパイラが最適化しにくい? かな。現状遅い理由で多いのは2番目っぽそうだけど"
qwerty2501さんのツイート: "個人的にWASM vs Native CodeよりもWASM vs JVMの比較のほうが妥当な比較な気がする。"

@blackenedgold

κeenさんのツイート: "wasmは最初の引数がスタックの底。最後がスタックトップ。 #κeenメモ"
κeenさんのツイート: "webassemblyのバイナリツール、セマンティクス的に間違っててもフォーマットが正しかったらとりあえずディスアセンブルしてほしい"

@rockridge07

Rockridgeさんのツイート: "JavaVMのような実行環境があれば、将来的にWebAssemblyベースのデスクトップアプリケーションも作成可能になる。 / “WebAssembly is more than the web” https://t.co/77uD4mFOlU"
Rockridgeさんのツイート: "Rust言語から生成されたWebAssemblyがマルチスレッドで動作し、各スレッドがメモリを共有するという仕組みができつつある。 / “Multithreading Rust and Wasm | Rust and WebAs…” https://t.co/r3PF3bUG87"
Rockridgeさんのツイート: "WebAssemblyがMinimum Viable Product(MVP)に達した時点で、ゲームでいう「スキルツリー」が開放され、様々な領域へと発展していけるようになった。本記事では獲得間近の「スキル」に当たる各種新機能を紹介… https://t.co/rq0iPTUp4q"
Rockridgeさんのツイート: "Doom 3をEmscriptenを用いてWebAssemblyに移植した話。サイズがおよそ400MBあるといい、読み込みには相当な時間がかかる。参照:https://t.co/kfsfSODK2i / “Google グループ” https://t.co/cdbKMmijAn"
Rockridgeさんのツイート: "サイトに登録されたMIDI形式のファイルを再生できる。その数11万以上。C言語で書かれたプレイヤーをWebAssemblyとJavaScriptに移植したという。参照:https://t.co/axJZ5LsZXe / “Pop…” https://t.co/FbxpLWDpjW"
The Lost Art of MIDI – Bringing <bgsound> Back to the Web - Speaker Deck

シフト

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「C言語とかでunsigned intな値を32bit以上シフトするのって未定義動作なんですかね。 https://t.co/BpKdcBSxpp が手元と結果が違うな。」 / Twitter
6Rr5UX - Online C Compiler & Debugging Tool - Ideone.com
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/sV2MCUIQpe いわくそうらしいな。」 / Twitter
c - What's bad about shifting a 32-bit variable 32 bits? - Stack Overflow
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「未定義動作がないように作っているからWasmのi32.shlはmod 32した上でシフトするのか。なるほどなー。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうの漫然と仕様書読んでたときは全然気づかなかったなあ。やっぱ手動かしてこそやね」 / Twitter

Table

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyのTableってどういうユースケースを想定してるんじゃろうか。大抵のホストの関数をimportすれば賄えるようにも見えるような...?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/TyUbPpRfF7 に詳しく書いてあるっぽいな。」 / Twitter
WebAssembly table imports… what are they? - Mozilla Hacks - the Web developer blog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ああー、そうか。ホストの関数をWebAssemblyで書かれたコールバックを受け取る関数に渡したいときか。」 / Twitter
S.F.さんはTwitterを使っています 「あとはtableだなあ。。これいわゆる関数ポインタを収めるテーブルなんだよね。関数の間接コールを実現するための仕組み。むかしむかしだとジャンプ・テーブルですな。」 / Twitter
S.F.さんはTwitterを使っています 「線形メモリ上に関数のアドレスを置くというのはセキュリティ上の考慮からNGとなっていて、関数への参照をこのテーブルにセットするんだよね。そしてこのテーブルへのインデックスと関数の型(type)を指定して間接コールを実現する。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「あれ、どういう場合に破壊的な書き換えが発生するのかわからなくなってきた... https://t.co/gtwIE299XX で紹介されているサンプルでは明らかに破壊的に変更してるのに、私が作ったサンプルでは書き換えられない...」 / Twitter
WebAssembly.Table() - JavaScript | MDN
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「どうもコンパイルするwasmの内容に依存しているようなので、何か書き間違えてるんだろうけど...」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「(elem $tableName ...) ではダメで、 (elem (i32.const 0) ...) じゃないといけないのか。前者の方法ではtableの初期化が無視されている?」 / Twitter

wasm-decompile

chikoskiさんはTwitterを使っています 「WebAssembly Binary Toolkit (wabt) に wasm-decompiler が追加されたよ、という記事。wasm を与えると、人間が読めるコードを出力するツール。同種のツールである wasm2wat よりも可読性は高い模様。メモリのインデックス操作やコントロールフローの解析は頑張ってる様子: https://t.co/tOYL9MMC5d」 / Twitter
What’s in that .wasm? Introducing: wasm-decompile · V8
chikoskiさんはTwitterを使っています 「wasm-decompiler の README: https://t.co/d3MEH5mcNK」 / Twitter
wabt/decompiler.md at master · WebAssembly/wabt

GC

chikoskiさんはTwitterを使っています 「最後のセッション。スピーカーはW3C WASM CGのチェア。歴史の振り返りから。やると決めてから2週間でプロトタイプ作った。」 / Twitter
chikoskiさんはTwitterを使っています 「工程。パーザーはやっぱり時間がかかる https://t.co/st1UTJ7yoU」 / Twitter
chikoskiさんはTwitterを使っています 「2017年時点での仕様の分類 https://t.co/iqJLnzGfQV」 / Twitter
chikoskiさんはTwitterを使っています 「2017年の時点で、GCは作ろうと思ったら作れた。全ての変数が線形メモリ上にあるなら。実際は、仕様上ローカル変数はスタックの上にあることが大切だったし、embedder側からの参照の解決も決まってなかった。」 / Twitter
chikoskiさんはTwitterを使っています 「2018年の時点でのGC。参照や構造体を表す型が導入された。参照は、Embedder側の物も指せるのでなかなか大変。 https://t.co/IgQWboL5d7」 / Twitter
chikoskiさんはTwitterを使っています 「C APIも2018年に定義された。これはプログラムからWASMランタイムをコントロールするためのAPI。」 / Twitter
chikoskiさんはTwitterを使っています 「2019年の仕様。Host bindingsがInterface Typeに名前を替え、WASIが登場。 https://t.co/mHrwQb0qr6」 / Twitter
chikoskiさんはTwitterを使っています 「2020年。参照型はPhase4になりそう。 どんどんパイが拡大していった様子を見ていった、という話でした。 終わり」 / Twitter

バイトコード

Miura HidekiさんはTwitterを使っています 「P-System, Mesa, JVMと歴史を見ると共通のバイトコードを普及させる試みは大体失敗しているので、WebAssemblyも失敗すると思っている。JVMは失敗したかどうかは議論が分かれるけど、個人的には失敗したと思っている」 / Twitter
Miura HidekiさんはTwitterを使っています 「llvmは成功したな。そういえば」 / Twitter
Miura HidekiさんはTwitterを使っています 「llvmのbitcodeを共通バイナリにする話があまりないのは不思議」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 LLVM だと JIT 向きじゃないとかの理由で WebAssembly が出来たとかいう話が真なら、LLVM も失敗していることになりますね」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど、確かに。そうすると、インタプリタ(JITを含む)を前提としたバイトコードは失敗しがち、ってことになりますね。この方がしっくりきます。」 / Twitter

インタプリタ

chikoskiさんはTwitterを使っています 「次。JSC の WASM インタプリタについて。JSCはWebkitに載ってるランタイム。」 / Twitter
chikoskiさんはTwitterを使っています 「JSCは2段階の最適化をする。BBQとOMG。どちらも同じ最適化エンジンを使うけど、最適化オプションが異なる。」 / Twitter
chikoskiさんはTwitterを使っています 「コンパイルと実行前処理が時間がかかるので、インタプリタを導入した。offlineasmやbytecodeなどJSのインフラを再利用した。」 / Twitter
chikoskiさんはTwitterを使っています 「苦労点その1。関数の呼び方。JSと同じやり方では、実行コードを切り替えられなかったので、インタプリタ用に中間層を入れた。」 / Twitter
chikoskiさんはTwitterを使っています 「苦労点その2。コールスタックの扱いについて。レジスタの退避と書き戻しをすることとなった。 これらの苦労点は、ある関数はコンパイルされ、別の関数はインタプリタで動く、といったことが起こるから発生してる。」 / Twitter

サンドボックスで処理速度低下

ドッグさんのツイート: "Wasm をサンドボックスの外で走らせると,マイクロベンチマークで C++ の95%の速さで実行できるらしい | 'Introducing inNative - Run WebAssembly Outside The Sandbox at 95% Native Speed' https://t.co/G1ZABHv2rH"
Introducing inNative - Run WebAssembly Outside The Sandbox at 95% Native Speed
ドッグさんのツイート: "ちなみに Wasm には LLVM のベクタライゼーション最適化を阻害する問題があって,それが直ればさらにこの差は小さくなるらしい"
ドッグさんのツイート: "メモ: サンドボックスを有効にすると C++ の 75% の速さまで落ちる"
イスラエルエリカちゃんさんのツイート: "サンドボックスやっぱそれなりにオーバヘッドでかいんやな"

memory_immediate

tkrさんのツイート: "memory_immediate is 何"
tkrさんのツイート: "オフセットとか指定出来るっぽい"
tkrさんのツイート: "flagは意味分からん"
tkrさんのツイート: "バイナリ読んだ感じデフォルト2っぽい?"
クワーティさんのツイート: "デフォルト2?そんなはずは・・・"
クワーティさんのツイート: "spec見落としあったっぽいな"
クワーティさんのツイート: "規格は隅々まで読まないと駄目"
tkrさんのツイート: "データ構造アライメント - Wikipedia https://t.co/D868WNYNFy"
データ構造アライメント - Wikipedia
クワーティさんのツイート: "wasm(バイナリの方)のmemoryのalignって実はalignそのものではないよね"

Security Model

Kazuho Okuさんのツイート: "WebAssembly VMのセキュリティモデルざっと理解したけど、とても美しいな。NaClで問題だった点が全て解消されていて、かつ簡潔になっていて、これマジ速いわーという感じ。これ見てるとJava VMは完全に過去の遺物だと思う"
Kazuho Okuさんのツイート: "x86-64で動かす場合、ユーザ空間は32bit。ベースポインタ加算して実際のアドレスにマップ。6GBのガードページを置いてゼロコストでメモリ保護。リテラルとスタックはユーザ空間(実行不可)にアプリが自由に設定。コードとリターンアドレススタックはユーザ空間外 https://t.co/SawKNZeSpj"
Kazuho Okuさんのツイート: "64bitレジスタで32bitのポインタ演算すると上位32ビットはゼロ拡張されるからdisp(basereg,ptr)的なコードでアドレッシング可能。LLVM IR等でその最適化も期待できる。スタックもユーザ空間のグローバル変数にしちゃって、コンパイラに最適化させる感じ https://t.co/0SE20w6APX"
Kazuho Okuさんのツイート: "x86-64のネイティブコードに対するオーバーヘッドは、indirect call、アドレッシングモードが少ない、使えるレジスタが実質2つすくない、くらいなんじゃないかな。indirect callの最適化はJITの得意領域だし、あとの2つはあまり問題にならなさそう https://t.co/G3pvKctc01"
Kazuho Okuさんのツイート: "RISC(32bit,64bit問わず)の場合はx86-64と違って自動的なゼロ拡張使えないけど、それでもネイティブコードのオーバーヘッドはNaCl on ARMの5%を超えることはないんじゃないかな https://t.co/ksvZ1qEugL"
Kazuho Okuさんのツイート: "i386の場合はセグメントレジスタ使えばゼロオーバーヘッドに。他のアーキについては https://t.co/sq50adLOkQ https://t.co/GP1zYhC5DG"
Kazuho Okuさんのツイート: "ちなみになぜガードページが6Gかと言うと、出力されるx86-64のアドレッシングモードoff32(basereg,ptr)のoff32が0からINT32_MAXの間まで最適化する前提だからですね。ptr書いたとおりゼロ拡張されるuint32なのでこれでおk https://t.co/0SE20w6APX"
Kazuho Okuさんのツイート: "んなとこです。主な参考資料: https://t.co/crxSDWBdMP https://t.co/LGyQwknaOY https://t.co/h0NYNGklDz"
七誌さんのツイート: "WebAssemblyのスタンドアロンVM。ブラウザと関係なく、独立したバイナリをmainから始まるプロセスとして実行。やっぱりこういうのを作っている人がいるんだ。 https://t.co/ddKeoHQEWV"
Non-Web Embeddings - WebAssembly
WebAssembly/wasm-jit-prototype: Standalone VM using LLVM JIT
35649.pdf
Yuki Yugui Sonodaさんのツイート: "実行コードeipをメモリ空間の凄く離れた場所に置いて、且つ危険な領域に戻れるほど長いjmpがないことを確認すれば安全だよねとか、なかなか攻めていて良い"
小倉唯さんのツイート: "wasm の memory bound check は論文にある. JSC は signal か, pinned reg からの範囲チェック"
小倉唯さんのツイート: "segv 取ってなんなら CONTEXT 書き換えられるのか. Wasm signaling memory なんとかなるっぽいな https://t.co/ALaC1x5sLN"
Cleanly recovering from Segfaults under Windows and Linux (32-bit, x86)

SIMD

S.F.さんのツイート: "SIMD Extensionをちょこっと読んでる。 https://t.co/UHnG03JRSX"
simd/SIMD.md at master · WebAssembly/simd
S.F.さんのツイート: "仕様見てるとやっぱりモバイル・ターゲットなんだなぁと思う。これも時代の流れか。。"
S.F.さんのツイート: "128bit長だとインテルCPUだとSSEレベル。 今どきのデスクトップCPUは512bitとかだからね。並列度が半端ない。。"
S.F.さんのツイート: "違うか。。AVX-512はハイエンド仕様か。。デスクトップだと256bitか。。"
S.F.さんのツイート: "しかし512bitだと32bit floatであれば16個パック可能となって、レジスタ1個で4×4の行列がパックできるんですな。恐ろしい時代ですわ。。"
S.F.さんのツイート: "私のCPUだとAVX-2どまり。YMMレジスタ(256bit長)が16本か。それでもすごいな。。"
S.F.さんのツイート: "行列の乗算が一発でできる命令とかはないから、コーディングには工夫は必要だろうな。。"
S.F.さんのツイート: "ここにAVXを使った行列の乗算コードが載っている。8x8行列だが。。うーむ。。 https://t.co/ETZlMQEaHi"
小行列演算におけるインテル® AVX の利点 | iSUS
S.F.さんのツイート: "Long SIMDというProposalもあるのか。。 https://t.co/QPz3FJpB3z #webassembly"
design/FutureFeatures.md at master · WebAssembly/design
S.F.さんのツイート: "Intelだと、4x4行列の乗算はSSE(128bit)とAVX(256bit)では1.8倍ほどAVXのほうが速いと書いてあるな。。"
chikoskiさんはTwitterを使っています 「SIMDを有効にしたWASMでdot積を計算したら、JSより500倍早かった、というRedditへの投稿。デモサイトへのリンクあり。デモサイトはWASM SIMDを有効にしたChromeでしか動かないので注意(有効にする方法は記事の先頭に記載がある)。https://t.co/xQBu2KeYB2」 / Twitter
Wasm SIMD is almost 500x as fast as JS at calculating dot product : WebAssembly

Go

chikoskiさんのツイート: "GoのWASM出力、LLVMじゃなくて自前で書いてるみたい。https://t.co/u2OsYM5oHd https://t.co/ZQhvxNpNle 作るにあたって考えたことまとめ:https://t.co/mrOIy8pgDE GC, long jump, メモリの予約、スレッドなどが考慮されているみたい"
chikoskiさんのツイート: "https://t.co/mrOIy8pgDE にはスタックマシンのWASMで、レジスタマシンのGoのセマンティクスを再現するために必要なことも載ってる。WASMのスタックを使わずメモリ上にGoのコールスタックを作る、レジスタを参照する演算を「WASMのスタックへの操作+演算」に書き換えるといったことをしてるh"
chikoskiさんのツイート: "腑に落ちないのは"Note that the two SSA instructions can not be generated sequentially anymore, because their WebAssembly instructions are interleaved." WASMの命令って不連続なの?むしろ連続的だと思うんだけど。あれかなー、ロングジャンプを無理くり対応したからかな。"
WebAssembly architecture for Go - Google ドキュメント
Google、「Go 1.11」を公開。WebAssemblyを実験的にサポート | OSDN Magazine

reference types

ドッグさんはTwitterを使っています 「Wasm の reference types 実装のために LLVM に複数アドレス空間対応を Igaria が提案.今はプログラムとデータは同じアドレス空間に置かれる前提になってる.別アドレス空間にある funcref と externref にコード側から触りたい | 'RFC: Multiple program address spaces' https://t.co/tuHL4ozmTz」 / Twitter
[llvm-dev] RFC: Multiple program address spaces
ドッグさんはTwitterを使っています 「もともとアドレス空間を指定する仕組み自体はある(例えばポインタ型はどのアドレス空間に属するかを持ってる)ので変更自体は小さいな https://t.co/t7BFrRQVVH」 / Twitter
⚙ D91428 Add support for multiple program address spaces

WebAssembly for Proxies (ABI specification)

bells17 / べるさんはTwitterを使っています 「specはこれかな? https://t.co/uIjJ1y381a #wasmnight」 / Twitter
proxy-wasm/spec: WebAssembly for Proxies (ABI specification)
bells17 / べるさんはTwitterを使っています 「こっちはあくまでproxy-wasmにおいてのABIという感じの理解で良いのかな?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「proxy-wasmの難しいところ: - 任意のプログラムをproxyに挟んじゃって大丈夫? - 変なwasmを読んで変なところでクラッシュしない? #wasmnight」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「クラッシュについてはwasm-smithがいいテスト方法になるはず https://t.co/Bzbi3FRl7U 有効なWasmを生成するfuzz tester #wasmnight」 / Twitter
wasm-tools/crates/wasm-smith at main · bytecodealliance/wasm-tools
Proxy-Wasm: Wasmを利用したPlugin機構の開発 - Speaker Deck

Rust

ドッグさんはTwitterを使っています 「rustc に WebAssembly 専用の "wasm" ABI が入った.Wasm の関数シグネチャに直接マップされる extern "wasm" fn 関数が定義できるようになる | 'rustc: Add a new wasm ABI #83763 - rust-lang/rust' https://t.co/yLKEOUVTjY」 / Twitter
rustc: Add a new `wasm` ABI by alexcrichton · Pull Request #83763 · rust-lang/rust
ドッグさんはTwitterを使っています 「今の Rust の Wasm 対応では,関数は C ABI で定義し,wasm-bindgen がグルーコードを吐くことで間をつないでる.でも実は C ABI は Wasm と互換なわけではなく,コンパイラ側に wasm-bindgen 互換な C ABI を設けるなどのハックが必要になっていた.新しい "wasm" ABI ではそれが不要」 / Twitter
ドッグさんはTwitterを使っています 「この問題は Wasm の多値対応で決定的になったっぽい.Wasm は関数から多値を返せるようになったけど,C にはその仕組は無いので,C ABI では対応できない.」 / Twitter
Shinji KonoさんはTwitterを使っています 「@Linda_pp 一応、構造体は返せるんだけど、ABIで複数レジスタで返すのはないんですよね。」 / Twitter
ドッグさんはTwitterを使っています 「@shinji_kono はい,構造体に詰めて返すのとはまた話が変わりますね」 / Twitter

idさんはTwitterを使っています 「Jupyterliteすごい。 wasm製のpython runtimeであるpyodide(のkernelのpyolite)を使ってるので、サーバ無しにJupyterが動く https://t.co/0AALJsgCyp」 / Twitter
JupyterLite: Jupyter ❤️ WebAssembly ❤️ Python | by Jeremy Tuloup | Jul, 2021 | Jupyter Blog
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「wasmer-jsみたいにブラウザーのWasm処理系を使うんじゃなくて、Rustで書かれたwasmerそのものがブラウザーで動くようになるってことか。Wasm3もそういえばやってたな / “Added Wasmer Js API by syrusakbary · Pull Request #2460 · wasmerio/wasmer · GitHub” https://t.co/7Fw0jQmaPb」 / Twitter
Added Wasmer Js API by syrusakbary · Pull Request #2460 · wasmerio/wasmer

WebAssembly Community Group
WebAssembly Specifications
WebAssembly バイナリ表現 | WEBASSEMBLY USUI BOOK

Unicode

ucd

Index of /Public/11.0.0/ucd
https://unicode.org/Public/11.0.0/ucd/UnicodeData.txt
https://unicode.org/Public/11.0.0/ucd/PropertyAliases.txt
https://unicode.org/Public/11.0.0/ucd/PropertyValueAliases.txt
https://unicode.org/Public/11.0.0/ucd/StandardizedVariants.txt
https://unicode.org/Public/11.0.0/ucd/auxiliary/GraphemeBreakProperty.txt
https://unicode.org/Public/11.0.0/ucd/auxiliary/GraphemeBreakTest.txt
Grapheme Break Chart
https://unicode.org/Public/11.0.0/ucd/extracted/DerivedCombiningClass.txt

数字

Unicodeにある数字の一覧 | hydroculのメモ

書記素クラスタ

UAX #29: Unicode Text Segmentation
UAX #15: Unicode Normalization Forms
Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
Unicode結合文字の取り扱い | 文字列 | プログラミング言語の比較 | hydroculのメモ
結合文字についてMacのおしい点 - yanok.net
文字数をチェックする際にイタズラを目的とした大量の結合文字を見逃さないようにする  - Qiita
サロゲートペアや結合文字が含まれているか調べる: .NET Tips: C#, VB.NET
Unicodeの特殊な文字 “結合文字列” – ものかの

SV・IVD・絵文字

The Unicode Standard, Version 11.0
https://unicode.org/Public/11.0.0/ucd/StandardizedVariants.txt
UTS #37: Unicode Ideographic Variation Database
Ideographic Variation Database
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
UTS #51: Unicode Emoji
Unicode 絵文字にまつわるあれこれ (絵文字の標準とプログラム上でのハンドリング) - Qiita
Unicode 絵文字にまつわるあれこれ (絵文字の標準とプログラム上でのハンドリング) - Qiita

大文字・小文字

Unicodeの大文字と小文字のまとめ | hydroculのメモ
Unicodeの仕様に基づいた大文字小文字を変換するには | hydroculのメモ

Wikipedia

Variant form (Unicode) - Wikipedia
Unicode control characters - Wikipedia
Variant Chinese character - Wikipedia
List of typographic features - Wikipedia

Unicode 11.0.0
Unicode利用規約
UAX #44: Unicode Character Database
The Unicode Standard, Version 11.0
C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
はじめてのにき(2018-12-24)
はじめてのにき(2018-12-25)
char8_tによせて - なるせにっき
CJK互換漢字とは?新元号「令和」の「令」Unicode符号に注意! – cod-log

C

言語仕様

その他

仮定義
日記 (2016 年 6 月上旬)
初期化子は定数 - とくにあぶなくないRiSKのブログ
CとC++のIdent - in neuro
NAKAMURA Minoru's Diary (2016年12月)
C言語の現代化を目指すC2
how-to-c-response/README.md at master · Keith-S-Thompson/how-to-c-response
Origin of C Language
Origin of C Language's 'struct'
Language C FAQ
ロボ太さんはTwitterを使っています: 「「-1/2」の結果がC/C++とRubyで違うということを初めて知った。」 / Twitter
herumiさんはTwitterを使っています: 「https://t.co/LhrwyBIl7u 処理系依存が気になる古いC/C++の処理系ではdivを使う、までがセットですね。 https://t.co/Y1e4xaouPm」 / Twitter
div, ldiv, lldiv, imaxdiv - cppreference.com
/devさんはTwitterを使っています: 「C言語のお前そんな機能あったのシリーズ https://t.co/qZIUU2hjts」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GCCで-std=c99したらDBL_TRUE_MINが定義されてなかったんだけど、もしかしてこれC11以降の機能だな?」 / Twitter

未定義の動作・値

未規定の動作
未定義の動作
処理系定義の動作
文化圏固有動作
本の虫: 誤り:paizaの問題はC++17でも成り立つ
ツイッターで出題した未定義問題のお詫びと調査と解説について - paiza開発日誌
水島宏太(Parser)さんのツイート: "ただ、 "未定義だと、動作が言語の実装に依存しますので、コンパイラなどの環境によって、結果が変わってしまいます。" 実装依存と未定義の区別がついてないような。未定義というのは本当に何が起こってもいいということであり、実装によって挙動が一つに定まるというのは違う。"
水島宏太(Parser)さんのツイート: "実際には、未定義動作を使ったCコードというのはあり、そういうコードを動かすためには、未定義動作だから何でもいいというのは困ることがあるけど、ともあれ未定義は未定義として区別されなければいけない。"
Eijiro Sumiiさんのツイート: "「どうやら、"sequence points"の範囲の中でside effectが評価されるようです。」待て待て待て、副作用完了点も知らないでC(やC++)の問題出題したりエンジニア向けサイト運用してたのか…!? https://t.co/iJfbmMbP3I"
本の虫: Old New Thing: 未定義動作はタイムトラベルを引き起こす(他にもいろいろあるけど、タイムトラベルが一番ぶっ飛んでる)
本の虫: C++の未定義の挙動で呼ばれないはずの関数が呼ばれる場合
C++でうっかり無限ループを書くと鼻から悪魔が出てくる - Qiita
未定義動作により最適化レベルで結果が変わるコード - Qiita
ロボ太さんのツイート: "安全装置において、警告にとどめるか緊急停止させるかって、もちろん想定させる危険性に依存するじゃない?例えばコピー機で用紙サイズが合わなくても警告でいいけど、工業カッターが異物を検知したら緊急停止させなきゃいけない。「警告音で手を引っ込める」ことの賭金として指切断は高すぎるから。"
ロボ太さんのツイート: "これ、別に言語仕様を変える必要はなくて、「未定義動作を検出したらエラーで落とす」というオプションつけて、それをデフォルトでオンにすればいいと思う。なんか互換性で問題起きたらオフにすればいいんだし。結局、安全側と便利側どっちに倒すか、という問題だと思う。"
ロボ太さんのツイート: "同様に、もしコンパイラが未定義動作を検出してud2吐いたりretを消したりするなら、警告吐くだけじゃなくてエラーで落とすべきだと思う。それは明らかに重大事故だから。それを「ハナカラアクマ」って呪文唱えて、知らない人を締め出す先にあるのは、コミュニティの緩やかな死だと思う。"
Undefined behavior can result in time travel (among other things, but time travel is the funkiest) | The Old New Thing

Clarification Request Summary for C11
n1731.txt
N1804: Discussions on DR440, DR441, DR442, DR444, and DR445
Resolving DR444

ビットフィールド

_ko1さんはTwitterを使っています 「0幅のbit fieldなんて初めて知ったよ...」 / Twitter
Miura HidekiさんはTwitterを使っています 「なんかで見たな。なんだったっけ 明示的なパティングだったかな」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@miura1729 ですね https://t.co/cjEV1gCwT0」 / Twitter
Bit field - cppreference.com
複数のビットフィールドを持つ数値の並列演算

ISO

History of C - cppreference.com
C99 - Wikipedia
C11 (C standard revision) - Wikipedia
C18 (C standard revision) - Wikipedia
ISO/IEC JTC1/SC22/WG14 - C
www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
ISO/IEC 9899:2017
Clarification Request Summary for C11
N2349 - Toward more efficient string copying and concatenation
Clarification Request Summary for C11
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語 C++11: 属性を導入して[[noreturn]]と書けるようにします ←わかる C11: _Noreturnを追加して&lt;stdnoreturn.h&gt;で#define noreturn _Noreturnします ←バカ C23: C++ライクな属性を導入します ←noreturnはどうなるの……」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C23のnoreturnに関してはこういうproposalが出てるけどまだworking draftには取り込まれてなさそう https://t.co/AxwUXEdjZi」 / Twitter
n2410.pdf

JIS

JISにおける規定を表す言葉の表現形式 - 水底の血

C23

予約語の扱い

yohさんはTwitterを使っています 「ISO C2xドラフト眺めてたら C言語標準での予約語が明確に記述されるようになってんね(J.6 Reserved identifiers and keywords, J.6.1 Rule based identifiers) 改めて見ると広すぎて酷いよなぁ https://t.co/NZenSxHmMp」 / Twitter
ドッグさんはTwitterを使っています 「tolower みたいな関数名(to の後にアンダースコア入れない)は厳密には駄目なのか」 / Twitter
ドッグさんはTwitterを使っています 「というか toggle みたいな普通の単語もダメだし無理がある…」 / Twitter
yohさんはTwitterを使っています 「@Linda_pp 実例として "token" とか (Rectの)"top" が挙げられていて、そりゃ無理だわとなりました。」 / Twitter
ドッグさんはTwitterを使っています 「E[0-9A-Z][a-zA-Z0-9_]* もだいぶすごいけど」 / Twitter
yohさんはTwitterを使っています 「@Linda_pp C17現在は「予約語だから使うな」で、次期C2xからは「予約語になる可能性があるけど今は使ってもいいよ/コンパイラは将来予約語になった時ちゃんと警告しようね」という優しさを見せています。」 / Twitter

blog

2進数リテラル in 標準C - yohhoyの日記
C2x標準の属性(attribute) - yohhoyの日記

Twitter

Urabe, Shyouheiさんのツイート: "次のCで20年ぶりくらいにCのfor文の挙動が変わるぽい。 https://t.co/CIY58JZBIt"
scope of a for loop control declaration
7594591200220899443さんのツイート: "そろそろintmax_tは間違いだったと認めようや、なあ。という提案がCに来ている https://t.co/ad910VQix9"
N2303: intmaxwidth.3emt, a way out
7594591200220899443さんはTwitterを使っています 「ちなみにc2xからポインタはアドレスじゃなくなります。詳細は https://t.co/RkF7ZVxFHB を参照してください」 / Twitter
N2362: Moving to a provenance-aware memory object model for C - n2362.pdf
7594591200220899443さんはTwitterを使っています 「これが__attribute__((__malloc__))に対する委員会からの回答なのだと理解している。つまり「このポインタはこの瞬間には他のオブジェクトとエイリアスしません」みたいなやつを取り込もうとしているんだと思う」 / Twitter
papers on formalized memory models
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
井山梃子歴史館さんはTwitterを使っています 「ポインタはベースアドレスとオフセットとprovenanceの束だよ」 / Twitter
provenance - Google 検索
束 - Wikipedia
propagation - Google 検索
7594591200220899443さんはTwitterを使っています 「Provenance-aware memory object model はC2xに入れるんじゃなくて別のTSにすることにしたのか。 https://t.co/m7yjs4P9VR」 / Twitter
n2577.pdf
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語の「boolの代わりにintを返す関数」についてはintbool_t(C23の段階ではintのtypedef)を返すようにしよう、という提案がある https://t.co/FURMOzNdDE」 / Twitter
N2712: intbool_t
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語の次期標準(C2x)は「C23」になる見込みなのかな。順調に行けばの話だけど https://t.co/DIxPvxXNrO」 / Twitter
WG 14 Document log
だめぽラボ@技術書典9さんはTwitterを使っています 「C++にある二進リテラルや桁区切り文字はC言語に入るのかなあと気になってたけど、Proposalは出てるみたい https://t.co/sR4Y3483Vx https://t.co/LUx5Fl3eLp」 / Twitter
n2549.pdf
n2606.pdf
だめぽラボ@技術書典9さんはTwitterを使っています 「C23 (C2x) の新機能は今のところ ・浮動小数点数周り(最新のIEEE規格への追従;各種関数の追加、十進など) ・C++の機能の取り込み(属性、u8文字リテラルなど) ・一部のPOSIX関数の取り込み(strdupなど) ・K&amp;Rスタイルの関数定義の削除 が主なものかなあ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C++やPOSIXの機能の取り込みはともかくとして、浮動小数点数周りは目新しい機能で、単なるライブラリー関数だけではなく#pragma等も含めるとまともに実装する処理系は現れるのかなあ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「だいたいC99のFENV_ACCESSすらメジャーなC処理系で実装されてなくて……と思ったけどClangに#pragma STDC FENV_ACCESSを実装する奴がマージされとるやんけ。Clang 12で使えるようになるのかな? https://t.co/HzL0M2yyUf https://t.co/gopObQBHtX」 / Twitter
⚙ D87528 Enable '#pragma STDC FENV_ACCESS' in frontend
Clang Compiler User’s Manual — Clang 12 documentation
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語にもC++ライクなlambdaを入れようという提案はある https://t.co/IW2ZEXFaao」 / Twitter
n2736.pdf

C2x Charter(C2x 憲章) - Qiita
C言語の次期ISO標準となるC2x
C2x - Wikipedia
WG 14 N 2086 -- C2x Charter
The ISO C WG has started working on a new standard: C2X : C_Programming
C – Preliminary C2x Charter | Hacker News
最近のC言語と、次期C標準(C23)
mod_poppoさんはTwitterを使っています 「書き忘れたけどC23の変更に「K&amp;Rスタイルの関数定義の廃止」もあった。」 / Twitter

C11

スラド

[C/C++規格: 10] C11の新機能 その1 -- 新機能概要 | Yoh2の日記 | スラド
[C/C++規格: 11] C11の新機能 その2 -- 型ジェネリック式 | Yoh2の日記 | スラド
[C/C++規格: 12] C11の新機能その3 -- ユニコード文字・文字列 | Yoh2の日記 | スラド
C言語は滅びるべきか | スラド デベロッパー

Qiita

C17 (not C++17) - Qiita
C11 の _Generic の罠 - Qiita
C言語(C11)で可変長の配列を使う方法 - Qiita

Twitter

LLVM / Clang 6.0 Should Be Released Soon With Its Many New Features - Phoronix
Fadisさんのツイート: "PhoronixによるとLLVM 6.0からC言語の標準にC17が選べるようになるらしい。そんな標準あったんか、と思って調べたらC11から既知の問題を修正したマイナーアップデートらしい。そしてもう2018年だけどまだドラフトらしい… https://t.co/8qTVqGgxWg"
ドッグさんはTwitterを使っています: 「今の C って配列の最後の要素の1つ後ろまでポインタ取れるのか int main() { int array[3]; int *p = NULL; return p &lt; &amp;array[3]; }」 / Twitter
ドッグさんはTwitterを使っています: 「@ryutorion 詳しくないのですが,どうやら C11 からの仕様らしいです: https://t.co/hiLd35nmHf (6.5.6-8)」 / Twitter
www.iso-9899.info/n1570.html
M.KさんはTwitterを使っています: 「@Linda_pp これって,ポインタの計算がオーバーフローするかどうか,とかの話では?」 / Twitter
ドッグさんはTwitterを使っています: 「@ryutorion ポインタを足した結果が配列の最後の要素の1つ後ろを指す時,それがオーバーフローしてはいけない(逆に言うとオーバーフローしなければ OK)→ 1つ後ろの要素を指すポインタは合法 と読んだのですが,間違ってるかもしれないです」 / Twitter
M.KさんはTwitterを使っています: 「@Linda_pp どちらかというと,ループの終了条件として最後の次のポインタを指すことはままあることなので,それがオーバーフローしないことを保証すること,って話なのかなと.1つ後ろを取ることが合法って言うよりは.」 / Twitter
FadisさんはTwitterを使っています 「Linuxがgccの最低要求バージョンを4.8から4.9に上げるらしい。ARM向けのカーネルをビルドする際にgcc-4.8がICEする不具合の回避などのつらいコードを消したい、C11の_Genericを使いたいといった理由かららしい https://t.co/bb1C2EKelc」 / Twitter
Linux Kernel Raising Compiler Build Requirement To GCC 4.9 - Phoronix
FadisさんはTwitterを使っています 「まだサポートが終了していないRHEL7は標準のコンパイラがgcc-4.8だが、そんな環境で標準のコンパイラで最新のカーネルビルドするヤツの為にgcc-4.8をサポートし続けるのは辛くなったという判断らしい」 / Twitter

C11 の機能 - Oracle® Solaris Studio 12.4: C ユーザーガイド
C言語の最新事情を知る: C11の仕様-脆弱性対応に関連する機能強化点 - Build Insider
C11の仕様-それ以外の主な機能強化点[C言語] - Build Insider
DCL03-C. 定数式の値をテストするには静的アサートを使う
_Static_assert とは - とくにあぶなくないRiSKのブログ
アトミック操作ライブラリ - cppreference.com
IBM Knowledge Center - _Static_assert 宣言 (C1X)
c - The concept of a type name scope in C11 - Stack Overflow
N1570 April 12, 2011 ISO/IEC 9899:201x

C99

除算

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「うーむ、知らんかった。 C言語系: -13 / 10 --&gt; -1 Python3: -13 // 10 --&gt; -2 (そして Python3の方が数論的には正しいと) https://t.co/pX8Rd3Qfb4」 / Twitter
python - Integer division by negative number - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお C99とC++11以降は上記の通りだが、それ以前は処理系依存だったらしい。 (ただし、このC99/C++11仕様は現状追認で決まっただけだろうな) https://t.co/x8L0ur3lvi」 / Twitter
整数に対する除算と剰余算の丸め結果を規定 - cpprefjp C++日本語リファレンス

引数

va_argマクロの奇妙な制限事項 - yohhoyの日記
可変引数リストと文字列とヌルポインタの特別な関係 - yohhoyの日記
関数パラメータリストと配列型 - yohhoyの日記
C/C++関数引数の評価順序 - yohhoyの日記

書式文字列

書式指定%lsとwchar_t型 - yohhoyの日記
printfファミリ書式指定%nの応用例 - yohhoyの日記
printfとsize_t型 - yohhoyの日記

文字列・メモリ

scanf文字列取得と動的メモリ確保 - yohhoyの日記
strncpy関数仕様のナゾ - yohhoyの日記
パスワードとmemset関数 - yohhoyの日記
malloc(0)の振る舞い - yohhoyの日記
長さゼロ on 文字列/メモリ操作関数 - yohhoyの日記
Duff's device - yohhoyの日記

配列・ポインタ

可変長配列の正式名称 - yohhoyの日記
配列有効範囲外を指すポインタ値は存在が許されない - yohhoyの日記
ポインタ型への非NULLアノテーションもどき - yohhoyの日記

リテラル・定数・初期化

初期化子リスト要素数不足時の初期値 - yohhoyの日記
文字列リテラル最大長の最低保証 - yohhoyの日記
size_tと値-1 - yohhoyの日記
複合リテラルの有効期間 - yohhoyの日記
数字から数値への変換: ch - '0' - yohhoyの日記
文字列リテラルは変更できないlvalue - yohhoyの日記
ヌルポインタの内部表現 - yohhoyの日記

演算子

条件演算子と左辺値の扱いの差 - yohhoyの日記
sizeof演算子とオペランドの評価 - yohhoyの日記

blog

C言語の標準規格一覧 - yohhoyの日記
環境依存コード切り替えマクロ - yohhoyの日記
asmキーワードの扱いの違い - yohhoyの日記
ビットフィールド幅の上限値 - yohhoyの日記
main関数のreturn省略 - yohhoyの日記
main関数returnと他スレッドの関係 - yohhoyの日記
C11/C++11/POSIXスレッドAPI比較 - yohhoyの日記

C言語の最新事情を知る: C99の仕様 - Build Insider
プログラミング言語 C の新機能
IBM Knowledge Center - 複合リテラル式
Makoto Kato ︎︎さんのツイート: "@hATrayflood なおYARR JITな修正はこれ https://t.co/X3yVFjyX uint128_tがWin64 ABIで使えれば。。。"
Makoto Kato ︎︎さんのツイート: "@d_toybox msvc以外は使えるんだけどね、int128_t。C99で定義されてる話だけど、Windows ABIでint128_tが定義されてない(はず)だから、使えん。VC++はC89だし"
関数定義の一部である関数原型形式の関数宣言子の仮引数型並びと、非原型形式の関数宣言子の識別子並び・宣言並び、および関数定義の一部でない関数原型形式/非原型形式の関数宣言子について - Qiita
Array initialization - cppreference.com
yoh2さんはTwitterを使っています 「C99 以降、 for ステートメントは for の () 内で宣言した変数が外に漏れないよう、それ自身が独立したブロック (※) になったというのは知ってたけど、if, switch, while, do-while もブロック扱いになってたことをたった今知った。 ※ C99 の for(;;) ... は C89 だと { for(;;) ... } のようなもの」 / Twitter

OpenMP

インテル® C++/Fortran コンパイラーによる OpenMP* 3.1 仕様のサポート | iSUS
OpenMP* 4.x による新しいレベルの並列化 (全2回) | iSUS
現在と将来の OpenMP* API 仕様 | iSUS
OpenMP* 5.0 TR7 の仕様抜粋訳 | iSUS
Fadisさんのツイート: "OpenMPの最新の仕様、OpenMP 5.0がリリースされた。OpenMP 5.0では明示的にflushしないと一貫性が保たれないメモリのサポートや、タスク間でのリダクションのサポート、配列から範囲と間隔を指定して部分配列を取り出す文法他大量の機能が追加される https://t.co/ppnZMPGBBT"
OPENMP 5.0 IS A MAJOR LEAP FORWARD - OpenMP

C++

本の虫

EzoeRyou/cpp-book: C++11 textbook
EzoeRyou/cpp14-appendix: Appendix for C++14 features
EzoeRyou/cpp17book: textbook for C++17
cpp17book/003-cpp14-core-binary-literals.md at master · EzoeRyou/cpp17book
cpp17book/004-cpp14-core-digit-separator.md at master · EzoeRyou/cpp17book
cpp17book/017-cpp17-core-u8-character-literals.md at master · EzoeRyou/cpp17book
本の虫: P1337R0: 標準ライブラリへのエイリアスを追加してC++を復活させる提案
Ryou Ezoeさんのツイート: "転職先を探しているのだが、この私のコネを持ってしてもC++17を使っている企業はなかなか見つからないぞ。"
Ryou Ezoeさんのツイート: "プログラマー以外の仕事をするとしたら何だろ。クライミングジムのスタッフとかやりたい。給料低いだろうけど。"
Ryou Ezoeさんのツイート: "C++を単に書くだけの仕事なら、普通に海外に行ったほうがいいんだろうなぁ。"
本の虫: 標準C++規格が3年おきに制定される理由
本の虫: C++20標準規格がほぼ固まった

プリプロセッサ

可変引数が空でない場合のトークン置換 - cpprefjp C++日本語リファレンス
__has_include - cpprefjp C++日本語リファレンス
トライグラフの削除 - cpprefjp C++日本語リファレンス

キーワード

auto - cpprefjp C++日本語リファレンス
registerキーワードを非推奨化 - cpprefjp C++日本語リファレンス
非推奨だったregisterキーワードを削除 - cpprefjp C++日本語リファレンス
alignas - cpprefjp C++日本語リファレンス
alignof - cpprefjp C++日本語リファレンス
static_assert のメッセージ省略を許可 - cpprefjp C++日本語リファレンス
P1152R0: Deprecating <code>volatile</code>
論理 AND 演算子:&& | Microsoft Docs

リテラル

生文字列リテラル - cpprefjp C++日本語リファレンス
UTF-8文字リテラル - cpprefjp C++日本語リファレンス
2進数リテラル - cpprefjp C++日本語リファレンス
数値リテラルの桁区切り文字 - cpprefjp C++日本語リファレンス
十六進浮動小数点数リテラル - cpprefjp C++日本語リファレンス
Ryo SuzukiさんはTwitterを使っています 「size_t 用の整数リテラルサフィックス uz が C++23 に入った! auto i = 0uz; // size_t 型」 / Twitter

式と文

整数に対する除算と剰余算の丸め結果を規定 - cpprefjp C++日本語リファレンス
厳密な式の評価順 - cpprefjp C++日本語リファレンス
if文とswitch文の条件式と初期化を分離 - cpprefjp C++日本語リファレンス
constexpr if 文 - cpprefjp C++日本語リファレンス
非推奨だった bool 型に対するインクリメント演算子を削除 - cpprefjp C++日本語リファレンス
非推奨だった古い例外仕様を削除 - cpprefjp C++日本語リファレンス
ビットフィールドのメンバ変数初期化 - cpprefjp C++日本語リファレンス
C++ if文再訪 - in neuro
高梨陣平さんはTwitterを使っています 「この記事がものすごくわかりやすかった。C++のLambdaの話。contextのcaptureが内部でどのように実装されているか、コンパイラの解説になっている。 https://t.co/aR0eDTQwCH」 / Twitter
LobstersさんはTwitterを使っています 「Demystifying C++ lambdas https://t.co/u1dgCRTSfL #c++ https://t.co/cHk3zxlKeB」 / Twitter
Demystifying C++ lambdas - Sticky Bits - Powered by FeabhasSticky Bits – Powered by Feabhas
一貫比較 - cpprefjp C++日本語リファレンス

属性

[[fallthrough]]属性 - cpprefjp C++日本語リファレンス
[[maybe_unused]]属性 - cpprefjp C++日本語リファレンス
[[nodiscard]]属性 - cpprefjp C++日本語リファレンス
名前空間と列挙子への属性付加を許可 - cpprefjp C++日本語リファレンス
不明な属性を無視する - cpprefjp C++日本語リファレンス
[C++] 属性構文の属性名にはキーワードが使える [[void]] [[for]] - Qiita
謎の用語niebloid - にゃははー

静的リフレクション案

島鉄雄さんのツイート: "Common(Emacs) Lisp のマクロはただのリスト操作に過ぎないんで、他の言語が真似する事は絶対出来ないだろう。 強いて言えば C のマクロで既にある程度カバーできてる。 リフレクションやメタクラスは、Meta Object Protocol (いわゆる MOP)の範疇でしょ。マクロではない。… https://t.co/UDQ62hNh7D"
Ryou Ezoeさんのツイート: "今、C++は関数型プログラミングを取り入れるめどがついているので、C++20でお手軽な関数合成ぐらいできるようになるし、次かその次の規格ではモナドも入るだろう。次にC++が狙うのはCommon Lispのマクロだ。"
Ryou Ezoeさんのツイート: "それを言い出すと本物のオブジェクト指向を実装している言語はSimulaかSmalltalkだけになってしまう。… "
島鉄雄さんのツイート: "Simula とか知らないけど、静的リフレクションとメタクラスを Lisp のマクロに結びつける事に違和感があった Lisp のマクロはリストをいじって見た目を変えるだけのものと考えるべき (dolist (a b) ...) dolist はマクロで、b はリスト型でないといけないけど、マクロはそんな事分からず変形だけする… https://t.co/ctaYDsrq7E"
Ryou Ezoeさんのツイート: "C++の静的リフレクションも、どのように実装するべきかまだ議論中だが、1つの案としてはソースコードのトークン列を得てそこに対して変形ができる案がある。… "
島鉄雄さんのツイート: "なるほど! それなら納得です。Elixir は Lisp 並みのマクロがある事も売りの一つのようだけど、AST をいじくるという地獄の様な仕様になってしまってるので、そうならないように祈るばかりです。… "
Ryou Ezoeさんのツイート: "C++で策定中の静的リフレクション機能は、ソースコード情報をコンパイル時処理で得るだけではなく、改変するという機能もセット。… "
島鉄雄さんのツイート: "了解です!説明ありがとうございました。… "

パターンマッチの網羅性検査の仕様案

ケケモコソカメニハさんはTwitterを使っています 「@gogo_gaspard @wraith13 @mandel59 到達しないコードに警告を出してくれるコンパイラは大概パターン漏れにも警告出してくれる気がしますので、逆にdefaultを書いていると要素を追加した時に警告が握りつぶされて困ることないですか」 / Twitter
kinabaさんはTwitterを使っています 「https://t.co/jdau702kNX C++のパターンマッチ(の網羅性検査の仕様案;5節)でこの話があって、はは〜と思ったの思い出した。C++なのでenumの外の値は来得るので防衛的default書きたくなるが、それで網羅性検査が無効になるは困るので、ハックで避けるか網羅性に寄与しないdefaultみたいな構文いれるか」 / Twitter
Exhaustiveness Checking for Pattern Matching - p2211r0.pdf

blog

Designated Initialization @ C++ - yohhoyの日記
C++20 Contract - in neuro
[C++]さらに出来るようになったconstexpr(C++20) - 地面を見下ろす少年の足蹴にされる私
static variableの初期化順序 - in neuro
コンセプトのパラメータ置換失敗はハードエラーではない - yohhoyの日記
Static Initialization Order Fiasco - in neuro
[C++]Boost.PFRの実装の解説のような。 - 賢朽脳瘏
コンセプト制約式の包摂関係とオーバーロード解決 - yohhoyの日記
WG14 redirect service - yohhoyの日記
WG21 redirect service - yohhoyの日記
[C++]inline名前空間の使途 - 地面を見下ろす少年の足蹴にされる私
[C++]コンセプトの5景 - 地面を見下ろす少年の足蹴にされる私
C++ 規格書 - C++ の歩き方 | cppmap
C++23 の新機能 - C++ の歩き方 | cppmap

Qiita

C++20便利機能の紹介:自動joinスレッドと停止機構 std::jthread, stop_token - Qiita
C++20コルーチンで遊ぶ with OpenSiv3D - Qiita
C++20コンセプト入門以前 - Qiita
C++コルーチン拡張メモ - Qiita

Twitter

Fadisさんのツイート: "Haskellを学んできたマンはしばしばC++で>>=をオーバーロードして関数を繋ぎたがるが、大変残念な事にC++の>>=は右結合なので、ストレートに実装した場合その関数は期待した順序で実行されない"
でちまるさん(実際かわいい)さんのツイート: "なので<<=を使えば全て解決する… "
Fadisさんのツイート: "C++20で符号付き整数の表現が規格で定まった事でC++17まであった不思議仕様「符号無しを符号付きに変換すると2の補数表現の値が得られるが、符号付きを符号無しに変換した結果は実装依存(n4659 §7.8)」がC++20では「整数型は他の整数型に変換できる(n4800 §7.3.8)」だけになったのは大きい"
Fadisさんのツイート: "Unicodeでは大文字小文字の対応がある文字はどれかが規格で定められていて、全角アルファベット等も含まれている。ここに大文字小文字を区別しない古典的なファイルシステムが合わさると、UTF-8のファイル名はascii外の文字でも大文字小文字を区別しないべきではという悪魔のproposalが誕生するらしい"
Fadisさんのツイート: "C++20のconceptは少なくとも言語自体にとっては「boolを返すメタ関数をconceptと一目でわかる書き方で書く方法」と「そのメタ関数を使ってconceptと一目でわかる書き方でSFINAEする方法」のセットだから従来のC++から大きな変化ではないよ。標準ライブラリ側はこれを活用して大きく変わるけど"
FadisさんはTwitterを使っています: 「C言語のポインタは幅広い用途で使えるが、その万能さこそが静的型付け言語のチェックを甘くする原因になる。だからC++ではポインタの用途の一部だけを満たす参照やoptional、スマートポインタ等が提供されていて、ポインタはどうしてもポインタの万能さが必要な時にやむなく使う物になっている」 / Twitter
FadisさんはTwitterを使っています: 「gcc10からC++20のコルーチンの試験的なサポートが入るらしい。コルーチンは特定の位置で実行を止め、後で続きから実行ができるような関数で、非同期処理をまるで同期のような読みやすい形で書く、無限に値の列を吐き出す関数を作る、といった使い方ができる https://t.co/kXoubQDT0M」 / Twitter
Experimental Support For C++20 Coroutines Has Landed In GCC 10 - Phoronix
セクスィ・ナカナカピエロさんはTwitterを使っています: 「@fadis_ @adhara_mathphys Pythonでいうgenerator(yield文)みたいなやつですか?」 / Twitter
FadisさんはTwitterを使っています: 「@NakanakaPierrot yieldのようなものをC++で実装するために使うことはできますが、コルーチン自体の返り値はIterableではありません。コルーチンはPythonで言うyieldやasync/awaitといった物をライブラリで実現するための土台となる機能です」 / Twitter
FadisさんはTwitterを使っています: 「コルーチンには「コルーチンから呼んだ関数がyieldしたらコルーチンの呼び出し元まで戻る(=スタックを丸ごと保存する)」stackfulと「コルーチンから呼んだ関数がyieldしてはいけない(=コルーチンのローカル変数だけ保存する)」stacklessの2種類があって、C++の言語機能に入ったのは後者」 / Twitter
島鉄雄さんはTwitterを使っています: 「C++ の場合は A を継承した B と C が有って、B と C を継承した D は A を2つ持つ事になって人間が混乱するってのがあって良くないのだろう。(コンパイラは曖昧な時はエラーにするので混乱しない) なので、仮想継承を使う事になるけど、そうすると仮想関数呼び出しがかなり遅くなるというのがある。 https://t.co/fh1ub7l2zu」 / Twitter
mattn and 100 othersさんはTwitterを使っています: 「オブジェクト指向じゃなく多重継承が良くないよねって言われてるのに「オブジェクト指向は悪」って言ってるの見るとモヤモヤする。そもそもオブジェクト指向のコンセプトに継承とか無い気がするけど。」 / Twitter
島鉄雄さんはTwitterを使っています: 「仮想継承時の仮想関数呼び出しがどれだけ遅くなるか、ベンチマークしてみた。 この状況だと倍遅くなった。(正しい計測コードになってるかは若干不安が有るが…) https://t.co/4qI3IglOfr https://t.co/vbUPt2sZom」 / Twitter
仮想継承時の仮想関数呼び出しのベンチマーク
7594591200220899443さんはTwitterを使っています 「ところで四半世紀前ならいざしらず今となってはC++はCの上位互換でもなんでもないわけだけれど、じゃあ具体的にどこのへんが違うんですかというのはたとえば以下のレポジトリによくまとまっている。 https://t.co/BT5DWTcRyn」 / Twitter
shafik/determine_c_or_cpp: Determine programatically C from C++ as well as various versions
FadisさんはTwitterを使っています 「もう1つの大きな新機能coroutineも言語機能としては入ったけど、言語が提供するのはstacklessコルーチンなので、現状どこからでも気軽にyield出来るstackfulなコルーチンが欲しかったら「気合で作れ」という修羅の道になっている。C++23も、大きな変化になる気がする」 / Twitter
yohさんはTwitterを使っています 「d=std::move(s) データ取出し後にはもう興味がない(実際にはデータが残ってることもある) / d=std::exchange(s, {}) 確実にデータ取出し&クリアしておきたい みたいなニュアンスの違いが」 / Twitter
にゃっほい屋さんはTwitterを使っています 「C++17の畳み込み式を使ったらもうC++14には戻れない。再帰でやるのに比べると圧倒的にコードが読みやすい。ただVisual Studio 2017だとテンプレートの&lt;&gt;の中で畳み込み式をやろうとするとエラーになってしまうのが残念。2019では直ってるらしいけど。」 / Twitter

ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP
C++20 - cpprefjp C++日本語リファレンス
is_pod - cpprefjp C++日本語リファレンス
algorithm - cpprefjp C++日本語リファレンス
符号付き整数型が2の補数表現であることを規定 - cpprefjp C++日本語リファレンス
C++20は最終版に、C++23がスターティングブロックに

man

付録 C ISO/IEC C 99 の処理系定義の動作 (Sun Studio 12: C ユーザーズガイド)
6.12 互換型と複合型 (Sun Studio 12: C ユーザーズガイド)
GCC online documentation - GNU Project - Free Software Foundation (FSF)
C Extensions - Using the GNU Compiler Collection (GCC)
Using and Porting the GNU Compiler Collection (GCC) - C 言語ファミリに対する拡張機能

きじねこ

第10回 翻訳フェーズ | 株式会社きじねこ
第9回 浮動小数点数と実数 | 株式会社きじねこ
[迷信] 0xe-0xe はゼロ | 株式会社きじねこ
[C99] 第2回 オブジェクトの宣言 | 株式会社きじねこ
[C99] 第11回 その他、細部のちがい | 株式会社きじねこ
[C99] 第9回 リテラル | 株式会社きじねこ
[C99] 第7回 修飾子と記憶クラス指定子 | 株式会社きじねこ
[C99] 第3回 関数 | 株式会社きじねこ
[C99] 第5回 型と型変換 | 株式会社きじねこ
[迷信] 非局所オブジェクトは外部結合 | 株式会社きじねこ

本の虫

本の虫: 最近のC言語の配列
本の虫: fcloseはリソース解放を失敗しない
本の虫: CとC++の違い:式編
本の虫: C++03とC++11の違い: 式編
本の虫: C++で、(a/b)*b + a%b != aとなる例

Twitter

C の auto/ラムダの提案

だめぽラボ@技術書典9さんはTwitterを使っています 「C言語のWG14の1月の文書が出ておるな。C++ライクなautoやラムダ式を入れようという提案がある https://t.co/DIxPvxXNrO」 / Twitter
WG 14 Document log
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語にはstd::functionもテンプレート関数もないし、キャプチャーを持つラムダを他の関数に渡す手段はないのかな?(キャプチャーがなければ関数ポインターに変換できる)(変数への格納はautoがあればできる)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「type-generic lambdaも入れば「キャプチャーを持つ関数を他の関数に渡す」ことができるようになったりするのかな?」 / Twitter
FadisさんはTwitterを使っています 「括弧が多すぎることに定評のあるC++のラムダ式から関数の引数が空の場合に()を省略できるようにする提案がなされていて、これがC++23で標準に入りそうな雰囲気だからgcc 11とclang 13から試験的に使えるようになってるらしい https://t.co/ijFBsYQTEZ」 / Twitter
P1102R2: Down with ()!
FadisさんはTwitterを使っています 「現行のC++でも関数にmutable等の修飾が何もついていない場合()の省略が許容されているけど、この提案では修飾が付いていても引数が空なら省略していいじゃん、って話っぽい」 / Twitter

配列

hsjoihsさんのツイート: "実は、アドレスも型も一致しているのにポインタとしては別、という状況は普通にあり得たりします。… "
hsjoihsさんのツイート: "過去にブログに書いてました。「ちなみに、話が逸れますが、アドレスが同一で型が同一でもポインタとして同一であるとは限りません。」のところです。このことを知らなかったことに由来するバグの話も。 https://t.co/AfS0fgeCQN… "
C(のサブセット)コンパイラを書く上でハマった点:配列編 - hsjoihs’s diary
yoh2さんのツイート: "int d[4][8] で、d[0][10] が d[1][2] と同じにならないことがあるというのは、 &d[0][10] と &d[1][2] が同一アドレス、同一型で結果が異なるというより、 &d[0][10] というアドレス自体が UB により算出不能と考えるべきだと思います。 うーん、言葉だけの問題かなぁ。… https://t.co/K66AFBX7D5"
hsjoihsさんのツイート: "「アドレス値が同じで共に合法なポインタ」という条件を満たす、↓に書いてある「配列の最終要素の次を指すポインタ」vs.「その配列にたまたま隣り合って置かれている配列の先頭要素へのポインタ」とかのほうがよい例かもですね https://t.co/WhmcFM5kYd… https://t.co/JXaaQEYd8M"
Pointers Are Complicated, or: What's in a Byte?
デダルス・ユメノさんのツイート: "「異なるポインタ」の意味するところが曖昧なんですが、その両者は==で比較すれば真になるわけですよね。あれ、もしかしてコンパイラ最適化によって(実行時に本当に同じアドレス値になるとしても)偽になることもある?… "
Shinya Katoさんのツイート: "ubを踏んでいるのでそもそも同じアドレスになる保証がされていないというだけで、実行時に運よく同じアドレスになれば真になるんじゃないですかね?… "
置き引きにあったマヌケな鳥頭さんのツイート: "one past the end ポインタと、隙間なく置かれている次のオブジェクトへのポインタは == で true になるとC言語の規格に明確に書かれていますね… もちろん one past the end ポインタへの関節参照は UB なので、同じはずなのに違うポインタってことになるのかな…… https://t.co/H4VwVPHfrW"

オブジェクトの初期化

Kazuho Okuさんのツイート: "struct の初期化が = {}; じゃダメだとすると {0} か {NULL} かはともかく {{0}} みたいなパターンはちゃんと考えて書かないとダメなのか。めんどくさ"
Fadisさんのツイート: "グローバル変数の0初期化、規格がどうなってるか気になって見たんだけどC11の規格読む限り§5.1.2で「静的に確保されたオブジェクトプログラムの開始前に初期値で初期化される」って書かれてるけど整数型の初期値とは0の事であるとはどこにも書かれてないように見える…"
Fadisさんのツイート: "§6.7.9の10項に静的またはスレッドローカルなストレージを持つ算術型の値はゼロに初期化しろよって書かれてた。よかった、グローバル変数の初期値0はやっぱり期待しても良かったんだ"
ちゃーしゅーねこさんのツイート: "C言語の規格としては未初期化の変数が0ないしnullになるとなっているとしても、それがbssに置かれるかは別問題じゃないの知らんけど"
黄前 久美子さんのツイート: "C 言語の規格として,static や グローバル変数みたいな静的に確保される変数は必ず 0-fill されなければならなくて,ELF の bss はそのために生まれたセクション,というのを正確さを欠いて書いたけどまあそういうことです。… "
黄前 久美子さんのツイート: "普通にスタックに乗る変数は初期化しないと単なる未定義値… "
Yusuke Endohさんのツイート: "次の C プログラムが 0 を出力することは保証される? typedef struct foo { int a; int b; } foo; int main() { foo v[1] = {{0, }}; printf("%d\n", v->b); }"
Yusuke Endohさんのツイート: "何人かに「される」という回答をもらったので仕様書見たら、確かにされるようでした(途中まで初期化してあったら残りは 0 初期化されるらしい)。ありがとうございました… "

register 変数

yoh2さんのツイート: "のっけから濃いのキター! 結論から言うとエラーになるのが正解かと。ISO/IEC 9899:2011 6.7 にある脚注121でアドレスが取れない例として配列→アドレスの暗黙変換が挙げられてます。 #質問箱 #peing_yoh2_sdj… https://t.co/k6Om9ahoBF"
yoh2さんのツイート: "ところで、手持ちの環境では gcc 4.5.4, 4.9.3, 5.4.0, 6.4.0 でエラーに。clang 3.9.1 ではエラーにならず。"

C99 プロトタイプ宣言

Kazuho Okuさんのツイート: "えっCで引数にnon-null制約を宣言すふ方法があるってこと?すごい便利じゃん… "
Keigo Imaiさんのツイート: "Modern C (pdf) https://t.co/fCcGkR0zpr"
Modern C
Keigo Imaiさんのツイート: "puts のプロトタイプ宣言: int puts(char const s[static 1]); この static is 何"
Keigo Imaiさんのツイート: "長さゼロの配列って何だっけと思ったのですが(たしか構造体の最後のフィールドでのみ宣言可能?)、 それとは別に NULL が渡されるのを排除するために static 1 が使える、とのこと。 https://t.co/BjczgzaW1B @objectxplosive"
A nice, little known C feature: Static array indices in parameter declarations
KUDO Muttonski Takashiさんのツイート: "知らなかった、C99 付いていけてないな。… "
Kazuho Okuさんのツイート: "つまり、引数の型が type* ならnullable pointerで type [static 1] ならnon-nullable pointer ってこと"
Kazuho Okuさんのツイート: "とか言ってたら、自分の管理してるコードで `[static NN]` が使われてて、それをC89互換性のために廃止する PR が来てたことに気づいた"
Rui Ueyamaさんのツイート: "C89はさすがにもうよくないですか。… "
Kazuho Okuさんのツイート: "正確にいうと、「C++にないC99の機能」には依存したくないという文脈なんだろうと思います。Visual Studio... https://t.co/WXfdMh7y1e… "
Reader Q&A: What about VC++ and C99? | Sutter’s Mill
Rui Ueyamaさんのツイート: "それはまっとうな要望な気がしますね。… "
Keigo Imaiさんのツイート: "あまり深追いはしてくれない模様ですね… https://t.co/GTKNgfflAv… "
ryochackさんのツイート: "うーん、当然ながらポインタ渡しでは検出してくれないのでやらないよりはマシかな、くらいの感覚。配列のアドレスをそのまま渡すってケースは結構少ないんだよなぁ。 https://t.co/UwX1zjBE7R"
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ

void 引数

藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "ANSI Cより前の話が、もはや忘れられつつある昔話であることを実感する。 / “【C言語】引数なしの関数には void を書いた方がよいという話 - 0x19f (Shinya Kato) の日報” https://t.co/OYjiCJd8Mo"
【C言語】引数なしの関数には void を書いた方がよいという話 - 0x19f (Shinya Kato) の日報
AoiMoe a.k.aしお兄Pさんのツイート: "ちなみに「引数が無い関数は f(void) と書いたほうがいい」ではなくて、「関数プロトタイプにおいて、引数が無い関数であることを明示したければ f(void) と書かなければならない」だからね。"
SODA Noriyukiさんのツイート: "1980年代後半~1990年代にC書いてた人間には完全に常識だったので、時の流れを痛感する。"

後置演算子

やねうら王さんのツイート: "私にはコンパイラの気持ちはわからないが、コンパイラ作成者の気持ちはわかるので、returnと後置インクリメントを併用したときに適切なコードを生成するのが難しいことはわかるし、当時はそういう地雷を踏みそうなコードはなるべく避けながらプログラムを書くのが常識であった。(と思う)"
FFFumihiro MMMatsuiさんのツイート: "あー確かにコード生成のやり方によってはスタックに積んで即 ret で飛んで直後の加算が実行されないとかのバグありそう"
FFFumihiro MMMatsuiさんのツイート: "後置インクリメントは式の中では加算前の値を見せつつその後に変数が加算されてないといけないから演算子一個なのに吐くコードがちょっと複雑"
FFFumihiro MMMatsuiさんのツイート: "なんであれ演算子にしたんだろう"
FFFumihiro MMMatsuiさんのツイート: "あれが演算子であるために副作用完了点まわりで未定義動作のコードが結構たくさん生産されてるよなたぶん"

式の評価など

まあぼ@cubさんのツイート: "つまり「添字演算子を評価した結果の"値"にアドレス演算子を評価できるのはなぜか」ということか。言語仕様そのままだとコンパイラが作れないってことだよね。指摘した人しゅごい。"
Masaki⊣Haraさんのツイート: "型aの値を単に横にn個並べたものが配列で、アドレスであって参照先が型aであると見なせるものがポインタというイメージ (つまりぜんぜん違う) 似ているように見えるのは、配列のrvalueが特定の文脈で自動的に配列の先頭へのポインタのlvalueに自動変換されるから という認識"
るくすさんのツイート: "まあ別にローカルスコープ内でしか使わない変数をchar *s=" "としようがchar s[]=" "としようが、ホットスポットでも無い限りキャッシュ効率がどうのとかでも無いんだけど、前者の書き方は普通にイラッとくる"
なぎせ ゆうきさんのツイート: "int i = -(int)+(int)-(int)+(int)-(int)+(int)-(int)+(int)-(int)+(int)-5; ひゃっほーい… "
りあね xa1 ver 21.5.0さんのツイート: "CastExpressionはUnaryExpressionNotPlusMinusの一種で、それはUnaryExpressionの一種。前置演算子やプリミティブ型へのキャスト演算子の右にはUnaryExpressionが来れるので、キャストと前置演算子は同じ優先度のはず。「-(int)-5」が通ると思う"
Rui Ueyamaさんのツイート: "うわー、C言語初心者レベルで勘違いしてた。xが配列のとき&xもxもxのアドレスなんだった。&xなんてか書かないから忘れてたわ。フルスクラッチからCコンパイラを書いたことすらあるのに。"

水島宏太(ゆる糖質制限)さんのツイート: "一つ提案してみたいのだが、C, Java, Ruby, Python, 等の値渡ししかない言語で、そもそも参照渡しという用語が登場する意味がないので、それらの入門書において、値渡し/参照渡しという用語を使うこと自体をやめてみてはと思う。"
Rui UeyamaさんはTwitterを使っています 「@kaityo256 あとcharポインタはstrict aliasing ruleで特別扱いになっているので(T*とU*はTとUが違う型である限り一般に異なる場所を指していると想定していいが、TやUがcharなら同じアドレスを指しているかもしれない)、char8_tをchar*にすると最適化が難しくなるというのはわりと説得力あります。」 / Twitter

CERT C

PRE

PRE05-C. 字句の結合や文字列化を行う際のマクロ置換動作をよく理解する
PRE10-C. 複数の文からなるマクロは do-while ループで包む
PRE32-C. マクロの引数内で前処理指令を使用しない

MSC

MSC06-C. コンパイラの最適化に注意する
MSC24-C. 非推奨関数や時代遅れの関数を使用しない
MSC15-C. 未定義の動作に依存しない

ARR

ARR02-C. 初期化子が暗黙的にサイズを定義する場合であっても、配列のサイズは明示的に指定する
ARR30-C. 境界外を指すポインタや配列添字を生成したり使用したりしない

DCL

DCL12-C. 抽象データ型は opaque な型を使って実装する
DCL13-C. 関数の引数が関数自身によって変更されない値を参照するポインタならば、関数の引数をconstとして宣言する
DCL21-C. 複合リテラルの記憶域を理解する

MEM

MEM02-C. メモリ割り当て関数の結果は、割り当てた型へのポインタに即座にキャストする
MEM03-C. 再利用可能なリソースに格納された機密情報は消去する
MEM04-C. サイズ 0 のメモリ割り当てを行わない
MEM07-C. calloc() の引数は乗算した結果がラップアラウンドしないようにする
MEM08-C. realloc() は動的に割り当てられた配列のサイズ変更にのみ使用する
MEM09-C. メモリ割り当て関数がメモリを初期化すると仮定しない
MEM36-C. realloc() 関数呼び出しでオブジェクトのアラインメントを変更しない

STR

STR05-C. 文字列リテラルの参照には const へのポインタを使用する
STR11-C. 文字列リテラルで初期化される文字配列のサイズを指定しない
STR30-C. 文字列リテラルを変更しない
STR32-C. 文字列を引数にとるライブラリ関数に null 終端されていない文字配列を渡さない

EXP

EXP34-C. null ポインタを参照しない
EXP36-C. ポインタをより厳密にアラインされるポインタ型に変換しない
EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
EXP30-C. 副作用が発生する式の評価順序に依存しない

FIO

FIO17-C. fread() を使用するときは、null 終端文字に依存しない
FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない

INT

INT09-C. 列挙定数が一意の値に対応することを保証する
INT10-C. % 演算子を使用する際、結果の剰余が正であると想定しない
INT33-C. 除算および剰余演算がゼロ除算エラーを引き起こさないことを保証する
INT34-C. 負のビット数のシフトやオペランドのビット数以上のシフトを行わない
INT02-C. 整数変換のルールを理解する

ERR

ERR30-C. 関数を呼び出す前に errno をゼロに初期化し、関数の異常終了時にのみ errno を参照する
ERR33-C. 標準ライブラリ関数のエラーを検出し対処する

FLP

FLP00-C. 浮動小数点数の限界を理解する
FLP03-C. 浮動小数点エラーを検知して処理する
FLP34-C. 浮動小数点の型変換は変換後の型の範囲に収まるようにする
isgreater - cppreference.com
isless - cppreference.com

fno-delete-null-pointer-checks

KMC Staff Blog:fno-delete-null-pointer-checks
第5回 Linuxのカーネルに潜む脆弱性をつぶすパッチ
JVNVU#162289: ある種の範囲チェックを破棄するC コンパイラの最適化の問題
情報セキュリティ技術動向調査(2008 年上期):IPA 独立行政法人 情報処理推進機構
Using the GNU Compiler Collection (GCC): Optimize Options
[llvm-dev] RFC: Implementing -fno-delete-null-pointer-checks in clang

fread

_sopen_s、_wsopen_s
_fstat、_fstat32、_fstat64、_fstati64、_fstat32i64、_fstat64i32
_fdopen、_wfdopen
fread
fclose、_fcloseall
Man page of FREAD
FIO17-C. fread() を使用するときは、null 終端文字に依存しない
FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない

SEI CERT C Coding Standard - SEI CERT C Coding Standard - Confluence
CERT C コーディングスタンダード
実例で学ぶ脆弱性対策コーディング

Entry Point

TLS(DLL)

Fiber Local Storage

Win32 Fiber カッコワルイ - NyaRuRuが地球にいたころ
Fibers - Windows applications | Microsoft Docs
Be aware: FLS-Fiber Local Storage – Slava Oks's WebLog
Fiber local storage - 1.66.0
windows - FLS vs TLS, can I use Fiber Local Storage in place of TLS? - Stack Overflow
実行時メッセージ「JMP0015I-U」のシステムからのエラーコードに「0x45A」が通知されます。
Fiber Local Storage - How is Fiber Local Storage abbreviated?
FLS (Fiber Local Storage) limitations in Windows
How does one emulate c++11 thread_local but for fibers (Fiber Local Storage)? · Issue #179 · boostorg/fiber
Fiber (computer science) - Wikipedia
Windows 10プレビュー、“Cドライブ”への圧迫を軽減する機能 - PC Watch

スレッド ローカル ストレージ (TLS: Thread Local Storage)
DLL_THREAD_ATTACHで割り当たTLSをDLL_PROCESS_DETACHで解放するには?
スレッド局所記憶 - Wikipedia
6.6 .tlsセクション
TLS Callbacks - セキュリティごった煮ブログ|ネットエージェント
DLLのマルチスレッド対応
第V部~マクロから呼び出すDLLの作り方
__thread で指定した変数の領域はスレッド終了時に開放されるのか? -> できるだけ使いまわすようです - Qiita
スレッドローカルストレージ(TLS) - Linuxの備忘録とか・・・(目次へ)
IBM Knowledge Center - __thread ストレージ・クラス指定子
Using the GNU Compiler Collection (GCC)
スレッドローカルストレージ - cpprefjp C++日本語リファレンス
Thread local storage - 兼雑記
__thread、マルチスレッド変数
c - How does the gcc `__thread` work? - Stack Overflow

プログラムはどこから始まるの? ~ WinMain とは? - Web/DB プログラミング徹底解説
main関数 ‐ 通信用語の基礎知識
スタートアップルーチン ‐ 通信用語の基礎知識
-ENTRY (Entry-Point Symbol)
Assembler/ForFun(x86_32)/06, 32bit Windows with NASM - Glamenv-Septzen.net
winapi - C++ Windows return vs ExitProcess - Stack Overflow
x64 アセンブリーの概要 | iSUS
x64 Architecture | Microsoft Docs
If you return from the main thread, does the process exit? – The Old New Thing
Assembly Programming on x86-64 Linux (04)
プログラミングノート - x86
アセンブラに手を出してみる - Qiita
関数実行の流れを紐解く(弊研究室の某課題について考える2日目) - ごちうさ民の覚え書き
C - CreateThreadで指定するスタックサイズ(43694)|teratail
マルチスレッドのWindowsプログラミングでは、スタックはどう扱われてい... - Yahoo!知恵袋
OSとプログラミング言語の関係 - 現在組み込み系のプログラムを学習中です。... - Yahoo!知恵袋
64ビット環境におけるリバースエンジニアリング - セキュリティごった煮ブログ|ネットエージェント
アレ用の何か
Fadisさんのツイート: "x86_64のABIでは%raxで返り値を返す為、C言語のmain関数でreturnしなかった場合%raxがステータスコードになる #kernelvm"
Fadisさんのツイート: "スタートアップルーチンの段階でスタックポインタの設定などを行う段階で%raxを使っており、ASLRでスタックポインタのアドレスが毎回変わる為毎回異なるステータスコードが帰ってくる #kernelvm"
Fadisさんのツイート: "ちなみにこれ、C++の場合規格でmain関数のreturnが省略された場合return 0;を書いたように振る舞う事が定められているから、C++としてコンパイルすると必ず0が返ると思う #kernelvm"

プリプロセッサ

mcpp

(macro-of-inline report) mcppという選択肢 - テストステ論
還暦過ぎても、こんなすごいプログラムが書ける: ホットコーナー
mcpp -- a portable C preprocessor with Validation Suite
h8liu/mcpp: A portable C/C++ preprocessor
www.gnu-darwin.org/www001/ports-1.5a-CURRENT/devel/mcpp/work/mcpp-2.6.4/doc-jp/cpp-test.html

本の虫

本の虫: Raw String Literalとプリプロセッサ
本の虫: C/C++で0xf+1は合法なのに0xe+1はコンパイルエラーになるのはなんで?
Shinya Katoさんのツイート: "pp-numberは全ての整数と浮動小数点の形式を内包していて、その形式に則って字句解析すると0xe-8は一つのpp-numberトークンになるはず で、プリプロセッサの処理が終わって値と型を特定するタイミングで整数表現としも浮動小数点としてもありえない0xe-8が出てきてエラーになるということだと思われる"
OS開発ゼミ担当 uchan_nosさんのツイート: "0xe-8は整数/浮動小数点数として解釈できないが,規格では字句解析の段階でpp-number(整数と浮動小数点数を表す)型のトークンになってしまい,後段で整数にも浮動小数点数にも解釈できずコンパイルエラーになる,という話だそうです.添字に浮動小数点数が使えない,というのは関係ない話ですね.… https://t.co/vh1fEHlaKa"
ぷりさんのツイート: "演算子の前後に空白を入れないのがダメなのはコンパイラによっては構文解析に失敗してコンパイルエラーになる場合があるためです。… "
ぷりさんのツイート: "a[0xe-8] とかいうコードを書くとエラーになるんですよ。… "
本の虫: なぜGCCのCプリプロセッサーはlinuxという名前のマクロ名を定義するのか
本の虫: cstdint.hのMIN/MAXマクロ

整数定数式

suzuki shingoさんのツイート: "C でコンパイル時に式が整数定数式か判断するマクロを考えた人がいるみたい。良くこんなの思いついたな » Linus Torvalds - "That is either genius, or a seriously diseased mind." : programming https://t.co/pgOp6AR36O"
Linus Torvalds - "That is either genius, or a seriously diseased mind." : programming
SODA Noriyukiさんのツイート: "非定数式xについて「(x) * 0L」をコンパイラが 0に最適化『できない』ことに依存しているので、コンパイラのバージョンに依存しそうだなと思ったら、gcc-4.4以前だと副作用のない整数式を、このマクロが誤って定数式と見なしてしまうことがスレッドの続きで指摘されてますね: https://t.co/OvdSHP2kTg… https://t.co/HDvdBk3igb"
SODA Noriyukiさんのツイート: "新しいバージョンのコンパイラの方が、最適化能力が落ちているように見えるのがなんか不思議… LLVM 8.1.0 では gcc-4.5以降と同じ結果でした。… "
前田敦司さんのツイート: "「(x) * 0L」を0に最適化したとしても,それはC99規格でいう「整数定数式」ではなく「0になるとわかっている整数式をvoid *にキャストしたもの」に過ぎず,sizeofの結果が異なるということのようです. https://t.co/rO4U40Ffqr… https://t.co/bqaKLblELW"
前田敦司さんのツイート: "あ,それは「0になる整数式」とはまた話が違って,「整数式を整数定数式扱いしちゃった」ってことですね.それは規格違反のバグということになるんでは.たしかにバグのあるバージョンなら動かない,ということはあるでしょうね.… "
前田敦司さんのツイート: "null pointer constant(npc)は「値が0である〈整数定数式〉をvoid*にキャストしたもの」と定義されていて https://t.co/VMHqNU2JYZ たとえば「変数 * 0L」は整数定数式でないのでnpcじゃない,ということですね.… https://t.co/JCZTcQxcoz"
前田敦司さんのツイート: "また,a?b:cで,bかcのどちらかがnpcで他方がポインタなら,結果はnpcでない方のポインタ型になる. そうでなくてどちらかがvoid*なら結果はvoid*になる,と書いてありました. https://t.co/LeYT6XZkml 6の最後.… https://t.co/p2RLZzkfpl"
前田敦司さんのツイート: "まさにこの仕様を用いて,1 ? ((void*)((x)*0L)) : (int *)… は  xが整数定数→ :の左はnpc → 全体は(int*)  xが整数定数でない→ :の左はnpcでないvoid* → 全体は(void*) となってるわけですね.… https://t.co/LU1OAnSGWk"
前田敦司さんのツイート: "補足: ・?:のポインタ型変換の仕様が肝なので,a?b:cの値がbかcかは関係ない.実際 (1 ? …)を(0?…)に変えても動きます. ・ 整数定数式はcaseラベル,(可変長でない)配列のサイズ,プリプロセッサディレクティブなどで使われ,処理系や最適化レベルによらず必ずコンパイル時に値が決まります.… https://t.co/L1dtyfPQYu"
KaiGai Koheiさんのツイート: "https://t.co/25XfMZpHnV PostgreSQLでintやfloatのプリミティブ型演算子のオーバーフローチェックって割とexpensiveなんだけど、ビルド環境によってはこーゆーの使ってもいいよね。(検算するよりキャリーフラグ見た方が軽い)"
Using the GNU Compiler Collection (GCC): Integer Overflow Builtins
Arithmetic overflow checks in C++ Core Check | Visual C++ Team Blog
c++ - How to detect integer overflow? - Stack Overflow
x64 (amd64) Intrinsics List | Microsoft Docs
__readeflags | Microsoft Docs
rL256686
Kirill Yukhin - Re: [PATCH i386] Introduce __readeflags () and __writeeflags () intrinsi

blog

最近プリプロセス時処理が楽しい - 茅の下
Kazuho's Weblog: pthread_once が嫌いすぎて再実装した話
Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
__VA_ARGS__の引数をループするやつはなぜ動くのか - in neuro
C言語のマクロであんまり使わないけど(低レイヤプログラミングにおいて)猛烈に便利な演算子 - FPGA開発日記
#elifdefと#elifndef - yohhoyの日記
プログラマーの理想と現実 - C言語のテクニカルバグ—マクロの問題 | 株式会社創夢 — SOUM/misc
printf 用のマクロの話 - 兼雑記
Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
プリプロセッサのトークン結合演算子「##」の仕様が不明 - satosystemsの日記

interface

mattnさんはTwitterを使っています 「C99 で interface を実現するライブラリ(ヘッダオンリー) / “GitHub - Hirrolot/interface99: Zero-boilerplate interfaces for C99” https://t.co/9mpldfb2My」 / Twitter
Hirrolot/interface99: Zero-boilerplate interfaces for C99
mattnさんはTwitterを使っています 「COM ぽさある。」 / Twitter

C++でCプリプロセッサを作ったり速くしたりしたお話
blog dds: 2006.06.26 - Dave Prosser's C Preprocessing Algorithm
blog dds: 2006.06.26 - Dave Prosser's C Preprocessing Algorithm
x3J11-86-196.pdf
cpp.algo.pdf
C言語/前処理指令 - Wikibooks
C/C++ プリプロセッサ リファレンス
Preprocessor Reference
How to remove lines added by default by the C preprocessor to the top of the output? - Stack Overflow
#include ディレクティブ (C/C++) | Microsoft Docs
Clarification Request Summary for C11
herumiさんはTwitterを使っています 「dirty hackが必要になって #define AAA aaa #if AAA == aaa void foo() {} #endif #undef AAA #define AAA bbb #if AAA == aaa void foo() {} #endif というようなコードを書いたらfoo()が二重定義のエラーになってしばらく悩んだ。よく考えたら確かにそうなる。マクロむずい。」 / Twitter
std::めるぽんさんはTwitterを使っています 「BOOST_PP_STRINGIZE が存在してる理由を知ってたおかげで原因不明の問題を解決できた。ほんとプリプロセッサの挙動怖いな…」 / Twitter
std::めるぽんさんはTwitterを使っています 「#define REGISTER(func) void func() { ((Func)dlsym(mod, #func))(); } REGISTER(foo); REGISTER(bar); みたいなことをした時に、foo や bar が実は #define で foo_v2 や bar_v2 みたいな別の名前になってた(しかも foo や bar 関数も dll 内に存在してる)って問題だった」 / Twitter
822823回マクロを展開するとGCCが死ぬ - Qiita
入谷 優さんはTwitterを使っています 「とあるマクロに与えた __VA_ARGS__ が単一引数として扱われて困っていたのですが、MSVC ではちょっとした回避策が必要になるのですね。マクロの展開順序について理解を深めなければ…… https://t.co/tzDtyubnWq」 / Twitter
visual c++ - MSVC doesn't expand __VA_ARGS__ correctly - Stack Overflow
C言語でよく定義するマクロまとめ - Qiita

型変換

punningの意味・用例|英辞郎 on the WEB:アルク
型変換
型変換
C/C++における整数型の昇格 - Qiita
C言語で暗黙の型変換が発生する16のパターン(+演算子の結果型5パターン) - Qiita
hikaliumさんのツイート: "え…整数の縮小変換って -Wall -Wpedantic -std=c11 つけていてもだめでさらに -Wconversion つけないと教えてくれないの?コンパイラさん、信じてたのに…(想定通りの値が出ないのでQEMUのソースまで読みに行った挙句の初歩的ミスだった)。… https://t.co/p9joqP2nqO"
herumiさんはTwitterを使っています: 「今日の気づき : clangで(unsigned int)(-2.0)はでたらめな値を返す。https://t.co/P0oktu52Br 未定義なのは知っていたけどx86環境なら(unsigned int)(-2)ぐらいになるだろう(こちらはvalid)と勝手に思っていた。VCはそうなった。gccだと0だった(バーションやオプションにもよる)。」 / Twitter
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
herumiさんはTwitterを使っています: 「補足。clangだと-fsanitize=undefinedで実行時に「runtime error: -2 is outside the range of representable values of type 'unsigned int'」と怒ってくれる。 https://t.co/gQneIrIyuW」 / Twitter
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「さすがはclang…B.メイヤー先生の品質基準の一つ「ロバストネス性(仕様外領域の(なるべく安全な)グレードダウン)」みたいな発想は皆無(笑) なお、float f = 2.0; を(u_int)f; にキャストした場合は、他と同じ結果になる様子。 https://t.co/WMuDyQjmBH」 / Twitter
汎整数拡張 - Wikipedia

アライメント

構造体・共用体

Kazuho OkuさんはTwitterを使っています 「全てのメンバが uintX_t である struct の alignof は alignof(uintX_t) に等しい、って C99 の規格上言えるんでしたっけ?」 / Twitter
市川 真一さんはTwitterを使っています 「@kazuho alignof は C11 で規定されたものと思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 あっすみません、アラインメントが、という意味です」 / Twitter
市川 真一さんはTwitterを使っています 「@kazuho JIS §6.7.2.1 構造体又は共用体オブジェクトのビットフィールド以外の各メンバの境界は,その型に適した処理系定義の方法で調整する。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 ありがとうございます。たとえば union U { struct { uint32_t x, y; } s; uint32_t a[2]; }; において、offsetof(U.a[1]) == offsetof(U.y) である保証はないと」 / Twitter
市川 真一さんはTwitterを使っています 「@kazuho 構造体の padding (メンバ間と末尾のメンバの後)が入る条件が処理系定義だから、その保証はないと解釈しました」 / Twitter

倍数

倍数 - Wikipedia
C言語について質問です。 - 以下の仕様を満たす倍数判定プログラムを... - Yahoo!知恵袋

MS

Alignment | Microsoft Docs
Padding and Alignment of Structure Members (構造体メンバーのパディングとアラインメント) | Microsoft Docs
MM_BAD_POINTER macro - Windows drivers | Microsoft Docs
x64 software conventions | Microsoft Docs
align (C++) | Microsoft Docs

Intel

Align and Organize Data for Better Performance
Coding for Performance: Data alignment and structures

きじねこ

第3回 境界調整(アラインメント)を調べる | 株式会社きじねこ
5.3 アラインメント調整のため、オフセットを切り上げる。 | 株式会社きじねこ
データ型のアラインメントとは何か,なぜ必要なのか?
C/C++ 関数・マクロ集 ((ほぼ?) 処理系・OS 非依存)

Twitter

Izumi Tsutsuiさんのツイート: "であれば、「ARM用としてカーネルをいじるようなヤツならちゃんとルール守ったコードを書け、 unaligned access なんぞするんじゃねえ」ということで、カーネルは常に -mno-unaligned-access 付きでビルドせよ、という姿勢が正しいのかもしれない"
SASANO Takayoshiさんのツイート: "x86/x64であってもunaligned accessは禁止、という方向に持ってった方が良いんじゃないかな…(確か禁止するフラグありましたよね?"
OS作れないマン WalB担当さんのツイート: "C++11から導入されたalignasいいね。手軽。"
Kazuho Okuさんのツイート: "sizeof は変数を引数に取れるのに、alignof / _Alignof はなぜ型しか引数に取れないのか"
Kazuho Okuさんのツイート: "@objectxplosive まあ __alignof__ なければ16にするとかでいいので"
Yaðuaki Möritaさんのツイート: "@kazuho なんででしょうね、alignasでアラインを大きく取った変数の参照取ってデリファレンスしてalignofとかが実装依存になりそうだからかな、、"
Kazuho Okuさんのツイート: "@MoritaYasuaki あー。 p = aligned_alloc(alignof(*p), sizeof(*p)) って書きたいだけなんですけどねぇ"
yohさんはTwitterを使っています 「(n+N)&amp;~N派かな N=(1&lt;&lt;B)-1」 / Twitter
\助けよや/さんはTwitterを使っています 「アラインメント揃えのパディングに便利なイディオム。 [0,1,2,3,4,5].forEach(n =&gt; console.log(n, (n+3) &amp; -4)); 0 0 1 4 2 4 3 4 4 4 5 8」 / Twitter
\助けよや/さんはTwitterを使っています 「2の補数表現ビット列に依存したコードなので、あまり期待してなかった。」 / Twitter
\助けよや/さんはTwitterを使っています 「-1 は当然 all 1 の 11(略)1111で、-2 は 11(略)11110、-4 は 11(略)1100、-8 は 11(略)1000 … ((1 + 3) &amp; -4) =&gt; 4 &amp; 11(略)1100 = 4 ((2 + 3) &amp; -4) =&gt; 5 &amp; 11(略)1100 = 4 ((3 + 3) &amp; -4) =&gt; 6 &amp; 11(略)1100 = 4 ((4 + 3) &amp; -4) =&gt; 7 &amp; 11(略)1100 = 4 ((5 + 3) &amp; -4) =&gt; 8 &amp; 11(略)1100 = 8」 / Twitter
\助けよや/さんはTwitterを使っています 「@yohhoy 確かにそっちの方が直感的ですよね。」 / Twitter
yohさんはTwitterを使っています 「@yoya まぁ小さいBに関しては定数を覚えてしまってるので、どっちでもさほど変わらない疑惑👻」 / Twitter

データ構造アライメント - Wikipedia
Data structure alignment - Wikipedia
剰余演算 - Wikipedia
メモリアライメントの話 @ゲームプログラマの小話[開発:メモリ] - Qiita
アライメント計算 : Follow The Master
アライメント(バイト境界)
アライメントを知る - 組込屋
メモリ上での配置に関して、多次元配列と構造体の配列の比較 - in neuro
C++17: 動的メモリ確保とアライメント - in neuro
アライメント解説 - in neuro
GCC - __attribute__ ((packed)) 指定に反してアライメント調整が適用される(29684)|teratail
c - Why does GCC pad functions with NOPs? - Stack Overflow
c - Question about round_up macro - Stack Overflow
Skyrocketing

ビット演算

ビットフィールド

とみながたけひろさんはTwitterを使っています 「@yohhoy webkitという辛いブツがあるんですよね https://t.co/ADzU8yYXlx 「一方で省メモリや高速化なんかの点では、これはなかなかすごく頑張ってるように思います。まず省メモリについては、そこらじゅうで bit field が使われてるとかいう時点で既にアレです」」 / Twitter
WebKit について (コード) - 兼雑記
2007-06-01
\助けよや/さんはTwitterを使っています 「実際のコードでバイナリ記述に使おうとすると struct の word アライメントで、byte がパッキングしたりしなかったりで死ぬ。(何度か死んだ」 / Twitter
yohさんはTwitterを使っています 「@yoya https://t.co/V371DTSGiG プログラマの期待に反して、外部データとのやり取りには使い物にならないですよね。」 / Twitter
EXP11-C. ビットフィールド構造体のレイアウトについて勝手な想定をしない
yoh2さんはTwitterを使っています 「環境によって宣言順が異なる struct iphdr の version フィールドと ihl (ヘッダ長) フィールド……」 / Twitter

POPCNT

ビットを数える・探すアルゴリズム
x86x64 SSE4.2 POPCNT
__popcnt16、__popcnt、__popcnt64 | Microsoft Docs
x86_64でpopcnt / tzcnt / lzcntする【ビット演算テクニック Advent Calendar 2016 5日目】 - Qiita
marisa-trie の PopCount を改良しました - やた@はてな日記
Intel CPU の popcnt 命令で性能激落ちくんの話 - Lark_mpの日記
Binary Hacks と 64bit popCount 問題 | TAKESAKO @ Yet another Cybozu Labs

Twitter

herumiさんのツイート: "整数絶対値のトリックは昔Oh! FM(-TOWNS)に載っていて感動して高速化にはまった(当時のHigh-Cが既に利用)。ビット演算で今まで一番頭をひねったのは某コーデックのプロファイルで70%を占めてたやつ。 https://t.co/W3xh7jK9jh 「calcは最適化可能」というヒントありでもかなり難しいと思う。#tcfm"
misc/codec-calc.cpp at master · herumi/misc
herumiさんのツイート: "考えてみたい人のために問題にすると、リンク先のcalc()関数はassertの条件下で分岐無しアルゴリズムに変換できる。テーブル参照は使わない。 https://t.co/6ISKNUBHOB"
shinichiro hamajiさんのツイート: "一行になったけどこれで良いのかな https://t.co/uLVp8o4dZ1 https://t.co/bgNE78joyw"
for https://github.com/herumi/misc/blob/master/codec-calc.cpp
herumiさんのツイート: "レスポンスめっちゃはやっ!! すごい。 私の想定解です。コードから想像すると同値な変形をしながらロジカルに攻めたのでしょうか。ループを消すところにひらめきがいりそうに思いますが。 私の場合は出力結果とにらめっこしながら、その結果になるような式を調整して見つけました。… "
shinichiro hamajiさんのツイート: "a&bはaでいいですね。calc_mine1でこの分岐は上位2bitの組み合わせだなあと理解、calc_mine2で3つ目のブランチが消えて上位1bitが異なるかどうかだけでループ止めてるのでclz一発だな、と。当然実際はもっと試行錯誤しています。これを高速化できるという情報無しでされたのはすごいと思います。… https://t.co/QxVxR1XBRD"
herumiさんのツイート: "ビット演算クイズ回答編 https://t.co/pCg5HtSvaY https://t.co/7gspg4slex"
melancholic afternoon
shinichiro hamajiさんのツイート: "僕の試行過程を書いてみた https://t.co/8j0KDewPSi 一気に書いたのに途中で文体変わる不思議 https://t.co/vsybCYy9vC"
ビット演算クイズを解いた時の話 - 兼雑記
herumiさんのツイート: "ビット演算クイズを解いた時の話 https://t.co/SGgeEwDTXc こういう作業の他人の思考経路を見られることはあまりないのでめちゃ面白い(特にbn\anのテーブル簡略化とループいらなくね?のあたり、そうやって突破するんだという)。 https://t.co/Fftbw6tj73"
shinichiro hamajiさんのツイート: "正直同じ問題を解いた人しか面白くない記述だろうなあ、つまり @herumi さん以外に想定読者がいねえなあ、と思いながら書いていたので、面白いと思っていただいてありがたいです。面白い問題ありがとうございます!… "
とみながたけひろさんはTwitterを使っています 「ビットフィールド、最上位ビットに1ビット割り当てると最適化が進むという特性がある(符号判断でビット判断を置き換えることができることが多いため)。まあ、爪に火を点すビンボーという奴ですね」 / Twitter
とみながたけひろさんはTwitterを使っています 「なお21世紀の近代的なCPUは最上位以外でも「ビットが立ってたら分岐」みたいなのを一命令で実行できるので(ARM64)、こういうビンボーは考えなくてもよくなった。x86-64は…BEXTR命令ょゎょゎやし対応CPU少ないめやからなあ…」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「複数のbitを同時に触りたいことがあって (例えば bitset &amp; user_modifiable とか)、bool や bit field を使うとそれが面倒くさくなるので、整数型を使って各ビットに名前を定義する派です←完全にオッサンの発想」 / Twitter

Blog Alpha Networking: ビット(bit)操作の覚え書き
Big Endian と Little Endian の判別(Kodama's tips page)
すばらしいビット | プログラミング | POSTD
明日使えないすごいビット演算
bit manipulation - Get bit offset in C++ - Stack Overflow
複数のビットフィールドを持つ数値の並列演算

ポインタ

CERT-C

MEM10-C. ポインタ検証関数を定義して使用する
MSC16-C. 関数ポインタの暗号化を検討する
PRE03-C. ポインタ型でない型をエンコードするには define よりも typedef を選ぶ
INT36-C. ポインタから整数への変換、整数からポインタへの変換
EXP36-C. ポインタをより厳密にアラインされるポインタ型に変換しない
EXP37-C. 正しい引数の数と型で関数を呼び出す

ポインタ演算
配列とポインタ
3次元配列でのポインタ - C・C++ - 教えて!goo
くいなちゃんさんはTwitterを使っています: "C言語のポインタは簡単です。 例えば、 printf("Hello World!!\n"); と書くところを、 (*************************************printf)("Hello World!!\n"); と書いても動きま
Tsukasa #01さんはTwitterを使っています: "つまり、くいなちゃんの例では * 一回で、"関数型" → "関数へのポインタ型" (暗黙の変換) → "関数型" (* 演算子) という変換が行われてることになる。C9
関数ポインタと実体で引数が違うと、CではエラーにならないがC++ではエラーにな... - Yahoo!知恵袋
C FAQ 5
人はなぜポインタで苦しむのか - Qiita
プログラマでいたい:[C言語]voidポインタの演算 - livedoor Blog(ブログ)
EncodePointer function (Windows)
DecodePointer function (Windows)
Protecting against Pointer Subterfuge (Kinda!) – Michael Howard's Web Log
NAKAMURA Minoru's Diary (2010年4月)
S.F.さんのツイート: "タグ付きポインタか。。なるほど。。現代のCPUアーキテクチャは32/64ビットで、4/8バイト でアラインメントされるのが通常だから、アドレスの下位2ビットもしくは3ビットをタグ(フラグ)として利用するのか。。"
S.F.さんのツイート: "更には64ビットCPUであってもアドレス空間は実質はそれ以下だから、更にタグ用に使えるビット数は増えるのか。。"
uchanさんはTwitterを使っています 「なんでstrtol()の第2引数はconstポインタじゃないの??? long strtol(const char *str, char **str_end, int base)」 / Twitter
にゃははー仙人さんはTwitterを使っています 「@uchan_nos 説明が雑すぎた。char*な文字列を使っている場合にconst char*にはできるけどconst char**にはできないのでそうなってるはず。元からconst char*な文字列を使ってればいいんだけど、Cって大体mutableな方を優先して提供している感じなので(正確な議論は知らないけど)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ポインタを純粋なアドレスとして使うのは太古から strict aliasing rule に引っかかって問題になるし provenance 以前にそのあたりを説明するべきだと思う / https://t.co/JLwsBhkCvV」 / Twitter

strict aliasing rules

(翻訳)C/C++のStrict Aliasingを理解する または - どうして#$@##@^%コンパイラは僕がしたい事をさせてくれないの! - yohhoyの日記
strict aliasing rules, type punning解説 その1 - gununuの日記
EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
猫科研究所 - gcc option
C - strict aliasing ruleについて|teratail
16.1 strict alias rule · ThePolitewaylearntoCPP17
SGソフトウェア開発ブログ: [C] Cのstrict aliasingについて
strict aliasing rules, type punning解説 その1 - gununuの日記
C - strict aliasing ruleについて|teratail
c - What is the strict aliasing rule? - Stack Overflow
EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
猫科研究所 - gcc option
std::aligned_storageを正しく使うためのstrict aliasing rulesとstd::launder - 地面を見下ろす少年の足蹴にされる私
What is Strict Aliasing and Why do we Care?
GCC いろいろ - akcnvの個人的備忘録 @ ウィキ - アットウィキ
【C/C++】Strict Aliasing Rule - Togetter
ISO Cの型違いポインタアクセス禁止規則 - sumiiのブログ
OS自作したい。技術書典6・う38さんのツイート: "strict aliasing ruleとunionてどんな関係になってるんや?"
OS自作したい。技術書典6・う38さんのツイート: "https://t.co/Mhzu2hcon2 にはstrict aliasing rulesに抵触しないエンディアン変換方法としてmemcpyやunionを使った手法が紹介されているけど,普通にビットシフトとor演算を使った方法でも,最適化によってbswap命令に置き換えてくれるみたい.テストコード→ https://t.co/Ez50MPHGwY"
convert_endianness_optimization.cpp

旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita
Kazuho OkuさんはTwitterを使っています 「Cのポインタをどう説明するかについては、型ごとのviewであって、viewが重なるか(重なりうるか)に関しては、、、って aliasing, restrict, provenance あたりを説明するのが、僕は一番伝わりやすいと思う」 / Twitter
Pointers Are Complicated II, or: We need better language specs
井山梃子歴史館さんはTwitterを使っています 「某記事ってCの話したいわけじゃないんだよね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「UBの話,最適化と安全性のトレードオフという言語デザインの話であってクリスプに〇×別れるものではない,というのは広く知られていないと思う」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「「有益な最適化をできるだけ残したい」vs「最適化によってプログラムの意味を捻じ曲げたくない」のどこでバランスをとるか,という話なんだよね」 / Twitter
κeenさんはTwitterを使っています 「CとかRustとかにはポインタの来歴という概念があるけど、それが何故必要なのかを最適化によってプログラムが壊れる例を挙げて解説している。ほとんどのコンパイラがその問題を踏んだので難しいよねとも Pointers Are Complicated II, or: We need better language specs https://t.co/oDZfQPhsaJ」 / Twitter
Miura HidekiさんはTwitterを使っています 「関数呼び出しと関数へのポインタを返す式は、デリファレンスを1回やるかどうかの違いだけなので、大した違いではない」 / Twitter

long double

long double ‐ 通信用語の基礎知識
www-an.acs.i.kyoto-u.ac.jp/~fujiwara/server/longdouble.html
long double - Wikipedia
calculation with long double precision

128 ビット整数

C - 64bit以上のビットボードを扱いたい(18432)|teratail
gcc拡張、128bit integer | messier42の日記 | スラド

@kazuho

Kazuho's Weblog: C言語で可変長引数をとる関数を、型安全に書く方法
Kazuho Okuさんのツイート: "C言語にはクロージャがないからコールバック関数定義してデータ構造体を持ちまわってる? マクロつかえばいいのに、ご苦労じゃね"
Kazuho Okuさんのツイート: "と思ったけど、100行以上続くマクロ展開のあるCコードとか書いてるわ。闇技術www https://t.co/PTgNiPTrbL"
picotls/picotls.c at master · h2o/picotls
Kazuho Okuさんのツイート: "構造化データのcodecをCで書いてるとマクロにブロック埋め込むの超便利でクロージャ気分なんだけど、マクロ内のステートメント単位でデバッガで追えないのだけが辛い。ちなみにこんな感じ https://t.co/k8xRffKEzg"
picotls/picotls.c at master · h2o/picotls
Kazuho Okuさんのツイート: "僕のCコードの中で再頻出のメンバ名は super です。なぜなら struct Dog { struct Animal super; void (*bark)(Dog *dog); }; ... struct Dog *dog = (Dog *)get_animal(...); とか書くから。今時のCなら当然ですよね。"
Kazuho Okuさんのツイート: "言語のもつパラダイムによって特定のデザインパターンを強制されないのがC言語のいい(わるい)ところです"
Kazuho OkuさんはTwitterを使っています 「ふと気になって試してわかったけど、↓みたいな感じで書けば関数宣言をコピーすることできるんだ。。。 typedef __typeof(fprintf) fprintf_t; fprintf_t foo; int main(int argc, char **argv) { foo(stdout, "hello world\n"); return 0; }」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu プロトタイプ宣言しかしてないのでリンクできない感じですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「何をやってたかというと、プロトタイプを全く書かずに、ライブラリ実装のコンパイルタイムでの切り替えをサポートすることはできるのかなーって試してたのでした。(実際にやるかどうかほ別として)できそうという結論に達した https://t.co/RUh0FZEJwM」 / Twitter
introduce `h2o_sysfn` macro; allows deployments to replace certain syscalls with their own by kazuho · Pull Request #2418 · h2o/h2o

今までに遭遇したことのない警告が出て困っています。 - Windows7 3... - Yahoo!知恵袋
Hideyuki Tanakaさんのツイート: "式の型と値の型の区別がついてない人が多いんじゃない?(知らんけど)"
alignas - cppreference.com
/J (既定の char 型の unsigned への変更) | Microsoft Docs

オーバーラップ判定

ほっとさんのツイート: "C/C++で、異なる配列内の要素を指すポインタ同士の大小比較は未定義っての、同僚に指摘してもらって初めて知った。 メモリのオーバーラップを検知したいという状況だったけど、調べてみたらなかなか奥が深いのな… https://t.co/SCZqm5ci8v とか https://t.co/rC9W7i4E0P とか"
C++においてメモリブロックのオーバーラップ判定は不可能なのか - センニジュウヨン
How to check if a pointer is in a range of memory | The Old New Thing
Fadisさんのツイート: "あー、でもundefined behaviorになった時点でコンパイラはこの比較をそれらしいマシン語に落とす必要が無くなるから、それも保証されないか"

MiraclePtr<T>

Kentaro HaraさんはTwitterを使っています 「MiraclePtr(みらくる☆ぽいんた!!)が記事に取り上げられてた。まだ実験段階のプロジェクトですが、Chromiumの生ポインタを「Use-after-freeを検知して安全にクラッシュするポインタ」に性能劣化0%・メモリ劣化0%・コード自動書換で置き換えるというみらくるな構想で、 https://t.co/qXowPSx0Nt」 / Twitter
MiraclePtr<T> One Pager [PUBLIC] - Google ドキュメント
Kentaro HaraさんはTwitterを使っています 「「64ビットシステムはポインタの先頭16ビットを使用しない(&lt;--ここ使えるじゃん!!)」とか黒魔術ビット演算とかメモリアロケータに手を入れたりとかして、何とかして性能劣化0%の突破口を見つけたい・・・。興味ある人は↓とか読むと何がやりたいのか伝わると思います^^ https://t.co/JoJh30wcqG」 / Twitter
Kentaro HaraさんはTwitterを使っています 「「64ビットシステムはポインタの先頭16ビットを使用しない(&lt;--ここ使えるじゃん!!)」とか黒魔術ビット演算とかメモリアロケータに手を入れたりとかして、何とかして性能劣化0%の突破口を見つけたい・・・。興味ある人は↓とか読むと何がやりたいのか伝わると思います^^ https://t.co/JoJh30wcqG」 / Twitter
Miura HidekiさんはTwitterを使っています 「プログラム解析を駆使して、必要なければGCをスキップして生ポインタを使って必要ならGCを使うっていうことはmmcの経験から可能だろうなーっておもう。問題は、GCとかメモリ管理のランタイム側をそのように対応しないといけないこと。この辺もプログラムに合わせて自動生成するようになっていくと思う」 / Twitter
hikaliumさんはTwitterを使っています 「MTECheckedPtr, めっちゃおもしろい。アロケータのメタデータにタグ情報を突っ込んでおいて、derefするときはそのtagで上位16bitをxorしてからderefする。freeされたらtagを違う値に書き換えておけば、derefするときにnon-canonicalになってuse-after-freeを防げる。うおお。 https://t.co/JVaIsdZhEm」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「https://t.co/tjZR3BEWlU MTECheckedPtr&lt;T&gt; 、なるほどと感心した。セキュリティ的にはオーバーヘッドに対してこれどのくらいカタいのかな。任意アドレスに書く状況になってたらアドレス漏れててタグも漏れてそうで、入口部分の、読ませちゃダメな領域を読んじゃう機会が減るという感じかな」 / Twitter
Kentaro HaraさんはTwitterを使っています 「@shinh タグが漏れてるとアウトだし、せいぜい16bitが限度なので回数攻撃で突破できるかもですね。結局はリスクの程度問題で、いまはUaFのバグ修正に膨大なエンジニアリングコストとインフラコストを費やしてるので、UaFのリスクを減らすことでそれを減らせないかなというお話です。」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@xharaken なるほど、やっぱり mitigation で、トレードオフの問題になる感じですよね。 16bit 限度なのは ASLR の上位 bit に犠牲になってもらえば巨大 null page 作って増やせそうですね……まあ別の mitigation 弱めるのは本末転倒感がありますが。面白いドキュメントありがとうございます!」 / Twitter

Linux

LLVM

本の虫

本の虫: MPEG RVCからLLVMアセンブリを出力するJADE
本の虫: LLVMに電力効率を最適化するコンパイルオプションの議論

blog

LLVM + clang で LLVM IR やアセンブリを出力する – ymyzk’s blog
C のコードから LLVM IR コード(LLVM アセンブリ)を生成したり LLVM ビットコードに変換したりする | Meta Meta Lab.
LLVM IR、LLVM bitcodeを扱うコマンドたちのメモ - 脱力系日記
LLVM bitcodeのCFGを生成する - 脱力系日記
LLVMについて調べたことまとめ - kotetuのブログ
HaskellでLisp to LLVM IRコンパイラ その4 (SSA中間言語) - Arantium Maestum
オープンソース活動がフルタイムの仕事になる仕組みの話|Rui Ueyama|note
2019年度未踏体験記 | カオスの坩堝

OSDN

LLVMのコンパイラ「Clang」、セルフホスティングに成功 | OSDN Magazine
性能を改善した「LLVM 2.5」がリリース | OSDN Magazine
LLVM 2.6リリース | OSDN Magazine
C/C++/Objective-Cサポートが強化された「LLVM 2.8」がリリース | OSDN Magazine
LLVM Project、最後の2.xリリースとなる「LLVM 2.9」を公開 | OSDN Magazine
LLVM Project、LLVM 3.0をリリース | OSDN Magazine
LLVM 3.1/Clang 3.1登場、C++11のコア機能をほぼサポート | OSDN Magazine
コンパイラ環境「LLVM 3.2」をリリース、最適化機能を強化 | OSDN Magazine
最適化機能の強化が行われた「LLVM 3.3」リリース、ClangではC++11のフルサポートを実現 | OSDN Magazine
「LLVM 3.4」リリース、C++14の全仕様をサポートへ | OSDN Magazine
Goバインディングが加わった「LLVM 3.6」リリース | OSDN Magazine
「LLVM 3.9」リリース | OSDN Magazine
「LLVM 5.0」リリース | OSDN Magazine
「LLVM 6.0」リリース | OSDN Magazine
「LLVM 7.0」リリース | OSDN Magazine
「LLVM 8.0」登場、WebAssemblyを正式サポート | OSDN Magazine
「LLVM 9.0」リリース、asm gotoのサポートでLinuxカーネルのビルドが可能に | OSDN Magazine

Qiita

Android・iOS対応のクロスプラットフォームライブラリ、Intel Multi-OS Engine(MOE) - Qiita
LLVM bitcode基礎知識 - Qiita

Twitter

SSA

Miura Hidekiさんのツイート: "llvmでは基本ブロックがすべて独立していて、IRコードが字面上連続していてもジャンプ命令が必要。今度作るのはどうしようか考えている。llvmの仕様はインプリメントでは楽できるが、使う人が大はまりするおそれがある、というか大はまりした。"
zehnpaardさんのツイート: "いったんASTを自分が定義した別のSSA IRに落とし込んでからllvm irに変換するようにした方がスッキリする"
Shunsuke Shidaさんのツイート: "ASTからLLVM IRを作ってた頃は支配辺境が自明な構文(for, if等)ではあっさりとSSA形式に出来たけど、breakやcontinue等で苦労する羽目に。 バイトコードからの方が最終的には正確にやれそう。"
ドッグさんのツイート: "SSA な処理系の中間言語は割とそんな感じかと(LLVM IR とか)… "
Kenta IDAさんのツイート: "LLVM-IRはやっぱ解析するの前提やし、レジスタマシン、SSAなので楽やなーと思ったりする。 #dotnetconf"
Urabe, Shyouheiさんのツイート: "LLVM IRそんな読みづらいかなあ?いやSSAだから手書きは面倒だし書けとは俺も言わんけどさ。読むのは普通じゃね? http://t.co/0AAS8FH0bx"
Urabe, Shyouheiさんのツイート: "LLVM IRがCよりマシな理由第1位として「手書きがめんどう」という話がある(手でSSA変換できるやつは少ない)。なのでクソコードが書かれる蓋然性が低い。"
光のインターネットの闇さんのツイート: "LLVM IRってSSAだからmovっぽいものがない?"
azuさんのツイート: "LLVM IRはSSAなので変数を再利用しない"
κeenさんのツイート: "LLVMのmem2reg、適当なコード吐いても最適化しくれるくらいにしか思ってなかったけどレジスタが全部SSAなLLVM IRだとミュータブルな変数は全部スタック使うしかなくてmem2regがないとまともな速度出ないのか。"
ロックフリーのkumagiさんのツイート: "x86はmov命令だけでチューリング完全の域に達しているのにLLVM-IRにはmov命令が存在しないからやる気が足りない(SSAを根本から冒涜した無知な発言)"

最適化

うー@技術書典8 Day1う31 BitNOSさんはTwitterを使っています: 「Clangってcosやsinなどの数学関数を副作用が無い前提で最適化してくれないっぽい?引数が同じなら何回も計算し直す必要無いはずなのに,律儀に何回も呼び出してくれちゃう。」 / Twitter
yohさんはTwitterを使っています: 「@uchan_nos https://t.co/aVORPK6mI4 -ffast-mathオプションとかどです?」 / Twitter
Compiler Explorer
とみながたけひろさんはTwitterを使っています: 「@yohhoy @uchan_nos fastmathなしだと毎回例外が起きることを期待するからですねー」 / Twitter
yohさんはTwitterを使っています: 「@takehiro_t @uchan_nos https://t.co/VQGtBfFSzw 同じ効果を得るなら、-fno-math-errnoオプションの方が-ffast-mathより"安全"かもですね。」 / Twitter
c++ - How to force GCC to assume that a floating-point expression is non-negative? - Stack Overflow

x86-64-128さんのツイート: "戻り値がvoidではない関数でreturnを書き忘れた場合,Clangだとret命令が生成されないんだね.戻り値がゴミになるだけかと思ったらプログラムが暴走してびっくりした."
Kazuho Okuさんのツイート: "LLVM の bitcode 使うことで GCC のインラインアセンブリよりも(場合によっては)高速なコードが書く方法 / “Kazuho's Weblog: Writing fast code using C++, LLVM b…” http://t.co/tMHWNmCF"
Kazuho's Weblog: Writing fast, processor-independent code using C++ and LLVM bitcode
Kazuho Okuさんのツイート: "内部中間表現として bitcode 使ってるだけならそれで問題ないですしねぇ RT @Constellation: LLVM, 基本くるくる変わるから, project に突っ込むのが常套手段っぽい."
Kazuho Okuさんのツイート: ".@wasabiz コンパイラは、仕様が不安定な LLVM bitcode より C 言語を出力すべきみたいな話をこのまえ同僚とした"
Taisuke OEさんのツイート: "UnityのWebGLサポートの仕組み。 C#ソース -(mcs)-> .NET bytecode -(IL2CPP)-> C++ソース -(clang)-> LLVM bitcode -(emscripten w/ asm.js)-> Javascript #unitej"
Hajime Moritaさんのツイート: "ところで Vulkan といえばセットになってるシェーダ用バイトコードの SPIR というのがまたやばい。LLVM の bitcode そのまま標準かした仕様。一方でシェーダコンパイラを実行時に動かす OpenGL もそれはそれでやばい。グラフィクス近づくべからず。"
Atsushi Enoさんのツイート: "KotlinのIRからLLVM bitcodeを生成するのがKotlin/Nativeの核心で、LLVM bitcodeさえ出来てしまえば後はllvmがやってくれる領域です(純粋bitcodeではないかもしれない)。Kotlin/JVMと共通化できるKotlin IRを設計したのもすごいけど多分これはK/N部隊の仕事じゃない気がする。… https://t.co/ulm8s4JGyZ"
sicさんのツイート: "C拡張を動かすために LLVM bitcode のインタプリタ持ってるの異常 #rubykaigi"
ぬるぽへ@技術書"典"5か31さんのツイート: "「LLVMの真実」、LLVM bitcodeはarch依存の色々なものが入っていて全然portableじゃないしあーき共通じゃない #kernelvm"
Fadisさんのツイート: "LLVMにbinutilsのstripの置き換えを目指す新しいツールllvm-stripが追加された。stripはオブジェクトファイルや実行可能バイナリから不要なシンボルを削除してバイナリを小さくしたり、うっかり必要なシンボルまで削除して実行不能バイナリを作るのに用いられる https://t.co/CxUZNEwHQv"
LLVM-Strip Introduced As An Alternative To GNU Strip - Phoronix
shinichiro hamajiさんのツイート: "#rebuildfm のSwift話、Swiftはclangと違ってもともとSILていう中間言語がLLVM bitcodeの前にあったので、アクセラレータに投げられるTFグラフの抽出がこのレイヤで自然に行なえる、て話があるのも面白いところだと思う。SILについては https://t.co/4u2GuUI07K"
SIL v13.key
朝はむずかしいさんのツイート: "MS がLLVM IRへのデコンパイラを出したっぽい。今のところ、ELFにのみ対応。https://t.co/DJeVnAPKrq"
Microsoft/llvm-mctoll: llvm-mctoll
10/27,28はOSC Tokyoさんのツイート: "Clangに-fno-pltを付けることが自作OSだと重要かも."
OS自作したい。技術書典6・う38さんのツイート: "vimの補完にclangdを使っているんだけど,しばらくvimを起動しっぱなしにするとclangdがめっちゃメモリ食ってある瞬間にほぼ動作が止まってしまう."
Fadisさんのツイート: "clang9から新しいオプション-ftime-traceが追加されている。gccやclangは以前から-ftime-reportでコンパイルのどの段階にどの程度の時間を要したかを出力できたが、-ftime-traceでは更に階層的な処理の内訳をchrome://tracingで読めるJSON形式で出力する事ができる https://t.co/jIyy3xv6yQ"
LLVM Clang 9.0 Adds "-ftime-trace" To Produce Useful Time Trace Profiling Data - Phoronix
Makoto Kato ︎︎さんのツイート: "The Clang AST can now be dumped to JSON. https://t.co/PTLLZ1yknh まじか"
rL360622
Fadisさんのツイート: "GoogleがLLVMと組み合わせて使う新しいlibcを作ろうとしている。新しいlibcは既存のlibcよりモジュラ−で、non-PIEやstatic-PIEな実行可能バイナリをロードでき、基本的には標準に沿って実装するが今日では使われないような機能まで網羅するつもりはないとしている https://t.co/KoEd3Wl1G6"
Google Developers Are Looking At Creating A New libc For LLVM - Phoronix
Fadisさんのツイート: "LLVMメーリングリストに投稿された内容では、このlibcは少なくとも当初はx86_64だけをターゲットとして実装するとされているが、それに対して別のGoogleの中の人が「Fuchsiaで使いたいからAArch64で動かしたいんだけど、どのへんがアーキテクチャ依存になるの?」って返してる https://t.co/oYxtjLR0u7"
[llvm-dev] A libc in LLVM
uint256_tさんはTwitterを使っています: 「実際, CilkがどのようにIRをアセンブリにまで落としているのか簡単な経路を書くと, IR &gt; DAG &gt; MachineInst &gt; アセンブリ となる」 / Twitter
uint256_tさんはTwitterを使っています: 「@uint256_t さっさとDAGの説明に移りましょう. IRはDAG(directed acyclic graph)形式へと変換される. なぜこんなことをするのかと言うと, グラフ構造のほうがパターンマッチなどを使った変換がやりやすいから.」 / Twitter
uint256_tさんはTwitterを使っています: 「@uint256_t この時点で, 例えば ((node + c1) + c2) のようなグラフが, (node + (c1 + c2)) と変換されます. (cXは定数, c1+c2は定数畳込みされる) ほかにも, x86など複雑なアドレス指定ができる環境では, loadやgetelementptrのまとまりを一つの命令に置き換えるなどの処理もする」 / Twitter
uint256_tさんはTwitterを使っています: 「@uint256_t 次はMachineInst. DAGはMachineInstへと変換されるが, これは何なのかというと もはやグラフ構造ではなく命令の列. どんな命令なのかと言うと, 特定の命令セットの命令や, Cilk特有の命令が混じった状態のもの.」 / Twitter
uchanさんはTwitterを使っています 「__attribute__((interrupt))を付けているのに,Clangがスタックの計算をミスっている気がするよ。」 / Twitter

LLVM - Wikipedia
LLVM Language Reference Manual — LLVM 9 documentation
LLVM Bitcode File Format — LLVM 8 documentation
LLVM Bitcode Introduction
emit-llvm - Google 検索
clang - the Clang C, C++, and Objective-C compiler — Clang 10 documentation
"compiler-rt" Runtime Library
libunwind LLVM Unwinder — libunwind 8.0 documentation
LLVM Backend の紹介
AddressSanitizer — Clang 11 documentation
Compiling Native Projects to LLVM Bitcode

GCC

KMC Staff Blog

KMC Staff Blog:cast-as-lvalue
KMC Staff Blog:gccの便利なオプション (-save-temps)

本の虫

本の虫: GCCのSVN trunkをビルドする方法
本の虫: Linus Torvalds、 GCC 4.9.0のコード生成にブチ切れる
本の虫: LLVM/Clangがぜってーサポートしねーと宣言しているLinuxカーネルに多用されているGCC拡張
本の虫: GCC 5.0でのx86におけるPICの改善と、いかに32bit PICコードがクソであるかというお話
本の虫: GCC 4.8でぶっ壊れるSPECのお粗末なコード
本の虫: GCCエクスプローラー
本の虫: ソフトウェアの思想が設計にもたらす影響
本の虫: GCC 6にインデントミスの警告機能が追加

blog

x86/x86_64関数呼び出しチートシートを書いた | d.sunnyone.org
[GDB] Linux x86-64 の呼出規約(calling convention)を gdb で確認する - th0x4c 備忘録
はじめてのにき(2018-09-28)
SEGV探偵が往く - なるせにっき
gcc 組込み関数(memcpyとか)のインライン展開抑制
GCCの拡張機能を使ってSTLもどきを作る | 株式会社きじねこ
melancholic afternoon
gccのインラインアセンブラ内からcのラベルにgotoでジャンプ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
GCCの-Wshadowとその推移について、あとお前を消す方法 - in neuro
GCC 11のビルドとldconfig - uchan note
LD_LIBRARY_PATH を設定しても反映されないことがある | 穀風

OSDN

GCCプロジェクト、25周年記念リリースとなるGCC 4.7.0を公開 | OSDN Magazine
C++への移行が完了、最適化機能も強化された「GCC 4.8」リリース | OSDN Magazine
C++11やC++14のサポート改善や最適化機能の強化が行われた「GCC 4.9」リリース | OSDN Magazine
GCC 5系初のリリースとなる「GCC 5.1」登場 | OSDN Magazine
「GCC 5.2」リリース、多数のバグが修正される | OSDN Magazine
140件以上のバグを修正した「GCC 5.3」リリース | OSDN Magazine
5系で最後のリリースとなる「GCC 5.5」公開 | OSDN Magazine
「GCC 6.1」リリース、C++14がデフォルトに | OSDN Magazine
「GCC 6.4」リリース、不具合修正がメイン | OSDN Magazine
「GCC 7.1」リリース、長らく使われていたReloadがLRAに置き換えられる | OSDN Magazine
「GCC 7.2」が公開 | OSDN Magazine
「GCC 7.3」リリース、CPUの脆弱性「Spectre」への対応も含む | OSDN Magazine
「GCC 8.1」リリース | OSDN Magazine
8系最初のポイントリリースとなる「GCC 8.2」が公開 | OSDN Magazine
「GCC 7.4」が公開、バグ修正が中心 | OSDN Magazine
「GCC 8.3」リリース | OSDN Magazine
「GCC 9.1」リリース、D言語サポートが追加される | OSDN Magazine
「GCC 9.2」リリース | OSDN Magazine
GCC7系の最終リリースとなる「GCC 7.5」リリース | OSDN Magazine

Qiita

GNU コンパイラ・コレクション C言語拡張 - Qiita
x86-64プロセッサのスタックを理解する - Qiita
MacのGCCで返り値を返さない関数を書くと鼻から悪魔が出る - Qiita
コンパイラのリミッタが外れつつある今、null安全は必須なのかもしれない - Qiita

Twitter

Fadisさんのツイート: "メモリ1GBのマシンではもはやGCCのアップデートが自力でできないという厳しい現実に直面している"
Fadisさんのツイート: "gcc「警告: {}無しのif文の次の行に同じインデントで文を書くの、if文の中身と見間違われるからやめといたほうがいいんじゃないかな」"
品川 高廣さんのツイート: "MinGW の gcc は -mno-ms-bitfields を付けないと struct の __attribute__((packed)) を黙って無視するのか。これは酷い。"
Kazuho Okuさんのツイート: "gccにも__has_builtinが来そうな流れ? / “66970 – Add __has_builtin() macro” https://t.co/Zacd0derfz"
NOKUBI Takatsugu野首貴嗣さんのツイート: "SEGV探偵が往く - なるせにっき https://t.co/1FXYvbbQcM 「CFLAGSの行に-save-tempsを追加してビルドし直すとコンパイル中の一時ファイルが残ります」知らなかった。ずっとgcc -Eしていた…結構前に新設されたオプションのようだ"
Kazuho Okuさんのツイート: "union使った型変換はコンパイラ依存。GCCでは合法 https://t.co/zqOrxLkF3K"
Structures unions enumerations and bit-fields implementation - Using the GNU Compiler Collection (GCC)
とみながたけひろさんのツイート: "そうそう、最近のgccって「おまえバージョンコントロールソフトでコンフリクトした部分を直してないだろ」とか「これはgoto failバグじゃねーの」みたいなのを専用の警告で教えてくれるんだよな。なんか笑ってしまうが笑ってはいけないんだろうな…"
taklさんのツイート: "昔相当頑張って調べた記憶がある。昔の話だけどEBP使わずにESPだけを使うと遅くなるケースがかなりたくさんあった。gcc3の頃は-O3付けても-fomit-frame-pointerが有効にならなかった。最近は-O3付けると-fomit-frame-pointerが自動で有効になるから、コンパイラかCPUの進化で良くなったんだろう(昔話)"
はぇ~☆さんのツイート: "ローカル変数にEBPを使うのはABIでそう定められているからなので、本来、最適化とは関係ないっぽいです。ESPを使えば汎用変数が1つ自由になるので確実に速くなります。EBP / ESPどちらにしてもスタックのアライメントに注意しないとローカル変数の参照が遅くなります。… https://t.co/aeyDBYlgSl"
はぇ~☆さんのツイート: "んで、EBPを使う場合はスタックのアラインメントとは別にEBPのアライメントが可能なので、コード生成が楽になります。とはいえESPとてスタックに積むサイズに注意を払えばアライメントは維持できるわけで。そんな程度の差だそうです。… "
taklさんのツイート: "こんにちは。気になったので少し調べてみたのですが、最適化マニュアルの1997年版では「葉関数ではEBPをGPRとして使え」1999年版では「デバッグ情報が不要なときはESPベースの、必要なときはEBPベースのスタックフレームを使え」になっていました。世代毎に色々ありそうですね。… https://t.co/xKWo4ndu8C"
Kazuho Okuさんのツイート: "sprintf(char [6], "%" PRIu16, ...) が GCC でバッファサイズが足りないと言われることがあるというのと、それが HEAD で修正されたという話を読んだ。なるほどこれはこうなるわ... https://t.co/R8961RXSTB"
Kazuho Okuさんのツイート: "習性としては、予約済のマクロを再定義した場合の挙動は未定義という規約を利用して、GCC側で PRIu16 のマッピングを "%hu" あたりにハードコードしたのかなと想像"
ともきさんのツイート: "gcc -g でコンパイルして objdump -S すると (VS でよくある) アセンブラと C を同時に見るモードになることがわかった https://t.co/Wat6thyOgE"
Shiro Kawaiさんのツイート: "うお、いつの間にかgccが、未宣言関数呼び出しのwarningに似ている関数名をdid you mean...?ってサジェストしてくれるようになってる"
Fadisさんのツイート: "gccの-Wallが名前に反して全ての警告を有効にしなくて、更に多くの警告を有効にするための-Wextraがあるけど、それでも有効にならない警告があって、そいつらを1つづつ有効にするのめんどくさいから、-Weverythingで全部有効になるようにしようぜ、という提案がなされている https://t.co/ygUtTq7uwJ"
GCC Unlikely To Adopt A "-Weverything" For Exposing All Possible Code Warnings - Phoronix
Fadisさんのツイート: "gccの警告全部盛り-Weverything、一見良さそうに見えるけど「お前のインデントが気に入らない(-Wmisleading-indentation)」とか「Effective C++読んで出直してこい(-Weffc++)」とかものってくるわけでだな…"
Fadisさんのツイート: "コンパイルエラーを人間が読みやすい形で出力する事は一方でコンパイルエラーをパースするスクリプトを発狂させる事になる為、gcc9はコンパイルエラーをより読みやすい形式に変更すると同時に、コンパイルエラーをJSONで出力できるようになるらしい https://t.co/tgysp6OBnu"
にゃははー仙人さんのツイート: "インクルドガードがわからないから2回読まないといけないというの、もう何年も前にコンパイラはインクルードガードを識別して展開をスキップしてるからそれは速度向上の理由じゃない https://t.co/MdEYZD2Njp #cppmix"
The GNU C Preprocessor Internals: Guard Macros
Fadisさんのツイート: "svnからgitへの移行を進めるgccが一部のまだ変換されていないブランチを除いてgithubで見れるようになったらしい。gccはsvn上の全てのブランチ、全てのコミットをgitに移そうとしていたが、gccの歴史が長すぎて難航、メモリ価格の高騰によって頓挫しかかったりしていた https://t.co/arBhv3e3iI"
A Linaro Developer Has Taken Up The Effort Of Converting GCC's SVN To Git - Phoronix
Fadisさんのツイート: "これ、コンパイラのバージョンの問題じゃなくてNXビットまたはそれに類する仕組みを持つアーキテクチャであることと、ldがそれを活用していることの2つが条件じゃないかな"
←↓↑→さんのツイート: "今日一部の識者と話した結果、main = 195;は最新のgccでコンパイルした場合だとSegmentation faultが発生してしまうけど、__attribute__((section(".text"))) main = 195;ならば動くという事を知った。 実行結果:https://t.co/Yg3pVuNDHT"
Kazuho OkuさんはTwitterを使っています: 「C互換のクロージャは昔のGCCが-fnested-functionでやってて、あれはスタック上にトランポリンコード生成してたけど、ヒープにコードと変数領域わけるとか近代的なやり方すれば今でも可能だとは思うんですよね」 / Twitter
taklさんはTwitterを使っています 「「GCCだと」整数をポインタにキャストしたときのビット表現がどうなるか定められている。 https://t.co/uTEjdbk3Gn ヌルポインタは「定数の」0をポインタに変換したときに得られるので、ヌルポインタでないビット表現が0のポインタを得るには (void *)(uintptr_t)0 とかでいいと思うけど、自信ない。」 / Twitter
Using the GNU Compiler Collection (GCC): Arrays and pointers implementation
herumiさんはTwitterを使っています 「https://t.co/37AzusUhoc Cの規格(6.3.2.3 3)では整数定数0か(void*)0がヌルポインタ(NULL)。NULLへのアクセスは未定義。したがって0へのアクセスは不可能。それ以外の整数からポインタへのキャストは処理系依存。 このコードはNULLへのアクセスと等価とみなしてgccやclangはud2を生成するようです。」 / Twitter
hikaliumさんはTwitterを使っています 「@uchan_nos uint8_t *p = 1; p--; *p = v;」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@hikalium @uchan_nos アドレスを即値指定した時点でUBになったりしません? だとしたら0番地に書くのも処理系・プラットフォーム依存なのでその処理系特有のマクロが用意されていると仮定して良さそうな」 / Twitter
herumiさんはTwitterを使っています 「ちなみにud2は無効例外を出す命令。 CPUのパイプラインでud2を検出すると継続する命令のデコードを停止してCPU負荷を下げる働きをします(Intel最適化マニュアル3.4.1.5 Branch Type Selection)。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi これカーネルや組込だと怖い感じがするのですが、別途0番地へのアクセスを許可したりNULLを別の値に変えるコンパイラオプションがあるのでしょうか」 / Twitter
herumiさんはTwitterを使っています 「@kazuho ちゃんと調べてないですがgccだと-fno-isolate-erroneous-paths-dereferenceというオプションがありました。 *(char*)0 = 1;が-Ofastでも期待通りの出力をしました。clang-8はそのオプションは無いようです(同様のものがあるかは未確認)。」 / Twitter
herumiさんはTwitterを使っています 「@kazuho -fno-delete-null-pointer-checksだとgcc/clangともに*(char*)0 = 0;で期待する(?)コードがでました。dereferenceしてるのでその先のポインタはNULLじゃないとみなす? 本来int a = p-&gt;v; if(!p)...の後ろのチェックを省略するやつ(デフォルトon)なので意味的に逆な感じもするのですが。@hikalium」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@herumi @hikalium おー。名前はともかく https://t.co/PrJRKGyXl9 の説明みると、これが null へ理由があってアクセスしうる場合に設定すべきフラグのようですね」 / Twitter
C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium

Q & A

C - アセンブリとC言語(47437)|teratail
c - Trying to understand gcc option -fomit-frame-pointer - Stack Overflow

depfile gcc format - Google 検索
GCC -mtune 何やってるか
微妙に便利なgccのオプション - in neuro
difference between gcc and vc
C++とCは互換ではないです (#2214382) | GCC、CからC++への移行が完了 | スラド
Using and Porting the GNU Compiler Collection (GCC) - C 言語ファミリに対する拡張機能
新しいGCC 8.1がC++2aのいくつかの機能をサポート
45977 – "warning: 'i' initialized and declared 'extern'" could use a separate warning flag controlling it
C言語におけるラムダを関数マクロで実現したものです。 GNU拡張文法(複文の式化、関数内の関数定義)を用いているので、gccでしか用いることができません。 また、トップレベルで用いることも不可能です。 C++でもコンパイルエラーにならないように、C++0xのラムダに変換するようにしています。 利便性を考え、ある程度の省略表記を許すようにしています。
GitMirror - GCC Wiki
Instrumentation Options (Using the GNU Compiler Collection (GCC))

list_head ‐ 通信用語の基礎知識
list_entry ‐ 通信用語の基礎知識
container_of ‐ 通信用語の基礎知識
linux-2.6.25/container_of() - コグノスケ
ユーティリティー - container_of() - linuxのメモ
container_ofマクロ - Linuxの備忘録とか・・・(目次へ)
container_of(マクロ): ふらふら日記
container_of()/linux2.6 - LinuxKernelHackJapan
おべんきょーぶろぐ: container_of
container_ofでsysfsのコールバック関数を一元化 - shimada-kの日記
Callgrind + Kcachegrindで関数呼び出しのトレースをする - Qiita
ソースコード直接実行のテクニック - 何とは言わない天然水飲みたさ
bcc(1): Bruce's C compiler - Linux man page
あじのり→ᓚᘏᗢ ‹ロボマス!さんのツイート: "関数の型を書いたあと改行するスタイルは初めて見た… "
藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "それはUnixでは標準的なスタイル。こうすると^hogeで関数定義を探せる。GNU https://t.co/JQuSui39Oi もこのスタイル。https://t.co/7N1kAyiaDH"
GNU Coding Standards
SODA Noriyukiさんのツイート: "*BSD系のカーネルで使われているスタイル KNF - kernel normal form もこのスタイルですね: https://t.co/njRYAuY76V… "
src/share/misc/style - view - 1.54
社会人でもOSを作りたいさんはTwitterを使っています: 「初心者がC言語でまず覚えるべき構文 __attribute__((interrupt))」 / Twitter
電子工作室

blog

NASA 小野雅裕氏に聞く、なぜ宇宙では「C言語」が使われるのか 『宇宙兄弟』の人気コラムニスト|ビジネス+IT
メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog
10年ほど後のBinary Hacks - 兼雑記
はじめてのにき(2018-06-21)
C言語で部分適用したい!(実は、できるアーキテクチャがあるんです) - 簡潔なQ
プログラミング、リファクタリング、そしてすべてにおける究極の疑問 | iSUS
巡回的な添字
const char* const p = "ABC"; と const char q[] = "ABC"; はどちらがよいか、みたいな与太 - memologue
Cの配列はa[i][j]とa[i*Nj+j]のどちらが速いか試してみた | ナンクル力学系
CASL II 入門講座 第5章 数値を10進数の文字列に変換する
10進文字列と整数値の相互変換 - プログラミングのメモ帳
整数を文字列に変換してみる: 毒を食らわば皿までど~ぞ
セルフホスティングCコンパイラを書いた - 茅の下
コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記
compilium v2 におけるdeclarationの実装 - /var/log/hikalium
低レイヤを知りたい人のためのCコンパイラ作成入門
RailsでTZ環境変数を設定するハックを不要にした話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
マジックナンバー0x03F566ED27179461の求め方とHD流のNLZ - Koonies/こりゃいいな!
cccコンパイラのバックエンド - molecular coordinates
本の虫: MSVCのSTLがGitHubで公開
microsoft/STL: MSVC's implementation of the C++ Standard Library.
Kazuho's Weblog: C言語で配列の要素数を安全に数える話
atoi関数のかしこい実装 - yohhoyの日記
条件変数 Step-by-Step入門 - yohhoyの日記(別館)
C++ミューテックス・コレクション -みゅーこれ- 紹介編 - yohhoyの日記(別館)
C++ミューテックス・コレクション -みゅーこれ- 実装編 - yohhoyの日記(別館)
MS-DOS(PC-98)のアプリケーションをC言語で作る - 少ないリソースを酷使する
レトロPCとレトロプログラミング カテゴリーの記事一覧 - 少ないリソースを酷使する
独自診断メッセージ diagnose_if属性 - yohhoyの日記
ビルドもできるヘッダオンリーライブラリ - in neuro
C言語のワイド文字入出力 | 雑記帳

POSTD

学校では習わないコーディングスキル:オブジェクト所有権 | プログラミング | POSTD
C言語 | POSTD
高速なハッシュテーブルを設計する | プログラミング | POSTD
C言語パズル集:Cにまつわる興味深い問題あれこれ | プログラミング | POSTD
2016年、C言語はどう書くべきか (前編) | プログラミング | POSTD
2016年、C言語はどう書くべきか (後編) | プログラミング | POSTD
C90, C99, C11, C++98, C++11で異なる動作をするコード | プログラミング | POSTD
C++11のスレッド、アフィニティ、ハイパースレッディング | プログラミング | POSTD
C言語、知ってるつもり? | コンピュータサイエンス | POSTD
私はC言語を知らない | コンピュータサイエンス | POSTD
型安全性とは何か | プログラミング | POSTD

Qiita

printf のマイナーな機能の紹介 - Qiita
linuxカーネルで学ぶC言語のマクロ - Qiita
1バイトが8bitに定まったのは2008年 - Qiita
char の符号 - Qiita
sizeof演算子にまつわるアレコレ - Qiita
C言語のバグ回避をするための習慣 - Qiita
C言語分かってなかった (I Do Not Know C) - Qiita
C言語のポインタを含む構造体の初期化まとめ。 - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第1回 : 整数型の怪と対策の不足) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第2回 : 符号無し整数型のチェック) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第3回 : C言語の整数の性質を知る) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第4回 : 符号付き整数型のチェックと動機の動機) - Qiita
C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第5回 : 続・符号付き整数型のチェック) - Qiita
printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita
Asyncify を使ってみた - Qiita
reallocの怪 - Qiita
C言語における多次元配列の動的な確保 - Qiita
MISRA related document - safety and security on c and c++ - Qiita
Ancient C探訪記
shinichiro hamajiさんはTwitterを使っています 「式だと 6B が最短だと思ってて、その中では --*""; が好きで SEGV デバッグする時に使ってる https://t.co/3r8zdb42JH」 / Twitter
C言語で16文字でセグフォらせる - Qiita
C言語でオブジェクト指向を表現する (クラス、継承) - Qiita
無料になったIntel compilerをCentOS8にインストールしてみる - Qiita

GitHub

mimalloc

ドッグさんのツイート: "MS が公開した新しい汎用メモリアロケータ mimalloc 気になる.3500 LOC の小ささで高速高効率(benchmark あり)セキュアで,malloc をそのまま置き換えて使える | 'microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.' https://t.co/NSYMGEXf8N"
microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.
ドッグさんのツイート: "まだよく読んでないけど,でかい1つの free list ではなくページごとの小さい free list をたくさん持つらしい.あとページ内のメモリが全開放されると積極的に OS に返すらしい.technical report の paper: https://t.co/Bt9lC3zhMz"
Mimalloc: Free List Sharding in Action - Microsoft Research
Microsoft、高性能メモリアロケータ「mimalloc」公開 | マイナビニュース

libdivide, optimized integer division
ridiculousfish/libdivide: Official git repository for libdivide: optimized integer division
はじめてのにき(2018-03-13)
8cc/parse.c at master · rui314/8cc · GitHub
rui314/9cc: A Small C Compiler
https://maierfelix.github.io/mini-c/
maierfelix/mini-c: C to WebAssembly compiler
まさみさんは語りたいさんのツイート: "G-FreeはROPで利用されるガジェットになりうるコードシーケンスを生成しないCコンパイラのようだ。そしてx86のガジェットコード面白い。CISCだけにやりたい放題だ(笑)。 https://t.co/xm0vGaR1Tk… "
acsac2010rop.pdf
pagabucさんのツイート: "Today we are releasing clang-gfree, a set of LLVM machine passes to produce (almost) gadget-less binaries for x86-64! Go check it out: https://t.co/ZSUIe4gJtr"
pagabuc/gfree: Implementation of G-Free: Defeating Return-Oriented Programming through Gadget-less Binaries
Fadisさんのツイート: "libxsmm: Intelアーキテクチャ上で小さい行列を効率よく計算するために作られたライブラリ https://t.co/JCouuNTCnW #kernelvm"
hfp/libxsmm: Library targeting Intel Architecture for specialized dense and sparse matrix operations, and deep learning primitives.
gifnksm/gifcc: Tiny c compiler
chikoskiさんのツイート: "ES5をCにコンパイルするツール、JS2C https://t.co/zkhgpD4DzY 開発中のようで、ノート(https://t.co/m9rliFekyO)やブログ(https://t.co/GQBeobM22z)は示唆に富んでて面白い。"
js-to-c/NOTES.md at master · timruffles/js-to-c
septag/sx: Portable base library for C programmers, designed for performance and simplicity.
cdecl.c
Rui Ueyamaさんのツイート: "不必要に難しいことで有名なC言語の型の構文を解説してみた。これを読めばvoid (*signal(int, void (*)(int)))(int)とかも読めるようになるはず(多分)。 https://t.co/a85pc5FsV2"
低レイヤを知りたい人のためのCコンパイラ作成入門
(*(void (*)())shellcode)() とは - Qiita
hiromi-miさんはTwitterを使っています: 「というわけで #seccamp 2019 Y-II Cコンパイラ自作ゼミに参加してきました、ありがとうございました. 結局、C++のクラス機構の一部、ステップ実行情報の出力、template &lt;typename T&gt;add&lt;T&gt;(T a, T b); のような関数定義を実体化できるようにしました. 進捗は次の通りです: https://t.co/tiEFbPYtG0」 / Twitter
hiromi-mi/hanando-fukui: Self-hosted (Subset of) C Compiler
DoctorWkt/acwj: A Compiler Writing Journey
Cello • High Level C
orangeduck/Cello: Higher level programming in C
arithy/packcc: A packrat parser generator for C
Rui UeyamaさんはTwitterを使っています 「いままでにないレベルでchibiccに機能追加している人からメールがきた。GCC互換inline asmとかint128みたいな機能とかが増えてる。これはすごいな。https://t.co/LlyFPZiD6z」 / Twitter
cosmopolitan/README.cosmo at master · jart/cosmopolitan

Wikipedia

演算子

条件演算子 - Wikipedia
エルビス演算子 - Wikipedia
Null合体演算子 - Wikipedia
Null条件演算子 - Wikipedia
Three-way comparison - Wikipedia
CとC++の演算子 - Wikipedia
CとC++の演算子 - Wikipedia

ライブラリ

ssize_t ‐ 通信用語の基礎知識
time_t - Wikipedia
printf - Wikipedia
printf - Wikipedia
strlcpy - Wikipedia
strlcat - Wikipedia
strlcpy(3)
strscpy
まさみさんは語りたいさんのツイート: "TLの皆さんから教わったstr*cpy再度まとめ ・strncpy:固定長の配列に文字列をコピーするための関数 ・strlcpy:ユーザが勘違いしているstrncpyの挙動をするように作られた ・strscpy:挙動をより安全側に倒したstrlcpyの実装(ただし極端なアドレスを渡せば死亡する)"
まさみさんは語りたいさんのツイート: "ちなみにlinuxカーネルのstrncpy_from_*は動作が違う・・・ ・strncpy_from_user:strncpyとほぼ同じだがdstの残りを0埋めはしない ・strncpy_from_unsafe:strscpyとほぼ同じだが-E2BIGを返さない。"
まさみさんは語りたいさんのツイート: "strscpyの実装、面白いな。2つのループになってるのか。1つ目はlong型でaligned access、2つ目はcharで1byteずつアクセスしてる。"

引数 - Wikipedia
評価戦略 - Wikipedia
結合法則 - Wikipedia
冪乗 - Wikipedia
絶対値 - Wikipedia
端数処理 - Wikipedia
フリースタンディング環境 - Wikipedia
C99 - Wikipedia
C11 (C言語) - Wikipedia
mattnさんはTwitterを使っています 「C言語の switch 文、緩すぎて脱法できちゃうからなぁ。 https://t.co/lS7fAWSXZL」 / Twitter
mattnさんはTwitterを使っています 「ちなみにこれは Duff's device という手法です。 https://t.co/iBSCogYHQp」 / Twitter
Duff's device - Wikipedia
Kazuho OkuさんはTwitterを使っています 「これ send(short to, short from, int count) { if (count &gt; 0) to[0] = from[count -1]; } と等価だよね、という」 / Twitter

Twitter

その他

histric-1

Kazuho Okuさんのツイート: "Cのソースファイルから(プリプロセッサかけた後でもいいので) ASTをサクッと、JSON等で取り出すプログラムってないのかしら。structをダンプするコードを生成したい"
Kazuho Okuさんのツイート: "こういうコードを手書きするの嫌なんです… "
成瀬さんのツイート: "libclangとか使う感じですかねぇ。前に書いたスクリプトだと https://t.co/tcqh5OJUIm こういう… "
Add CRubyBot · nadoka/nadoka@1b7ae45
Kazuho Okuさんのツイート: "libclang を使うプログラムを書くのは嫌じゃーって思ってたんですが、なるほど FFI で叩くという手は良いかもですね… "
Daisuke Makiさんのツイート: "うろ覚えですが、これがgoで似たようなことしてた気がします https://t.co/OLAFiEnzhp… "
Kazuho Okuさんのツイート: "srd!!! ありがとうございますありがとうございます… "
Yoshimasa Niwaさんのツイート: "`clang -cc1 -ast-dump` の結果をなんかスクリプトでちょいちょいする感じですかね… "
Keigo Imaiさんのツイート: "大昔に Haskell の Language.C で似たようなことをやりました。この手のことをやるの代数的データ型があると最強ですね。 https://t.co/kzjJukBpUH… "
Language.C を使ってC言語のソースコードを解析する (with Data.Generics) - keigoiの日記
ケケモコソカメニハさんのツイート: "https://t.co/L82sPEejNW ocamlですが、まさにそういうことを目的としたCILもあります… "
cil-project/cil: C Intermediate Language
Qさんのツイート: ".oO(CIL開発が停滞しているのでは。。。)… "
島鉄雄さんのツイート: "stdio バッファは printf 等が改行を出力する度にバッファをフラッシュするもんだと思ってた。 printf は改行かもしれないけど、fwrite はファイルに書き出した後に fflush() せずに close() (fclose() でない)すると何も書きだされない。 I/O のたびに自動的にフラッシュするは違うような気がする…… https://t.co/s6nvyep2Pq"
島鉄雄さんのツイート: "#include <stdio.h> #include <unistd.h> int main() { FILE* file = fopen("test.txt", "w"); fwrite("test", 1, 4, file); // fflush(file); close(fileno(file)); } このコードを実行すると 0 バイトの test.txt が書きだされる。(Linux, Windows とも) fflush() すれば勿論 4 バイトになる"
島鉄雄さんのツイート: "Wikipedia を見ていたら uint64_t xorshift128plus(uint64_t state[static 2]) { [static 2] みたいな書き方を始めて見た… stackoverflow に答えがあったけど、少なくとも2要素があるという事らしい でも1要素の配列を渡してもワーニングすら出ないのはC言語らしいがw https://t.co/cTYZuD0pn9… https://t.co/QrK99wKVS9"
c - What is the purpose of static keyword in array parameter of function like "char s[static 10]"? - Stack Overflow
コンパイラ作りの魅力を語る / Making compilers is fun - Speaker Deck
DQNEOさんのツイート: "PHPerKaigi 2019で、C/Goコンパイラを作る過程で学んだことについて話しました! 資料を公開しました。 「コンパイラ作りの魅力を語る」 https://t.co/CRvivRYFAa #phperkaigi"
Kazuho Okuさんのツイート: "C言語、だいたいいいんだけどクロージャがないことだけが辛い"
Fadisさんのツイート: "ベアメタルC++動かす準備ってCで使ってたldscriptにvtable置き場足して、bssとdataを初期値にして(Cでもやるやつ)preinit_arrayとinit_arrayの中のポインタを全てcallして(Cでもやるやつ)、ハードウェアのセットアップして(Cでもやるやつ)mainに飛ぶだけ(Cでもやるやつ)だったと思うんだけどな"
Fadisさんのツイート: "ベアメタルC++でnewするにはメモリ確保できる必要があるけど、libstdc++のlibsupc++を使う場合最終的にlibcのmallocが呼ばれる。libcにnewlibを使う場合最終的にプラットフォーム毎に実装する関数_sbrk()にたどり着く為、「newされたらどうしよう」はここで解決すると良い"
品川 高廣さんのツイート: "gcc/clang限定。 #include <stdio.h> int main(int argc, char *argv[]) { if ((void*)main < __builtin_return_address(0) && __builtin_return_address(0) < &&e + 0xff) return argc > 1 ? *argv[argc-1]-'0' + main(argc-1, argv) : 0; printf("%d\n", main(argc, argv)); e: return 0; }… https://t.co/V5IzQQX9y9"
hikaliumさんのツイート: "これの何がおもしろいのかというと、低レイヤの人なら親しみのある「その型のアドレスの下位ビット、常に0では?」というネタに加え、ポインタ-整数キャストをできないなら隣接要素のアドレス差が1byteのchar*にキャストして(char*)0との差分を取ればいいじゃない、という狂った発想です。 #w2019progB… https://t.co/zTUX91qJfR"
hikaliumさんのツイート: "ついにワンライナーになった(誰も嬉しくない)。 #include <stdio.h> int main(int c, char*v[]) { return c>=2? ((char*)v-((char*)0))&1? ((char**)(((char*)v-((char*)0))-1))[1][0]-'0'+main(c-1,v+1) :printf("%d¥n",main(c,(char**)(((char*)v-((char*)0))|1))) :0; }"
品川 高廣さんのツイート: "関数末尾のアドレスを正確に求められないのが難点。このコードは clang -O3 でコンパイルすると、ラベル e の後ろで main() を呼び出すコードが生成される。asm volatile ("") を挟むと clang では回避できるが、今度は gcc で動かなくなる。UNIX 限定なら etext が使える。"

histric-2

島鉄雄さんのツイート: "C11を使ってオブジェクト指向もどきをしてみた。 https://t.co/fG0XngOOfp 自前プリプロセッサでオブジェクト指向する方法は色々あるけど、C11だと合法的(?)にここまで出来るっていうテスト。 自前プリプロセッサを突き詰めると別言語になってしまうけど、この程度なら全然良いんじゃないかね。… https://t.co/nmmm8OqDyi"
C 言語でオブジェクト指向(案)
島鉄雄さんのツイート: "ほんとはコンストラクタとか凝りたかったけど、長くなるので今回は割愛。 C11 でオブジェクト指向する標準的な規約(プロトコル)を少し考えたくなった。 最終的には GObject に行きつくだけかもしれないが… いや GTK の API にこのプリプロセッサをかませばいいのか…"
Kazuho OkuさんはTwitterを使っています: 「return a == b; を書き直させられた話、「言語仕様知ってればわかるだろ」って批判するなら、GCCの「ビット演算子と比較演算子を組み合わせる場合には () を使え」っていう警告(-Wparentheses)も同じ勢いで批判してほしい気持ちある」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「なんていうか、言語仕様知ってればわかるだろ、っていうのは読みやすさに関するコンパイラの警告全否定する話だし、return a == b が許容されるのは、return a = b が警告を出すという前提において、読み誤りようがないから、とかそういう理由づけになるんじゃないか」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「sprintfで「%.8s」という記法が役立つ日が来た。%sに対して精度(.n)を与えることで配列の末尾がnul終端されてなくても使えるんだよ。っていうのを以前ベテラン組み込みエンジニアさんから教えてもらった。」 / Twitter
7594591200220899443さんはTwitterを使っています: 「(Cの)const外しキャストは従来から違法だったわけだけど、const外しキャストが違法であることを積極的に活用してconst外し==dead code判定==最適化で消すコンパイラが爆誕して人類とバグとの戦いは新たなステージへと https://t.co/P8R6MnVMLB」 / Twitter
7594591200220899443さんはTwitterを使っています: 「const外しキャストは明示的なキャストなので、プログラマの意図を尊重するため型の不一致の警告とかは出ない。出ないが、const外しキャストをdead codeの意図で使ってるプログラマなどいないはずなので、結果的に警告も何もなく既存のプログラムがなぜかぶっ壊れるという惨状が発生している」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「me freaks, adds `#define const` https://t.co/iHMVgTHXmC」 / Twitter
Shiro KawaiさんはTwitterを使っています: 「そうか、constなオブジェクトを変更することがUBなんであって、const落としても変更してなければ大丈夫なのか。 https://t.co/AlXoj5CheU」 / Twitter
yohさんはTwitterを使っています: 「@n_soda このケースはconst-ness objectそれ自身に対してconst除去したからマズイいのであって、const char* process0(const char*)内部実装をchar* process1(char*)で代用する程度の話には影響しないと思いました。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ごもっとも。 C/C++の規約原理主義的な最適化は、そろそろ何とかして欲しい。 (未定義のアクロバティックな活用ではなく、警告 or エラー停止する方向に) https://t.co/eWPAQsBxKC … https://t.co/oif4y0wVJ5」 / Twitter
島鉄雄さんはTwitterを使っています: 「メモリマップドI/Oの場合はその領域はそもそもキャッシュしない指定になってるはずだけど、通常のメモリ領域の場合は普通にキャッシュに載るでしょ。 で、CPUのキャッシュコヒーレンシにより一貫性が保たれてるはず。 DMAする為だけのデータをキャッシュに載せたくない場合は専用の命令がSSEにある。」 / Twitter
島鉄雄さんはTwitterを使っています: 「元記事の &gt; volatileなオブジェクト(volatileと指定されたメモリ領域)へのアクセスは、CPU内部のキャッシュ機構を通り越してその領域へ直接読み書きする形になっているはずです。 は間違ってると思われる。 volatileは最適化でレジスタに値を保持せずに、逐一メモリにアクセスするってだけでしょ。 https://t.co/voiP4LxzGZ」 / Twitter
FadisさんはTwitterを使っています: 「if「文」と三項演算子は別モンで、一番大きな違いは文であるため評価結果の型を決定する必要がない点」 / Twitter
yoh2さんはTwitterを使っています: 「?: 演算子の左端がCとC++で違うという割とどうでもいい気付きを得た。 cond ? a : b = c; がこうなる。 C: (cond ? a : b) = c; と同じ (エラー) C++: cond ? a : (b = c); と同じ」 / Twitter
yoh2さんはTwitterを使っています: 「ちなみにC++ で (cond ? a : b) = c; と書くと a か b へ c を代入する意味に。 代入演算子の左辺もCとC++で違うんだよね。Cでは unary-expression, C++では logical-or-expression。」 / Twitter
yoh2さんはTwitterを使っています: 「s/左端/右端/」 / Twitter
重巡洋艦 キノガッサさんはTwitterを使っています: 「@yoh2_sdj https://t.co/HiFMrmPJ0f」 / Twitter
条件演算子と左辺値の扱いの差 - yohhoyの日記
uint256_tさんはTwitterを使っています: 「clang, return 0 の 0のために alloca i32するのなんでだろう」 / Twitter
DrumatoさんはTwitterを使っています: 「@uint256_t これは結果論なんですが, int main(){ int x = 40; if(x == 30){ return 1; } } みたいなコードをclangに入力すると, true-block内でalloca i32した仮想レジスタに1を代入しています. main関数内で明示的にreturnされなかったときのために利用されているのかもしれませんね.」 / Twitter
uint256_tさんはTwitterを使っています: 「LLVM, 賢いからmem2regとかそのあたりの最適化でallocaとかが消えて, phiとかで代用するのかな https://t.co/hBzjs8VNVR」 / Twitter
uint256_tさんはTwitterを使っています: 「@drumato clangを軽く読んでみました. どうやらこの方法のほうが, コードが簡単になりそう」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@uint256_t LLVMのallocaは確実にスタックに領域を取ってくれると思っていると最適化で酷い目に合います(それで泣いた」 / Twitter
uint256_tさんはTwitterを使っています: 「@miura1729 賢くなりすぎたコンパイラが人間を苦しめるいい例ですね」 / Twitter
Miura HidekiさんはTwitterを使っています: 「@uint256_t 確かに。仕様をちゃんと読まないのが悪いと言えば悪いんですけど...」 / Twitter

histric-3

うーさんはTwitterを使っています: 「システムコールからの戻り値って基本はint型の戻り値だけなので,どうやってその値からerrnoに代入する値を決めているのかなあと思ったらこのコードにたどり着いた。-256&lt;result&lt;0なら,符号反転した値をerrnoに代入してる。 https://t.co/bQSGe54e08」 / Twitter
libc/bionic/__set_errno.c - platform/bionic - Git at Google
島鉄雄さんはTwitterを使っています 「これは、いわゆるパターンマッチに漏れがあるとエラーになる言語を使えば防げるバグだろう。 なのでこれは糞コードではない。 最近の C/C++ のコンパイラは switch で漏れがあると警告を出すから分かるけど、エラーにしてしまうべきだろう。 そういうオプションが無いかちょっと調べてみる。 https://t.co/lLpwF38si8」 / Twitter
島鉄雄さんはTwitterを使っています 「-Werror=switch で、switch の漏れをエラーに出来た。 C++ の場合は enum class があって int 等には無理やりキャストしない限り変換できないから、より安全になる。 あと、if 文の羅列で分岐されると漏れをチェックできないから、やっぱり古い言語では限界があるのかね… https://t.co/Nh2YlqmJWy https://t.co/WIHFSX2FgY」 / Twitter
Kazuho OkuさんはTwitterを使っています 「名前つき番兵のメリットは値を読めるところなので、ポインタをデリファレンスすることで(も)終端判定したい場合には使ったりする https://t.co/vXyBV3CbHy」 / Twitter
ハガさんはTwitterを使っています 「@kazuho うーん、僕はむしろ、デリファレンスできない可能性を持っていることがポインタのメリットだと思っているので、特に終端判定の場合にデリファレンス後に判定というのはちょっと想像できませんでした。」 / Twitter
藤枝和宏 - ぱんなこった@佐鎮さんはTwitterを使っています 「この番兵は高速化のためだと思う。linked listでキーを探すときに番兵にキーをセットしてから探す。最後で必ず止まるので次が最後か調べずにループを回せて条件分岐1回お得。 / “ノータブルコード4 - NULLよりも名前付きの番兵オブジェクト - ククログ(2020-03-03)” https://t.co/ZrCqgKPJID」 / Twitter
ノータブルコード4 - NULLよりも名前付きの番兵オブジェクト - ククログ(2020-03-03)
FadisさんはTwitterを使っています 「ポインタがめんどくさい事になるのはSEGVした時じゃなくて、SEGVせずに走ってしまった時だよ。読んではいけないものを読んでリモートにぶちまけたり、書き換わってはいけない物を上書きしたり、飛んではいけないところに飛んで実行してしまったり」 / Twitter
あわねずみさんはTwitterを使っています 「C言語の授業 ある子がarray[i]とi[array]を間違える。 先生「i[array]はできません」 私「*(i+array)です」 先生「*なんてありません」 私「*はあります。ポインタの参照演算子が*です」 先生「誰に教えてもらったんですか?」 私「お母さんです」 →懇談会で母親に事前学習をしないように念押しされる」 / Twitter
kinabaさんはTwitterを使っています 「A Simple, Possibly Correct LR Parser for C11 https://t.co/jPKTn3ikIN めっちゃ面白かった。C言語文法の決定性文脈自由じゃないところ全集。「lexerに情報共有して識別子毎に型名か否か区別してトークンを出させる」という、概念としては定番の実装なんだけど、細部の罠と解決策が楽しい」 / Twitter
A Simple, Possibly Correct LR Parser for C11 | ACM Transactions on Programming Languages and Systems
kinabaさんはTwitterを使っています 「特にdangling-else問題と識別子の文脈依存性の問題が混ざるとより問題が深まる(GCCも昔のバージョンで構文解析バグっていたらしい)というの考えたことがなかった。おもしろいなー」 / Twitter
herumiさんはTwitterを使っています 「https://t.co/athh4LqnMQ #define N 16 char str[N]; memset(str, 0, N + 1); この例のコードならcppcheck, Visual Studioの/analyze, pvs-studioなどの静的解析ツールやclang-9で警告出ますね。https://t.co/Oj0EEqANG4 #yurubug」 / Twitter
なたがわさんはTwitterを使っています 「a[i]とi[a]が意味的に等価なのはe1[e2]が*((e1) + (e2))のsugarだから、ってのは知ってるけど、そもそもこの加算が意味的に非対称な演算なのに逆も許してる (というかint + ptr要る?) のは謎だし、i[a]を許しても嬉しいのはparserで即desugarしてASTサボれるくらいでは...? なんか歴史/理由あるのかな」 / Twitter
FadisさんはTwitterを使っています 「volatileは、コンパイラは言われたのと同等の結果になるアセンブリは吐くけど、言われた通りの順序で計算するアセンブリを吐くとは限らないぞ(=計算過程を横から覗き見できる場合、期待したのと違う状態が観測されるかもしれないぞ)、という前提知識を要するから、初心者への説明は詰まりがちだよな…」 / Twitter
FadisさんはTwitterを使っています 「横から覗き見する手段とは具体的には、シグナルハンドラや割り込みで実行を中断して別の処理を行なっているとか、ハードウェアのレジスタを操作しているといった状況が該当する。別のプロセッサが同じメモリを見ている状況はキャッシュやアウトオブオーダーの影響が載る為volatileでは救いきれない」 / Twitter
対鉱物用武装さんはTwitterを使っています 「volatileの法則 1. つけるな。 2. (上級者限定)まだつけるな。」 / Twitter
対鉱物用武装さんはTwitterを使っています 「MMIOはふつうベンダ提供のマクロで隠されてるし、シグナルハンドラは同期化して受けるほうが安全」 / Twitter
Kazuho OkuさんはTwitterを使っています 「C言語で struct S s; load(&amp;s); みたいなやつ、2行になるやん? 実は struct S s = (load(&amp;s), s); と書けば1行でvalidなCになる?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「パフォーマンス意識したコードをメンテしていくのはCの方が楽だと思う」 / Twitter
ハガさんはTwitterを使っています 「まぁ、いまどきC++ではなくCを使う[理由]はあっても、[利点]は無いよなっていう。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「C++、Cよりロジックを組み合わせてコードを構築する手法が多いのはいいんだけど、その複雑性が利点になるか弱点になるかはケースバイケースだと感じてる。コードを書き捨てるケースではC++使うけど」 / Twitter
Kazuho OkuさんはTwitterを使っています 「もうちょっと具体的に書いておくと、たとえば、C++の優位点というのは、汎用的なデータ構造があるという点に多分に依存しているが、速度重視でコードを書く場合は専用のデータ構造を起こすことが多いので、汎用的なデータ構造をあまり使わない、とか」 / Twitter

histric-4

くいなちゃんさんはTwitterを使っています 「「三項演算子とは、三項の演算子すべてを指す広い言葉だから、?: は三項演算子ではなく条件演算子と呼ぶべき。」 とよく聞きますが、条件演算子以外の三項演算子を見たことがありませんでした。 あります…?」 / Twitter
しさしさんはTwitterを使っています 「@kuina_ch SQL の BETWEEN 演算子とかどうですか? x BETWEEN y AND z」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「整数オーバーフロー例外発生のコンパイルオプション付けると、整数演算が3-12倍遅くなる(前者clang, 後者gcc)という実験。 わざわざ調べてる人いるのね。 https://t.co/eEjmc2ZWEV」 / Twitter
How expensive is integer-overflow trapping in C++? – Daniel Lemire's blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C言語に register というキーワードあるけど、今時だと firstcache とか lastcache みたいなキーワードがあっても良いかも。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「マルチスレッドコードが動いている時にいきなり _exit (3) を呼ぶの、なんとなく正常終了できるつもりだったけど、スレッド破棄順序によって他のスレッドのスタック参照してるスレッドが SEGV する可能性があるのかぁ、ってなってる。そりゃそうだよな」 / Twitter
yoh2さんはTwitterを使っています 「「C89 と C99 のどちらでも well-formed でありながら結果の異なるプログラムを定義済マクロに頼らず書ける」並に重箱の隅。 (知ってるのは enum 使うやつ)」 / Twitter
yoh2さんはTwitterを使っています 「これね。 https://t.co/fP8aCUvAQ2」 / Twitter
yoh2さんはTwitterを使っています 「類似でちょっと思い出したネタ。 # include &lt;stdio.h&gt; enum E { A = 1 }; int main(void) { int n = 0; for(n = 0; n &lt; (enum E { A = 2 })1; n++) /* (enum { ... }) はキャスト兼 enum 宣言 */ ; printf("%d\n", A); /* C99以降: 1, それより前: 2 */ }」 / Twitter
yoh2さんはTwitterを使っています 「C オタクに C++ オタク、妙なところに宣言を埋め込みがち。」 / Twitter
Ryo SuzukiさんはTwitterを使っています 「一般 C++er「using によるエイリアス宣言は typedef の上位互換」 C++ 規格オタク「typedef だけ許される文脈がある」 https://t.co/ZbTY3SCir1 https://t.co/2lKIzwGsfT」 / Twitter
A typedef for when an alias declaration cannot // [unfold] Bits of awareness
mattnさんはTwitterを使っています 「C言語のポインタが初学者を悩ませる理由は宣言時と使用時に * が付いたり付かなかったりする int *p; p = &amp;v; のと配列の参照方法が *(p+2) と p[2] の2つがあるというのが原因だわね。 Go は意図的にこれをさせない様にした。」 / Twitter
KateさんはTwitterを使っています 「finally worked out how to make a function for addition. C isn't as hard as people say https://t.co/OFdqEKs6HR」 / Twitter
yoh2さんはTwitterを使っています 「int a[n] とint *a が別物だというのと同じように int a[m][n] と int (*a)[n] は別物だが、 int a[n] と宣言した変数が式中で表れると一部を除き int * 型になるように int a[m][n] と宣言した変数は式中に表れると int (*)[n] 型になる。 ……を一言で説明できる語彙力を下さい。」 / Twitter
yohさんはTwitterを使っています 「ISO/IEC9899 (違」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「C言語できる人」で、芋づる式に、disasコードも読める、ダンプ解析できる、カーネソース読める(OSの諸概念知ってる)、みたいなニュアンスまで含むこともあったり…(笑)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「「C言語ができるできない」ではなくて、他のプログラミング言語を使えて、かつ、OSやCPUについて学んでいれば、Cは読めるはずだし、すぐ書けるようになる、という話じゃないのかな。高級アセンブラなので」 / Twitter
Kazuho OkuさんはTwitterを使っています 「C言語、プログラマにとっての英語みたいなもので、日常、できなくて困らない人も多いけど、たまに使って何かを得てる人もいれば、毎日使ってそれでご飯を食べてる人もいる、くらいのもんでしょう。 英語同様できたほうがいいけど「できないとダメ」みたいな呪いじゃない」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「逆にそういう人達は、単にC言語書ける人より何倍も強いので、それを目指すべく、C言語から吐き出すdisasコードを読んだり、ダンプを眺めたり、OSの本を読んだりすると良いかも。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「極めて普通だし、共通型を構造体の先頭に置いて super とか名前をつけてポインタキャストするのも普通」 / Twitter
mattnさんはTwitterを使っています 「C言語をずっとやってると第一引数がオブジェクトに見えてくるし関数呼び出しがメソッドに見えてきます。(なにその GTK)」 / Twitter
kiwanamiさんはTwitterを使っています 「まあ、分かるけど、JavaとかC#とかJS書いてる人がたくさんいる中で、オブジェクト指向いらないんですと言われても、では今書いているこの言語や実行環境は何なの?みたいな感じになる。」 / Twitter
きしだൠ(K8S(Kishidades))さんはTwitterを使っています 「オブジェクト指向について書いたゾ https://t.co/b1gDtbUMRS」 / Twitter
オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena

Kazuho OkuさんはTwitterを使っています 「こういうやつ https://t.co/WiBv5VMn4D」 / Twitter
Kazuho OkuさんはTwitterを使っています 「まーそれはそれとして、 「なぜ data ポインタをもたないのか?」 「構造体の中に部分型を入れてアドレスオフセット&キャストすればいい」 「???」 「C++になったつもりで考えて」 みたいなやりとりは、ありがち」 / Twitter
Kazuho OkuさんはTwitterを使っています 「C言語でオブジェクト指向の話、「container_of って何?」て聞いて知らなかったり、自分で書けなかったりする人は詳しくないと思っていいです」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@kazuho 初めて知った…😨 https://t.co/00kyqUwu22 スか # ワシ、そういうのに触る前に C++ 行っちゃった感はある(で cfront が吐いた C を読んでたりしてた😅)」 / Twitter
linux-4.4.1/container_of() - コグノスケ
Kazuho OkuさんはTwitterを使っています 「補足しておくと、メンバへのポインタからコンテナへのポインタを得るというのはインターフェイス継承実装時に求められることなので、その具体例を知らない、かつ、実装もできないのであれば、C言語でオブジェクト指向プログラムを書く難易度について正しく評価できるのか疑問符がつく、という意味です」 / Twitter
Kazuho OkuさんはTwitterを使っています 「格好つけようとして複雑にしてバグしこんじゃうやつ?」 / Twitter
mumumuさんはTwitterを使っています 「C言語でconstをたくさん置けることを知った. const const const const int c = 0;みたいなのが許されるっぽい.めっちゃ強調できるじゃんw」 / Twitter

_Atomic

Nerry さんはTwitterを使っています: 「usbcmdレジスタを_Atomic uint32で定義して usbcmd |= hogehoge すると機種によってはうまく動かない」 / Twitter
Nerry さんはTwitterを使っています: 「usbcmd |= hogehoge をコンパイルすると lock or [usbcmd], hogehoge になるが、うまく動く機種と動かない機種がある。 usbcmd = usbcmd | hoge に書き換えると以下のような機械語になって動く mov eax, [usbcmd] or eax, hogehoge xchg [ucbcmd], eax」 / Twitter
Nerry さんはTwitterを使っています: 「以上から A |= B と A = A | B は必ずしも等価ではない。」 / Twitter

メンバ関数へのポインタ

鯉江さんのツイート: "メンバ関数のポインタは確認してないですが、メンバのポインタは素朴に実装すると構造体の先頭からのオフセットになって、それだと0に特別な意味は持たせられないのでnull pointerのビット表現には別のものをつかう、というはなしがARM書いてあったような記憶です。 https://t.co/uwEdj5dzaR… https://t.co/Q7Y6J3ZTBR"
Ideone.com - YK4oHe - Online C++ Compiler & Debugging Tool
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い、x64でもそうなりますね。知らなかった。… "

opaque pointer

ゆたかさんさんのツイート: "C言語で構造体は使えるけれど、構造体のメンバーに直接アクセスさせないようにするにはどうすればよいでしょうか? 答え:構造体をtypedefしたものだけを開示してポインタとして使う… "
SODA Noriyukiさんのツイート: "このイディオムはopaque pointerと呼ばれててその名でググれます。 typedefはせず struct foo; で済ませ、またヘッダ内で宣言されてる関数呼ばない場合は # include "foo.h" の代わりに struct foo; で済ます変種もあったり(再コンパイルの必要性が減るのでこっちの方が好き) https://t.co/u0BXaV0O0H"
まさみさんは語りたいさんのツイート: "私はelfutilsで知りましたが、デバッグが大変面倒なので死にそうになりました。全部ソースコードひっくり返して実装調べた記憶が。… "
SODA Noriyukiさんのツイート: "その辺は良い開発支援ツールがあるか、あるいはコーディング規約の縛りがあればあまり困らないような。 もう30年くらいopaque poniterばかり使ってプログラム書いてますが、「struct foo の関数宣言は foo.h に入れ、構造体定義は foo.c に入れる」程度の規約で運用していて特に困った覚えがないです… https://t.co/q5yAWmsBsf"
KOYAMA Youichiさんのツイート: "私も同様に foo.h には関数だけ書いて foo.c に構造体を書くのですが、 foo をライブラリとして提供する場合 (おそらく strip しちゃうので)、それを使ったプログラムをビルドすると gdb とかでのデバッグ時にロクに構造体の中身が表示できないというワナはありそうですね。… https://t.co/qd1yeCaw5I"
SODA Noriyukiさんのツイート: "プロプライエタリのライブラリの内部でコケてると、死んで!って気持ちになりそうですね…^^;… "
なかのん&マジックさんのツイート: "こういうの常識では……違うの……?"
y-Akiさんのツイート: "C(++)言語で大きな物を作るときは必須と言える手法ですね。大規模C++本とかにもあるっけか ちっちゃいプログラムしか扱ってないなら知らない事も多いかも… "
なかのん&マジックさんのツイート: "OSのAPIがそもそも使ってる手法なのに……… "

qrintf

Kazuho OkuさんはTwitterを使っています 「呼びました? https://t.co/66DW6gsNz6」 / Twitter
h2o/qrintf: sprintf accelerator for GCC and Clang
Hideki EIRAKUさんはTwitterを使っています 「そういえば、C の printf ってやつはランタイムで文字列から % 記号を見つけ出して解釈して中身を置き換えるっていう、ある意味インタープリター的に計算資源を浪費する仕組みなんだけど、昔から使われているよね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「実際問題として速度差が出るのはI/Oを含まないsprintf系だけで、規格はそのような最適化を認めてるしstrcpyへの変換とかはCコンパイラもやると思うけどCプログラムでそこがボトルネックになる場合は専用コード書く人も多くて…みたいな印象。qrintfで速くなるプログラムはある」 / Twitter

NUL 終端していない文字列の printf

けろ🐸さんのツイート: "最近C言語で「ほえ~」ってなったのは、 char buf[4] = 'ABCD'; printf("%.*s", sizeof(buf), buf); でNULL終端してないchar*が簡単にprintfできること……はよ知りたかったわ"
けろ🐸さんのツイート: "コンパイル通さずに書いて怒られたけど、一行目はchar buf[4] = {'A','B','C','D'};の間違いだから、ゆるして…。(まあ雰囲気は伝わるはず)"
株式会社クローバーフィールドさんのツイート: "char buf[4] = “ABCD”; でもOKですね。 あと、厳密なことをいうと、*はint型の実引数を期待するので、sizeofの評価結果を渡すと未定義になります。 明示的にintでキャストしましょう。… "

フォーマット文字の文字数

るくすさんのツイート: "int len = sprintf(NULL, 0, format, args)でフォーマット文字の文字数返ってくるテクニック良くみるんだけど、これPOSIXに書いてある仕様なんすかね https://t.co/8pYFEklqsn"
まさみさんは語りたいさんのツイート: "カーネル内ではよくお世話になっています・・・。… "
Hiroaki Nakamuraさんのツイート: "おお、そんな技あったんですね。検索してみると https://t.co/xKejO9kgJU のRETURN VALUEに int len = snprintf(NULL, 0, format, args) で文字数取れるようなことが書いてありました。… "
fprintf, printf, snprintf, sprintf - print formatted output
herumiさんのツイート: "char buf[10]; int n = snprintf(NULL, 0, format, args); if (0 <= n && n < 10) { sprintf(buf, format, args); } がバッファオーバーフローする状況はありえるか(10点)。 https://t.co/U3OJlbAsk0"
herumiさんのツイート: "私の想定解は次のものでした。 const char *fmt="%'d\n"; int v = 12345678; // LC_NUMERIC=Cだった n=snprintf(NULL, 0, fmt, v);// 12345678なのでn=9 // 別スレッドでsetlocale(LC_NUMERIC, "en_US.UTF-8");が呼ばれた sprintf(buf, fmt, v); // 12,345,678が書き込まれてバッファオーバーフロー… https://t.co/5kU9QwuPUV"
herumiさんのツイート: "グローバルな状態に依存したくないときのために非標準ですがロケールを指定できるsnprintf_lとかWindowsだと_vscprintf_lとかがありますね。… "
herumiさんのツイート: "C++もずっとCのロケールを引きずっていて、数値と文字列の相互変換ですらロケール非依存でできる標準ライブラリが入ったのはC++17になってからです。… "
Kazuho Okuさんのツイート: "そもそもs(n)printf実行中に別スレッドでsetlocale呼ばれる可能性のあるコード、ということになると未定義動作になるような気がしました。未定義動作にバッファオーバーフローも含まれるという点に異論はないですが… "
herumiさんのツイート: "一応たまたま二つの関数の間で呼ばれたというつもりでした。 実行中にsetlocaleが呼ばれると未定義というのには同意です。 まあ、あまりよい問題ではなかったですね。すいません。>るくすさん。… "
るくすさんのツイート: "いえいえ。 この手の限られた制約からの状況把握はシステムの脆弱性を突いてエクスプロイトを書く際の重要なステップなので良い訓練になります。面白かったです。結構使うんですよね、TOCTOUは。 例えばメモリ使い果たして文字数の返り値だけネガティブにしとくとかも。race conditionはキリがないすね… https://t.co/pUiIYbPzCp"

klib

Kazuho Okuさんのツイート: "最近は klib とか使うイメージ。部品ごとに分かれてるし https://t.co/AVmoh0Zfw9… "
Klib — a generic library in C
attractivechaos/klib: A standalone and lightweight C library
NaOHaq(苛性ソーダ)さんのツイート: "Cで書いてると連結リストも連想配列も基本的に自前で実装せざるを得ないんだよな……。既製品を使おうとするとものごっついフレームワークの一部だったりするし……。"

3-stage bootstrap

Fumihiro MatsuiさんはTwitterを使っています: 「そういえばセルフホストは複数世代検証が要るんだっけか。まず既存コンパイラで自作のをコンパイルしてAを作って、それ使ってBを作って、さらにBでCを作って、BとCが等しいか比較検証とかするんだっけ。BもCも自作コンパイラ由来(Aは違う)なので入力等しければ本来は同じはずで。全然詳しくないけど」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「でもコンパイラって、リンクされるライブラリの寄与とか除いても、自身のソースには無いけど自身をコンパイルした親コンパイラに由来するバイナリが普通に混じり得るはずで、そういうのの伝搬とかちゃんと考えるとなんかそれ自体結構面倒そうだな」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「なんか3回って数字が妙に記憶に残ってるんだけど単にGCCのビルド&検証がそうだったからかも」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「そうだそうだ、3-stage bootstrap ってやつだ」 / Twitter

配列とポインタの判別

Kazuho OkuさんはTwitterを使っています 「C言語で、ある値がポインタなのか配列なのかを知る方法ってあるのかなぁ(gcc/clang拡張でも可)。意図としては countof(array) みたいなマクロで、引数arrayに渡されるものがポインタではなく配列であることをビルド時に保証したい cf. https://t.co/izurmOdiTl」 / Twitter
_countof Macro | Microsoft Docs
Yuki Yugui SonodaさんはTwitterを使っています 「@kazuho &amp;してからintptr_tにキャストして、元の値と比較したらイケませんか? もっと移植性のある方法もあった気はするんですが」 / Twitter
mattnさんはTwitterを使っています 「@kazuho gcc だとこのマクロがうまく動きそうです。 # define IS_ARRAY(arg) __builtin_choose_expr(__builtin_types_compatible_p(typeof(arg[0]) [], typeof(arg)), 1, 0)」 / Twitter
mattnさんはTwitterを使っています 「@kazuho ビルド時じゃないか。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@mattn_jp いや __builtin_constant_p に食わせてOKなら使えばいいので、これもいけそうな気がしますねありがとうございます」 / Twitter

GNU

Kazuho OkuさんはTwitterを使っています 「char buf[256]; strerror_r(errno, buf, sizeof(buf)); printf("%s\n", buf); このコードが未定義動作になっちゃうことがあるlinuxの罠に(また)はまった」 / Twitter
Takuo KihiraさんはTwitterを使っています 「@kazuho GNU の場合は buf に格納されるとは限らない、ってことですか?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@tkihira yes! そのせいで、どっかで _GNU_SOURCE が定義されていると未定義動作になります」 / Twitter
Takuo KihiraさんはTwitterを使っています 「@kazuho GNU の仕様、気持ちはわかるけれど、これはひどいですねw」 / Twitter
asariさんはTwitterを使っています 「@tkihira @kazuho 知らなかったです。戻り値を受け取っていればコンパイル時に警告が出てはくれるわけですね。うーん https://t.co/LY6oEJVbYk」 / Twitter
MSC14-C. 必要もなくコードをプラットフォーム依存にしない

コンパイラのいじめかた / How to fight the compiler - Speaker Deck
自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報
llvm-project/clang/INPUTS at master · llvm/llvm-project
ソフトウェア1 (2020)
C99 - Ruby master - Ruby Issue Tracking System
Learn c in Y Minutes
C Reference Cheat Sheet by Ashlyn Black - Download free from Cheatography - Cheatography.com: Cheat Sheets For Every Occasion
Deck Not Found - Speaker Deck
FadisさんはTwitterを使っています 「kmallocしてmemsetでゼロクリアする事多いからゼロクリアするメモリ確保kzmallocを用意したい→既存の膨大なコードをどうやって置き換えよう→Semantic Patch。具体的にはCoccinelle https://t.co/TtIo1wfNCG #kernelvm」 / Twitter
Coccinelle: A Program Matching and Transformation Tool for Systems Code
FadisさんはTwitterを使っています 「難題: CPPで変換されているコード→ CPPをかけた後のコードのASTを作って変換することはできる。しかし、変換後のコードはCPPをかける前の形になっていなければならないがCPPで逆変換をする事ができない #kernelvm」 / Twitter
Coccinelle — The Linux Kernel documentation

Assembly

UTF-8 validation

ドッグさんはTwitterを使っています 「Lemire 氏次は UTF-8 の validation か.SIMD の pshufb 命令を使って 16バイトごとの table lookup に vectorize して,それを3回やるだけでできるのか | 'Ridiculously fast unicode (UTF-8) validation' https://t.co/sfVDunjaAL」 / Twitter
Ridiculously fast unicode (UTF-8) validation – Daniel Lemire's blog
ドッグさんはTwitterを使っています 「paper: https://t.co/Vz0fa836MD 6.1 の最後の段落と TABLE 9 に具体例が載ってる」 / Twitter
2010.03090.pdf
ドッグさんはTwitterを使っています 「Rust も String や str の値の動的な生成には unsafe 使わない限り UTF-8 validation が必ず入るので高速化すると嬉しい気がする」 / Twitter

ABI

その他

その他

shinichiro hamajiさんのツイート: "ABI 地獄は Qt/KDE で10年以上 C++ ライブラリを配るということにつきあってた人の、この話が面白かった気がする https://t.co/fx80ZQ4teS #cppmix"
Cover Slide Title
Thread Local Storageの初期値について調べた - Qiita
ABI の境界 (Modern C) での移植性 | Microsoft Docs
C言語系/呼び出し規約/x86/naked - Glamenv-Septzen.net
KMC Staff Blog:QEMU の Microsoft x64 環境での不具合
APIとかABIとかシステムコールとか - Qiita
Makoto Kato ︎︎さんはTwitterを使っています: 「Linux/aarch64のコードをWindows/arm64にポートする時に気をつけないといけないのは、x18がLinuxだとスクラッチレジスタだけど、Windows (iOSもだけど) だとスクラッチレジスタではないので、ちゃんと値を保持しないといけないってところ。ABIの定義みたら、プラットフォーム依存と書かれたはず」 / Twitter
FadisさんはTwitterを使っています 「intのサイズがいくつでlongのサイズがいくつってのはC++の規格じゃなくてABIが決めるところで、ABI次第では両者は同じサイズになり得る。でもサイズが同じである事と、型が同じであることは別の話で、両者が同一の型扱いされることは無い」 / Twitter

objdump

[reverse-engineering] objdumpを使用したフラットバイナリファイルの逆アセンブル [disassembly] | CODE Q&A 問題解決 [日本語]
2590 - x86-64 validator allows addressing mode with the redundant "%riz" encoding - nativeclient - Monorail
【ベースアドレス】の例文集・使い方辞典 - 用例.jp

POSIX

可変長引数

ロボ太さんはTwitterを使っています: 「C/C++で、以下の実行結果が「3 1.200000」になることを知って震えている。 printf("%d %f\n", 1.2, 3);」 / Twitter
Masaki HaraさんはTwitterを使っています: 「これどういうことかと思ったらva_listの構造も特殊なのか。たとえばPowerPC64 System V ABI V2だとva_listは引数を順に並べたものになっているので、可変長な関数を呼ぶときはcalling conventionが変化するんだけど、AMD64 System V ABIでは%alに使用したSSEレジスタの個数を入れるだけしい」 / Twitter
Masaki HaraさんはTwitterを使っています: 「まず前提条件として ・固定長引数関数は、できるだけ引数をレジスタに入れて渡したい ・可変長引数関数はどうせva_listに入るのでスタックに入れて渡したい という要件があるんだけど、ここでnon-prototype関数という厄介なやつがいる (伝統的なC言語にある、引数型が不明な関数)」 / Twitter
Masaki HaraさんはTwitterを使っています: 「こいつは呼び出し側からは固定長か可変長かすらわからないので、わからないなりに上手く呼べる必要がある。なので基本的に以下のような戦略になる ・引数はできるだけレジスタに入れて渡す ・可変長引数のときは必要に応じてレジスタからスタックにコピーしなおす」 / Twitter
Masaki HaraさんはTwitterを使っています: 「で、レジスタとスタック上の位置が1対1対応してればここまでの議論で完結するんだけど、多くの場合は整数と浮動小数点数は別のレジスタに入れたほうが効率がよい (固定長引数のときはそうしたい)。」 / Twitter
Masaki HaraさんはTwitterを使っています: 「しかも、できれば沢山レジスタに入るほうがいいので、整数レジスタは整数レジスタで詰めて入れたいし、浮動小数点数レジスタも同様。 ところがスタック部分は共用なので、「どこからがスタックに溢れたのか」がわからなくなる。」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「レジスタに置いて呼んでからスタックにコピーされるのかあ」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「なんかレジスタ経由して「書式文字列通りに引数並べてあったらレジスタにこう置いてあるでしょ他は知らん」みたいなノリなのかな、でもなあって思ったら意外と部分的にそういうノリっぽい上にもっとあれな話だった」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています: 「Cの処理系は初期の仕様をカバーしつつ効率的なコードを吐く事の両立を求められるとほんときつそう。gccとかclangとか超感謝」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「発展課題: これが当然だと思った皆さんは、va_start, va_arg, va_stop の実装を考えてみましょう https://t.co/jXo8DhCdd9」 / Twitter

値渡し

uint256_tさんはTwitterを使っています 「#cilk 構造体を値渡しするためには,かなり大がかりな改修が必要なことが分かった.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t ほんとあれややこしいんで、そんなに得になっているのか誰かにちゃんと説明してほしい。あと、 struct { double x, y; }みたいなやつは2つのXMMレジスタで渡されたりしますよね(さらにトリッキー)。」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 xmmなどのレジスタが関わってくる場合については,どこかに詳細なドキュメントが置いてあったりするのでしょうか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t https://t.co/1SIFcKzwpt の 3.2.3 Parameter Passing のあたりです」 / Twitter
psABI-x86_64.pdf
uint256_tさんはTwitterを使っています 「@rui314 ありがとうございます (確かにこれはややこしい)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t まあx87の80ビット浮動小数点数とか__m256あたりはとりあえず無視していいとは思いますけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t そこらへんをとりあえず置いておくと、 - 16バイトより大きいとかunalignedなメンバがあったりするとスタック渡し - それ以外の場合、8バイトごとに区切って考えて、8バイトに含まれているメンバが全部浮動小数点数型ならXMM、そうでなければ整数レジスタ渡し というルールのはず。」 / Twitter
uint256_tさんはTwitterを使っています 「@rui314 かなりすっきりしますね.わかりやすい.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t struct { int a; float b; double c; }だと、aとbは(上位32ビットと下位32ビットで)まとめて1つの整数レジスタで渡して、cはXMMという。そこまで詰めるメリットあるのかなぁという感じですけど。」 / Twitter

_ko1さんのツイート: "https://t.co/Wlk3omuOir (VALUE)(*funcptr)(VALUE) と (VALUE)(*funcptr)() で呼び出し時のコンベンションが違うようなんですが、後者って何? eax なんて callee は見ないよね?"
Shiro Kawaiさんのツイート: "funcptrがvarargだった時にFP引数の数をalに入れることになってるので、それを0にしとくため?… "
_ko1さんのツイート: "FP引数!! 知りませんでした… "
Shiro Kawaiさんのツイート: "callee側でどう使ってるのかはよく理解してない。スタックにスピルした場合でも結局va_argで渡される情報を信用してアクセスするしかなさそうだけど…xmmの退避に関係する?… "
Kazuho Okuさんのツイート: "va_startは引数かもしれないレジスタを全部スタックに展開するけどxmmでそれやるとさすがにメモリ食い過ぎるから… "
Shiro Kawaiさんのツイート: "なるほど。va_listの実体をスタックに持たないとならないからか。全部va_argで使い切られてたらどのレジスタ使えばいいのかわかるけど、va_listのまま他の関数に渡される場合があるからコピーは必要と。… "
mpx-linux64-abi.pdf
Cの可変長引数とABIの奇妙な関係 - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SPARC(32bit)で構造体を渡す時、レジスタに収まるサイズでも、ポインタ経由になるの、考慮漏れだったのかな? v9でもx64でも、レジスタサイズより大きい場合にはじめて、ポインタ経由になる。」 / Twitter
kubo39@求職中さんはTwitterを使っています 「@rui314 @uint256_t x86においてebxレジスタをGOTのために予約していた話でしょうか。GCC 5以降はそうではなくなりました。 https://t.co/m571IdUGTV」 / Twitter
New Optimizations for X86 in Upcoming GCC 5.0: PIC in 32-Bit Mode
Assembly 2: Calling convention – CS 61

x64 ABI

WINAPI とは何か? - C/C++ 入門
melancholic afternoon
ACCU :: Windows 64-bit Calling Conventions
Makoto Kato ︎︎さんのツイート: "@d_toybox msvc以外は使えるんだけどね、int128_t。C99で定義されてる話だけど、Windows ABIでint128_tが定義されてない(はず)だから、使えん。VC++はC89だし"
Makoto Kato ︎︎さんのツイート: "struct t {size_t a; size_t b;}; struct t test (int p)なんてやると、Win64 ABIだとrcx (最初の引数のはず) がpである保証ないとかあれはちゃんとドキュメント化してほしい"
Makoto Kato ︎︎さんのツイート: "@d_toybox (Unix ABIだと6個だけど)。uint64_t -> uint32_t の暗黙的な変換とかは別に命令実行する必要ないんでそんな関係しない"
Makoto Kato ︎︎さんのツイート: "@hATrayflood なおYARR JITな修正はこれ https://t.co/X3yVFjyX uint128_tがWin64 ABIで使えれば。。。"

x32 ABI

本の虫

本の虫: x32 ABIの簡易的なまとめ
本の虫: GoogleのNative ClientチームがLLVMにx32を所望
本の虫: glibc 2.16がリリース。x32をサポート
本の虫: LLVMにx32のサポートを追加するパッチ

x32-abi
Fadisさんのツイート: "Linuxカーネル開発者達がx32 ABIの廃止を検討している。x32はx86_64のハードウェアを要求しながら32bitのアドレスを使う事でx86_64の機能を利用した性能の向上と、アドレスが短い事による性能とバイナリサイズでの強みを共に享受しようというABIで、あまり流行っていない https://t.co/hvFqRfIW66"
Linux、x32のサポート終了か - ト―バルス氏は賛成 | マイナビニュース

kABI

kABIとは何か - 赤帽エンジニアブログ

スタック

[C言語]コールスタック(スタックフレーム)の仕組みを復習する | KentaKomai Blog
WIN64スタック | さすらいのプログラマ - 楽天ブログ
スタックと割り込み ―― プログラムが動く仕組みを知ろう|Tech Village (テックビレッジ) / CQ出版株式会社
スタックフレーム - 関数に渡される引数を知る - Web/DB プログラミング徹底解説
windows - newbie trying to understand disassembled code - Reverse Engineering Stack Exchange
c - マシンコード実行時のランタイムエラーが不明確

エンディアン

エンディアン - Wikipedia
エンディアン - デバイスドライバの記述
PCI - OSDev Wiki
Ext4 Disk Layout - Ext4

ソフトウェア規約

x64 ソフトウェア規約 | Microsoft Docs
x64 software conventions | Microsoft Docs
__fastcall | Microsoft Docs
/favor (アーキテクチャ固有の最適化) | Microsoft Docs
/Zp (構造体メンバーの配置) | Microsoft Docs
コンパイラ組み込み | Microsoft Docs
呼び出し規則 | Microsoft Docs

呼び出し規約

x64 での呼び出し規則 | Microsoft Docs
x64 calling convention | Microsoft Docs
__m128 | Microsoft Docs
setjmp | Microsoft Docs
longjmp | Microsoft Docs
コンピューター:C言語講座:構造体・共用体・ビットフィールド

スタックの使用

x64 スタック使用量 | Microsoft Docs
x64 stack usage | Microsoft Docs
Gamasutra - In-depth: Windows x64 ABI: Stack frames
malloc | Microsoft Docs
__m128 | Microsoft Docs
_aligned_malloc | Microsoft Docs
_alloca | Microsoft Docs
align (C++) | Microsoft Docs
__declspec | Microsoft Docs

プロローグとエピローグ

x64 プロローグとエピローグ | Microsoft Docs
x64 prolog and epilog | Microsoft Docs
Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
Windows x64で電卓を起動するシェルコードを書いてみる - ももいろテクノロジー
X64 Memory segmentation – Is the game over? | AaLl86 Security
或るプログラマの一生 » x64 環境でのアセンブラプログラミングにおける注意点
x64 Assembly Language Programming
64-bit _alloca. How to use from FPC and Delphi? | Atelier Web
Saving Space When Saving Space - emsea
Thread’s Stack – Satyem
assembly - Meaning of BND RET in x86 - Stack Overflow
assembly - What does `rep ret` mean? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "余談ですが、x64は概ねプロローグでstack事前確保(alloca系は別として)なので、関数内でcall毎のpush/popがない分、x86よりダンプが読みやすい印象があります。 (ただダンプ解析では、引数がスタックにない分、若干解析しづらい)… "

例外処理

x64 例外処理 | Microsoft Docs
x64 exception handling | Microsoft Docs
MSVC の例外処理 | Microsoft Docs

x86-64とARM64の可変長引数関数の呼び出し規約 - Qiita
2x-3x Performance Improvements for Debug Builds | C++ Team Blog

MS

定義済みマクロ
WINVER および _WIN32_WINNT の変更
/DISASM
/HEADERS
/SECTION (DUMPBIN)
Microsoft Macro Assembler Reference
MASM for x64 (ml64.exe)
ML and ML64 Command-Line Reference
PROC
.ENDPROLOG
SEGMENT
COMM
EXTERN (MASM)
INCLUDELIB (MASM)
INCLUDE (MASM)
PUBLIC (MASM)
Directives Reference
.MODEL
Symbols Reference
ML Error Messages
Operators Reference
MASM Numbers and Operators - Windows 10 hardware dev
アセンブリ言語の式
operator IMAGEREL

x64

その他

X86 Opcode and Instruction Reference
Intel XED
SSSE3: fast popcount
WojciechMula/sse-popcount: SIMD (SSE) population count --- http://0x80.pl/articles/sse-popcount.html
Expression templateとfmaについて - in neuro
maveの中身について - in neuro
SIMDベクトル・行列ライブラリを作った - in neuro
本の虫: 今でも乗除算をビット演算に展開する意義はあるんだろうか
part03.pdf
アセンブリ – 64ビットコールゲートの使い方 - コードログ
Nerry さんはTwitterを使っています: 「deadbeefみたいなの、x64ではあまり適当に設定しすぎるとpage faultの前にcanonical violationに引っかかって例外のエラーコードとして取れないのしんどい」 / Twitter
パフォーマンス – x86_64:IMULは2x SHL 2x ADDより速いですか? - コードログ
minix86
アセンブリ – x86で相対的な短いjmpをエンコードする方法 - コードログ
エンコーディング – 相対JMP(x86)はアセンブラーにどのように実装されていますか? - コードログ
x86 の汎用レジスタのルーツ - 借り初めのひみつきち
x64で配列の添字にintを使うと遅い - in neuro
InstLatX64さんはTwitterを使っています 「#Intel refreshed the "Data Streaming Accelerator Architecture Specification" to 1.1 with #ENQCMD/ENQCMDS of #SapphireRapids https://t.co/SDQ1mg5Tpt https://t.co/Z9jztPsq2Y」 / Twitter
INTEL® DATA STREAMING ACCELERATOR ARCHITECTURE SPECIFICATION - 341204-intel-data-streaming-accelerator-spec.pdf
PEXT/PDEP - Google 検索
中村 実さんはTwitterを使っています 「日高 徹・青山 学著『8086マシン語秘伝の書』は面白いので知らない人は一読をおすすめする。全文がEPUBやPDFで公開されいるみたいだし。 https://t.co/Dm1CpJQmzh」 / Twitter
8086マシン語秘伝の書 : 日高徹, 青山学 : Free Download, Borrow, and Streaming : Internet Archive

herumi

introduction to x86-asm
x64 Assembly Language Programming
Intel optimization
misc/fence.md at master · herumi/misc
herumiさんのツイート: "mclの基礎体のx64(Xbyak)実装の多少詳しめの解説(書きかけ)。今日の社内勉強会の資料。adoxやadcxの解説ってあまり見かけない(というか命令の存在自体知らない人が多そうな印象)。 https://t.co/FCz6Zm7NMW"
opti/field-impl.md at master · herumi/opti
melancholic afternoon
MKL-DNNで学ぶIntel CPUの最適化手法 - Cybozu Inside Out | サイボウズエンジニアのブログ
herumiさんのツイート: "先日のIntel MKL-DNNについてのブログを書いてるときに見つけたAVX-512用指数関数expの改良(22命令→19命令)のpull requestがmergeされた。 https://t.co/nviKW0gyrK そしてvcvtps2dq + vcvtdq2psはvrndscalepsに出来るというのを知った。これはvroundpsの拡張だったのか。 https://t.co/o2DiBVCRZZ"
herumiさんのツイート: "xchg eax, eaxは64bit環境じゃnopじゃないよと説明したよね、と思ったけど@sksat_tty さんはその日は休んでいたのだった。 https://t.co/93Hh1WE9R6"
melancholic afternoon
melancholic afternoon

iSUS

x64 アセンブリーの概要 | iSUS
Microsoft* Windows* 10 における新しい命令セットの利用 | iSUS
ソフトウェアは実際に新しい命令セットを使用しているのか? | iSUS

命令

melancholic afternoon
MULX — Unsigned Multiply Without Affecting Flags
ADCX — Unsigned Integer Addition of Two Operands with Carry Flag
ADOX — Unsigned Integer Addition of Two Operands with Overflow Flag
算術命令
xorpd | xchg rax,rax
X86-64 Instruction Encoding - OSDev Wiki
AMD64の特徴と機械語コーディング (1/2):CodeZine
assembly - Why did GCC generate mov %eax,%eax and what does it mean? - Stack Overflow
MOV命令
お手軽に使える高速なSSE4.2専用文字検索ライブラリ - Cybozu Inside Out | サイボウズエンジニアのブログ
Nerry さんはTwitterを使っています: 「x64ってデフォルトオペランドサイズ32bitだけど、32bitと64bitでそれぞれ意味のある命令、強制的に64bitで実行される命令、明示的に64bitにしないと実質意味のない命令が混在してて禿げる」 / Twitter
Nerry さんはTwitterを使っています: 「push/popやcall/ret(near)は強制64bit iretqとかは明示的に64bitにしないと禿げる奴」 / Twitter
BitTest 命令 - 借り初めのひみつきち
PDEP/PEXT命令 - Google 検索
Makoto Kato ︎︎さんはTwitterを使っています 「インテルなんてsha256とかの拡張が32bitでも提供してるのはびっくりした」 / Twitter
FadisさんはTwitterを使っています 「Arch Linuxがx86-64-v3版の提供を検討しているらしい。x86_64には多くの拡張命令が追加されてきた為、初代Athlon64に合わせてビルドしたバイナリは今日のCPUを活かす事ができない。 この為Archでは以前からx86_64ならどこでも動くv1とNehalem以上を要求するv2が提供されていた https://t.co/7GjGxZGB9W」 / Twitter
Arch Linux Developers Discuss Idea Of Providing An x86-64-v3 Port - Phoronix
FadisさんはTwitterを使っています 「新しいx86-64-v3ではAVX、AVX2、MOVBE、XSAVE等が使えるようになり、最低でもIntelならHaswell以上、AMDならZen以上のCPUを要求するようになる」 / Twitter
SIMD-accelerated regular expression matching | Proceedings of the 12th International Workshop on Data Management on New Hardware
Rust の勉強と CPUID の実践と | Coelacanth's Dream
InstLatX64さんはTwitterを使っています 「@PerforatedBlob Thank you very much! You are right, ternlog is unnecessary here. Fix: https://t.co/dqvq82omja」 / Twitter
SIMD TZCNT: TERNLOG 0x22 -> ANDN · InstLatx64/InstLatX64_Demo@b672b0a

二分探索

Kazuho OkuさんはTwitterを使っています 「いい紹介記事。参考にコード書く上では、分岐予測があたる場合「CMOVのほうが遅くなりがち」なことも注意必要だと思う。基本的に分岐予測が当たらない時に使うものという認識 / https://t.co/FposYiiW60」 / Twitter
Binary search with modern processors - Speaker Deck
Kazuho OkuさんはTwitterを使っています 「aarch32 で全命令に predicate(実行条件指定)があったのが aarch64 でなくなったのも、反映されない命令を常に実行するよりも、分岐予測を使って実行する命令数を減らすほうが有効だという現実があるからなわけで」 / Twitter
Kazuho OkuさんはTwitterを使っています 「演算器があまってる場合はCMOV使っても問題ないとか、そうすることでBP/BTBの消費が抑えられるとか言い出すと沼」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ところで論旨に関係ないけど、CMOV使う版は配列の要素数が2のベキ乗じゃない場合の処理をさぼってない?」 / Twitter

Intel Key Locker

Intel Key Locker Specification - 343965-intel-key-locker-specification.pdf

OFFSET FLAT:

x86 Disassembly/Variables - Wikibooks, open books for an open world
It's science, but it works like magic.: Gas Problems
ia32_chap_04.pdf
ブートストラップローダ領域でHello, World! - Qiita

Unreal Mode

“Unreal mode”と呼ばれているx86の状態について | KEI SAKAKI's PAGE.
Unreal Mode - OSDev Wiki
Unreal mode - Wikipedia
savaさんのツイート: "めも:(i386の)アンリアルモード略史 https://t.co/aYuRbCWKxM インテルは最初、i386でも(286と同様に)プロテクト→リアルモードに戻る手段を提供しない予定だった、というのははじめて知りました…"
A Brief History of Unreal Mode | OS/2 Museum

リアルモード

X86アセンブラ/x86アーキテクチャ - Wikibooks
x86_mode - OS-Wiki
リアルモード - Wikipedia
8086による機械語入門 - Qiita
リアルモードでも32bitのレジスタを使うことができる - 脱力系日記

blog

原書で学ぶ64bitアセンブラ入門(4) - わらばんし仄聞記
はじめてのにき(2010-07-06)
x86 でリンクコール - Think Stitch - PRINCIPIA
gccのx86インラインアセンブリに関して
はじめてのにき(2009-03-31)
Assembly Programming on x86-64 Linux (05)
Assembly Programming on x86-64 Linux (02)
2014.seccon.jp/mailmagazine/backnumber07.txt
2014.seccon.jp/mailmagazine/backnumber08.txt
Intel Ice Lakeのプロセッサは整数除算命令がアツい - chroot("/home/hibari")
Ice Lakeプロセッサは整数除算がアツい 数値計算編 - chroot("/home/hibari")
日記 (2019 年 7 月中旬)
日記 (2019 年 7 月中旬)

スライド

SSE4.2の文字列処理命令の紹介
あなたの知らないnopたち@ラボユース合宿
Shinjuku.rs#15 Rustでつくるx86アセンブラ - Speaker Deck

Qiita

x86-64プロセッサでGNU assemblerを使う - Qiita
ハードウェア乱数 RDRAND命令の使い方 - Qiita
初学者向け x86/MacOSX 64bit アセンブリ - Qiita
FMA (fused multiply-add) の話 - Qiita
NOP WORD PTR? - Qiita

Twitter

16 ビット long モード

Nerry さんはTwitterを使っています: 「今まで16bitロングモードがうまく動かない理由がやっとわかった:;(∩´﹏`∩);: https://t.co/DkozHhnKZj」 / Twitter
Nerry さんはTwitterを使っています: 「実際には16bitロングモード自体は以前から動いていたけど、ロングモードに遷移直後のfar jump命令が間違っててそのままGPF→triple faultみたいな」 / Twitter
Nerry さんはTwitterを使っています: 「これによって今までは起動時に RM16→PM16→PM32→LM32(CM32)→LM64 という遷移が必要だったのが、RM16→PM16→LM16(CM16)→LM64 に直接遷移できるようになって中間の32bitセグメントがいらなくなったヽ(•̀ω•́ )ゝ✧」 / Twitter
Nerry さんはTwitterを使っています: 「x86の命令エンコーディングの複雑さを改めて実感した。 x86命令って16bitと32bitの単純な2種類あるわけじゃなくて、デフォルトオペランドサイズと66 67の組み合わせで(命令によっては)4種類の命令が混在している。」 / Twitter
Nerry さんはTwitterを使っています: 「困ったことに4種類の命令全てにちゃんと名前がついてるわけじゃなくて、アセンブラや逆アセンブラ上では表現できない命令も存在している」 / Twitter
Nerry さんはTwitterを使っています: 「スレッドディスパッチャ完成する前にSMPのAP起動コード動いた🤔」 / Twitter

整数乗算

R. ShioyaさんはTwitterを使っています 「一時期はそうだったけど最近のインテルだと整数乗算がレイテンシ3サイクルで,SIMD の FP だと 4 なので整数のが速いかも.整数乗算がボトルネックになるのは構造体の配列アクセスとか,固定値での除算からの変換,ハッシュ表のハッシュ値の計算とか暗黙な場合が多いかも https://t.co/yCoJ6a5rdR」 / Twitter
instruction_tables.pdf
Kazuho OkuさんはTwitterを使っています 「除算はともかく、乗算については(特にSIMDの)浮動小数でやった方が整数でやるよりも速いCPUの方が多いんじゃないかなぁ。結局、実用途でボトルネックになる乗算は大抵浮動小数なので」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえばこの間、塩谷先生に教えてもらった資料に、こんな記述あったっけ。 ---- 「Alphaは整数除算命令を欠いており…驚くべき結果として、ほとんどの実装で浮動小数点除算が整数除算よりも大幅に高速になりました」 https://t.co/sjOdraolxv」 / Twitter
Waterman_berkeley_0028E_15908.pdf
FadisさんはTwitterを使っています 「乗算が加算より遅いかはプロセッサによる。シフトより乗算のほうが有利なアーキテクチャさえ存在する。コンパイラはプロセッサが命令を処理するのに必要なサイクルに基づいて等価な命令への置き換えを行うので多くの場合高級言語における計算式はその意味通りに書いて正しいmarchを指定したほうが良い」 / Twitter

REX

uchanさんはTwitterを使っています 「MOVZX r64, r/m8は何のために存在するのか分からない - uchan note https://t.co/kxARiS5J4G」 / Twitter
MOVZX r64, r/m8は何のために存在するのか分からない - uchan note
yohさんはTwitterを使っています 「@uchan_nos へーときになって検索だけしてみたのですが https://t.co/mG50BAKT2D が答えになっています?」 / Twitter
assembly - What's the point of instructions with only the REX prefix in 64bit mode? - Stack Overflow
yohさんはTwitterを使っています 「@uchan_nos 良く読み直したら REX-prefix 有無じゃなくて EAX / RAX の違いに関してなんですね。失礼しました(r64直指定とr32指定+上位32bit自動Zero化で何か違うかという点)」 / Twitter
yohさんはTwitterを使っています 「@uchan_nos FYI: 趣旨がよく似た https://t.co/1tmIUpiP0y "Difference between MOVZX r32, r/m16 and MOVZX r64, r/m16 in 64-bit x86" ってのがありました。」 / Twitter
assembly - Difference between MOVZX r32, r/m16 and MOVZX r64, r/m16 in 64-bit x86 - Stack Overflow
Yasuo ItabashiさんはTwitterを使っています 「@uchan_nos 元記事の通り「規則性を満たすために項目だけは用意されている」のだと思います。命令のデコーダを作る観点からするとプレフィックスを付けた時の意味に対する(上位32bitがクリアされる)動作が(結果的に重複したものだとしても)妥当であるのに、わざわざr64のものを弾くのは回路が無駄に複雑になります」 / Twitter
Keigo NitadoriさんはTwitterを使っています 「raxやripレジスタのr、REX prefixとは何か調べていたら "Register EXtension"らしい。ラテン語の王様ではないのか。 » assembly - What does 'REX' stand for in an x86-64 REX prefix? - Stack Overflow https://t.co/GvTykx3BV6」 / Twitter
assembly - What does 'REX' stand for in an x86-64 REX prefix? - Stack Overflow
Keigo NitadoriさんはTwitterを使っています 「Accumulator, Base, Counter, Dataでa b c dの8-bitレジスタだったけど、16-bitになったときah, alみたいに上下触れてaxがその両方。 ソースは不明だが32-bitに拡張されたeaxのeもxもextend由来という記事も。 https://t.co/WNmPXLtucj」 / Twitter
レジスタ (コンピュータ) - Wikipedia

histric-1

るくすさんのツイート: "まあrex prefixの有無がdec %eaxに解釈されるかされないかで判定するというのはあまりにも有名なテクだけど、test $0xF9F9F9F9,%eaxでsetcondに解釈されるというのは、なるほどという感じ"
Urabe, Shyouheiさんのツイート: "x86というのは同じことをするのに様々な書き方ができるISAなわけだけれども、同じことをするのであれば短く書いたほうが速い、という話。 ようは最近のx86ではfetchの帯域が律速している。 https://t.co/a9AVqgJWTN"
Micro-op fusion in x86. | Denis Bakhvalov | C++ enthusiast.
はぇ~☆さんのツイート: "いろいろ制約があって、コード次第で状況が毎回違うんですよね。… "
まさみさんは語りたいさんのツイート: "ああ、REXが。。。… "
Fadisさんのツイート: "x86_64のpop %r15の命令の途中にジャンプすると%rdiがpopされる。pop %rdiを必死で探し回ったけど見つけられなかったROPerは覚えておくと時々役に立つ"
OS自作 uchan_nosさんのツイート: "x86-64アーキテクチャのretfとlretqとREX.Wプレフィクスの関係を学んだ."
Makoto Kato ︎︎さんのツイート: "struct t {size_t a; size_t b;}; struct t test (int p)なんてやると、Win64 ABIだとrcx (最初の引数のはず) がpである保証ないとかあれはちゃんとドキュメント化してほしい"
まさみさんは語りたいさんのツイート: "Modifier + Register/Memory indicator = ModRM"
解答略さんのツイート: "x86の機械語をざっと見渡すには、このpdfが世界で一番整理されてると思う。https://t.co/00G7QFh8sN これはx86エミュレータ作るとき大変世話になった。人力objdumpするなら、とりあえずこの表を小一時間眺めるのが良さそう。nopはxchg eax, eaxとか色々わかる。これのx64版、誰か作ってくれないかな"
Wayback Machine
解答略さんのツイート: "前ツイートのpdfは、このサイト https://t.co/9Zw3y6hZIG のpdfがリンク切れなのでwebarchiveから拾ってきたものです。ModRM周りを理解するために、僕はニーモニックをnasmでアセンブルして表と見比べてた。強者はIntelの仕様書眺めりゃ理解できるのだろう。あとx86エミュレータ本は実装の参考になった"
ハンド (逆) アセンブルのための x86 ニーモニックの覚え方 - @a4lg のそろそろ技術的日記
Nerry@さんのツイート: "x64ってデフォルトサイズが32bitになってて ・暗黙的に64bitで解釈される命令 ・32bitと64bitでそれぞれ意味のある命令 ・実質的に64bit専用なのに64bitの明示が必要な命令 が混在してるんだよね"
Kazuho Okuさんのツイート: "VMとかステートマシン書いてると、分岐先予測があたるようにコールサイト(分岐元)を複数に分けるのは常套手段ですよね?"
Kazuho Okuさんのツイート: "詳しくはこのへん https://t.co/owIgORoNEy"
assembly - X86 prefetching optimizations: "computed goto" threaded code - Stack Overflow
Kazuho Okuさんのツイート: "絶対アドレスやip相対の無条件分岐命令が、それ以外の分岐命令と同様にbtbを消費するのかは気になってる(実務上はそこまでシビアなコードは書かないから気になるどまりなんだけど)。cpu的にはそこ節約することは可能だと思う一方、そこがんばるかわりにbtbのエントリ増やしてそうでもあり"
Kazuho Okuさんのツイート: "僕はデータキャッシュやTLBよりも圧倒的に分岐予測を気にしてコード書いてる。キャッシュはb-wayだから一個あてなくてもペナルティは発生しにくいんだけど、あたりにくい条件分岐は一個ホットパスにおいただけで確実にペナルティ食う… "
成瀬さんのツイート: "CPUの気持ちって分岐予測とキャッシュかなぁって感じだけど、パフォーマンスカウンターを読めるようにならないとだめかなぁってところでとまっている"
島鉄雄さんのツイート: "https://t.co/cpb2LfGJV6 Zen 2が最強の分岐予測を実装してIPCが大幅に向上したようだけど、やっぱり条件分岐自体がコードを遅くする原因だから、なるべくcmovになるようにコーディングすべきなんだよね。 試したら2つ目の書き方がcmovになった。 (gcc -Ofast でコンパイルした)… https://t.co/PJDhXk3Hk8"
Nerry さんはTwitterを使っています: 「滅多に使われないDFのために要所要所にCLD命令を配置しなければならないx86のstring命令の設計ミス」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「far retは低い権限レベルに戻るときと権限レベルが変わらないときで,SS/RSPをポップするかどうかが切り替わるの知らなくて数十分ハマった」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「関数コールが即値アドレス,変数読み書きがRIP相対になるのはなぜという話。callは即値としてRIPを基準にしたオフセットを取るが,movはRIP相対とするためには[rip+...]のような形式のアドレッシングが必要だから,逆アセンブルしてみるとcallは即値コール,movはRIP相対に見えるだけでは?」 / Twitter

Kazuho OkuさんはTwitterを使っています 「えー aes128gcm、パケットサイズが 1KB とかになると i7-4870HQ (4th gen Core i7) と Atom x5-Z8350 (Cherry Trail) でスループットが10倍違うのマジですか。。。通常のワークロードだと4倍くらいなのでビビってる」 / Twitter
mattnさんはTwitterを使っています 「Windows で動く x86/x64 アセンブリの REPL。 / “GitHub - zerosum0x0/WinREPL: x86 and x64 assembly "read-eval-print loop" shell for Windows” https://t.co/UnLQMtDh1V」 / Twitter
zerosum0x0/WinREPL: x86 and x64 assembly "read-eval-print loop" shell for Windows
Miura HidekiさんはTwitterを使っています 「意味がわからなかったけど、PC8001のマシン語モニターの1行アセンブラみたいなものか」 / Twitter
ロボ太さんはTwitterを使っています 「SIMD化をすると早くなったり遅くなったりするぞい。」 / Twitter
InstLatX64さんはTwitterを使っています 「@mjcharney refreshed #Intel XED. These #AlderLake and #SapphireRapids datafiles detail the #GoldenCove and #Gracemont ISA capabilities https://t.co/nyQ0LEZKRv https://t.co/5vPFG6JTiW https://t.co/fJgfOCa74v」 / Twitter
InstLatX64さんはTwitterを使っています 「An example on how useful are the new #AVX512-levels: SIMD TZCNT emu, POPCNT vs LZCNT - Byte/Word, not just DWord/QWord - faster, 5vs8 clks on TGL - tzcnt(a)=popcnt(tzmsk(a))=popcnt(~a&amp;(a-1))=popcnt(ternlog(a, a, a-1, 0x22)) - 0-case handled Free source: https://t.co/3sbGqNKn3J https://t.co/41UEv3SUNc」 / Twitter
SIMD TZCNT w/AVX512 · InstLatx64/InstLatX64_Demo@2ed2029

Intel® Intrinsics Guide
asmjit/asmjit: Machine code generation for C++
intelxed/xed: x86 encoder decoder

MASM

MASM32によるアセンブラ入門:パート1 - インターネットコム
Win32 MASM プログラミング入門
VC++のデバッグモードとリリースモードの違いについて。 - VC++を使って... - Yahoo!知恵袋
visual studio 2013で「最適化コンパイルのオプションを切る」ってどうすれば... - Yahoo!知恵袋
Visual C++ 2010 express のインラインアセンブラのOFFSET演算子に... - Yahoo!知恵袋
CX's Hello, World! » Hello, MASM World!
MASM のデータ型
MASM のデータ型
MASM の 実行時比較演算子,TYPE演算子, 他
Microsoft Macro Assembler のメモ セグメント
Entis Laboratory
Microsoft Macro Assembler のメモ モデル
MASM 6.1 Documentation
MASMReference.pdf

MASM 以外

Yasm

The Yasm Modular Assembler Project
Libyasm · yasm/yasm Wiki
yasm/yasm: Yasm Assembler mainline development tree
Yasm - Wikipedia
yasm/COPYING at master · yasm/yasm
Amd64 · yasm/yasm Wiki
Libyasm · yasm/yasm Wiki
libyasm: File List
yasm-doc/manual.txt at master · yasm/yasm-doc
Chapter 16. win64: PE32+ (Microsoft Win64) Object Files
Win64object · yasm/yasm Wiki
Programmerreferences · yasm/yasm Wiki
Codeviewdebug · yasm/yasm Wiki
Dwarfdebug · yasm/yasm Wiki
Faq · yasm/yasm Wiki
Visualstudio2005 · yasm/yasm Wiki
yasm-1.3.0
yasm-1.3.0
Yasmのコンパイル&インストール お気に入りの動画を携帯で見よう
猫科研究所 - 今更MinGW 2009.06(5) nasm,yasm
1.7. Supported Debugging Formats
Yasm User Manual
Yasm 1.2.0 - The Yasm Modular Assembler Project
x86 - Debugging assembly code created with yasm - Stack Overflow
c++ - How can I use gdb to debug code assembled using yasm? - Stack Overflow
Ubuntu Manpage: yasm - The Yasm Modular Assembler

NASM

Netwide Assembler - Wikipedia
Netwide Assembler - Wikipedia
NASM
Public Git Hosting - nasm.git/summary
NASM
NASM - The Netwide Assembler
NASMとMASMの違い - その他(プログラミング・開発) 解決済み| 【OKWAVE】
https://web.archive.org/web/20100719062549/http://www.yuasa.kuis.kyoto-u.ac.jp:80/~nobu/study/nasm/chap2.html
NASM - The Netwide Assembler
nasmのバグ? - 借り初めのひみつきち
WindowsでNASMを使ってアセンブラを動かしてみる - Qiita
アセンブラ環境 NASMとALINK - Namareba食べたい
アセンブリでWin32APIを呼んでみよう! | Developers.IO
南関東開発機構 : アセンブリ言語でWindowsプログラミング
アセンブリ言語入門 | nasmの使い方-4 | サラリーマンがハッカーを真剣に目指す
NASM - The Netwide Assembler

GAS

Linux のアセンブラー: GAS と NASM を比較する
KMC Staff Blog:gas のインテル構文
GNU アセンブラ - OS Project Wiki
GASとNASMとNASKについて - Project_Rena_( unofficial plan : shoko ) - Seesaa Wiki(ウィキ)
GAS と NASM ではどちらが使い易いのでしょう? - 「はじめて読む8086... - Yahoo!知恵袋
GAS_基本書式 CapmNetwork
Using as: Pseudo Ops
Using as: i386-Dependent
Using as - Assembler Directives
日記 (2017 年 7 月中旬)
日記 (2017 年 7 月中旬)
uchanさんはTwitterを使っています 「https://t.co/xIXWlggjpu これが答えっぽい。GNU asはqword==8として解釈するから push qword [rax]は push 8 [rax] に解釈されるらしい。 おそらくAT&amp;T記法によるところのpush 8(%rax)の意味になっていると思われる。これなら筋が通る。」 / Twitter
assembly - Gnu assembler gives unexpected memory operand - Stack Overflow

Xbyak

XBYAK
herumi/xbyak: a JIT assembler for x86(IA-32)/x64(AMD64, x86-64) MMX/SSE/SSE2/SSE3/SSSE3/SSE4/FPU/AVX/AVX2/AVX-512 by C++ header
xbyak/readme.txt at master · herumi/xbyak
Xbyakで始めるx86(IA-32)入門 (mitsunari@cybozu labs)
暗号の世界最速実装を目指す ── 光成滋生 - Cybozu Inside Out | サイボウズエンジニアのブログ
S.F. Blog:Xbyakのしくみ
Xbyakで簡単な関数を実行時に生成する - Kludge Factory
C++/Xbyak - discypus
Xbyakの紹介とその周辺
melancholic afternoon

Function Calling Convention (x86-64) - Qiita
assembly - How to generate plain binaries like nasm -f bin with the GNU GAS assembler? - Stack Overflow

Wikibooks

X86アセンブラ/x86アセンブラ - Wikibooks
X86アセンブラ/GASでの文法 - Wikibooks
X86アセンブラ/MASMでの文法 - Wikibooks
X86アセンブラ - Wikibooks

通信用語の基礎知識

オペコード (IA-32) ‐ 通信用語の基礎知識
オペランド ‐ 通信用語の基礎知識
ModR/M ‐ 通信用語の基礎知識
SIBバイト ‐ 通信用語の基礎知識
命令プリフィックス ‐ 通信用語の基礎知識
REXプリフィックス ‐ 通信用語の基礎知識
REX.W ‐ 通信用語の基礎知識
プリフィックス ‐ 通信用語の基礎知識
XOPプリフィックス ‐ 通信用語の基礎知識
VEXプリフィックス ‐ 通信用語の基礎知識
EVEXプリフィックス ‐ 通信用語の基礎知識
Intel AVX ‐ 通信用語の基礎知識
Intel AVX2 ‐ 通信用語の基礎知識
__m256 ‐ 通信用語の基礎知識
Intel AVX-512 ‐ 通信用語の基礎知識
__m512 ‐ 通信用語の基礎知識
FMA3 ‐ 通信用語の基礎知識
FMA4 ‐ 通信用語の基礎知識
HLE ‐ 通信用語の基礎知識
RTM ‐ 通信用語の基礎知識
AMD64 ‐ 通信用語の基礎知識
cpuid (x86) ‐ 通信用語の基礎知識

Wikipedia

x86 calling conventions - Wikipedia
呼出規約 - Wikipedia
Calling convention - Wikipedia
Application Binary Interface - Wikipedia
Application binary interface - Wikipedia
コールスタック - Wikipedia
Call stack - Wikipedia
符号拡張 - Wikipedia
3DNow! - Wikipedia
SIMD - Wikipedia
x86 - Wikipedia
x64 - Wikipedia
プロテクトモード - Wikipedia
積和演算 - Wikipedia
80x86 の命令の自己書き換え (#1559838) | もうやらなくていい昔のコーディングテクニックあれこれ | スラド
自己書き換えコード - Wikipedia
Self-modifying code - Wikipedia

Qiita

アセンブラに手を出してみる - Qiita
アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita
C言語の勉強がてら、CASL II処理システムを実装した話 - Qiita
EVEX - Qiita
Pelemay 0.0.10 で生成されるアセンブリコード - Qiita
2で割ることと3で割ること - Qiita
IA32(x86)汎用命令対応のアセンブラ実装方法(1) - Qiita
IA32(x86)汎用命令対応のアセンブラ実装方法(2) - Qiita

Twitter

その他

ひらナツさん@散文家さんのツイート: "AVXとSSEの命令がミックスされて実行されると、SSE命令の過去互換性を保つために、SSE命令が遅くなる(エミュレートされた状態になる?)AVXのレジスタ上位をクリアする命令をAVX実行後に実行してやると、もとのSSE命令に戻る。 #spkai"
インターネットの闇さんのツイート: "@func_hs load effective addressですね~~~"
InstLatX64さんのツイート: "A Venn-diagram to understand the 12 levels of #AVX512 in #Intel processors https://t.co/5cV9nTDTRb"
Fadisさんのツイート: "128bit整数があると64bitのアドレスにタグやカウンタをくっ付けた物をatomic演算で書き込む(今日の主要な64bitプロセッサは128bit atomic演算をサポートしている)のを高級言語で書けるんだ。これができるとロックフリーデータ構造におけるABA問題をあまり頭を使わずに解決できる"
ロボ太さんのツイート: "アセンブリの話になると必ず「アセンブラ言語は誤りで、アセンブリ言語が正しい」という人が湧いて、それはいいんだけど、とりあえずIBMは「Assembler language」と呼んでることと、ARMが「Unified Assembler Language (UAL)」を規定していることは知ってても良いかもしれない。"
ロボ太さんのツイート: "まぁARMは「アセンブリ言語(assembly language)」派だけれども。なのになぜ「UAL」が「Unified Assembly Language」ではなく「Unified Assembler Language」の略なのかは知らない。"
uint256_tさんはTwitterを使っています: 「関数呼び出し時に保存されないといけない(仮想)レジスタがどれかを判断するには, 呼び出しの周りで個々レジスタの生存期間を参照して判断すればいいかと思っていたけど, そもそも呼び出しがレジスタの値を破棄する物と扱えば, レジスタ退避のための処理と統合できるという(当たり前の)事実に気づいた.」 / Twitter
hatsugai∅PRINCIPIAさんはTwitterを使っています 「32 bit 整数値を 1 bit ずつ回転させた 32 個の整数をすべて加えてから 2 の補数をとると、はじめの整数に含まれていた 1 の数(popcount)になる。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t コードの実行時間や利用可能な並列性をモデル化したアセンブラがあると良いなと思っています。」 / Twitter
uint256_tさんはTwitterを使っています 「@zacky1972 モデル化というのはどういう意味でしょうか」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t たとえば命令スケジューリングをするときの指針になるような機能が欲しいと思っていて,いろいろな命令の並びに対して実行時間をシミュレーションできるようなモデルがあると良いんじゃないかと思いました。」 / Twitter
uint256_tさんはTwitterを使っています 「@zacky1972 可能な命令の並び方に対して一つずつベンチマークできると便利かもしれませんね」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「MASM/GAS/Apple AS/ARM ASMのフォーマットの違いで痛い目にあっている自分としては、特殊なCPU命令ごときでアセンブラを使うのは得策ではないという知見。できるかぎりintrinsicを使うべき」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「GNU AS/Apple AS/ARM RealView (Microsoft) ASとARMであっても三種類のシンタックスがあるんだから、ARMでもnasm的なの必要だよな」 / Twitter

分岐

uint256_tさんはTwitterを使っています 「フレーム内での位置を決定する前に命令を選択しているから, s0-10000みたいな位置に変数が置かれると, sd a5, -10000(s0) というinvalidなアセンブリが生成されてしまう.」 / Twitter
uint256_tさんはTwitterを使っています 「先にとても雑にフレームの位置を計算すればいいのか??」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t これは分岐命令とかも同じじゃないですか? こういう問題は、命令を生成した後に自分が生成した命令をスキャンし直して、大きすぎるオフセットを持ってる命令を複数の命令列で置き換えるという処理を入れるしかないような。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@uint256_t しかも分岐命令だと収束するまで繰り返し再スキャンしないといけないですよね。1つの命令を複数命令列に置き換えることで、既存の命令のジャンプ先へのオフセットが若干大きくなることがありえるので。」 / Twitter
msyksphinz_devさんはTwitterを使っています 「LLVMだとeliminateFrameIndex()がその修正を担いますかね。 MachineInstrの状態でオフセットを計算し、即値が入り切らなければ、そこでさらに1命令突っ込みます。」 / Twitter

AT&T 記法

Tsukasa #01 [要出典]さんのツイート: "AT&T 記法、オペランドの向きが一般的なアセンブリ言語と逆なことまでは許せる。が、lea 命令をあんな形式にしたのはどう頑張っても擁護できない。"
Tsukasa #01 [要出典]さんのツイート: "lea 命令だけじゃないな。レジスタ 2 個以上がかかわる全てのアドレッシング形式 (特に Intel シンタックスでいう [4*ecx+esi+8] のような表記は AT&T シンタックスだと……)。"
Tsukasa #01 [要出典]さんのツイート: "[4*ecx+esi+8] → 8(%esi, %ecx, 4) …………。"
Tsukasa #01 [要出典]さんのツイート: "これは重要なことだと思うけど、アセンブリ言語は機械語そのものじゃない。"
rnurachueさんのツイート: "disasmすると落ちる情報もあるんやで(asmの表現力によるかもしれないが)"
rnurachueさんのツイート: "アーキによるかもしれんな"
Tsukasa #01 [要出典]さんのツイート: "まぁアーキ次第ではあるけど言いたいことはよく分かる。ジャンプ幅を意図的に決められる nasm のような処理系でも、8B 50 00 と 8B 90 00 00 00 00 は区別する方法が無いし、disasm 結果のアセンブリ部分を使うとバイナリが変わる。"
Tsukasa #01 [要出典]さんのツイート: "あるいは x86 における 87 c0 と 90。このときは ndiasm はバイナリの違いをちゃんと復元するが、nasm が気を利かせて前者を 90 にコンパイルし直す。"
herumiさんのツイート: "よく使われる命令はよいですがfsubrp, fsubpのAT&T記法の扱いはバグだと思いました(昔めちゃくちゃはまりました)。後、例えばvcvtpd2dq xmm0, yword [eax+32]といった新しい命令がどうなるかいちいち調べないといけないのも二度手間です。Intelが本家なのだからそれに従うのがよいと思います。… https://t.co/bFmd2lZY9j"
herumiさんのツイート: "補足するとIntelでのfsubrpはfsubrp st1,stの略(rはreverseでバイトコードはde e1)で意味はstからst1を引いて結果をst1に格納してレジスタポップだけどAT&Tでは何故かrがないfsubp %st, %st(1)になる。逆にfsubpはfsubrpになる。引数の順序だけでなく命令も入れ代わる。 https://t.co/hPLHkN7O1o"

インラインアセンブリ

Hideyuki Tanakaさんのツイート: "オッ(´・_・`) / “[Pre-RFC]: Inline assembly - language design - Rust Internals” https://t.co/GXv8c1KgHx"
Hideyuki Tanakaさんのツイート: "rustのインラインアセンブリのstable化にあたって、gcc互換の実装じゃなくて、もうちょっとわかりやすくするような文法定義する動きがあるのか。現状の案では、文字列ベースで似たような感じではあるみたいだけど、どうせやるならVCとかのようなEDSLタイプがいいんすけどね~"
Hideyuki Tanakaさんのツイート: "ただアレでやるには、ただバックエンドに文字列送るだけじゃなくて、引数とかのどれが書き換えられるとかそういうのの知識が必要になるから、コンパイラレベルでISAの知識が必要になるよな~まあそのほうが使い勝手はいいし、今時それぐらいはやってもいい気はするが。"
Hideyuki Tanakaさんのツイート: "D言語もVCみたいなEDSL形式のインラインアセンブリ持ってるんすねえ。あれ新しいプロセッサに対応するときD言語のバックエンドにそれ用のコードを追加しなきゃいけないんすかね~(´・_・`)"
Hideyuki Tanakaさんのツイート: "@ishitatsuyuki ふむふむやっぱあれはとりあえず必要だから入れてたけど理想の形ではなかったでしたか"
品川 高廣さんのツイート: "インラインアセンブラも -masm=intel を指定すれば Intel記法に出来ますよね。あまり見たことないですが。… "
技術書典4 け-51 x86-64-128さんのツイート: "Clangだと、インラインアセンブラの先頭行に.intel_syntax noprefixと書けば良いらしい。-masm=intelは不要。 https://t.co/8wRykdWsk3… "
品川 高廣さんのツイート: "gcc で Intel 記法を使うときはコマンドラインオプションで -masm=intel を付ける。clang で Intel 記法を使うときはインラインアセンブラの先頭で ".intel_syntax noprefix\n" と書く。両方やっておけば、gcc でも clang でもコンパイルできる。"

mov 命令

解答略さんのツイート: "昨晩からx86-80386のCPUをFPGAで自作してるんだけど、ようやくMOV命令が動いた。あと半日あればかなりの量の命令が実装できる気がする。FPGA慣れてきた。#低レイヤ https://t.co/L7oZSvx4aF"
Fadisさんのツイート: "x86のmov命令は1命令だけでチューリング完全の要件を満たせる事が知られている( https://t.co/01OSrCDOTX )し、mov命令が動くCPUは完全なCPUと言って良いのでは"
Fadisさんのツイート: "そして驚くべき事に、実際にmovしか吐かないC言語コンパイラ(フロントエンドはLCC)を作ってしまった猛者がいるらしい / M/o/Vfuscator https://t.co/DyXoBYQ4T7"
Mov is turing-complete
xoreaxeaxeax/movfuscator: The single instruction C compiler

@7shi

七誌さんのツイート: "VAXのアセンブラを作り始めた。まずはオペランドのパーサから。ランダムなバイト配列を逆アセンブルして、それをアセンブルして元に戻るかで確認。乱数ではなく定理証明するべきだと言われそうだけど…"
七誌さんのツイート: "機械語を調べるために1行アセンブルはよくやっていたのだけど、REPLがあれば効率化できるという発想はなかった。だからrappelを見て驚いた。完全にインスパイアされた… https://t.co/EbLbs6ap2d"
七誌さんのツイート: "総当たりで逆アセンブラを作ろうとしたとき、先に分析を済ませてからコードを書こうとしたのは、あまり良くなかったと気付いた。分析と並行してコードを書いて、うまくいった部分は分析対象から除外していかないと、複雑なものではなかなか収拾が付かない。"
七誌さんはTwitterを使っています: 「RETRO UNIX 8086(UNIX V1の8086移植)でもMulticsと同じようなlist形式を見付けました。私は知らなかったのですが、どうやらこういう形式があるようですね。 https://t.co/i2qycHaDts」 / Twitter
https://www.singlix.com/runix/runix8086/unix.lst
SODA NoriyukiさんはTwitterを使っています: 「@7shi https://t.co/rBSLFpGfPi の Example code とか https://t.co/75vJ7L8XQd みたいなアセンブリ言語と機械語を併置する奴ですか? アセンブリ言語でプログラミングし、機械語を見ながらデバッグする時代には一般的でした。」 / Twitter
Zilog Z80 - Wikipedia
Assembly language - Wikipedia
ぬん。さんはTwitterを使っています: 「@7shi @n_soda linuxでも、 objdump --disassemble &lt;binary&gt; するとでてくる形式ですかね。(コメントはないですが)」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@7shi @amasawa_seiji マニュアル見てみたら GNU as でも -al オプションで出すことができるみたいですね。」 / Twitter

@kazuho

Kazuho Okuさんのツイート: "@nalsh @shyouhei @n_soda オーバーフローは例外的なケースだから、cmovより分岐予測あてるほうが良いのでは?"
Kazuho Okuさんのツイート: "mov eax,eax はx86-64だとnopじゃなくてraxへのゼロ拡張なのか #spkai"
Kazuho Okuさんのツイート: "@kazuho で、ymmいじられたかどうか覚えてるのは、コンテクストスイッチの際に退避すべき量を最小限にするためじゃないのかな #spkai"
Kazuho Okuさんのツイート: "任意順序でのビット列並び替えが20命令前後で書けるのか / “Bit manipulations using BMI2 — bitbashing” https://t.co/aAQRwNaQS0"
Bit manipulations using BMI2 — bitbashing
Kazuho Okuさんのツイート: "direct-threaded codeの効果はNehalem世代で10.1%だったのがHaswellで2.8%に減少 / “Branch Prediction and the Performance of Interprete…” https://t.co/R9loLePdjF"

@kariya_mitsuru

ngtkさんのツイート: "@uchan_nos 64bitモードで32bit命令を実行すると64bitレジスタの上位32bitは0クリアされるとかそういう話ですか?"
OS作れないマン 技術書典3 あ11企さんのツイート: "REXプレフィックス付けなくても上位32ビットクリアされて嬉しいなーということだな。汚い。"
disassembly - xor eax, eax in x64 - Reverse Engineering Stack Exchange
置き引きにあったマヌケな鳥頭さんのツイート: "@uchan_nos s/push cs/push es/ で、push es の前にオペランドサイズプレフィックス(0x66)付けたら16ビットでプッシュ出来たりしません?"
置き引きにあったマヌケな鳥頭さんのツイート: "@tenpoku1000 @uchan_nos あ~、push es は 8086/88 の時からあります"
置き引きにあったマヌケな鳥頭さんのツイート: "@tenpoku1000 @uchan_nos pop cs はテロ行為っぽいですからね…"

Introduce assembler macros by DQNEO · Pull Request #22 · DQNEO/minigo
A bug story: data alignment on x86
NOP命令と都市伝説
タネ明かし: Whitespaceコンパイラを作った話の裏側 | κeenのHappy Hacκing Blog
なぜCPUメーカはレジスタの数を増やさず、最先端の64ビットCPUでも16個しかないのですか? - Quora
富岳のディープラーニング処理を支えるJITコンパイラ「Xbyak_aarch64」誕生秘話:インタビュー|gihyo.jp … 技術評論社
実行した命令数をカウントする - Fixstars Tech Blog /proc/cpuinfo
2の補数表現をちょっと違った見方をしてみる - Fixstars Tech Blog /proc/cpuinfo

Linker

その他

ABI Navigator
ソフトウェアの互換性と僕らの"User-Agent"文字列問題|Rui Ueyama|note
「悪い方が良い」原則と僕の体験談|Rui Ueyama|note
LLVMの新しいリンカLLDがLLVM 4で導入へ
LLD - The LLVM Linker — lld 6 documentation
The ELF and COFF Linkers — lld 6 documentation
LLVM Link Time Optimization: Design and Implementation — LLVM 6 documentation
Winux Project 7
KMC Staff Blog:GCCでリンク時に不要なコードとデータを削除する方法
2011年11月2日 脱GPLとBSDライセンスツールチェーン - 最後の砦「リンカー」:FreeBSD Daily Topics|gihyo.jp … 技術評論社
Linkers and Loaders
カジュアルに実行時リンク&ロードする - 事例2 - 関数を呼んでる関数を呼びたい
リンカ
Terse Executable Format - PhoenixWiki
CRubyとLink Time Optimizationについて - なるせにっき
melancholic afternoon
リンカの役割 自分メモメモ - Qiita
⚙ D69607 Add a feature to explain why some file gets included to the linker's output
カジュアルに実行時リンク&ロードする - カジュアルに実行時リンク&ロードする

PE

その他

Hexacorn | Blog
PEファイル (PortableExecutableFile)(2) – ヘッダについて « 来栖川電算
PE(Portable Executable)ファイルフォーマットの概要
Exeファイルを解読してみよう(後編)
日記移転先(゜▽゜)::EXEヘッダ/PEヘッダ/NEヘッダ
リンカ作ろうJP$1 - yutopp's blog
EXEファイルの内部構造(セクション) (1/3):CodeZine(コードジン)
Windowsプログラミング その1
d4.princess.ne.jp/diary/201411.html
PEファイルの謎
linker_kernelvm5.pdf
C言語/システム/実行ファイル/COFF | LaboICT.
Tiny PE
最小のEXEファイル? - 借り初めのひみつきち
/DYNAMICBASE一問一答 « 他人の空似
Windows support — lld 10 documentation
windres - Google 検索
i-saintさんはTwitterを使っています: 「VicualC++ は string literal は 16384 byte までという上限があるらしい。でかいデータを埋め込みたい場合 http://t.co/MJLnzo4E ここの Binary to MS COFF で .obj ファイルにしてリンクするといいっぽい。」 / Twitter
Vortex's Utilities, Tools And Toys
Tiny PE
PEを理解したかったのでreadpeってものを作った - Qiita
Effectiveさお

MS

その他

DUMPBIN のオプション
ValveTimeさんのツイート: "Former Microsoft Architect and MS-DOS Pioneer Mark Zbikowski joins Valve as a Software Engineer. https://t.co/Le02aK5LLS #valve https://t.co/9Us2aIWZjF"
savaさんのツイート: "https://t.co/xtJD4LzUGi おいマジかよ… (MS-DOSのメモリ周りを見る(弄る)プログラムを作った人なら誰でもメモリブロック先頭にあるMやZの文字のことをご存知のはずですが、これってこの人のイニシャルなんですよ…)"
Mark Zbikowski - アメリカ合衆国 グレーター・シアトル エリア | プロフィール | LinkedIn
任意の64ビットバイナリにHigh Entropy ASLRを適用する設定を見つけるまでの備忘録 - Togetter
Address Space Load Randomization

PE Format - Windows applications | Microsoft Docs
Peering Inside the PE: A Tour of the Win32 Portable Executable File Format | Microsoft Docs
Windows ISV Software Security Defenses | Microsoft Docs
/BASE (Base Address) | Microsoft Docs
/HIGHENTROPYVA (Support 64-Bit ASLR) | Microsoft Docs
/DYNAMICBASE (Use address space layout randomization) | Microsoft Docs
Migrating 32-bit Managed Code to 64-bit | Microsoft Docs
C の装飾名の形式 | Microsoft Docs
重箱の隅のデバッグ(1) – インポートセクションで設定するブレークポイント – JAPAN Platform SDK(Windows SDK) Support Team Blog
ImageHlp Structures - Windows applications | Microsoft Docs
-SECTION (Specify Section Attributes) | Microsoft Docs
LIB リファレンス | Microsoft Docs
MSVC リンカー オプション | Microsoft Docs
DUMPBIN リファレンス | Microsoft Docs
/BASE (ベース アドレス) | Microsoft Docs
/FIXED (固定ベース アドレス) | Microsoft Docs
MSVC リンカー オプション | Microsoft Docs
/LARGEADDRESSAWARE (大きいアドレスの処理) | Microsoft Docs
/OPT (最適化) | Microsoft Docs
/PROFILE (パフォーマンス ツール プロファイラー) | Microsoft Docs
/ORDER (関数の順序) | Microsoft Docs
Rui UeyamaさんはTwitterを使っています: 「VS2019でリンカが速くなったのは、間違いなくlldがMSリンカより何倍も速いのを見てMicrosoftが真剣になったからなので、間接的にもいろんな人の役に立ってると言えるかもなぁ。あと競争は重要だね。競争がないと重要なコンポーネントでも放置されがち。 https://t.co/3tHRSefWMB」 / Twitter
Improved Linker Fundamentals in Visual Studio 2019 | C++ Team Blog
Rui UeyamaさんはTwitterを使っています: 「まあ大幅な高速化が可能であるということが実証された後で、しかもそのソースコードを読んだりもできるという状況で、うちもエンジニアリングリソースを割いてキャッチアップしよう!とならないのは逆にありえないんだけど。」 / Twitter

CheckSum

PE Checksum Algorithm的较简实现 - 011 - 博客园
An Analysis of the Windows PE Checksum Algorithm - CodeProject
RFC 1071 - Computing the Internet checksum
RFC 1141 - Incremental updating of the Internet checksum
RFC 1624 - Computation of the Internet Checksum via Incremental Update
Standard PE checksum - Source Codes - rohitab.com - Forums
windows research kernel(work) - Google 検索

鷲ノ巣

PE ファイルについて (1) - IMAGE_DOS_HEADER - 鷲ノ巣
PE ファイルについて (2) - IMAGE_FILE_HEADER - 鷲ノ巣
PE ファイルについて (3) - IMAGE_OPTIONAL_HEADER - 鷲ノ巣
PE ファイルについて (4) - IMAGE_SECTION_HEADER - 鷲ノ巣
PE ファイルについて (5) - IMAGE_DATA_DIRECTORY - 鷲ノ巣
PE ファイルについて (6) - 補足 - 鷲ノ巣
PE ファイルについて (6.5) - 相対仮想アドレス - 鷲ノ巣
PE ファイルについて (7) - エクスポート編 - 鷲ノ巣
PE ファイルについて (8) - インポート 基本編 - 鷲ノ巣

Glamenv-Septzen.net

技術/Windows/PE(Portable Executable)フォーマットの実験 - Glamenv-Septzen.net
技術/Windows/PE(Portable Executable)フォーマットの実験/02, 再配置情報で遊ぼう! - Glamenv-Septzen.net

PE_FORMAT

目次
目次
1.基本概念
2. 概要

ファイルヘッダ

3. ファイル ヘッダ
3.1 MS-DOSのスタブ(イメージのみ)
3.2 シグネチャ(イメージのみ)
3.3 COFFファイル ヘッダ(オブジェクトとイメージ)
3.3.1 マシン タイプ
3.3.2 特性
3.4 オプション ヘッダ(通常はイメージのみ)
3.4.1 オプション ヘッダの標準フィールド(イメージのみ)
3.4.2 オプション ヘッダのWindows NT固有フィールド(イメージのみ)
3.4.3 オプション ヘッダのデータ ディクショナリ(イメージのみ)

4. セクション テーブル(セクション ヘッダ)
4.1 セクション フラグ
4.2 Grouped Sections(オブジェクトのみ)
5.2 COFFの再配置(オブジェクトのみ)
5. 他のファイル内容
5.1 セクション データ
5.2.1 タイプ インジケータ

シンボル情報

5.3 COFF行番号
5.4 COFFシンボル テーブル
5.4.1 シンボル名の表現
5.4.2 セクション番号の値
5.4.3 型の表現
5.4.4 ストレージ クラス
5.6. COFF文字列テーブル
5.5 補助シンボル レコード
5.5.1 補助形式1:関数定義
5.5.2 補助形式2:.bf および .ef シンボル
5.5.3 補助形式3:弱い外部参照
5.5.4 補助形式4:ファイル
5.5.5 補助形式5:セクション定義
5.5.6 COMDATセクション(オブジェクトのみ)

6. 特殊セクション

デバッグ情報

6.1 .debugセクション
6.1.1 デバッグ ディレクトリ(イメージのみ)
6.1.2 デバッグ タイプ
6.1.3 .debug$F(オブジェクトのみ)
6.1.4 .debug$S(オブジェクトのみ)
6.1.5 .debug$T(オブジェクトのみ)
6.1.6 Microsoft CodeView(r)デバッグ情報のためのリンカ サポート

6.2 .drectveセクション(オブジェクトのみ)

.idataセクション

6.4 .idataセクション
6.4.1 インポート ディレクトリ テーブル
6.4.2 インポート ルックアップ テーブル
6.4.3 ヒント/名前テーブル
6.4.4 インポート アドレス テーブル

再配置情報

6.5 .relocセクション(イメージのみ)
6.5.1 fixupブロック
6.5.2 fixupタイプ

6.8 .textbssセクション(イメージのみ)

アーカイブファイル形式

7. アーカイブ(ライブラリ)ファイル形式
7.1 アーカイブ ファイル シグネチャ
7.2 アーカイブ メンバ ヘッダ
7.3 第1リンカ メンバ
7.4 第2リンカ メンバ
7.5 長い名前メンバ

インポートライブラリの形式

8. インポート ライブラリの形式
8.1 インポート ヘッダ
8.2 インポート タイプ
8.3 インポート名の種類

ダイジェストに含めないフィールド
付録:イメージ メッセージ ダイジェストの計算

アレ用の何か

アレ用の何か
アレ用の何か
アレ用の何か
アレ用の何か

CodeZine

x86系CPUのネイティブコードを解析する (1/3):CodeZine
プログラムからEXEファイルを生成してみよう (1/3):CodeZine
EXEファイルの内部構造(セクション) (1/3):CodeZine(コードジン)
EXEファイルの内部構造(PEヘッダ) (1/3):CodeZine(コードジン)
Windows実行ファイルのバイナリ概要 (1/2):CodeZine(コードジン)

リソース

実行可能ファイルに新しいリソースを埋め込んじゃおう
実行可能ファイルに新しいリソースを埋め込んじゃおう
実行可能ファイルに新しいリソースを埋め込んじゃおう

DLL

MS

LoadLibraryEx 関数
GetProcAddress 関数
FreeLibrary 関数
FreeLibraryAndExitThread 関数
DllMain 関数
SODA Noriyukiさんのツイート: "thread local storage を持つ shared object を dlopen() したら、その TLS をスレッドライブラリに通知して各スレッドの TLS を拡張するみたいな処理がたぶん必要だよね? このあたりは完全にOSおよびそのバージョン依存になるから、OS付属のrtldを拡張する方針にしないと死ぬばっかじゃないかなあ。"
NaOHaq(仮性ソーダ)さんのツイート: "Windows だと、thread が作られたときにDllMain関数 https://t.co/hM1IbMgqiW が呼ばれてそこで処理しろってなってるっぽいですね… "
DLL の植え付けの脆弱性のトリアージ – 日本のセキュリティチーム
Dynamic-Link Library Search Order (Windows)
Load Library Safely – Security Research & Defense
PROCESS_MITIGATION_IMAGE_LOAD_POLICY structure (Preliminary)
Masaru IritaniさんはTwitterを使っています: 「今日のチーム内勉強会では、DllMain でお行儀の悪いことをするとシステムのハングを引き起こせることを学びました。時間ができたら試してみましょうか。 https://t.co/OaYB0NuVXu」 / Twitter
Another reason not to do anything scary in your DllMain: Inadvertent deadlock | The Old New Thing
yohさんはTwitterを使っています 「DLL の植え付けの脆弱性のトリアージ https://t.co/1yfe3WYY23 "DLL planting" とも言うのか... hijackingやpreloadingしか聞いたことなかった」 / Twitter
DLL の植え付けの脆弱性のトリアージ - Microsoft Security Response Center
Dynamic-Link Library Best Practices - Win32 apps | Microsoft Docs
Dynamic-Link Library Redirection - Win32 apps | Microsoft Docs
GetFullPathNameA function (fileapi.h) - Win32 apps | Microsoft Docs
SetSearchPathMode function (winbase.h) - Win32 apps | Microsoft Docs
SetErrorMode function (errhandlingapi.h) - Win32 apps | Microsoft Docs
Dynamic-Link Library Search Order - Win32 apps | Microsoft Docs
ダイナミックリンクライブラリのセキュリティ-Win32アプリ| Microsoft Docs

Export Address Table

ITセキュリティのアライ出し (46) EAF出撃す | マイナビニュース
6.3.2 エクスポート アドレス テーブル

Import Address Table

IAT:インポートアドレステーブルについて - Log.i53
騙せるPE解析ツールのImport API表示機能(2016-11-28)
マニュアルアンパックのIAT再構築を手動でやった話 - Qiita
wivern.com | 「リバースエンジニアリングバイブル」勉強メモ#5
PEの.idataをアセンブラで考える - 七誌の開発日記
GOT、PLTとIAT - 脱力系日記
騙せるPE解析ツールのImport API表示機能(2016-11-28)
IAT | すなのかたまり
DSAS開発者の部屋:Windowsに土足で乱入?! ~ API フックのための予備知識
DSAS開発者の部屋:Windowsに土足で乱入?! ~ API フックのための予備知識(続き)
コグノスケ
インポートアドレステーブルと API フック - Web/DB プログラミング徹底解説

ASLR

第三話:ASLRの意味をデバッガで見てみる|トリコロールな猫|note
WindowsでASLR(Address Space Layout Randomization)を確認してみる。 - バイナリの歩き方
本の虫: Windows 7におけるプリコンパイルドヘッダーのエラーについて
WindowsのASLRに脆弱性、米セキュリティ機関が対策呼び掛け - ITmedia エンタープライズ
JVNVU#91363799: Windows 8 およびそれ以降のバージョンにおいて、アドレス空間配置のランダム化が適切に行われない脆弱性
Positive Technologies - learn and secure : Windows 8 ASLR Internals
Proj 9x: Understanding PE Files and ASLR on Windows (15 pts.)
設定によりWindows8以降のASLRが不適切に行われる可能性 | SCTブログ | 三和コムテック
-DYNAMICBASE (使用してアドレス空間レイアウトのランダム化) | Microsoft Docs

遅延ロード

/DELAYLOAD (遅延読み込みのインポート)
C言語系/memos/VC++/08, DLLの遅延読み込み(delay loading) - Glamenv-Septzen.net
C言語系/memos/VC++/08, DLLの遅延読み込み(delay loading) - Glamenv-Septzen.net
DLLの遅延読み込みをフックする | ::Hikaru's blog
VS2008/VS2010 memo
リンカーによる DLL の遅延読み込み
遅延読み込みする DLL の指定
DLL の遅延読み込みの制約

プリロード

golang の DLL プリロード対策

Vim界の声の大きい人さんのツイート: "ちなみに golang は既に DLL プリロード対策がされていて、起動時に LoadLibraryEx と AddDllDirectory が使える環境はそれが設定され、使えない環境はシステム DLL は直パスでロードされてます。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "?? System32配下のDLLは沢山あると思いますが、全てロード or それとも限定する選択基準があるのでしょうか? >システム DLL は直パスでロード… "
mattnさんのツイート: "限定的です。ここに列挙されてる DLL のみ、フォールバック時に直パスで読まれます。 https://t.co/t2YOTqsoyN… "
go/zsyscall_windows.go at master · golang/go
Shirouzu Hiroaki(白水啓章)さんのツイート: "参考になります。 この選択の基準があれば知りたいですね。… "
mattnさんのツイート: "僕はその際の改善には関わらなかったですが、眺めてた所だと、golang の標準パッケージが使っている DLL を列挙した様でした。なのでユーザが追加でロードする物に関しては(AddDllDirectoryが使えない環境は)問題が起きうると思います。これは仕方ないかなと思ってます。… https://t.co/GEWqnZHWHz"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、了解です。exeの横に危険なdllが置かれるのは、主にインストーラなので、そうでなければ、そこまで神経質になる必要はないですね。… "
mattnさんのツイート: "ちなみにその際の issue がこちらです。 https://t.co/7oGxhnRDhy… "
syscall: guard against Windows DLL preloading attacks · Issue #14959 · golang/go

JVNTA#91240916: Windows アプリケーションによる DLL 読み込みやコマンド実行に関する問題
第35回 2017年6月~EOLなWindowsへの修正ファイル提供と,DLLプリロードの問題:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
WindowsアプリケーションにおけるDLL読み込みに関する脆弱性について
UNLHA32.DLLにおける任意のDLL読み込みに関する脆弱性
Windows DLLプリロード攻撃の新しいパターンと防御法
Windows Defender Advanced Threat Protection で反射型の DLL 読み込みを検出 – 日本のセキュリティチーム
第43回 2018年2月~いまも発見される,DLL読み込みに関する脆弱性~どう悪用されるのか?&対処は?:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
WindowsアプリケーションにおけるDLL読み込みに関する脆弱性について
Windows DLLプリロード攻撃の新しいパターンと防御法
脆弱性ポータルサイトJVN、Windows 7に存在する“DLLの植え付け”脆弱性を注意喚起 - 窓の杜
LoadLibraryAによるDLL読み込み順序とDLLプリロード攻撃 - Qiita
DLLプリロード攻撃のチェッカーをリリース « 他人の空似
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ダウト。2010年頃のDLLハイジャックと2016年以降のそれは別物。「3-4年も経つのに…」が正解。(トレンドマイクロがダメダメな点は賛成) JPCERT戸田さん「DLL読み込みの問題を読み解く」 https://t.co/w47xvkATgf 私「Windows DLLプリロード攻撃の新しいパターンと防御法」 https://t.co/prt4LLm1oH https://t.co/UdQEW4GX8j」 / Twitter
DLL読み込みの問題を読み解く
Windows DLLプリロード攻撃の新しいパターンと防御法
DLL プリロード攻撃を防止するためのライブラリの安全な読み込み
Process Monitor | Microsoft Docs
DLLの検索

インジェクション

Rapport

なかのん&マジックさんのツイート: "なんか、Rapport入ってるとFirefoxクラッシュするとかいう話が昔あった気がする。"
Makoto Kato ︎︎さんのツイート: "Firefoxのバージョンが上がる度にクラッシュしてた。IBMに直してよって投げてたけど、最近はそんな聞かない… "
Makoto Kato ︎︎さんのツイート: "DLL blocklistを読み込む前にDLLが注入される作りで、ブロックできないんだよね"
Makoto Kato ︎︎さんのツイート: "ああいうセキュリティ対策系のソフトで一番素直なつくりはMSなんで、MSのが一番いいと思うよ"
Makoto Kato ︎︎さんのツイート: "何処かのベンダーのやつは、注入したDLL内でクラッシュするんでFirefoxが強制終了しまくる話があって、いろいろ問い合わせたら聞いたこないっていってたけど、体験版ですぐ再現する話だったのは、ホントイラついた"
Makoto Kato ︎︎さんのツイート: "アドオンごとブロックリスト行きにしたら、直してくれたけどさ"
なかのん&マジックさんのツイート: "あれって、XULアドオンだったわけじゃなくて、外部アプリなのにやらかしてくれてたんですか?… "
Makoto Kato ︎︎さんのツイート: "そうです。アドオンじゃなかったんですよ。プロセス起動時にDLLを注入しちゃうタイプで。。。… "
なかのん&マジックさんのツイート: "もはや、マルウェア……… "

Rockridgeさんのツイート: "Firefoxプロセスのアドレス空間にインジェクトされるDLLは、現在ブラックリスト方式で管理されているが、将来的にこれをホワイトリスト方式に改める。参照:https://t.co/mXNDx0IYAZ / “Platform/…” https://t.co/vDVhfKue2B"
CreateRemoteThread関数によるDLLインジェクションをやってみる - ももいろテクノロジー
DLL injectionでWindows APIによる暗号化処理を覗いてみる - ももいろテクノロジー
DLLインジェクション - Wikipedia
DLL injection - Wikipedia
DLLインジェクションを学ぶためのオンラインパッチの実験 - Qiita
早川顕太:Windows 上における危険な処理の... - Google Scholar
Rockridgeさんのツイート: "Fx53:アドオンやサードパーティー製ソフトウェアがFirefoxのプロセス内にDLLを読み込むことは、原則としてできなくなるようだ。WebExtensionsのNative Messaging API(Fx50でサポート)を使う… https://t.co/PgVacMWk7Z"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsの場合、サードパーティDLLが勝手にプロセスに dll injectionして例外を起こすことがある。 (先ほど、香港ユーザから届いた例外ダンプを解析したら、google検索に1件も引っ掛からない、謎DLLで例外が発生していたというオチ) https://t.co/hBqrjpv8iR"
Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLインジェクション問題(EXEフォルダ用)でのMSさんの解決策は、PreferSystem32というSYSTEM32を優先するオプション増設っぽい。 https://t.co/I3NvwwBAWa だがデフォルトだと、WinAPIやCOM I/F経由での、パスなし標準DLL読み込み問題は残ったままの様子。(手元で再確認) https://t.co/YZs6GBMXyc"
【トレンドマイクロ】ウイルスバスタークラウド含む12製品の CVE-2019-14688 が全然直ってない件【中国製】 - Windows 2000 Blog

NyaRuRuが地球にいたころ

DLLの闇 (0) - NyaRuRuが地球にいたころ
DLLの闇 (1) - NyaRuRuが地球にいたころ
DLLの闇 (2) - NyaRuRuが地球にいたころ
DLLの闇 (3) - NyaRuRuが地球にいたころ
DLL の闇 (4) - NyaRuRuが地球にいたころ
DLL の闇 (5) - NyaRuRuが地球にいたころ
TLS Callbacks - NyaRuRuが地球にいたころ

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLが自分自身でアンロードするための、FreeLibraryAndExitThread というAPIがある。 FreeLibrary と ExitThread を発行するだけのコードだが、それが標準DLL側コードに存在するため、FreeLibrary後もExitThreadが実行できる。 https://t.co/tqpkwFae6r"
What is the point of FreeLibraryAndExitThread? | The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLインジェクション後のクリーンナップのために設計された感じ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔は pragma でリンクするDLLを指定するのは邪道だと思っていたが、(Win32以外に移植予定が無いなら)こちらの方がメリットが多いな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "kernel32.dllは遅延ロードできない。 (GetProcAddressといった遅延ロードに必要なAPI自体が存在するため) https://t.co/j4HLtmgrvt kernel32関数の場合、昔ながらの GetProcAddress で解決するしかなさそう。"
Why can't I use the linker to delay-load a function from kernel32? | The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "現状では Vista 以降をサポート。(非公式にはXPでも動作) 新しいOSでは、主に遅延リンクで追加APIを使う形。 (ただしkernel32内APIだけは、それが出来ないのでGetProcAddress利用)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のマルウェアは、rundll32経由dllロード→svchostを起動してdllインジェクションして、そのsvchostが永続動作、みたいな形が増えてる? (確かにsvchost多すぎて気づき辛い) https://t.co/TjFBzlXHJz」 / Twitter
日本国内の組織を狙ったマルウエアLODEINFO - JPCERT/CC Eyes | JPCERTコーディネーションセンター公式ブログ
rundll32.exeとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ダイナミック リンク ライブラリ(DLL)の基礎知識
DLL から「正しい」LIB ファイルを作るには
DLLファイルからLIBファイルを作成する(_stdcall宣言)
Microsoft Windows library files - Wikipedia
新しい低レベル バイナリ
ASCII.jp:ARM版Windows 8実現の布石となったWindows 7の「MinWin」 (3/4)
ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (2/2)
アレ用の何か
C言語系/memos/VC++/06, DLLの事前バインド(BindImageEx()) (v1) - Glamenv-Septzen.net
How important is it nowadays to ensure that all my DLLs have non-conflicting base addresses? – The Old New Thing
ReadApiSetSchema更新 « 他人の空似
VirtualDLLの仕組み « 他人の空似
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~DLLプリロード攻撃~ « 他人の空似
GetProcAddress を書く手間を減らすあれそれ - NyaRuRuが地球にいたころ
碧落 - Win64 開発
4億円超の広告枠を中国のハッカーが購入して詐欺広告を表示しまくった手口とは? - GIGAZINE
Adaptive DLL Hijacking – Silent Break Security
Why am I getting a crash at shutdown inside the thread pool? | The Old New Thing

COFF

COFF - Wikipedia
COFF - Wikipedia
coff.h Source File
COFF - OSDev Wiki
DJGPP COFF Spec
Common Object File Format (COFF
avrcoff.pdf

GitHub

erocarrera/pefile: pefile is a Python module to read and work with PE (Portable Executable) files
notes/index.md at master · yukitos/notes
COFF形式ファイルのいろいろ · HobbyOSs/opennask Wiki
study-re-201805/study-memo-dynamicbase at master · SecureSkyTechnology/study-re-201805

Wikipedia

Portable Executable - Wikipedia
Portable Executable - Wikipedia

PE - OSDev Wiki
x86 Disassembly/Windows Executable Files - Wikibooks, open books for an open world
本の虫: The Old New Thing: 実行ファイルのベースアドレスが0x00400000である理由
wivern.com | 見る価値のある5つの PE 解析ツール
PE Explorer: EXE File Editor, Resource Editor, DLL View Scan Tool, Disassembler.
WJR Software - PEview (PE/COFF file viewer),...
PE形式バイナリ変換ツール
PEダンパー兼PEエディタ「UMPE」
C11/C++11 TLS変数への間接アクセス - yohhoyの日記

ELF

Explore cs in depth!

実行プログラム作成基盤をフルスクラッチで書いた - Explore "Full-Stack" in depth!
TUIベースのELF解析ツールを作りました - Explore cs in depth!
ELFバイナリに含まれるnullセクション/ヘッダの真実…? - Explore cs in depth!
オブジェクトファイルのシンボルテーブルを最低限理解する。 - Explore cs in depth!
readelf -S を簡易実装してセクションヘッダを理解する - Explore cs in depth!
readelf -lを簡易実装してELFフォーマットの理解を深める。 - Explore cs in depth!
バイナリ何もわからない人に送る"ソースコード視点"のELFヘッダ解説 - Explore cs in depth!

@IT

Linuxカーネルに見る、システムコール番号と引数、システムコール・ラッパーとは:main()関数の前には何があるのか(7)(1/2 ページ) - @IT
あなたが知らないプログラムの真の始まり――main()関数の前にあるスタートアップとは:main()関数の前には何があるのか(8)(2/3 ページ) - @IT

blog

ELFから公開されている関数名を抜き出す - ククログ(2009-05-22)
DSAS開発者の部屋:Android で今後ネイティブ実行形式を扱う際に注意すべきこと
eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - Tier IV Tech Blog
.note.ABI-tagとはなにか - VA Linux エンジニアブログ
最小限のELF | κeenのHappy Hacκing Blog
Some Assembly Required*: Relocations, Relocations
Reversingとかpwnとかを解くときのメモ(かきかけ) - 忖度
PIE(position-independent executable)なオブジェクトの中身を見てみる - 情弱ログ
Brainf*ckトランスレータ (5) 位置独立コード - 七誌の開発日記
バイナリ解析についてのメモ
GOT、PLTとIAT - 脱力系日記
共有ライブラリ・静的ライブラリ・動的リンク・静的リンク検証 - 誰にも見えないブログ
静的ライブラリ,共有ライブラリ,動的リンク,静的リンク - (iwi) 備忘録
Goのバイナリから依存するmodule情報を取り出す方法 - knqyf263's blog
ELFファイルを取り扱うためのlibelfライブラリ調査 - FPGA開発日記

スライド

EuroLLVM 2016: New LLD linker for ELF - Google スライド
ELFの動的リンク
セキュリティ・キャンプ2019 Z2. ELFマルウェア検知エンジンの試作 成果報告 - Speaker Deck

Qiita

C++ユーザーの為のリンクの話1 - Qiita
assemblyからhello world programを追いかける - Qiita

Twitter

C

Rui Ueyamaさんのツイート: "Cコンパイラ本に初期化式についての説明を足してみた。プログラムはなぜ動くのか、みたいな本になりつつあるけど、その説明なしに解説するのは逆に無理だ。 https://t.co/dGjZVzZJEe"
低レイヤを知りたい人のためのCコンパイラ作成入門
Rui Ueyamaさんのツイート: "Cの仕様書だとこのあたりの動作はすごく抽象的に書いてあって、意味も必然性もわからない。僕が説明してるような特定のモデルを念頭に置いて読むといろいろ腑に落ちるんだけど、それをできるだけ一般的に説明しようとするとああなってしまうんだと思う。いいんだか悪いんだか。"
_ko1さんのツイート: "init section とかは ELF (とかa.out?)だと思いますが、具体名かいちゃわないんでしょうか。Linuxの実行ファイルといえば一意に決まるから、要らんのかな(一意に決まるかどうか、知らないのだけど)… "
Rui Ueyamaさんのツイート: "ELFだと名前は重要ではないということになっているので、SHT_INIT_ARRAYタイプのセクションは一応全部initセクションということになるんですよね。とはいえ`.init_array`であるのを前提にしちゃってるプログラムが多いですけど。… "
_ko1さんのツイート: "おお、なるほど、私のうろ覚えの理解も間違ってました(詳細はさっぱり知らなかった)。「initと呼ばれる特別なセクションに出力する」とあったので、特定の環境を想定しているのかな、と思ったんですが、その特定の環境かいてないなあと思った次第でして。… "
Rui Ueyamaさんのツイート: "initというのは一般名称のつもりでした。確かにそれは伝わらないかも。… "
shinichiro hamajiさんのツイート: "「initセクション/セグメント」と言われると.initセクションとDT_INITのことかな、と思ってしまう(この方式の時は実際関数ポインタが入ってたセクションは.ctorsでした)ので、ちゃんとinit_arrayという名前を明示してほしい気持ちあるかもです… https://t.co/mTpGnUNT5G"
Rui Ueyamaさんのツイート: "まあ足しとくか・・… "

るくすさんのツイート: "分かった... リンカが物理アドレス節約のために、セクションが小さい場合は全部まとめて先頭の空きスペースに持ってこようとするから、先頭からのオフセットが変わってるんだ... 気付くかよそんなの..."
るくすさんのツイート: "リンカスクリプトに陽に指定していないセクションは、なるべく空きスペースに置くようにしているのか いやまあそりゃそうだろって感じだが... まさか先頭に置いたつもりのセクションがこれの影響でずれるとは"
るくすさんのツイート: "あああ まさにこれだ。 linker scriptでセクションの順番を指定しても、物理アドレスは変わるけどELF内のオフセットが制御できなくてブートローダーから飛べない問題。 質問している人がいた https://t.co/LyFtwAU8uy"
るくすさんのツイート: "まあこの人は、ブートローダーとかじゃなく.textの前にシンボル置いたんだけど、実際のELF内オフセットは.textより後になっちゃう って言ってる"
るくすさんのツイート: "まあブートローダーでELFをちゃんとパースしろやwというのが正論だし、物理的な配置をELF側に求めるのは間違ってるんですが..."
るくすさんのツイート: "物理アドレスのオフセット値とelf内のオフセットが合わない仕様、やはり何とかするべきでは... 直感に反しすぎる..."
るくすさんのツイート: "何が起こるかというとELFを0x40100000に置いた後、0x40101000にアクセスすると先頭からオフセット0x1000のセクションにアクセスできそうなのに、実際は対応するセクションは0x2000にあるなどが起こる。"
るくすさんのツイート: "OFFSET 0x2000のセクションが0x40101000に配置されるの、マジで直感に反するからやめろ"
るくすさんのツイート: "いやまあbssセクションの後とかだったら、実際のELFオフセットと物理アドレスがずれるとかはあると思うんですけど、これ一番初めの(NULLの次)セクションで起こってるんだよな... 2,3,4番目のセクションが一番目のセクションより先に配置されるなどする"
Rui Ueyamaさんのツイート: "今調べている時間がないからここに書くけど、.gnu.hashをある方法で作るとUnixでのプロセスのスタートアップがかなり速くなるぽいんだけど、なぜそんなに違いが生じるのか誰もよくわかってません。数%は違いが出るので、わりと世の中的に役に立つはずなんだけど。誰か調べてほしい。"
ファッション自作OSマンさんのツイート: "ELFローダーを作る際のハマりどころ ・PT_LOADは複数になることがある ・PIEバイナリの場合、sh_addrやp_vaddrなどは0オリジンなので、実際のロードアドレスを加算する必要あり  ・もちろんリロケーション時にも。… "
ファッション自作OSマンさんのツイート: "ところで、PT_LOADが複数あるELFバイナリの場合、すべてのPT_LOADは基本的に連続(アライメントのために多少隙間はあるにせよ)と考えてOK?"
C++でOS自作 技術書典5 お05さんのツイート: "ELFのDYNAMICセグメントに基づきリロケートした結果、C++のvtableの内容が正しくアップデートされ、仮想関数が動くようになった。画面表示バグが直って正しく描画されると嬉しい。"
Rockridgeさんのツイート: "Fx64:Linux版の実行ファイルが位置独立実行形式(PIE)になった。参照:https://t.co/quDHNpLxZD / “1079662 - Enable PIE on Linux” https://t.co/BIF3z3Icrl"
品川 高廣さんのツイート: "ELF ファイルの PT_LOAD セグメントで対応するファイルサイズ(p_filesz)が 0 ということはあり得るんだな。"
Rui Ueyamaさんのツイート: "リンカは、ELFを読んだあとに同じ名前のセクションをそのまま連結して、.rela.*で指示されている箇所のアドレスをfix upすれば完成、という感じですよ。… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「/proc/[pid]/maps に、同じ.soファイルが、異なるページ属性で別の位置にマップされている理由。 https://t.co/hVzNTKGEWV」 / Twitter
linux - Shared library mappings in /proc/pid/maps - Unix & Linux Stack Exchange
shinichiro hamajiさんはTwitterを使っています: 「最近、ことあるごとにglibcのローダはシンボルテーブルがフラットで、DT_NEEDEDをRTLD_GLOBALで解決するのがダメ、Bionicやdyldの方が良い、あとC++標準はDLL的なものに言及すべき(visibilityとかdllexport的なやつ)と主張してるのだけど、そう言う人を見ない気がする。みんな困っていないのかなあ」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「linuxのx86バイナリ、かなりcrazyなことになっていて、ビルドした後に独自のobjtoolでバイナリを解析してエラーチェックとかシンボル抜き出し、セクション追加などを行っている。non-blockingな自己書き換え手法が確立した後のはっちゃけ具合が凄い。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「両方の技術の元ネタ(kprobe jump optimization+x86 instruction decoder)を提供した身としてはwktkしてる。」 / Twitter
DrumatoさんはTwitterを使っています 「ELFをパースしたときにはbytes:Vec&lt;u8&gt;にしておいて,あとからシンボルテーブルを使う場合のみ構築する方法を取ったけど, ユーザ側が計算量のこと考えないと毎回テーブル作り直す重い処理になってしまう.」 / Twitter
DrumatoさんはTwitterを使っています 「というこでEnum実装に変更して, パース時のコストを許容し,その後スマートに使用できる仕組みを取ろうと思っている.」 / Twitter
DrumatoさんはTwitterを使っています 「抽象的で使いやすいELFライブラリを作るためには,ユーザが考慮すべきことを減らさなければ」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:単純な動的リロケーションの問題; ・ダイナミックリロケーションを行うべき場所は、普通はとても多い ・全部リロケーションするとロードが遅くなる ・物理メモリの共有もできなくなる #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:PLTとGOT: ・間接参照を導入 ・テーブルを作り、リロケーションする場所を集約 ・一個のモジュールについての相対的位置は変わらないので、まずはPLTに飛ぶようにしておけば良い ・PLTやGOTはリンカが作る #kernelvm #kernelvm_tw」 / Twitter
FadisさんはTwitterを使っています 「共有ライブラリ内のあらゆるアドレスをロード時に書き換えると書き換え箇所が多すぎる→PLTやGOTの値を見て共有ライブラリの中身のオフセットを知る→ライブラリの中身の並び順はどこにロードしても相対的には変わらないので、これらの値だけで全てのアドレスを書き換えるのを代替できる #kernelvm」 / Twitter
retrageさんはTwitterを使っています 「なんか最近見かけた問題に近かった気がする。ELFのローダを作っていたんだけど、最低限必要なものとしDT_RELAのPT_DYNAMICに対してR_X86_64_RELATIVEのときだけrelocationをするんだけど、実装によって元の値を足したり足してなかったりで異なっていた https://t.co/HDDox4Jgv3」 / Twitter
rust-hypervisor-firmware/elf.rs at 6c6fddf2eb290a1c2f10b54d5b659ac1b08edb2b · retrage/rust-hypervisor-firmware
retrageさんはTwitterを使っています 「で、rustcが吐くELFだと全部元の値が0で問題にならなかったので足さないようにした」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「.debへの言及だけじゃなくて .a への言及も欲しかったかなあ(Linux 使ってる人は「ar tv /usr/lib64/libc.a」とか試してみてね) 今のarはシンボルテーブル構築機能まで含んでるけど、昔はranlibコマンドがその担当で、アーカイブの中身の先頭の __.SYMDEF ファイルとしてシンボル情報を追加してたのね」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「シンボルテーブル構築機能を ar コマンドへ統合したのは System-V 系だと思う。1990年代初頭の 4BSD系 UNIX だとまだ ranlib コマンドの実行が必要だったけど、その頃既に System-V 系 UNIX だと不要になってた記憶が… 統合は機能分割的には微妙な判断だと思ってたなあ…」 / Twitter
retrageさんはTwitterを使っています 「ld\.soのman pageにHardware Capabilitiesという項目があり、SSEとかのCPU拡張命令が使えればそれに対応したオブジェクトファイルにリンクする、っていう機能があるらしいんですが、最近の拡張命令がなくて誰も使ってなさそう https://t.co/YOw1zwU5jf」 / Twitter
ld.so(8) - Linux manual page

Linux Foundation Referenced Specifications
gabi41.pdf
System V Application Binary Interface - DRAFT
x86_64-abi-0.99.pdf
ELF Golf
binstudy/ELF-section.txt at master · warabanshi/binstudy
GNU Hash ELF Sections | Oracle Ali Bahrami Blog
違法素数 - Wikipedia
readelf (GNU Binary Utilities)
最小限で理解しつつ作るELF parser入門 in Rust
共有ライブラリーを解剖する
Linux Insides : カーネル起動プロセス part5(終) | POSTD
C - C言語の位置独立コード、GOT(53994)|teratail
アーキテクチャ - GOTとPLTについて確認です。(48163)|teratail
技術レポート「Linuxのライブラリ開発」|ソフテックだより|株式会社ソフテック
readelf コマンド – ELFファイルについての情報を表示する | Linuxコマンド.NET
Man page of ELF
PIC,PIE,shellcode,ASLR
ELFの動的リンク(1) - 七誌の開発日記
linker - What does R_X86_64_IRELATIV mean? - Stack Overflow
mods/android/bionic/linker/arch/nacl/begin.c - arc/arc - Git at Google
ELF - osdev-j
ELF/実行時の話 - osdev-j
ELF/実行時の話/プロセッサに依存する話/i386 - osdev-j

高速化

BOLT

Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey
まさみさんは語りたいさんのツイート: "Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey https://t.co/BxqLSo1Bk4 おっ、これは。関数単位じゃなく分岐単位にするのかな?"
suzakiさんのツイート: "FaceBookのBOLT:Binary Optimization and Layout Toolは面白いが、やっていることはPGO: Profile Guided Optimizationではないのか? PGOはプロファイルを取り、そのプロファイルをコンパイラに与えて、最適化するもの。違いはソースコードを必要とするかしないか、が大きく違いますが。… https://t.co/qgIw73yWLb"
suzakiさんのツイート: "最近、この周りの調査をしているのですが、正しく『関数の実行時間』に苦労ししています。ThreadingやMulti Coreが当たり前となり、正確な時間が取れない。 使っているのはgporf, Google Perf, Oprofileですが、それぞれ一長一短あり。"
suzakiさんのツイート: "BOLTのHPによるとバイナリはnon-PIEのみとある。現在のディストロだときつそうに思えるが、実はPIEはあまり使われてないと言う調査をACSAC17ポスターで発表しました Analysis of Code Protection Technologies in ELF binaries in Major Linux Distributions and Generations https://t.co/6oUL31K4XL"
まさみさんは語りたいさんのツイート: "単に今実装していないだけの可能性がありますね。中を読むと機械語命令単位で解析と再構築をしてるようなので、そちらの実装を優先したのかも。… "
Miura Hidekiさんのツイート: "https://t.co/xGnFIJn4pU 手前みそだけど、こんな感じで出来るような気がする https://t.co/9e3Rs0McNB"
まさみさんは語りたいさんのツイート: "BOLTの場合、ホットスポットを纏めることでキャッシュヒット率の向上を狙ってるようなので、あまり個々の関数の実行時間は気にしてないのではないでしょうか。要するにバイナリ全体に対してunlikelyマクロを適用する感じでは。… "
suzakiさんのツイート: "perfで性能評価しているので関数単位ぐらいしか取れないと思ったら perf data with LBR (branch information) と記述がありました。 https://t.co/xzdaACuvm5 Branch単位でコードのレイアウトを変えることで、ヒートマップにあるように最適化できるのか?それにしてもヒートマップが効果が良すぎる。… https://t.co/jIfcMNx0Ba"
まさみさんは語りたいさんのツイート: "そもそもプログラムのコードの殆どはエラー処理なので、それを追い出せたら綺麗になるということなのでしょう。なのでunlikelyだなと。… "
LLVM Weeklyさんのツイート: "Applying the BOLT post-link optimiser to Clang for up to 15% performance improvement <https://t.co/KI7RQd0YYo>. A member of Google's compiler optimisation team shares some detailed thoughts on improving scalability with linker assistance https://t.co/a1xKohkyk2"
BOLT/OptimizingClang.md at master · facebookincubator/BOLT
[llvm-dev] Making Clang/LLVM faster using code layout optimizations
Fadisさんのツイート: "BOLT: 実行可能バイナリと、それを動かして得たプロファイルを入力として、分岐の確率に基づく最適化、キャッシュやTLBによりヒットしやすくする為のバイナリレイアウトの変更等を行った実行可能バイナリを生成するリンク「後」最適化コンパイラ https://t.co/jkGgM3eVvk"
facebookincubator/BOLT: Binary Optimization and Layout Tool - A linux command-line utility used for optimizing performance of binaries
Google Propellerが大規模LLVMバイナリからさらなるパフォーマンスを引き出す
FadisさんはTwitterを使っています 「Facebookが同社のリンク「後」最適化BOLTをLLVM本家に入れたがっているらしい。BOLTはx86_64の実行可能バイナリを実行して得たプロファイルをもとに、実行可能バイナリに分岐のヒントを挟んだりキャッシュに当たりやすい配置に入れ替えたりといった最適化を行う https://t.co/5wODv8QlLd」 / Twitter
Facebook Is Looking To Upstream Their BOLT Binary Performance Optimizer Into LLVM - Phoronix
R. ShioyaさんはTwitterを使っています 「@shirouzu 一般的な最適化というよりは,確か命令列の配置方法により特化していたと思います.よく通る実行パスの命令を連続した領域上に再配置することで命令フェッチの効率を上げたり(分岐で飛ぶと読み出しが止まるので連続になっててほしい),キャッシュやTLBのヒット率を上げるのを狙っていたと思います.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、ありがとうございます。 逆に言うと、バイナリのみだと目立った改善点はそのあたりだけになるんでしょうねぇ。」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shirouzu なにかあれが出てきた背景としては,バイナリ最適化で試行錯誤した延長というよりは,最近?コードの肥大化で命令フェッチがボトルネックになっているとはサーバーサイドでは特にいわれていたので,それを何とかしたくて考えてああなったって感じじゃないかなと思っています.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、そんな話があったのですね。勉強になります。 &gt; コードの肥大化で命令フェッチがボトルネックになっているとはサーバーサイドでは特にいわれていた」 / Twitter
ドッグさんはTwitterを使っています 「Facebook の BOLT 最適化フレームワーク,LLVM に入れたいという話は前からあったけど,正式に RFC 出たのか | '[llvm-dev] [RFC] BOLT: A Framework for Binary Analysis, Transformation, and Optimization' https://t.co/jq5gWi76Hz」 / Twitter
[llvm-dev] [RFC] BOLT: A Framework for Binary Analysis, Transformation, and Optimization

FadisさんはTwitterを使っています 「雑なアムダールの法則: 処理の中にスケールしない部分があると、並列度が上がるほどその部分が深刻なボトルネックになるぞ! #kernelvm」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:moldはなぜ速いのか: ・中間表現を作らず、mmapした入力ファイルのデータを可能な限りそのまま使う ・可能な限りすべての内部パスを並列化 →並列化されていないとそこがボトルネックに #kernelvm #kernelvm_tw」 / Twitter
FadisさんはTwitterを使っています 「リンカが扱うデータ(シンボル名)は沢山あるから、手法を慎重に選ぶとデータ並列で性能を稼ぎやすいのか… #kernelvm」 / Twitter
𝚊𝚖𝚎𝚖𝚒𝚢𝚊.𝚍𝚎𝚟さんはTwitterを使っています 「rustでいうrayonみたいなアプローチか &gt; データ並列 #kernelvm」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:データ並列: ・同じタイプのでーたが大量にあって、1つ1つを個別に処理 ・スレッド間の依存性がないのでよくスケールする #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「・単なる並列forループなので、複雑な同期メカニズムやメッセージングメカニズムを使った並列化と比べてい理解しやすい #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:並行コンテナ: ・Intel TBB のものを使っている #kernelvm #kernelvm_tw」 / Twitter
Hiroshi ShimamotoさんはTwitterを使っています 「Intel TBB使って、並列forループ #kernelvm」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:moldにおけるシンボル解決: ・シンボルを並行ハッシュマップに同時に追加する #kernelvm #kernelvm_tw」 / Twitter
KOBA789さんはTwitterを使っています 「ここでマークルツリーの名を聞くことになるとは #kernelvm」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:Map-reduceパターン: ・リンカに-build-idオプションを渡すと、出力ファイルを生成した後に、ファイルのハッシュ値を取ってそれをファイルに埋め込むことができる #kernelvm #kernelvm_tw」 / Twitter
データ検証などで利用するMerkle Treeのメモ – Siguniang's Blog
KOBA789さんはTwitterを使っています 「マージソートみたいな見た目だな #kernelvm」 / Twitter
kawai🍎社会性の高いあおいちゃんさんはTwitterを使っています 「ほー。コンカレントハッシュマップ。通常、並行な処理は共有するデータに書き込む際にはそこをクリティカルクションに入れるため低速になってしまうが、コンカレントハッシュマップを利用するといい感じに並行な処理をしつつ且つ高速に動作すると。 #kernelvm」 / Twitter
Susumu MiwaさんはTwitterを使っています 「Parallel Scanパターン #kernelvm」 / Twitter
KOBA789さんはTwitterを使っています 「ファイルを上書きしたほうが速い、それなー #kernelvm」 / Twitter
百千万億 萬さんはTwitterを使っています 「Prefix Sum の並列化テクやん~ https://t.co/g9nNepI4Ai #kernelvm」 / Twitter
Prefix sum - Wikipedia
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:細かい高速化テクニック: ・glibcのデフォルトのmallocはあまりコア数に対してスケールしない →mimallocを使っている #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「・新規ファイルを作ってそこにデータを書き込むより、すでにバッファーキャッシュ入っているファイルを上書きするほうが速い #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「・大量のファイルをmmapしている場合、プロセス終了に数百ミリ秒かかる #kernelvm #kernelvm_tw」 / Twitter
基礎から学ぶ 組込みRust 4/20 発売予定さんはTwitterを使っています 「いっぱい mmap しているとプロセスの exit が遅いから、子プロセスを作って exit させることで、そっちは時間かかってもユーザーには見えないから良し! #kernelvm」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:速いプログラムを書くためのヒント: ・推測せず、計測する ・凝ったコードを書くのではなく、自然と速くなるようなデータ構造を考える ・複数実装してみて一番速いものを選ぶ ・何度か同じプログラムを書く #kernelvm #kernelvm_tw」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「差分リンクうまく実装しないと遅い。リンクしなおした方が今は早い #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「差分リンクはアイデアとしては速そうだけど、1個のシンボルを足した時に影響がある範囲を調べるのはローカルな処理では済まず、そのチェックに時間がかかって差分リンクは思ったほど速くならない、と #kernelvm」 / Twitter
hotpepsiさんはTwitterを使っています 「link time optimization って中間コードをまとめるみたいな仕組みなのか、なるほど #kernelvm」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「LTOの挙動(llvm)中間言語として出力、リンク時にモジュールを超えた最適化を行う。処理としては重い。moldは今のところすぐに実装する予定はない #kernelvm」 / Twitter
mold: modern linker - Google スライド

Wikipedia

リンケージエディタ - Wikipedia
Linker (computing) - Wikipedia
名前修飾 - Wikipedia
位置独立コード - Wikipedia
EXEフォーマット - Wikipedia
New Executable - Wikipedia
COMファイル - Wikipedia
きしもとさんのツイート: "@knok 一応英語版のほうは、いくつかの例を挙げる形で、どれが決定版だとも言えないよ、ぐらいのスタンスに見えます https://t.co/0UIBmDCnjM"
.bss - Wikipedia
.bss - Wikipedia
システムイメージ - Wikipedia

Twitter

@rui314

mold

histric

histric-1

Rui UeyamaさんはTwitterを使っています 「前回パースした結果をうまくメモリに持っておくことで、ホントにChromiumが2秒でリンクできるようなリンカを作れる可能性がある気がする。初回起動時はやっぱり12秒くらいかかってしまいそうだけど、初回ビルドはどうせ遅いので別にいいし。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@rui314 リンカデーモン?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@anohana 初回起動したときに勝手にデーモンみたいに裏で動き続けるようになるとか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカをメモリに常駐させておけば勝手に速くなってくれるということはなくて、ファイルを読み込むときにやってよい処理と、本当にコマンドが起動されたときに行わないといけない処理の2つにうまくステージを分割して、後半が極力早く終わるように前半をうまくやるということが必要になってくる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いい感じのデータ構造を考えつくかどうかで、こういう分割がうまくいくかどうかが決まるんだよね。実際、コードよりも、データをどう持つかというのがプログラミングで一番重要なところなんだよな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いまのところChromeをリンクするとき、実際のデータのコピーを始められるまでの処理に400ミリ秒くらいかかってる。もう一声縮めたいけど、100万個単位で存在するシンボルとかセクションとかを扱っているわりには悪くない数字。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカたるもの、入力から出力にデータコピーするところはどうやっても省きようがないので、 - 出力ファイルのレイアウトを極力早く決めてデータコピーをとにかくさっさと開始する - データをコピーしている間に、余っているコアで付加的なデータを構築する というのが肝になるかなと。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Chromeの入力オブジェクトファイルを出力ファイルにコピーし終わるまでちょうど1秒くらいだ。実際にはまだやらないといけないことがあるけど、目標の2秒までまだ1秒もバジェットが余ってる。これは本当に2秒切れる可能性ある。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「新しいリンカの名前、modern linker、略してmoldにしようかな。理由はカビっぽくてなんとなく面白い名前だから。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldリンカのソースアップロードしておいた(まだ使い物になるとかそういうレベルじゃないけど)。日本人らしくいらすとやの画像を貼っといた。 https://t.co/V5MIFw4jJB」 / Twitter
rui314/mold: mold: A Modern Linker
Rui UeyamaさんはTwitterを使っています 「いろいろ実験して、どういう処理がどれくらいの時間を必要とするのか調べてみてるんだけど、Chromeのリンク、2秒どころか1.5秒も可能かもしれない。とりあえずそれを目標にしてみよ。」 / Twitter
Adam Van ProoyenさんはTwitterを使っています 「@rui314 lldだと?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@docileninja 12 seconds」 / Twitter
Rui UeyamaさんはTwitterを使っています 「My linker is now able to create an statically-linked executable that does nothing but runs an infinite loop.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Next I have to support common symbols, and I want to do that really quick. I mean I don't want to spend more than, say, 20 milliseconds for them in total even for a &gt;1GB executable.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「It looks like my new linker can fix the layout of an output file for Chromium in 300 milliseconds. Copying file contents takes 700 ms, and I guess applying relocations would take another 500 ms. So a linker that links Chromium in 1.5 seconds is possible?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「For comparison, lld takes 12 seconds, and GNU gold takes more than 50 seconds to link Chromium.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Constructing a string table was a tough one because it's simply huge (~600 MiB for Chromium), but I think I managed to create it with less than 300 milliseconds overhead.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「学期末までにまだ40日あるからChromeをリンクできる完成度まで高めるの可能かもしれないな。Chromeが2秒でリンクできたらさすがにA+くれるんじゃないか(というかそんなの授業で作るレベルのものかっていう)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんか今作ってるリンカ、64コアマシンなのに16スレッドくらいで性能が伸びなくなっちゃうんだよな。小さなデータセットについてじっくり計算するタスクだともっとスケールするんだろうけど、大きなデータセットを素早く処理するみたいなやつだとメモリバスが厳しくてコアを全部使い切れないみたい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Ryzen 3990Xは癖が強すぎで、やっぱ3950Xがコスパ的にも最強マシンだったか。今なら5950Xだな。」 / Twitter
Inada NaokiさんはTwitterを使っています 「@rui314 L3キャッシュを共有するCCXあたりで8コア16スレッドなのが関係してるかもしれませんね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「マルチコア向けのプログラムを書くための高水準ライブラリとしてIntel TBBというのがあるんだけど、これの出来がとてもよい。とりあえず使っとけばいいという感じ。あと、こういうよくできたライブラリがあるからC++で書いててよかったなってなる。やっぱりC++はよい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「こんなライブラリ作ってくれてるのにAMDのCPUで動かしていてすまんな・・って思うけど、でもこれとはそれと別で、なんで最近こんなダメダメなのっていう。Intelは数十年に渡って絶対王者的ポジションを占めていたのに。」 / Twitter

histric-2

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このレベルになると、OS固有機能を活用しての高速化したい感じ。 (書き込み後にもOSキャッシュ載せたい場合は(DirectI/O使えないので)、fallocate + mmap後に、msyncで最後に手動一括sync出来ると良いのかな…だがlinuxにはmmapの自動syncをpendingする仕組みが無いっぽい)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「うわー、tmpfsだとめちゃくちゃ速いな。RAMディスクだから当たり前なのかもしれないけど。tmpfsに出力するようにしたらChromeのリンク1秒切るのももしかしたら余裕なのかもしれない。」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@rui314 でもそれ、最終的に何処かへ copy する必要があるのでは…」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@objectxplosive ビルドディレクトリ全体をtmpfsに置くというのはわりと普通に行われているので。」 / Twitter
眼力 玉壱號さんはTwitterを使っています 「@rui314 source まるごと置くのが一番速そうだけど、何か不幸な事があると消えるスよね😅。out-of-source-tree build で artifacts だけ tmpfs 送りスか?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@objectxplosive リンカなのでソースは置かなくていいです。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Wow, copying file contents is extremely fast on tmpfs. We might be able to link chromium in less than a second on tmpfs if these numbers are true.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「そろそろHello worldくらいは動くようにしないといけないな。今のところは壊れた実行ファイルを誰よりも素早く作成できるリンカになってしまっている。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Hello worldを動かすために、まずシンボルテーブルを出力できるようにしてから、_startからディスアセンブリをたどっていく作業してる。何かをゼロから作るとHello world表示するまでが遠いんだぜ・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「こういうの普通はよく知らない仕組みにぶち当たって学びながら作っていくので、ときには途中でデザインを基本から変えないといけなかったりすることがあるけど、僕は一応2回めだから根本的に間違ってるところはない、はず。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんか.gotを作るようにしたら_startから__libc_start_mainまでたどりつけるようになった。けどまだmainにたどりつく前にクラッシュしてる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Improved my new linker to emit a symbol table for debugging and then investigating why a "hello world" crashes before main(). If you create something from scratch, "hello world" isn't the first step but is actually an achievement.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「I don't know why, but this kind of mysterious low-level errors can almost always be fixed in a few days. The most difficult part is to set my mind to dive into disassembly and hexdump. I guess I've spent far more time for procrastinating than for debugging.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Chromeのリンク、2秒じゃなくて1秒目指そうぜという気分になってきた。cpがちょうど1秒くらいだから、cpと同じ速さというとインパクトがでかい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「出力ファイルをcpするのと同じくらい速いリンカなんて原理的に不可能そうだけど、①そもそもcpがファイルコピーコマンドとしてあまり速くない、②ファイルの内容をコピーしてる間に別のコアで時間のかかる計算をする余地がある、というので、絶対無理というわけでは多分ない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「_startの直後に呼ばれる__libc_start_mainの中でクラッシュする問題は直したけど、まだmain()より前のどっかで落ちてる。正直こういうバグ直すのめんどくさい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「"Hello world"が静的リンクできる程度のリンカを書くの、プログラムが低レベルでどう動くのかを理解しないといけないのでめっちゃ勉強になるな。一回書いたでしょという話はあるけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんか芋づる式にいろんな機能を実装する必要があって終わりが見えない。Hello world難しすぎワロタってなってる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「おおお、数日間のデバッグの末ついに自作リンカでhello worldがスタティックリンクできた! main()より前に実行されるコードの実行を逆アセンブリでひたすら追ったりして、なかなか大変だったぜ・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「やはりこういうプログラムを作るときに一番必要なのは、くじけない心。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Hey, so I managed to fix critical bugs so that my new linker is now able to statically-link a "hello world" program against glibc.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今クオーターの終わりまでにChromeがリンクできるようになるわけ?という質問には、善処しますとしか言えなかったわ。Hello worldやっとできたところからChromeを出力できるまで1ヶ月で足りるか・・?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Bumped up my (already ridiculously ambitious) goal from 2 seconds to 1 second to link chromium. I *believe* that's not entirely impossible. https://t.co/V5MIFw4jJB」 / Twitter

histric-3

Rui UeyamaさんはTwitterを使っています 「自作リンカでビルドしたhello world、./helloだとメッセージがでるのに./hello | catだと出なくなるというバグがあった。単に一つリンカの機能が欠けてただけだったけど、こんなバグどうやって直すんだ(直したけど)。」 / Twitter
gitster@ Git v2.30 12月28日発売 予約受付中(うそよ)さんはTwitterを使っています 「@rui314 こんなバグどうやって発現するんだ?という方が気になりますね。実行時にwrite(2)の行き先がttyかパイプかによって挙動を変えるなんて、狙ってもリンカレベルでどうやるんだろ?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@jch2355 デフォルトだとstdoutは行バッファリングですけど、isattyがfalseだとフルバッファリングになるので、そのときにはexitするときにバッファをフラッシュするんですよね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@jch2355 フラッシュする関数のリストは__libc_atexitというセクションに入っているんですが、リンカが定義するべき__start___libc_atexitと__stop___libc_atexitというシンボルを定義しわすれていた。その結果exitのタイミングでstdioの後始末をする関数が全然呼ばれていなかったという。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「ここ1ヶ月くらい土日もなく起きてる時間コードばっかり書いてる気がする。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、現段階で2500行くらいか。僕の野生の勘ではトータル6000行くらい書けばとりあえずChromeをリンクして動かせるんじゃないかと思うんだけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「コードも凝ったところがなくてかなりわかりやすく書けてると思うし(こういうあまり誰もよく知らない低レイヤだと「何をする必要があるのか」というのを知るほうが大変なんだけど)、速度も出るし、いまのところ結構よい感じ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「僕は自由研究の工作としてのプログラミングが好きなだけなので、あんまり競技プログラミングとかにはやる気がわかないのであった。食わず嫌いもよくないからやろうと思ったことはあったけど、結局やらずじまい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「最近は競技プログラミングの人気が上がっているので、ある程度以上できるプログラマだとそういうのやってると思われることもあるけど、別にそんなことはないです。というか一般にはそういう話をあまり見聞きしない。趣味でやってていい成績だしている人はすごいなぁとは思うけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカを作っているとどんなバグがでてくるのかをまとめてみた。これからも更新予定。https://t.co/SuxohXLQTO」 / Twitter
mold/BUGS.md at main · rui314/mold
Rui UeyamaさんはTwitterを使っています 「I decided to keep a note about interesting linker bugs before I forget. I'll update this doc as I meet a new one. https://t.co/SuxohXLQTO」 / Twitter
Rui UeyamaさんはTwitterを使っています 「When working on the binary level, a very subtle bug can cause a program crash with a very little trace of what was wrong. I still don't know how to efficiently debug this kind of issues, but it looks like patience is most important...」 / Twitter
Rui UeyamaさんはTwitterを使っています 「んー、やっぱり10ミリ秒単位の最適化を考えたりするのは、コンピュータをうまく使っている感じがして楽しいな。1000ミリ秒でchromeをリンクするという目標があると張り合いがあってよい。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「速度を知りたいだけだから、やっつけなプロトタイプ作ったら、変種パターンでの確認も必要となり、速度実験用プロトタイプこそ最初から拡張性考えて作っとけ、みたいな羽目になることある(笑)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「高速化できそうなアイデアがあったので実装してみたけど速くならなかったのでボツ。こういうの、いろいろアイデアがあっても結局最後は実装して試してみるしかないので、プログラムを高速化するためには自分のプログラミングも速いほうがずっと有利っていう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一般的には、最初から拡張性を仕込むのは悪手なこと多い。 思考実験的に、こういう拡張はここを変えればいける、という見通しだけくらいで良い。 YAGNI https://t.co/KqTrhwJLM6」 / Twitter
YAGNI と premature complication #4
Rui UeyamaさんはTwitterを使っています 「Chromeを1秒でリンクするのはどうやっても無理かも。データをコピーするだけで0.75秒くらいかかるから、まともな処理をするには残りの時間が少なすぎる。1.5秒でリンクするのなら現実味あるかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「データをmemcpyでコピーするところは数コアでサチるので、根本的にメモリバスがボトルネックで、速度を上げようがない(多分)。」 / Twitter

histric-4

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても仮想ページの初期化コストって、0初期化よりも、割り込み→物理ページ割り付け、にコストが掛かっている感じある。 …だとすると large page明示指定できるなら高速化可能?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 手元のWindowsだと(i5-8600K)、memcpy自体より仮想メモリのページ初期化コストが大きいですね。 1GB領域のmemset/memcpy速度実験。 VirtualAlloc(≒mmap(anon)) .. ほぼノーコスト 1st memset ... 2.5GB/s(4KBページの先頭のみ初期化だと3.3GB/s) 2nd memset ... 21GB/s 2nd memcpy ... 10.6GB/s」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu mmapしたタイミングでページテーブルも埋めるMAP_POPULATEというフラグがあるんですが、それをつけても速くならなかったんですよねぇ・・。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど。 同じmmap領域に、memcpyのセットを2回以上行っても、速度は大して速くならない感じでしょうか?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsでの large page は使い辛そう。 https://t.co/cEh2whGBfX」 / Twitter
やねうら王、Large Page対応で10数%速くなった件 | やねうら王 公式サイト
SODA NoriyukiさんはTwitterを使っています 「@shirouzu メモリが十分余っているなら、連続する仮想アドレスに対するアクセスを検知して後続する有効な仮想アドレスを事前に割り当てるサイズを適応的に拡大していけば、page fault handler の呼び出し回数と page table の書き換え回数の両方をだいぶ減らせそうな気がします。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu やねうら王の場合、ページ自体は既に割りつけられていてアクティブに使われている状況下での高速化でしょうから、TLB miss低減の方の効果でしょうね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda 検知+適応的に、というのはOS側がそんな挙動をすれば…という意味でしょうか?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu その意味でした。 カーネルの改造が必要なのでWindowsの場合、Microsoftでないとできないっすね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「とりあえずChromeは大きすぎだから、gitを自作リンカでリンクして動かすというのを目指すのがよさそう。自作Cコンパイラでgitをコンパイルして動かすのよりずっと簡単な目標でしょ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VirtualAlloc(MEM_LARGE_PAGES) の結果。 やはり物理ページ割り付け・初期化コストが物凄く減った。 (なおVirtualAlloc自体の時間は僅かに掛かる…遅いと125GB/s、速い場合は計測不能) 1st memset ... 21.2GB/s 2nd memset ... 31.7GB/s 2nd memcpy ... 10.6GB/s https://t.co/xPUE5uqvS5」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu 入力ファイルをMAP_POPULATEつきでmmapして効果ないなぁと思っていたんですが、出力ファイルをMAP_POPULATEつきでmmapすると顕著に効果ありました。その代わりmmapが非常に遅くなりますが。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 mmap(anon) + write1回の方が速かったりしませんかね。 (direct I/O write 1回(必要あれば追加truncate)が一番速そうですが、リンカだと通常writeでキャッシュに載せた方が後々嬉しいのでしたっけ)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 あと、Win32だと large page で初期ページ割り付けコストがかなり減るみたいですね…mmap(MAP_HUGETLB)で意味があるかはわかりませんが。 https://t.co/BOaM1tVLDu」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ただし 2nd memcpy が 15.8GB/s 出ないのがやや謎…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この結果を見ると、もう少しWin32でもlarge pageの利用ハードル(gpeditでユーザ許可必要、原則要admin)を下げて欲しいところ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「ついにいい方法を見つけた気がする。出力先のファイルがすでに存在する場合、新たなファイルを作るかわりに、既存ファイルをそのままmmapして内容を上書きしてしまえばいいんだ。遅いのはページフォールトではなく、ファイルシステムが新たなブロックをファイルに割り当てるところだった(多分)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「これでファイルの書き込みにかかる時間が750msから500msになって、1秒切りのゴールにぐっと近づいた感がある。まあデメリットとしては、中途半端なところでリンカが殺されると食われた状態の出力ファイルが残るというのがあるけど、これは速度のために許してもらおう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Linux kernel を漁る時に、関数ポインタテーブルになってる部分が追いづらい… fop-&gt;write() みたいなコードになっている時、代入されうるxxx_write がリスト選択して追えるサイトって無いのかしらん?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど。 昔のSolarisのコードだと write(2) の entry部分で rw_lock(inode, writer_mode) みたいなコードでシリアライズ強制でしたが、今時のwrite(2)でも同一fdでは並列動作しないという感じですかね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu MAP_ANONでmmapした領域にmadviseをするとtransparent huge pagesを有効にできたりするんですが、そういうのを試しても速くなりませんでしたね。最後のwriteが遅すぎて(O_DIRECT使って、かつ複数のスレッドから呼んでも)。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど…通常の方式だと、物理デバイスへのmsync/fsyncは待たずに終了なのでしたっけ。 (だとしたら、O_DIRECTは遅くなる方向にしか効かないですね) あと、O_DIRECT + 複数スレッドというのは、write(2)を複数回実行ということでしょうか…?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu そうです。writeに2GBのバッファへのポインタを渡してもカーネル内でシングルスレッドでデータコピーしているぽいので、バッファを複数のブロックにわけて複数のスレッドからpwriteしてみました。」 / Twitter

histric-5

Brian GesiakさんはTwitterを使っています 「@rui314 I'm not an expert by any means, but would it be possible to install a signal handler to delete the file if mold is halfway through updating it? Or is the overhead of adding a signal handler not worth it?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@modocache The usual technique to create an output file is to create it with a temporary name and then rename it an output filename. Since renaming is atomic on filesystem, it is either you'll have the original file with the original name or the new file will replace the original one.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@modocache But if you overwrite an existing file, you can't undo it easily. If you keep the original file contents somewhere, you may be able to write it back, but that incurs the cost of copying file contents at the beginning.」 / Twitter
Brian GesiakさんはTwitterを使っています 「@rui314 Oh yeah, totally. I thought a concern would be having a file remain there, but with broken content. If mold is interrupted, I thought it'd be nice to delete the half-overwritten file, since it almost certainly shouldn't be used.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@modocache Ah, sure, good point. Deleting a broken file is probably better than leaving it as-is.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「一回作ったことがあるリンカをもう一回作るというよく知ってるテーマでここ一ヶ月ほど暇を惜しんでコードを書いてて、自分一人でやっているし、条件としては最もよいはずなんだけど、月産2700行しか書いてない。プログラマの生産性なんてこんなものです。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「簡単なプログラムがリンクできるようになったので、リンカのソースをいじっていろいろ整理してる。動くようにする(なにをするべきかを学ぶ)のと、その過程で学んだことを元にコードを整理するというのは、やっぱり小さいステップで交互にやるのがよさそう。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「こういうのは多分ある程度は経験が必要で、経験が浅いと不必要に汎用的(と自分は思っているけど本当は単にややこしいだけ)なコードを書きがち。多くの場合、とりあえず動くやつを書いて、あとから必要に応じて整理したり書き直したりするほうがいいと思う。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「あとこういうのは、コードを大切にしすぎないのが多分重要で、リファクタリングしたつもりで書き直したけどやっぱり後で元の方法に戻した、とかもいいと思うんだよね。そういう試行錯誤をするためにはコーディングとかタイピングが速いほうが有利なので、量が質に転化するみたいなところはある。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldもいい感じに開発が進んでて、8コアくらいの中堅PCでもChromeみたいな巨大なプログラムを1秒以内でリンクできるようになる可能性ある。しかしこの目標達成できたら、ビルドのリンクのステップが遅いという何十年もプログラマを悩ませてきた問題が、ついに完全かつ最終的に解決されてしまうのでは?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「とりあえず自作リンカでgitをリンクできるようにしようとしてる。なんかすごく似たことをつい数ヶ月前にもやってたような・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんかリンカばかり作ってるけどこれは偶然の成り行きで、最初にlldを作ったときは、コンパイラとリンカを作らないといけないけどどっちがいい? とマネージャに聞かれたので、コンパイラはむずそうだけどリンカは気合いで作れそうだなと思ってリンカにしますと言ったからそうなっただけなのであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「言語処理系好きなひとはコンパイラをやりたがるからリンカを選ぶ人は珍しいなと言われたんだけど、そもそもそれまで僕はJavaとJavaScriptでWebフロントエンド書くみたいなことをやっていたので、まいっかという感じであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今また別のmoldというリンカを作っているのは、学校での研究としていい感じに動くコンパイラを作ろうと思ってたんだけど、学期が始まった後に「作ってみました」だけじゃどうかなぁ・・と教授に言われたので、しょうがなく超速いリンカを作るというプロジェクトに切り替えただけなのであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いい感じに動く面白いものを作りたいとは思うけど、具体的なテーマそのものにはあんまりこだわりないかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「マネージャにはWindows向けのちゃんと動くリンカを作ってよと言われただけだったんだけど、すごく速いやつを作ったらこれをUnixに移植して使いたいという人たちが出てきて、僕もそれに取り組んでた。なので高速Unixリンカを書くというのは完全に脱線状態なだけなのであった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今週の教授との定例ミーティング終わり。なんでmoldが速いくてどこらへんに新規性があるのかをプレゼンを用意して説明したら喜んでもらえたぽい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「おお? 自作リンカでリンクしたgitが動いた! なんかコマンドが終了するタイミングで必ずクラッシュするけど・・。」 / Twitter
dancerj 🗾さんはTwitterを使っています 「@rui314 .finiセクションかなんだったかデストラクターのセクションだったかが順番間違ってるとかありがち・・・」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@dancerj 普通にありえる」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今日のプレゼン資料の1枚目には、「catコマンドより速いリンカを作ってビルドのリンクが遅いという問題を最終的かつ完全に解決する」とババーンと書いておきました。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「git --helpが最後に落ちるのは、stdoutがあらぬところを指しているからだった。コピーリロケーションを実装したら動くようになった。stdoutがデタラメな値なのに途中まで動くっていうのもすごいけど。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「次はenvironがあらぬところを指しているらしい。オールスターだ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「environ変数が見えない問題は直した。なんかコピーリロケーションの微妙な問題だったんだけど、こんな世界でも100人くらいしか実際の仕様を知らなさそうな微妙な動作(文章化されてない)にあらゆるLinux実行ファイルが依存してていいんだろうか? 低レイヤだとありがちな状態だけど・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いや、なんか違うかも。仕事ももちろんフルタイムで取り組んでいたし、OKRとかで期末までに成果を上げてほしいという仕組みがあったし、いい仕事をするインセンティブもあったと思うけど、今ほどのやる気はなかったような・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「A+が欲しいから選んでみたテーマだけど、最速リンカを作るというのはいいテーマだったかも。というかフルタイムで取り組める時間と、学期末までに成果を出したいという気持ちの両方があれば、いろんなテーマでそこそこ面白いものが作れるんだろうけど、学校というのはそういう意味で悪くないのかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんとなくあと数日デバグを頑張ったらgitが動くようになりそうという気がする。moldでgitがリンクできるようになったら、chibiccとmoldでgitをビルドしてみて自作ツールチェインの完成度の高まりを感じてみたい。」 / Twitter

histric-6

Rui UeyamaさんはTwitterを使っています 「よっしゃ。chibiccでコンパイルしてmoldでリンクしたgitのバイナリで自作ツールチェインのリポジトリをgithubにpushするのに成功した。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、現在3677行。そんなに欠けてる機能があるとは思えないから、多分4000行でChromeをリンクできるリンカを書ける。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「git range-diffの表示するdiffが少しだけ違うという問題をデバグしてる。リンカのエラーでこんな微妙な問題、どうやったら生じるんだろ?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「これはlibcにregexecという同名の関数が複数含まれていて、想定してるのと違う古いバージョンのを偶然使ってしまっているからぽい。つまりシンボルバージョニングに対応しないといけないぽい。バージョニングには対応しなくても動くと思っていたけど、想定甘すぎた。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldでリンクしたgit、テスト完走した。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「git linked with mold (my new linker) can now pass all its tests.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「学期末まであと1週間半で、目標のchromeはまだ動かすには至ってないけど、gitが動くところまで来てるんだし、現時点でもA+もらえるんじゃないかなぁ。lldの10倍速いリンカを作ってみるなんて、学生の一学期分の研究成果としては正直やりすぎなくらいだろうし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldでmold自身をリンクして全部普通にテストが通った。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「今週のウィークリーミーティング終わり。USENIX ATCに出すかーみたいな話をしたけど、それなら論文提出締め切り1月15日なんだよね。忙しくなりそう。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「おお?? 新作の自作リンカことmoldでリンクしたChromiumが、あっさりと普通に起動してしまった。ここまで2ヶ月しかかかってないぞ。 https://t.co/Vj9iHq7Kdh」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@kw_udon_ いまのところ5秒弱かな。これでもlldより倍以上速いけど、ファイル読み込みんだ後のイメージをデーモンにしてメモリに常駐させることで1秒切るところまで縮めるつもり。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@kw_udon_ 実際ファイル読み込みのところとかを除くと0.8秒くらいしかかかっていないので、1秒切りは普通に可能な目標という感じ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Looks like Chromium linked with mold (my new linker) started working just fine. I've spent only two months so far for this project, though. https://t.co/WOEAJPtReg」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカを書くのは実はそんなには難しくなくて、moldも4000行しかない。ただ、ドキュメント化されていない隠れた仕様が多い上に、それを正しく実装してないとわけのわからないエラーで落ちる実行ファイルができてしまうパターンが多いというのがつらい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「教授との最終のミーティングが終わった。なんかポリシーとして(?)A+はないけどAだし、PhDいくならいい推薦状書くよと言っていたけど、A+ないんか〜 最初から言ってくれ〜。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「この論文、USENIX ATCよりACM OOPSLAに出すほうがよくない?という気がしてきた。教授に相談してみるか・・。しかし教授も正直この分野そんなに詳しくないと言っていたからどうしたもんか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、LLVMをライブラリとして使ってELFファイルを読み込んでたんだけど、自前コードで書き直してLLVMを使わなくすることに成功した。そんなに重要じゃない使い方なのに大きいライブラリに依存してるのってあまりよくないので。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、LLVMへの依存性をなくした代わりに、string_viewとかspanみたいなC++17/C++20の機能使いまくりのコードになってしまった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「うーん、やっぱりC++は手に馴染むな・・。書きやすいし性能も出るし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「C++に慣れれば慣れるほど構造体に毛の生えた程度のbetter C的な書き方になっていくのは気のせいか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold普通にリンカとして悪くないのでは? という完成度になってきたけど、コードはC++で4600行。C++標準ライブラリにしか依存してないし(マルチスレッドのためにIntel TBBは使ってるけど意味的には無視できる)、シンプルで高性能で結構よいのでは。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、お膳立ては揃ったから、いよいよChromeを本当に1秒でリンクできるようにしてみるかな。ただ、予備実験ではfork(2)をすると(多分copy-on-writeのオーバーヘッドのせいで)リンクに1.5秒くらいかかるようになってしまったので、ちょっと別の方法を考えないといけない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「うまくやれば多分1秒どころか800ミリ秒くらいでいけると思うので、単なるファイルコピーより速いリンカという目標を達成できると思う(cpとかcatだと1.1秒くらい)。」 / Twitter
成瀬さんはTwitterを使っています 「よっしゃ、vfork(1)の出番だ!!」 / Twitter
Rui UeyamaさんはTwitterを使っています 「あら? moldでのChromeのリンク時間、mallocをtcmallocとかtbbmallocに換えただけで4.5秒→2.5秒になってしまった。glibcについてくるデフォルトのやつはマルチスレッドでそんなに遅かったのか・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「メモリをたくさん使っているプロセスは_exit(2)ですら500ミリ秒くらいかかったりするので、それを隠蔽するようにしたら2.0秒になった。lldだと11.5秒くらいかかるから、もうデーモン化みたいなしゃらくさいことをしなくてもこれで十分じゃないか?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Chromeをリンクするのにかかる時間です。64コアマシンだけど、16スレッド動かせば十分という感じ。もっといい感じにスケールしてほしいけど、まあこんなもんかなぁ・・。 https://t.co/gZM7ejtbEt」 / Twitter
Rui UeyamaさんはTwitterを使っています 「しかし2秒だと普通に使ってて「はやっ」ってなるわ。」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@rui314 「アムダールの法則」のカープになっているように見えます。」 / Twitter
アムダールの法則 - Google 検索

histric-7

Rui UeyamaさんはTwitterを使っています 「mold、完全に目処がついたと言ってよさそう。Chromeをリンクするのに2.5秒、直前に同一コマンドを実行してファイルをプリロードしておくと、ほとんどの入力ファイルが同じ場合に0.8秒という結果になった(16スレッドでテスト)。ほかのリンカだと最低10秒かかるから、めちゃくちゃ速いといっていい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「どう考えても仕事をやめた後のほうがいいプロダクトを作れている。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「この個人プロジェクト、別にGoogleでやるのも不可能じゃかったとは思うけど、こういう自由研究みたいなのを一人でできる立場になるのって結構大変だと思うんだよね。かといって別の本業プロジェクトの片手間でやるとなんか肩身狭いし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「しかし2ヶ月頑張っただけでこんなに劇的に速いリンカが作れるというのも、簡単すぎてちょっと変な話なんだよな。リンクが遅いというのは多くのプログラマがビルドコマンドを叩くたびに感じていることで、なぜそういう日常的な問題がこんなに放置されていたのか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「まあ「作るという発想がないから」というのが答えなんだろうけど、同じ理由で、広く使われているのにしょぼい状態で放置されているものってたくさんあるのかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Intel TBBがなければこんなに簡単にパラレルなプログラムは書けなかったのでIntel TBB様々だわ。よいライブラリだ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldにバックグラウンドでのファイル読み込み機能を実装して、直前(数秒前とか)に同じコマンドを--preloadオプション付きで実行しておくとChromeが1秒でリンクできるのを実際に確認した。これで数ヶ月前に立てた目標を無事達成! 無理そうな目標があっさりと実現できてしまいましたね・・。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「最後の最後にUNIXドメインソケットとかfile descriptor passingみたいな知識が必要になって、UNIX詳解プログラミングを読んでおいてよかったなと思いました。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldリンカいまでも十分に速いけど、一層速くするには自分でコンカレントなハッシュマップを自分で書かないとダメかもな。ここらへんを参考にちょっと書いてみてもいいかも。 https://t.co/O2alK8E3jS」 / Twitter
Algorithmic improvements for fast concurrent Cuckoo hashing | Proceedings of the Ninth European Conference on Computer Systems
Rui UeyamaさんはTwitterを使っています 「64コアThreadripper使い切るの難しいというか、アプリケーションによってはほとんど不可能だな。今書いてるやつだと10コア20スレッドくらいで性能が頭打ちだし、これ以上スケールするように書ける気がしない。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「I/Oが少なくてずっと計算をするようなタイプの処理がたくさんあるなら、64コアまでスケールするのかもしれない。そういうワークロードじゃなければ、Ryzen 5900X(12コア)か5950X(16コア)あたりで十分そう。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「もう十分に速いから最適化はこれくらいにしとこうかな。2GBのChromeのファイルを10コア20スレッドで1.8秒でリンクできるし(デーモン化みたいなトリックなしに)、これ以上はどんなにがんばっても数百ミリ秒しか速くならないだろうし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いつのまにかmoldがRedditに投稿されていた。この作者の目標は過大すぎて疑わしいみたいな感じのことを言っている人もいるけど、README更新してなかっただけでもう結構実証されてるんだよな・・😅 https://t.co/VX2I0PXfeD」 / Twitter
mold: A Modern Linker : cpp
Rui UeyamaさんはTwitterを使っています 「C++で例外をスローできるようになった(なんかリンカがテーブルを作成したりしないといけない)。これなしでChromeをリンクして動いてたってのはすごいな。。しかしこれで主要機能を全部実装したのでは。」 / Twitter
_ko1さんはTwitterを使っています 「@rui314 Chromeは例外使ってないのを徹底してるってことですか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@_ko1 でもなんかいろんなライブラリが入っていて、どれでも使ってないというのはありえるのかなぁ。まあ、起動してちょっとサーフィンするくらいなら使ってないのかも。」 / Twitter
_ko1さんはTwitterを使っています 「@rui314 使ってたらビルドできなそうじゃないすか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@_ko1 リンクはできちゃうんですよ、ただそのままだと例外が投げられたタイミングでハンドラが見つからなくてクラッシュするだけで。」 / Twitter
_ko1さんはTwitterを使っています 「@rui314 なるほど、単にセクション無視しちゃうだけと」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@_ko1 例外のハンドルの仕方がわかるレコードがたくさん入っているセクションがあるんですけど(.eh_frame)、これをリニアにスキャンするとめちゃくちゃ遅いので、関数のアドレスで二分探索できるテーブルがあって(.eh_frame_hdr)、これを作らないと例外がキャッチできないという。」 / Twitter
_ko1さんはTwitterを使っています 「@rui314 (多分あんまり)undocumented world だ」 / Twitter
Rui UeyamaさんはTwitterを使っています 「高速化のためのアイデアとそれを実装しなかった理由というのをREADMEに追記してみた。実装からは何が実装されたのかがわかっても、何がなぜ実装されなかったのかはわからないので。 https://t.co/V5MIFw4jJB」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンカの機能を説明するためにUnixの歴史を説明するというアアプローチになった(未完)。 https://t.co/iCaLUnJSzi」 / Twitter
rui314/mold: mold: A Modern Linker
Rui UeyamaさんはTwitterを使っています 「moldのマルチスレッドの使い方について追記してみた。 https://t.co/IS736Nd7lT」 / Twitter
rui314/mold: mold: A Modern Linker
Rui UeyamaさんはTwitterを使っています 「Chromeをリンクするときにgoldで50秒、lldで5秒かかる機能を1秒に縮めることができた。新規性あるアルゴリズムぽいから論文書くか。」 / Twitter

histric-8

Rui UeyamaさんはTwitterを使っています 「しかしグラフの問題に帰着するのでいかにも先行研究がありそうなんだけど、あんまり詳しくなくて(というか分野が深すぎて)どうしたもんだか。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「goldで50秒かかる処理をlldで5秒にしたときは、何週間もアルゴリズムについて考えていたし、結果として劇的に速くしたと思ったもんだけど、数年後にまたいいアイデアがわりと簡単に出たりするから面白いもんだ。今回は1〜2日しか考えてないし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いや、これは去年、学校の授業(具体的には暗号の授業)でいろいろ課題をやったから簡単に考えつくことができたアルゴリズムだな。数年前より成長している。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いい感じに計算量が少なくて並列化もしやすいアルゴリズムを考えて、実際のコンピュータでいい感じに動くように実装するの(コンパクトなデータ構造を考えてキャッシュによりやすくするとか)、腕の見せどころという感じだ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「アルゴリズムを考案するのは面白いけど、それを性能評価できるレベルまで実装するのは結構辛い。実装してみたら大して性能出ませんでした、というのもあるし。どうしても根性みたいなものがいる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「さらにちょっと最適化して1秒→770ミリ秒まで縮めた。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「いや違うな、同じコア数だと940ミリ秒くらいだ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「最近考えていたアルゴリズムについてコメントを足してみようと思ったけど、これこそコメントじゃなくちゃんと書くべきなのかもな。正直こういうグラフの問題は図がないとわからないし。 https://t.co/UGyHkOucy7」 / Twitter
mold/icf.cc at main · rui314/mold
Rui UeyamaさんはTwitterを使っています 「今書いてる論文、思ってたよりちゃんと数学的な証明を書かなくてはいけなくて、宿題で証明問題がやたら出ていたグラフ理論の授業ありがとうという気持ちになっている。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「昨日まで考えていた証明に穴があったので今日またずっと考えてたんだけど、正しい証明にたどり着いた気がする。数学っぽいやつは時間がやたらかかる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「僕が今まで当然正しいと思って使っていたアルゴリズム、よく考えてみると本当にきちんと動くかどうか全然自明じゃなかったという。怖い話だ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「論文書くの疲れた」 / Twitter
Rui UeyamaさんはTwitterを使っています 「普通にLinuxで動くリンカを作るために必要な機能をまとめたサーベイ論文も書きたいんだよな。これは本当に必要というか、実際のコーディングよりもこの調査のほうが大変という状態なので。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「サーベイ論文というと近年の研究をまとめたものというイメージだけど、こういうなんのドキュメントにもなってないものを文章化するみたいなやつもサーベイ論文と言うんだろうか。まあサーベイではあるからサーベイ論文なのかな?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「論文、アルゴリズムと実装の部分は書き終えたから、あとはベンチマークだ。これは結構手間かかるだろうなぁ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なぜmoldをRustで書かないのかという質問が来たけど、 1. C++が一番慣れてる 2. Intel TBBみたいな良いライブラリがそろってる 3. こういうプロジェクトでは、実装しようとしているもの自体が興味深いのであって、どの言語で実装するかはそこまで重要ではない という感じかな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、Firefoxのビルドもびっくりするほど速い。ビルドしたバイナリが動作しないという点を除けば完璧だな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「お、moldでFirefox動いた。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「.soファイルやビルド途中のアーティファクトも含めて、ChromeとFirefoxの全体がmoldでビルドできた。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「なんかリンカの微妙なバグにより、Ctrl-wでウィンドウを閉じたときにChromeがクラッシュするという謎の問題が発生したけど、エスパーにより数時間で原因が判明してしまった。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、LLVMをリンクしてテストが完走した。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold is now able to link Chrome, Firefox and LLVM! Still buggy but getting closer to be a production quality linker.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Everybody loves benchmark, so here are some numbers. mold vs. lld link time: - Chrome (1.9GB): 2.1s vs. 12.0s - Firefox (libxul.​so, 1.3GB): 1.5s vs. 6.2s - Clang (2.1GB): 2.0s vs. 4.7s So mold achieves roughly 1GB/s throughput. All builds are w/ debug info.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「現代的なソフトウェア産業の方向性とは全然違うけど、いい感じのプログラムを一人で作ってるときが一番楽しいな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold isn't just fast but small and simple. Currently 6.5 kloc. IMO its source code is pretty clean. I'd like to write "demystifying ELF linking" paper based on it if I have enough time.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、なんじゃこりゃというくらい新機能追加が簡単だな。目ぼしい機能は実装してしまったから後はバグ出しか。」 / Twitter

Rui UeyamaさんはTwitterを使っています 「It is sometimes surprisingly hard to modify a build system to use an alternative linker, so I made it easy by a hack. By running make as `mold -run make`, mold intercepts all invocations of /usr/bin/ld to redirect it to itself. https://t.co/0UXU4iT9xP」 / Twitter
rui314/mold: mold: A Modern Linker
Rui UeyamaさんはTwitterを使っています 「I was trying to build various programs with mold for testing, but it's not easy to figure out how to make them to use the nonstandard linker. Me: "But isn't this exactly the issue a potential mold user would face on day one?" So I came up with this hack.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「For now, mold can link chromium, firefox, llvm, mysql, postgresl, ffmpeg, libunwind, openssl, zlib &amp; a few more. What else?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold、現状で9000行くらい。機能を足していくとどうしてもコード量は増えてしまうな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「x86-64以外に移植するためにmoldを改造してみた。アーキテクチャ依存の部分をくくり出すんじゃなくて、ほとんどのクラスと関数をテンプレートにして、実質4パターン(ELF 32/64 little/big endian)のコードをまるごと生成するという荒業だけど、まあ悪くなさそう。 https://t.co/V5MIFw4jJB」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Trying to make mold portable. Instead of separating arch-dependent code from indep one, I made almost all functions and classes template to virtually create 4 different linkers (ELF 32/64 LE/BE) living in a single exe. Kinda brute force and little bit inefficient but not too bad.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「mold is gaining i386 support. It can read i386 object files and create an i386 exe, though the produced binary crashes inside libc_start_main.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldはx86-64ベタベタで書いてたけど、その気になれば2日でi386サポートが大体動くところまで改造できるわけで、最初は移植性について考えないというやり方で正解だった。新しくプログラムを書くときは、あれもこれもと考えがちだけど、ある程度完成するまで余計なこと考えてもしょうがないんだよね。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Dynamically-linked "hello world" program worked with mold/i386! i386-dependent code in mold is just this: https://t.co/JOnDDKiGOO」 / Twitter
mold/arch_i386.cc at main · rui314/mold
Rui UeyamaさんはTwitterを使っています 「mold no longer leaks memory. I don't care too much about memory leaks if it is a short-lived program such as a linker, but I did it because it wasn't too hard to fix leaks. It was actually trivial thanks to AddressSanitizer.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「I made a few changes to make mold suitable to be installed under /usr/bin. One thing I had to do was to write a man page. https://t.co/gjGgRBmTqr」 / Twitter
Man page of MOLD
Rui UeyamaさんはTwitterを使っています 「Finally figured out why go's gc collects live objects only when some .so are linked with mold. It was extremely puzzling and took a few days to debug. Turned out it was a go's bug and not mine. https://t.co/R1NaMn5Y2Q」 / Twitter
cmd/link: `go tool dist test testshared` failed if linked with lld or mold · Issue #46560 · golang/go
Rui UeyamaさんはTwitterを使っています 「I already made a change to mold to appease go, even though technically it's their fault. It's an inconvenient fact: complying with the standard is not enough, you need to make it bug-compatible to make your linker work in real life.」 / Twitter
Rui UeyamaさんはTwitterを使っています 「moldのclangのリンク時間を3.6s→2.5sに縮めた。出来合いの並行ハッシュマップだと性能が出ないので、HyperLogLogアルゴリズムでテーブルサイズの見当をあらかじめつける&並行ハッシュマップを自分で書くという合わせ技。 https://t.co/1nJcV4exCV」 / Twitter
Optimize string merging · rui314/mold@41b2fa7

histric-1

Rui Ueyamaさんのツイート: "今日説明していて思ったけど、lldは僕の考え方を反映した、普通にはよくないとされているけど僕は良いと思っている手法が導入されているんだなと思った。 - メモリはプログラムの終了時まで解放しない - コード重複はしてもいいのでプラットフォーム共通になるように抽象化しない"
Rui Ueyamaさんのツイート: "lldにおいては成功した取り組みだったと思うけど、いずれにせよソフトウェアエンジニアリングというのは実践的なもので、「正解」があるものではないので、非伝統的や非正統的であっても、単に自分がよいと思うものがあったら追求していってほしい。例えばオブジェクト指向とか別にどうでもいいし。"
Rui Ueyamaさんのツイート: "「メモリを途中で解放してもたかが知れてるから最後まで解放しないほうが単純」とか「抽象化せず多少重複したコードを書くほうが簡単」とか主張するのは勇気がいります。XX原則に従ってないとか必ず言われるからね。でも多分そんなに難しく考える必要ないと思う。簡単に書くのが一番重要。"
Rui Ueyamaさんのツイート: "リンカをより速くするプロポーザル書いた。 https://t.co/tsCOkSOXvO"
[llvm-dev] [RFC] lld: mostly-concurrent symbol resolution
Rui UeyamaさんはTwitterを使っています: 「goldはタスクを小さいジョブに分けて、依存関係を管理しつつ、実行できるジョブを並列にどんどん実行していくみたいな凝った作りになってるのに、単純な並列forループしか使ってないlldのほうがスケールするのは面白い。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「lldはGNUリンカとの完全互換を目指していたので、あんまり重要ではない、ただ伝統的にそうなっているという動作を同じように実装する必要があって、最適化には限界があった。もっとシンプルな作りで、スピードを第一目標にしたリンカを作ってみたいとは思ってた。ニーズも大いにあるし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「lldを使っても大規模プロジェクトだとリンクは遅くて、プログラマの生産性を明らかに下げてる。しかし既存リンカとのコマンドライン互換を諦めたらあと10倍くらい速いやつが作れそうな気も?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「小規模プロジェクトだとそもそもリンカに対してニーズが特にないのでコマンドライン互換でそのまま使えればいいという感じだけど、大規模プロジェクトだとビルドファイルに変更を加えてもいいからとにかく速くリンクしたいというニーズがあって、後者にフォーカスすればlldを置き換えれるかも。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「オブジェクトファイルをcatして1つのファイルにまとめるのと同じくらい速いリンカというのを作りたいんだよな。あながち無理でもなさそうというか、catって複数のファイルをまとめるコマンドとしてはあんまり速くないし。」 / Twitter
Junio C HamanoさんはTwitterを使っています 「@rui314 出来上がりのバイナリが実行開始するまでのレイテンシーを犠牲にしてよいのなら、ホントにcat程度にしておいて、起動後、実行時に、通常ならリンカがするはずの大方の処理を行なう、みたいなズルはできそうだけど、そういうのを狙ってるわけじゃないよね😜?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@jch2355 今までのリンカが並列にやってこなかったことを並列にやるみたいな感じのことを考えてます。コマンドを起動したらまっさきにファイルをコピーし始めるくらいの勢いで動くものを。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「1.9 GBのchromeの実行ファイルをリンクするのにlldで12秒かかる。これを2秒とかでできるリンカが作れないかなと考えてる。理想を言えば1秒にしたいけど(1.9 GBのファイルをcpすると1秒かかるので)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「goldリンカだと54秒かかるので、lld作った時点ですでに相当速くしちゃってるんだよな(自分でハードルを上げていくスタイル)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「リンクの遅さに対する対策として、プログラムを複数の.soに分割したりインクリメンタルなリンクを実装するというアイデアがよくでてくるけど、なんかいろいろ複雑になっちゃうから、そういうのは根本的にはあんまり筋がよくない解決策だと思う。単にリンカをすごく速くするほうがいいはず。」 / Twitter
ASCII.jp:2021年のWindows 10の大型アップデート「21H1」はこうなる(予定) (2/2)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++のリンカだと、ファイルIOが主要ネックに見えるけど、すでに読み取り1回、書き込み1回的な状態になっているのかしらん?」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@shirouzu ファイルIOがない考えてるだけの時間が長過ぎるんですよね」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど…オンメモリ処理が1/5~10になるとしたら凄いですね。」 / Twitter
Lizan ZhouさんはTwitterを使っています 「ほしい…ASANでコードサイズが爆発的に増えても速くリンクできるようになるとうれしいな…」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@lizan ASANでそんなにリンク遅くなるっけ?」 / Twitter
Lizan ZhouさんはTwitterを使っています 「@rui314 コードサイズが倍近くになるはず」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@lizan ああそうか確かに」 / Twitter
Rui UeyamaさんはTwitterを使っています 「そういやAndroidもlldに移行すると言っていたけど、もうそろそろ完了してそう。ほかにもPlayStation、Switch、Chromeとかはlldを使っているはずだから、僕らが作ったリンカの出力が我が家でもいたるところにあるな。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「lldを速くするという研究で論文を書いている人がいた。スウェーデンの学生の卒論かな。 https://t.co/moXtdj4WZE」 / Twitter
Optimizing the LLVM ELF linker for a distributed compilation environment : Concurrent Linking with LLVM LLD
Rui UeyamaさんはTwitterを使っています 「僕がオリジナルのコードを書くと、メモリリークしたままexitするのはないわとか、グローバル変数使いすぎとか言われるんだけど、そういう細かいところじゃなくてもっと本質的に何やってるかに着目してくれ〜。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「まああと、メモリ解放しないまま最後にexitでまとめて始末するのもやり方としてはありだし、プログラム中に1個しかないものならグローバル変数を使っても別にいいし(というか多くの人が必要以上に避けすぎ)。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「コードからファイルを開くのが、例えばmainに渡されるFileOpenerというオブジェクト経由でしかできないみたいな仕様になっていたら、グローバル変数に代入したくない一心でFileOpenerをあらゆる関数の引数に足すひと結構いるんだろうなと思う。つまり実質グローバル変数みんな普通に使ってるのよ。」 / Twitter
市川 真一さんはTwitterを使っています 「メモリ解放せずに exit するポリシーだと、そのような発想になるのは理解できます。それで、実質的にグローバル変数を使ってるという認識は当然あるのですけど、exit せずにプログラム全体を再始動させたりするのに、グローバル変数の参照がプログラムの至る所にあると難しいというのが理由です:」 / Twitter

Rui UeyamaさんはTwitterを使っています 「速いプログラムを書くためには、性能の出そうなコードを結局何パターンも書いて一番いいものを選ぶとかしないといけないので、勘と実装力の両方が問われる。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「よさそうなアルゴリズムを思いついたので実装してみたら、かなり有望な数字が出てきた。これ特にVisual Studioのリンカが速くなりそうだなぁ。またMicrosoftに感謝されそう。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「有向グラフにおいて「あるノードから到達可能なすべてのノードとエッジからなるサブグラフ」を一言で言う用語ないんだっけ。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「Demystifying Unix linkersなるドキュメントを書き始めた。めちゃくちゃ基本から解説して、誰でもUnixリンカの動作とか機能を理解できるものにしたい。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「このテーマだと僕より詳しい人はほとんどいないし(成り行き上詳しくなっただけだけど)、ここまでの調査に要した時間を考えるとドキュメントにまとめないのは大きな損失なんだよな。自分でも忘れてきてるし。」 / Twitter
Rui UeyamaさんはTwitterを使っています 「@ZebraCakes 英語で書いてます(日本語はないです)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「There are not too many people who know how hard a linker development can be, and Jakub and I are the ones!」 / Twitter
Jakub KonkaさんはTwitterを使っています 「After a lot (and I mean it, a lot) of debugging, and a few rewrites, I am super happy to announce that @ziglang ld (or zld) is successfully able to link C++ on arm64 macOS, and as a result, you can now bootstrap Zig's stage1 compiler from anywhere: https://t.co/jUYoXDdvjY」 / Twitter
(2) Rui UeyamaさんはTwitterを使っています 「Linker is not a very complicated program IMO, but it is hard to develop because of a few reasons: - lack of documentation - debugging a program-generating program is generally hard」 / Twitter

@fadis_

Fadisさんのツイート: "本日最後のセッション、 @rui314 さんの「 lld: 速くてシンプルなリンカ」が始まります #kernelvm"
Fadisさんのツイート: "lld: ELF、COFF、March-Oを喋る事ができるリンカ #kernelvm"
Fadisさんのツイート: "GPL3のbinutilsを使いたく無いBSDな人たちがシステム丸ごとlldでリンクできるようにしようと頑張っているらしい #kernelvm"
Fadisさんのツイート: "lldでWebAssemblyのリンクも行う事ができる!! #kernelvm"
Fadisさんのツイート: "lldの目標: GNUリンカよりシンプル シンプルなら簡単に理解でき、hackableにできる #kernelvm"
Fadisさんのツイート: "lldはGNU ldの為のリンカスクリプトをできるだけそのまま使えるようにしているが、当のGNU ldも従来のldとgoldでリンカスクリプトの解釈が違っていて厳密な互換はそもそも取れそうにない、と #kernelvm"
Fadisさんのツイート: "プログラムのサイズにもよるがlldはgoldより2倍から5倍速い #kernelvm"
Fadisさんのツイート: "「2ソケット20コア40スレッドのXeonでリンカのパフォーマンスを比較」 「パワフル過ぎでは」 #kernelvm"
Fadisさんのツイート: "新規に作ったリンカである為正確に何が速度の差の決め手になっているかは作者も分かっていないが、問題に対して素直なデータ構造で実装すれば速さはついてくる、というポリシーに基づいて開発している、と #kernelvm"
Fadisさんのツイート: "C++では名前のマングリングが行われる為シンボル名がとても長くなる傾向がある → これが並んだシンボルテーブルの参照は遅い → C++で速いリンカを作るためにはシンボルテーブルの参照を可能な限り減らす必要がある #kernelvm"
Fadisさんのツイート: "リンカをマルチスレッド化する際には出力が決定論的になる(スレッドがどう実行されたかによって順番が違っていても良い情報が入れ替わったりしない)ように注意して実装する必要がある、と #kernelvm"
Fadisさんのツイート: "リンカの実行時間のほとんどは入力ファイルを出力ファイルに置き直す時間と、大量の文字列のマージでと、シンボル名解決で、このうちマルチスレッド化が難しいシンボル名解決以外をマルチスレッド化する #kernelvm"
Fadisさんのツイート: "文字列のマージは従来1つのハッシュテーブルを使っていたが、複数のスレッドが挿入すると順序が決定論的にならない → スレッドごとにハッシュテーブルを作って、全てのハッシュテーブルに対して挿入したい値の存在のチェックをする #kernelvm"
Fadisさんのツイート: "lldとgoldのコードの複雑さをコードの長さで比較しようにも、goldがアーキテクチャ毎にコピペプログラミングをしていてコード量が爆発していてあまり良い指標にならない、と #kernelvm"
Fadisさんのツイート: "clangがきっかけとなってC++のエラーメッセージは随分読みやすくなった → リンカのエラーメッセージも読みやすくしよう、ということでlldはDWARFの情報を呼んで人間に優しいエラーメッセージを出している #kernelvm"
Fadisさんのツイート: "いかに短いC++のコードから膨大なエラーを出すかを競うコンテスト https://t.co/6EbOnBTHaY #kernelvm"
Fadisさんのツイート: "lldにおけるLTOでは、lld自体に複雑な最適化は実装せず、リンクが完了したネイティブバイナリの代わりにLLVM IRを吐き出し、LLVMの最適化機能に最適化を丸投げする #kernelvm"
Fadisさんのツイート: "lldの実装綺麗だなぁ"
Fadisさんのツイート: "lldはホスト依存の暗黙のパラメータを持たない(リンカを呼ぶコンパイラはどうせ必要な情報を全て渡してくるのでリンカ自体はどこで動かしても同じ動きをするように実装する) #kernelvm"
Fadisさんのツイート: "質問者「BSDがGPL3を避けてlldを試みているということはMacもそうなのか」 → 「MacはMach-Oを吐くために独自のリンカを使っているためlldを必要とはしていない」 #kernelvm"
Fadisさんのツイート: "make -jしたビルドが最後のリンクで詰まってマルチコアで性能が伸び悩むの、極めて手軽にアムダール則を体感するヤツだ"
Fadisさんのツイート: "C++、シンボル名が超長いから「シンボルを解決するための文字列比較にやたら時間がかかる」事を想定していないリンカでリンクすると、リンク時間もエグくなりがち"
FadisさんはTwitterを使っています 「linuxカーネルは攻撃者が狙った関数に飛びにくいように関数にASLRが出来るが、カーネルの.textは1つしかないためセクション単位で位置が変わってもアドレスがバレやすい。そこで関数毎にセクションを分けてカーネルのASLRの効果を高めようという提案がなされているらしい https://t.co/RYaxOpE4T8」 / Twitter
FadisさんはTwitterを使っています 「C++、カジュアルに型で計算する言語なので、型のテンプレート引数に膨大な情報が載りがちで、それをマングルすると 長さが100kBを超えるシンボル名 が生み出されて、それを文字列比較するリンクがビルド時間全体の1/3に達したり、デバッグ情報が4GBを超えてRPMに入らなくなったりしがち」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "#ifdef 等によって、機能差を持つバリエーションを作るのではなく、ビルド後のバイナリ内にパッチを当てることで、バリエーションを作るテスト。 (一部ユーザ向けに、slack転送を無効化したIPMsgを用意する)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "有効化するかの条件分岐にnopを入れるという話ではなくて、volatile int64 flag=シグネチャ値; if (flag) というコードを書いた後、バイナリからシグネチャ値を見つけて0にする、という感じ。 (万一偶数のバッティング時はシグネチャ値を変更)"
鯉江さんのツイート: "config.cのようなものにflagをあつめてリンク時につけかえるのではだめ? volatileとなっているところをみるとオプティマイザが頑張ってif(flag)を消してしまう可能性がある?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "volatileを入れているのは、最適化オプションで「プログラム全体の最適化」「リンク時にコード生成」という機能があって、それらを有効にしているとプログラムを1ソースで書いたのに近い最適化が施されるはずなので、その対策です。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、flagはグローバル変数として定義して、複数ソースから参照しています。 (その前提を書いていないと前説明が意味不明だったかも)… "
The SQLite Amalgamation
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、sqliteは、ビルド用にソース群を一つの.cに変換して、強力な最適化を促すという「Amalgamation」というテクニックを使っていて驚いた記憶。 https://t.co/kg6HB6pz3n… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ごく一部で欲しい組織があるかもしれないので、Slack等への外部転送無効化バージョンを追加しておいた。 https://t.co/wDjue1IdtK"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、ベース版バイナリにパッチを当てる形で作成。 そのため、pdbやcodファイルは、ベース版のみ保持すればよい形に。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「昔は動的リンクで.soを交換すればlibのバグは修正可能。しかし現在はsymbolがversioningされ特定のlibのバイナリに依存」 昔は、DLLがupdateされて既存アプリが動かなくなる=DLL地獄、と言われていた。上記対応(WinだとSxS)で、DLL地獄が解消されたが、同時にDLL更新メリットも消滅した形。… https://t.co/SCKOMkizWI"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、SxS導入以降は IPMsg/FastCopyは共に静的リンクでリリースしていたりする。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IPMsg/FastCopyは、GUI関係のライブラリ(MFCやQtなど)って、使ってないんですよね。(GDI APIを直接呼んでいます) 静的リンクしているのはC/C++の標準ラインタイムだけですね。… "
SODA Noriyukiさんのツイート: "なるほど、それなら納得です。 Plan 9の場合は gdi32.dll とか user32.dll 相当のものまで静的リンクしてしまい、異なるバイナリで共有して利用されるのはカーネル部分だけってことになるので、さらに大胆な話だと言えると思います。(まあ太古のUNIXはみんなそうだったんですが)… https://t.co/62NThqcbgv"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 ちなみにIPMsg/FastCopyが静的リンク化したのは、VistaのSxSが導入 + VS2005以降crt系バージョン確認が厳格になり、ビルド時と完全同一crtがユーザ環境にも必須になったため、というのが大きかったです。 (この制限はVS2010以降は緩和されましたが)… https://t.co/pG4I7EOB9g"
きしもとさんのツイート: "「バージョンを選択する方法」次第のように思うのですが。バージョン番号 x.y.z の、z については大は小を兼ねる、といったようにして、「特定のlibのバイナリに依存」はしないようにするのが普通とか… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにそうですね。 あと、WinSxSだと、Vista時代にWinUpdate程度のcrtのわずかなバージョン違いでもDLLロード拒否を食らった覚えがあるので、OSによる許容ポリシーの違いがあるかもしれません。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "正確に思い出すと、開発環境VistaをWinUpdateすると、利用者側VistaもWinUpdateしないと、DLL版が動作しなくなる、という話だったと思う。 (もしくは Update版の頒布用crtを別途インストールしてもらうか)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「VC++ で .lib を指定した時に使っていない .o が取り込まれる不思議。 しかもリンク時最適化を有効にしているのだが。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「通常の静的リンクだと、使っている関数を含む .o だけ取り込まれるはず。 さらにリンク時最適化有効だと、.oの中で利用関数と変数以外は削除、と理解しているのだが。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「むむ、関数単位の依存関係は無かったが、.o単位だと隠れた依存関係があった。 プログラム全体最適化を有効にしている場合は、関数単位の依存関係で見て欲しかった。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自分用メモ。 こういう参照関係のときにも、(呼ばれない)mod1_f2() とそれが参照している、mod2/mod3 がリンクされてしまう、という話。 mod1_f1 と mod1_f2 を別ファイルとし、mod1_static をどちらかに寄せて、もう片方は extern参照すれば解決(ただしmod間参照なのでstaticは外す必要) https://t.co/yIYhi6eIZR」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「大昔、同じoだがaだかを二度指定するしか無かった時に、負けた感があった、、、」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@shirouzu あるある。ライブラリ間で循環参照的なのがあったりすると必要になるんですよねえ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「暗記するのは確かに無駄なんだけど、リンカーがどうやってライブラリに含まれるオブジェクトファイルを拾っていくかを想像すると、暗記するまでもなく(昔のヘボい計算機リソースで簡単にできる実装としては)当たり前の動作って感じになります。」 / Twitter
𝒯𝒶𝓉𝓈𝓊ℴ 𝒮ℯ𝓀𝒾𝓃ℯさんはTwitterを使っています: 「確かにちょっとはまった記憶があって、とりあえず 「CFLAGS と LDFLAGS はちゃんと分けて書かないと駄目」ぐらいに覚えてた。 また一つムダ知識が(でも多分、すぐ忘れるw)」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「おお、gccのオプションって順番に意味があったのか・・・。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「gcc "CFLAGS" source "LDFLAGS" output みたいになっているようだ。-lcapをCFLAGSに入れたら無視された。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@mhiramat これはgccというよりはベル研時代からの cc ドライバや ld の仕様ですね。cc に渡した順番で (.c が .o に変換されて) 引数が ld に渡り、ld は引数を先頭から解釈していき、ライブラリの中からリンクするオブジェクトを選択するのは、そのライブラリ引数出現時点で、未解決のシンボルのみなので…」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@mhiramat というわけでライブラリを先頭に書くと、その時点では未解決シンボルが存在しないので、そのライブラリ中のオブジェクトファイルは決して選択されないというハメに」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@n_soda これは酷い仕様ですね・・・。必要のない後方互換性は残すことないのに・・・。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@mhiramat これは UNIX のリンカーに特有ってわけじゃなくて、伝統的なリンカーはだいたいこういう動作だったと思います。CP/M の L80 とか、MS-DOS の link.exe もこうだったような。」 / Twitter
fjのYog教祖様さんはTwitterを使っています: 「@mhiramat @n_soda いや、そうしないと「未解決なシンボル」が無くなるのが「全部のライブラリをリンクした時」(不要なライブラリが無くなってしまう、と言う意味)になる。」 / Twitter
SODA NoriyukiさんはTwitterを使っています: 「@fjs_kyousosama @mhiramat 現代なら計算機が強力なので、未解決シンボルが残ってたら引数を再度頭から舐めるっていう動作にすることは可能は可能だと思います。 とはいえ超大規模プログラムだと、現代でもリンクにかかる時間が馬鹿にならないらしい(だからこそ @rui314 さんのリンカーが生まれた)ので、やっぱダメかも?」 / Twitter

@k_takata

K.Takataさんのツイート: "VCはずいぶん昔から、使っていない関数をリンク時に除外してファイルサイズを小さくする機能があるが、gccには無いのだろうかと思っていたら、あったようだ。 https://t.co/fYP9rIR2bn コンパイル時に -fdata-sections -ffunction-sections を指定し、リンク時に -Wl,--gc-sections を指定する。"
How to remove unused C/C++ symbols with GCC and ld? - Stack Overflow
K.Takataさんのツイート: "ただ、MinGWでは使えないという話もあって調べてみると、--gc-sectionsがPE形式で使えるようになったのはbinutils 2.25かららしい。 https://t.co/8Imo5XHSvm さらにコンパイル時に -fno-asynchronous-unwind-tables も指定する必要があるらしい。"
11539 – ld --gc-sections should work for PE-COFF on MinGW
K.Takataさんのツイート: "で、wxGoをビルドするのに -ffunction-sections を指定してサイズを小さくできないか試してみたところ、too many sections (70137) というエラーになってしまった。従来のCOFF形式オブジェクトファイルだとセクション数は16bitで管理しており、それを超えてしまったらしい。"
K.Takataさんのツイート: "コンパイル時に -Wa,-mbig-obj を指定すると、big-obj形式 https://t.co/5GwXmQGy2x が使われて、セクション数の制限が事実上無くなるらしいのだが、cgoがbig-obj形式をサポートしておらず、エラーになってしまった。 cannot parse gcc output $WORK\b001\\_cgo_.o as ELF, Mach-O, PE object"

@kazuho

Kazuho Okuさんのツイート: "実際にコンパイルさせてみて成功したらオッケーっていうダックタイピング万歳なautoconfなんやから、リンカの引数も全部試してみたらええねん :-p"
Kazuho Okuさんのツイート: "コンパイラ間の競争が激しくなって __builtin_feature みたいなフィーチャーディテクション機能も導入されたし、リンカもはやくそうなってほしい感ある"
Kazuho Okuさんのツイート: "「シンボル名のハッシュ値計算するのめんどくさいからシンボル名全部sha1とかしときたい」www #spkai"
Kazuho Okuさんのツイート: "未使用の関数やグローバル変数はリンク時になかったことにできると思ってたけど、 ``` void (*foo)(void) = myfunc; ``` みたいなコードがある場合はmyfuncを落とすのが特に難しくなったりするのかなぁ(fooをmyfuncに初期化するためのコードが生成され、それがmyfuncを参照しちゃう的な)"

@liva_jy

Livaさんのツイート: "セクションの開始位置はアラインメントしよう、という知見を得た。 #liva_notebook"
Livaさんのツイート: "きちんとアラインされてない場合、リンク時に上手い具合にずらしてしまう事があって、下手なリンカスクリプトを書いていると、リンカが解決した関数のアドレスと、実際にロードされたアドレスがずれてしまう #liva_notebook"

hikaliumさんのツイート: "なるほど!LLVMで挙動を見てみたところ、翻訳時に既知でないラベル(後方のラベル参照等)は未解決のまま残されるのね。(つまり常にrel32として場所はとられる。) で、リンカがあとでそれを埋めてくれると。なんとまあ。 (まだまだ勉強が足りないというお気持ちになった。こういう発見が楽しい。)… https://t.co/u1OU8WNMCS"
Rockridgeさんのツイート: "Fx63:clang-clを用いたWindows版のビルドにおいてThinLTOとPGOが有効化。64bit版のSpeedometerスコアがMSVC比で6%アップした。参照:https://t.co/ipbr5LRbF0 … https://t.co/euttRNA8Ez"
10/27,28はOSC Tokyoさんのツイート: "僕のLDが壊れている.undefinedなシンボル(operator new)に対してエラーにならない.自分で宣言した関数の場合はエラーになるのに."
Nerry@さんのツイート: "gnu-efi使ってた時ldが未解決シンボルでエラーにならない挙動すごく困った… "
10/27,28はOSC Tokyoさんのツイート: "同じく悩んでる人がいるとは!… "
しんやさん@檸檬堂友の会さんはTwitterを使っています: 「C言語にてテスト時に便利な技術 これができればテストマスターだ! インターポジショニング →既存関数を自由に置き換える Weakシンボル →テスト時のみに関数をリンクさせたい時 objcopy →シンボルを置き換える、最強」 / Twitter
インターポジショニング - Google 検索
weakシンボル - Google 検索
DrumatoさんはTwitterを使っています 「もし読み込んだセクションのオフセット+サイズがセクションのオフセットになっていないとき, 間にパディングがあると考えてセクションヘッダを挿入する,みたいな実装で対応しようと思う」 / Twitter
DrumatoさんはTwitterを使っています 「gccの吐くバイナリ,どこのセクションにも所属していないパディングが沢山存在するのだけれど, これ普通にそういう意図のセクションを作って欲しい. これ凄い困るなあ,どうしよう.」 / Twitter

c - different type variables with same identifier linked together - Stack Overflow
Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:リンカが行うことのまとめ: ・与えられたファイルをすべて読む ・シンボルを解決 ・リロケーションテーブルを読んでPLTやGOTを作る ・出力のレイアウトを決める ・ #kernelvm #kernelvm_tw」 / Twitter
プロセス、実行形式、リンク
A method of machine code translation to intermediate representation | IEEE Conference Publication | IEEE Xplore
リストとマップファイルの生成
クロス・リファレンス情報 | CS+ V4.01.00
マップ情報を出力する | CS+ V8.02.00

API Call & Debugger

Debug

その他

インライン値ビュー - 公式ヘルプ | CLion
IBM Knowledge Center - マルチスレッド・プログラム・デバッガーの開発
LLVM Project、次世代デバッガ「LLDB」を開発へ | OSDN Magazine
c - reference to external function in disassembly code - Stack Overflow
デバッグ - Security Akademeia
USDT probe - Google 検索
プログラマーの大敵“デバッグ”、AIで自動化へ向けてIntelが研究中 〜Intel、開発部門での研究成果発表イベント「Intel Labs Day 2020」 - PC Watch
QEMUのトレース機能でOSのデバッグを支援する - uchan note
FreeBSDのオンラインカーネルデバッグ with QEMU - うたもく
VirtualBoxのビルトインデバッガを使いたい | mrtska.net
Xamarin.Forms 5.0: デバッグ機能の改善、新機能、新しいコントロール
Program Paper-Slide-Show
blog/jit-debug.md at master · herumi/blog
Chrome DevTools 89の新機能
Angular公式のデバッグツール「Angular DevTools」、Googleが公開。有志による日本語ガイドも - Publickey
「Angular」公式の開発支援拡張「Angular DevTools」が公開 ~有志による日本語ガイドも - 窓の杜

MS

その他

GFlags - Windows 10 hardware dev
ページヒープ (PageHeap) によるヒープオーバーランの検出 - Web/DB プログラミング徹底解説
PageHeap ユーザー ガイド
ダンプファイルに保存されたイベントログを取り出す – Japan WDK Support Blog
プロセスデバッガを作ってみる (1/2):CodeZine(コードジン)
スタックの取得(ネィテブデバッガを作る2) – code-lab.net
Win32デバッグ(11)・・・番外編: vanillaの日記
Windows Vista で local kernel debug を行う - NyaRuRuが地球にいたころ
Detecting debuggers by abusing a bad assumption within Windows
CRT デバッグ拡張機能 ~ トレース機能 - Web/DB プログラミング徹底解説
CRT ライブラリを使用したメモリのリークを検出 - Visual Studio | Microsoft Docs
Visual Studio 2017 15.9プレビューではC++デバッグ機能が拡張された
IDA Support: Freeware Version
OllyDbg Q&A (Digital Travesia)
Project Zero: Windows Exploitation Tricks: Abusing the User-Mode Debugger
プログラムの実行内容を記録して再現する「タイムトラベルデバッグ」(Time Travel Debugging)機能、マイクロソフトがVisual Studioにプレビューで提供開始 - Publickey
Debug live ASP.NET Azure apps - Visual Studio | Microsoft Docs
ぬるぽへさんはTwitterを使っています 「考えたことがなかったけど配布にあたって確かにトレーサーは大事だなぁとなったうえで、それを突き詰めてMSがユーザーのダンプからバグ発生時まで巻き戻せるTTDを開発してたのを思い出した REPT: Reverse Debugging of Failures in Deployed Software | USENIX https://t.co/56FXkjdfdC」 / Twitter
REPT: Reverse Debugging of Failures in Deployed Software | USENIX
ぬるぽへさんはTwitterを使っています 「ちなみにこちらの手法は特許がとられており我々は使用することができません・・・」 / Twitter
ぬるぽへさんはTwitterを使っています 「@kazuho この手法はオーバーヘッドがかなり少ないのと、おそらく唯一のマルチスレッドプログラムにも適用できる手法なんですよね シングルスレッドでもいいならMozillaのrrが有名ですね」 / Twitter
NMIスイッチでWindowsのシステム・ダンプを取得 - KMCA
EnC Part 3 – The CLR – Shotgun Debugging
c++ - How does "Edit and continue" work in Visual Studio? - Stack Overflow

backtrace

C++ Windowsでスタックバックトレース | puarts.com
windows - Win32 - Backtrace from C code - Stack Overflow

CodeView

yasm/modules/dbgfmts/codeview at master · yasm/yasm
get function by filename and line number - primitive: blog
5.4 COFFシンボル テーブル
6.1.2 デバッグ タイプ
6.1.6 Microsoft CodeView(r)デバッグ情報のためのリンカ サポート
デバッガ
デバッガ:デバッグ情報

PDB

The PDB File Format

The PDB File Format — LLVM 6 documentation
Microsoft/microsoft-pdb: Information from Microsoft about the PDB format. We'll try to keep this up to date. Just trying to help the CLANG/LLVM community get onto Windows.
The MSF File Format — LLVM 6 documentation
The PDB Info Stream (aka the PDB Stream) — LLVM 6 documentation
UuidCreate function (Windows)
IMAGE_DEBUG_DIRECTORY structure (Windows)
The PDB TPI Stream — LLVM 6 documentation
The PDB DBI (Debug Info) Stream — LLVM 6 documentation
CV_CPU_TYPE_e

== Microsoft PE/COFF Specification ==

Standard ECMA-335
The Module Information Stream — LLVM 6 documentation
The PDB Public Symbol Stream — LLVM 6 documentation
The PDB Global Symbol Stream — LLVM 6 documentation
The TPI & IPI Hash Streams — LLVM 6 documentation
CodeView Symbol Records — LLVM 6 documentation
CodeView Type Records — LLVM 6 documentation
CodeView.pdf

YAML

第1回 YAMLライブラリのしくみ:言語別 YAML用ライブラリ徹底解説|gihyo.jp … 技術評論社
YAMLとは何か? - いつもRailsの設定ファイルで出てくるやつの正体 - Qiita
YAML - Wikipedia
C++ から YAMLファイルを読み込む « Stop Making Sense
Rubyist Magazine - プログラマーのための YAML 入門 (初級編)
Kazuho OkuさんはTwitterを使っています: "YAML でファイルincludeするなら、 <<: !include foo.yaml みたいな形が一番自然なのかな"
Kazuho OkuさんはTwitterを使っています: "“Includable YAML - r7kamura per second” https://t.co/LNy0XJ9flP"
RAML (software) - Wikipedia
h2o/yoml: YAML Object Model Layer - a DOM-like interface for YAML
YAML で静的データ管理
YAMLの概要 | backport
Java開発者のためのYAML入門:XMLやJSONとの違い (1/3):CodeZine(コードジン)
YAMLのエイリアスでAnsibleファイルの重複を減らす | Developers.IO
YAMLに対応したAWS CloudFormation デザイナーを試してみた | Developers.IO
PyYAMLが非常に遅かった - ゲームエンジニアな日々
じゅげむさんはTwitterを使っています: 「YAML1.2からはYAMLはJSONの完全なスーパーセットになったと んで1.1と1.2でfloatの正規表現が異なる‥ https://t.co/EOKlHJTI12」 / Twitter
quoting strings composed of digits · Issue #98 · yaml/pyyaml

DIA SDK

Debug Interface Access SDK
はじめに (Debug Interface Access SDK)
関数 (Debug Interface Access SDK)
Debug Interface Access SDKを使って内部関数の名前解決を行う - るくすの日記 ~ Out_Of_Range ~
[Win32] [COM] How to read PDB Symbol file using DIA SDK | すなのかたまり

llvm-pdbutil - PDB File forensics and diagnostics — LLVM 6 documentation
本の虫: MicrosoftがPDBフォーマットの構造体定義のソースコードを公開
本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
LLVM Project Blog: LLVM on Windows now supports PDB Debug Info
LLVMがPDBフォーマットのドキュメント化とYAMLへの変換を実現
シンボル ファイルの作成と取得 | デバッグ テクニック
ペンギンさんのツイート: "PDBファイルを不要と言い張って作らないことを勧める人がいるとはたまげたなぁ・・・。 Visual StudioユーザーがReleaseビルドをするときに必ずやってほしい2つの設定 by @lainzero on @Qiita https://t.co/Nrm7wWVsOU"
ペンギンさんのツイート: "PDBファイルがない場合、万が一問題が起きた際に逆アセンブルしながらデバッグする羽目になるので、リリースビルドでも作成して手元には残しておくべき。作らない方向ではなく、PDBファイルに含まれる内容、そのリスクを踏まえてどう取り扱うべきなのかまとめてあると良さそう。"
ペンギンさんのツイート: "PDBファイルはビルド時に生成されるGUIDがEXEのDebug DirectoriesテーブルとPDBファイルに埋め込まれて一致しない場合VSやWinDbgで読めないので、後でビルドしなおせばよいというものでもないのが面倒。"
ペンギンさんのツイート: "リリースビルドでPDBは要らないという人は、作って捨てるアプリケーションしか開発したことがないと言ってるようなもの、というのは言い過ぎか・・・。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPプロセスにロードされた自作Win32DLL。 VC++でUWPプロセスへのアタッチはできるが、DLL用pdbが違うと言われてシンボルが取り込めない謎…何だろう?"
Understanding symbol files and Visual Studio’s symbol settings | Azure DevOps Blog

WinDbg

ライブデバッグ

ライブデバッグ - Security Akademeia
WinDBGを使ってnotepad.exeをデバッグする – PAYFORWARD
Windbg – Japan WDK Support Blog
wt : WinDbg のライブデバッグ時のトレースに使えるコマンド

Time Travel Debugging FAQ – Debugging Tools for Windows
User-mode memusage - NyaRuRuが地球にいたころ
Time Travel Debugging recording question – Debugging Tools for Windows
Text highlighting in WinDbg Preview – Debugging Tools for Windows
Time Travel Debugging queries – Debugging Tools for Windows
WinDBG. From A to Z!
WinDbg でスタックトレースを得るには | MDN
WinDbg Preview 1.1804.18003.0 Release Notes – Debugging Tools for Windows
ITプロ(非開発者)向けWindowsカーネルデバッグ事始め (1/2):山市良のうぃんどうず日記(125) - @IT
WinDbg Preview 1.1805.17002.0 Release Notes – Debugging Tools for Windows
TTD (Time Travel Debugging) を用いてアプリケーションクラッシュの原因を調査
WinDbg Preview 1.0.1807.11002 Release Notes – Debugging Tools for Windows
Time Travel Debugging (Preview) の Lab – Japan WDK Support Blog
WinDbg Preview 1.0.1810.2001 Release Notes – Debugging Tools for Windows
WinDbg Preview 1.0.1812.12001 and new extensibility interfaces – Debugging Tools for Windows
New C++ library for extending the debugger data model – Debugging Tools for Windows
Makoto Kato ︎︎さんのツイート: "ふとEdgeのgithubを覗いたら、WinDBGでv8をデバッグするためのWinDBG Extensionが存在してて笑った https://t.co/LUlVxfkHOt"
MicrosoftEdge/JsDbg: Debugging extensions for Microsoft Edge and other Chromium-based browsers
Makoto Kato ︎︎さんのツイート: "IE6やってるときにdumpファイルからHTMLツリーを生成するWinDBG拡張作ったりいろいろやったなぁ。辞める時に全部削除したけど (オレオレツールだったので)"
Best places to learn more about WinDbg – Debugging Tools for Windows

x64dbg

x64dbg
x64dbg/x64dbg: An open-source x64/x32 debugger for windows.
x64dbg
x64dbg.pdf
Reverse Engineering Tips: An Introduction To x64dbg
klks/checksec: x64dbg plugin to check security settings
X64dbg Code search :: Add-ons for Firefox
セキュリティエンジニア向けツール(Windows編) - Qiita
x64dbg:デバッガの例
オープンソースのデバッガー x64_dbg を用いて、ソースコードを編集することなく、アプリにパッチを適用

MASM

C++ デバッグ構成のプロジェクト設定
/Z7、/Zi、/ZI (デバッグ情報の形式)
/DEBUG (デバッグ情報の生成)

SYMBOL_INFO structure (Windows)
IMAGEHLP_SYMBOL64 structure (Windows)
ICallFrame interface (COM)
Kleckner-CodeViewInLLVM.pdf
MSVC compatibility — Clang 6 documentation
Windows support — lld 5 documentation
Windows support — lld 6 documentation
KMC Staff Blog:LLVM/Clang 3.7.1をMSYS2でビルド
New Extensions and Samples GitHub Repo – Debugging Tools for Windows

バイナリエディタ

binary.ninja : a reverse engineering platform
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
wxMEdit - クロスプラットフォームのテキスト/Hex エディタ
hltj/wxMEdit: wxMEdit, a cross-platform Text/Hex Editor, an improved version of MadEdit
Stirlingの詳細情報 : Vector ソフトを探す!
Veles - Binary Analysis Tool - CodiSec CodiSec
codilime/veles: Binary data analysis and visualization tool

DWARF

DWARF

DWARF 3.0 Standard
DWARF 4 Standard
DWARF 5 Standard
Download DWARF Standards
DWARF Git Repositories - dwarf-doc.git/summary
DWARF Extensions
DwarfExtensions - elfutils
yasm/modules/dbgfmts/dwarf2 at master · yasm/yasm
デバッグ用フォーマット、DWARF と STAB
DWARF - OSDev Wiki
LLVM: include/llvm/BinaryFormat/Dwarf.h Source File
DWARF debugging formatを利用する - Qiita
PE勉強会#3参加メモ - やる気のないはてだ(A boring diary)
PE勉強会ネタ帳 - 七誌の開発Wiki
objdump (GNU Binary Utilities)
objcopy (GNU Binary Utilities)

WebAssembly

WebAssembly向けのデバッガを開発しました - kateinoigakukunのブログ
DWARF for WebAssembly

GAS 疑似命令

CFI

Using as: CFI directives
CFI with Abbrevs - Dwarf Wiki
ImperialViolet - CFI directives in assembly files
CFI support for GNU assembler (GAS)
Andreas Krebbel - [PATCH] Add .cfi_val_offset GAS command.
assembly - GAS: Объяснение .cfi_def_cfa_offset - Qaru
[PATCH] Unwinding CFI for x86_64 signal frame (__restore_rt)
F/OSS study : [DWARF] Call Frame Information
Anitha Boyapati - Testing Call frame information in .debug_frame section
Anitha Boyapati - Re: Testing Call frame information in .debug_frame section
CFI - Call Frame Information
[Resolved] CCS: Object file contains invalid call frame information at .debug_frame - Code Composer Forum - Code Composer Studio - TI E2E Community
CFI - Call Frame Information | AcronymFinder
How can I disable CFI directives on gas assembler output - Programming - Linux Tips
[llvm] r211272 - Emit DWARF3 call frame information when DWARF3+ debug info is requested
[llvm-dev] [cfe-dev] Call frame information query
Vineet Gupta - .debug_frame not generated by ARC gas
linux-2.6.33/CFI_ADJUST_CFA_OFFSET() - コグノスケ
Using as: Gnu Assembler(GAS) Directives CFI - godjesse - 博客园
Debugging with GDB: 21.3.13 CRIS
0xfee1dead

gccのアセンブル出力を解析する時は-gオプションが便利
定数を返すだけの関数のアセンブリコード – ゴミ箱
Using as
Loc_mark_labels - Using as
Loc - Using as
Section - Using as
CFI directives - Using as
.debug_frameセクションの構造:DW_CFA命令編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
Byte - Using as
File - Using as
Global - Using as
Ident - Using as
Long - Using as
Size - Using as
Sleb128 - Using as
String - Using as
Text - Using as
Type - Using as
Uleb128 - Using as

Stack frame layout

GNU Compiler Collection (GCC) Internals: Frame Layout
Frame Layout - GNU Compiler Collection (GCC) Internals
Stack frame layout on x86-64 - Eli Bendersky's website
Stack layout

unwind

gcc _Unwind_Backtrace()の謎
LLVMと俺俺ランタイムで例外を実装する(その1) - yutopp's blog
Exception Frames
x86: undwarf unwinder [LWN.net]
Mark J. Wielaard » Blog Archive » Stack unwinding
libunwind LLVM Unwinder — libunwind 7.0 documentation
⚙ D38819 [libunwind] Add support for dwarf unwinding on windows on x86_64
⚙ D38900 libunwind: document tested FreeBSD configs and sort OS list

backtrace

[Linux][C/C++] backtrace取得方法まとめ - Qiita
c++ - gcc C ++アプリケーションがクラッシュしたときにスタックトレースを生成する方法crash | CODE Q&A [日本語]
C++で実行時エラーを追跡と特定します - Qiita
C言語でバックトレース(スタックトレース) - Tomorrow is always fresh with no mistake in it.@備忘録 - アットウィキ
Google Japan Blog: C++ のプログラムのデバッグを楽にする方法
実行中でのコールスタックの取得と表示 - 千里霧中
普通のやつらの下を行け: C でバックトレース表示 - bkブログ

ELF

llvm-readobj - LLVM Object Reader — LLVM 6 documentation
melancholic afternoon
リンカーオプションの指定 - Oracle® Solaris 11.3 リンカーとライブラリガイド
特殊セクション - リンカーとライブラリ
Manpage of ELF
gcc
昔の最近の出来事(2016.02)
ヒープオーバーフローによるGOT overwriteをやってみる - ももいろテクノロジー

__user

Linux システム・コールを使用したカーネル・コマンド
copy_from_user - Linuxの備忘録とか・・・(目次へ)
sparse - 組み込み Linux 開発の手引き - アットウィキ
c - What are the implications of the linux __user macro? - Stack Overflow
__userってなんぞ? - syuu1228's blog
KMC Staff Blog:GCC の名前付きアドレス空間サポート
まさみさんは語りたいさんのツイート: "実は意外とData SegmentとCode SegmentとそれぞれのKernel/User Segmentがあるっていうことを知らない人が多いのでは。"
まさみさんは語りたいさんのツイート: "あと__user ってruntimeでは無意味なんだけど、これも知られていない気がする。実行時に渡されるアドレス情報には__userかどうかが無いので、実行時の値ではなく、コンテキストでしか判断できない。これはデバッグ情報の属性値にも付いていないはず。"
まさみさんは語りたいさんのツイート: "DWARF6とかで追加しないかなー。DW_AT_USER_DATAとか・・・。"
まさみさんは語りたいさんのツイート: "64bitの世の中ではsegmentなんて失われた技術だよねー、みたいに言ってはいけない。あるんだ、まだ。"
まさみさんは語りたいさんのツイート: "KERNEL_DS/USER_DSの話、x86-64でもarm/arm64でも問題にならなさそうなんだけど、そうするといつまでもバギーなコードが治らないっていうことか。"

普通のやつらの下を行け

普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す - bkブログ
普通のやつらの下を行け: objcopy で実行ファイルにデータを埋め込む - bkブログ
普通のやつらの下を行け: BFDでデバッグ情報の取得 - bkブログ
普通のやつらの下を行け: Cで動的コード生成・実行 - bkブログ
普通のやつらの下を行け: assert_caller() - bkブログ

KMC Staff Blog

KMC Staff Blog:DWARF
KMC Staff Blog:DWARF 一年生
KMC Staff Blog:DWARF と有限状態機械
KMC Staff Blog:DWARF と有限状態機械 (2)
KMC Staff Blog:DWARF と有限状態機械 (3)
KMC Staff Blog:DWARF 3 の対応言語
KMC Staff Blog:GCC でコンパイルした時のオプションをバイナリファイルから取得する

DSAS開発者の部屋

DSAS開発者の部屋:オープンソースを楽しむエンジニアの二日目 - ftraceコマンドを書く
DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり ~ ftrace で引数を表示する
DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり ~ デバッグ情報を得る

LLVM

LLVM Project Blog: LLDB is Coming to Windows
Source Level Debugging with LLVM — LLVM 6 documentation
Clang Compiler User’s Manual — Clang 6 documentation
llvm-dwarfdump - dump and verify DWARF debug information — LLVM 6 documentation
Clang command line argument reference — Clang 6 documentation

PDF

_pdf
cbc-gcc.pdf
Debugging using DWARF

Stack Overflow

c++ - What do the CFI directives mean? (and some more questions) - Stack Overflow
debugging - Is there a simple DWARF CFI represenation for functions that set up a conventional frame pointer? - Stack Overflow
assembly - What are CFI directives in Gnu Assembler (GAS) used for? - Stack Overflow
assembly - What are CFI directives in Gnu Assembler (GAS) used for? - Stack Overflow
assembly - GAS: Explanation of .cfi_def_cfa_offset - Stack Overflow
stack - In assembly code, how .cfi directive works? - Stack Overflow
What is .cfi and .LFE in assembly code produced by GCC from c++ program? - Stack Overflow
assembly - Why GCC compiled C program needs .eh_frame section? - Stack Overflow
dwarf - Getting value of stack pointer while stack unwinding with dwarf2 - Stack Overflow
x86 64 - Breaking a stack/call frame information chain on ELF/Linux? - Stack Overflow

OSDN

DWARFファイルフォーマット - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
DWARFって何? - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_frameセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_frameセクションの構造:DW_CFA命令編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_frameセクションの構造:CIE編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_arangesセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
.debug_pubnames/.debug_pubtypesセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN

Wikipedia

DWARF - Wikipedia
DWARF - Wikipedia

Qiita

デバッグ情報の歩き方 - Qiita
[gcc][gdb]デバッグシンボルを別ファイルに分離してgdbで読み込ませる方法 - Qiita
DWARF情報とpyelftoolsを使ってバックトレースする - Qiita
backtrace with gdb-python-pyelftools

Twitter

Urabe, Shyouheiさんのツイート: "コードの任意の領域に属性を横からつけるの、たぶん理論上はdwarfでできるといえばできると思うが、ちょっとdwarfに手を出す気にはなれないんだよな…"
shinichiro hamajiさんはTwitterを使っています: 「DWARFから型情報拾ってきてC/C++(ひょっとしたら他の言語も)の変数をダンプするというやつ、ちょっと話題になってひさびさに動かしてみたらいくつかバグがあったので修正しておいた: https://t.co/sKFz1f02mH」 / Twitter
shinh/dumper: A variable dumper for C/C++
shinichiro hamajiさんはTwitterを使っています: 「メインはどっちも関数ポインタ関係で、DWARF4で導入された新しいフォーマットをハンドルしてなくてエラーメッセージ出てたので、あとPIE対応されてなかったのと。今なら libdwarf とか使わないだろうなあ……というのが感想だった」 / Twitter
Chrome DevToolsさんはTwitterを使っています: 「Initial DWARF support has landed in Chrome DevTools! It means that you can resolve stack traces, set breakpoints and step-in/-over source code in C/C++/Rust natively, without generating source maps. https://t.co/s3IwkJV6Tr」 / Twitter
Chrome DevToolsさんはTwitterを使っています: 「Bear in mind that this should "just work" with native compilers, but on the tooling side DWARF support is still in progress. For example, Emscripten (Binaryen) and wasm-bindgen don't support updating DWARF after transformations, so they won't benefit from this integration yet.」 / Twitter
k0kubunさんはTwitterを使っています 「objdump --dwarf=decodedline の出力をパースするだけの簡単なスクリプトを書くつもりが、これは相対パスを出してくる (DW_AT_comp_dir を使った絶対パスへの変換をやってくれない) ので単体では役に立たないことに気付いてしまった」 / Twitter
成瀬さんはTwitterを使っています 「@k0kubun https://t.co/774KyiAKyg とかですかね」 / Twitter
k0kubunさんはTwitterを使っています 「@nalsh このスクリプトは多分、ビルドディレクトリで実行される (少なくとも IO.foreach('https://t.co/GJB4czCRee') が動かないといけないし、decodedlineから出る相対パスと #line がマッチしないといけない) ことを仮定することで僕が言及した問題を解決してる感じじゃないですかねえ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ちなみに odjdump -l は 問1. addr2line等により得られる修飾されたスタックトレースが主張するコールサイト(呼出元)の行数は実際と異なるケースがある。それはどういう場合か? 問2. スタックトレースが主張するコールサイトが信頼できるか確認すればどうすれば良いか? という設問の話でした。」 / Twitter
_ko1さんはTwitterを使っています 「objdump -l 知らなかったなあ(-S 使っちゃう) そういえば、よく使う(でも、覚えられない、デフォルト変えてほしい)オプション --insn-width」 / Twitter
Kazuho OkuさんはTwitterを使っています 「皆さん解答してくれていいんですよ!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「少し具体的に。 if (cond) { f(a); } else { f(b); } return; というコードが関数f実行中にクラッシュし、バックトレースはf(a)の行から呼び出されたと主張する。が実際はf(b)からの呼出であった。なぜか?(呼出側のスタックフレームへの依存があるため)末尾呼出最適化は関係ない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「はい。正解は、最適化コンパイラは共通式をまとめることがあり、その場合f(a)とf(b)の呼出元は同じマシン語命令になる。DWARFをはじめとする実行ファイル形式は、命令のアドレスから行数への変換を行う(コマンド名がaddr2lineだったりするレベル)ので、このような同一命令が複数行に対応する場合...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「バックトレースの主張する行数は信頼できない。というのが問1の解答。 問2は、そのようなケースを追うには、DWARFのテーブルの可視化であるobjdump -lが便利、という話でした。 https://t.co/MS0X2LTgmL」 / Twitter
_ko1さんはTwitterを使っています 「関数呼び出しがまとめられちゃうのはよく見る気がする」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「@kazuho あー、なるほど。 DWARF のテーブルをそのまま見られていい、という文脈でしたか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「GCCのオプションしては-fgcseとか-ftree-tail-mergeとか。いずれも-O2で有効になります」 / Twitter
成瀬さんはTwitterを使っています 「Rubyにはバックトレース出すために独自実装のdwarf対応addr2lineがあるのだが、本当はもうちょっと再利用可能な形にしてテストとか欲しいんだよなぁ。通常1回起動するかしないからから高速化のために癒着してるところがあるせいでやりづらいのだが」 / Twitter

elfファイルのdebugセクション分割とgdbの分割されたデバッグ情報のサポート機能めも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
デバッグ情報を探る 〜.cfi_xx命令の動作〜 - ばびろん's すたっく
Split DWARFを用いてデバッグ時間やメモリを節約 - ホワイトペーパーから - ローグウェーブソフトウェアのブログ
第5章 デバッグ - Red Hat Customer Portal
GNUウイーク - gccのC++化 / gdb7.5 - .mjtの日記復帰計画
k0kubun/dwarftree: A wrapper of objdump --dwarf=info to visualize an object's structure and show code size
はじめてのにき(2020-11-28)

GDB

rr

Kazuho OkuさんはTwitterを使っています 「むしろ時代はgdbでrrとかじゃないのかしら https://t.co/pLLc8yPIP9 https://t.co/i6LiheKfln」 / Twitter
rr: lightweight recording & deterministic debugging
SODA NoriyukiさんはTwitterを使っています 「@kazuho 再現率が低い奴、本番環境で条件に合致した場合にsyslogとかに詳しいログを出すっていう意味でのprintfデバッグなので、gdb仕掛けておくのはちょっと怖くてできません…^^;」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda あーすみません単にgdbでしか使えないナウい機能があるよという意味でした」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho いえいえ、record機能、はるか昔に新機能の紹介で見たもののずっと使わずじまいだったのでこれを機会に勉強します!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「トランスポートプロトコルスタック、バグ発現がタイミング依存だからデバッガで停止できないし、ステートリプレイでデバッグできるの神!!!! と思ってるけどまだ使ったことないんですよね」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「面白そう…昔のjockeyの最新版みたいな感じなのかしらん? https://t.co/80TZrdYakK https://t.co/Q23w78K5JJ」 / Twitter
Jockey で Linux のプログラムの実行を記録・再生する - bkブログ
SODA NoriyukiさんはTwitterを使っています 「僕はgdbも使ってるけどprintfデバッグでさえも使う老害なので世の趨勢の参考にはならないだろうなあ (再現率が低い奴はデバッガよりもprintfデバッグの方が楽なの…) https://t.co/bJz8gmQIPV」 / Twitter
Shinji KonoさんはTwitterを使っています 「LLVMのdebug用Buildが35GBあったり、Linux kernelが-gだと動かなかったりするのって、ソフトウェア工学的な敗北だと思うのだが もう誰もgdbでdebugなんかしてない 疑惑。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@shinji_kono ん?CONFIG_DEBUGINFO=yにしたらデバッグ情報は普通につくと思うのですが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「@mhiramat 最適化切るとkernelは動作しなくて、最適化ありだと、-g付けても、ほとんどの変数は見えないんです。なのでレジスタ見てキャストで表示する感じ。一部だけ最適化を切るのもだめ。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@shinji_kono ああ、確かに最適化切ると動かないっていう報告は見た気がしますね…。コンパイラの問題のような気も。」 / Twitter

PEDA

longld/peda: PEDA - Python Exploit Development Assistance for GDB
Linux_Interactive_Exploit_Development_with_GDB_and_PEDA_Slides.pdf
CTFのための gdb/gdb-peda 頻出コマンドのメモ - teriyaki note
gdb-peda インストール for Ubuntu - miyagawNote
gdb-peda 使い方 コマンド一覧 - miyagawNote
ステップ1: Pwn とは|Tech Book Zone Manatee
PwnやReversingに使えそうなデバッガ紹介 - Pwn De Ring

GDB/MI

Debugging with GDB: GDB/MI
CDT デバッガーとのインターフェース: 第 2 回 Eclipse の CDT と MI を使って gdb にアクセスする
5.3.6. GDB の代替ユーザーインターフェース - Red Hat Customer Portal
Debugging with GDB - GDBの要約
Debugging with GDB - gdb/miインターフェイス
Debugging with GDB: 25.4 TUI固有のコマンド
GDB/Machine Interface library / Wiki / Home
GDB’s MI is not a Debug Protocol – Kichwa Coders
autozimu/gdb_mi: A gdb Machine Interface (MI) output parser and session manager.

blog

実践しながら学ぶ Android USBガジェットの仕組み(2):KGDBを使って、Android組み込みボードをリモートデバッグしよう!【前編】~KGDBの仕組みを理解する~ (1/3) - MONOist(モノイスト)
gdbを使ってRuby(2.3.3)のライブプロセスの情報を取得する - CubicLouve
gdbで初期設定をAT&T記法からIntel記法に変更する方法 | サラリーマンがハッカーを真剣に目指す
GDBのコマンド出力をファイルに保存する方法 - 技術日誌
objdumpによる逆アセンブルとgdbの命令形式表示の比較 - 技術日誌
実践的低レベルプログラミング
GDBでデバッグするなら-g3オプション - ククログ(2013-05-08)
gdbでデバッグするためのgccのデバッグ情報のオプション - C言語入門
debuginfod(elfutils debuginfo サーバー)の概要 - 赤帽エンジニアブログ
JOS から学ぶ GDB デバッグ手法
gdbの使い方のメモ - ももいろテクノロジー
gcc+gdbによるプログラムのデバッグ 第2回 変数の監視、バックトレース、その他のコマンド
本の虫: GDBがeBPFのデバッグをサポートした
Linuxカーネルのテスト実行とデバッグ (2) :GDB編 - Fixstars Tech Blog /proc/cpuinfo
時折飛んでくる原因不明な#GPをgdbで原因究明した備忘録 – Raphine Project
GDBの使い方メモ – GitHub 出張所 – プログラム関係のブログはここに

OSDN

GDB/GDBserverによるクロスターゲットのリモートデバッグ | OSDN Magazine
リモートデバッガ/プロファイラを利用したデバッグ&性能解析 | OSDN Magazine
D言語にも対応、GNU Debugger 7.2リリース | OSDN Magazine
オープンソースのデバッガーGDB 7.4リリース、Pythonスクリプティング機能などで多くの改良が行われる | OSDN Magazine
Go言語サポートが新たに追加された「GDB 7.5」リリース | OSDN Magazine
新コマンド導入、Python強化などが特徴の「GDB 7.7」がリリース | OSDN Magazine
「GDB 7.8」がリリース、Guileスクリプティングをサポート | OSDN Magazine
「GDB 7.9」がリリース、PythonスクリプティングAPIの強化などが行われる | OSDN Magazine
「GDB 7.10」リリース | OSDN Magazine
「GDB 8.0」リリース | OSDN Magazine
米Microsoft、Visual Studioのデバッガ拡張「MIEngine」を公開 | OSDN Magazine

Qiita

はじめてのgdb - Qiita
gdbで効率的にデバッグするためのTips - Qiita
gdbのDynamic Printfを使う - Qiita

Twitter

Fadisさんのツイート: "ヒープ上で範囲外参照してSegmentation Faultするなんて可愛いモンだ。スタック上で範囲外参照して範囲外から有効っぽい値を拾ってよくわからないところに飛んでいったコードをデバッグするのと比べれば"
Fadisさんのツイート: "x86_64でこういうのをデバッグするとき、稀によくgdbの逆アセンブル機能に「このアドレスが始点だったと思って逆アセしてくれ」が欲しくなる(もうあったりするのかな)"
れっくすさんのツイート: "x/i https://t.co/VuUC5BacEP"
rayfillさんのツイート: "https://t.co/j9URafEPDk disassemble start,end でできるように読めるんだけど・・・ https://t.co/gZae5eIpAf"
Debugging with GDB: Machine Code
れっくすさんのツイート: "examineなんでn命令見れて普通に便利ですね。あとCTFでよく使われるpeda/pwndbgあたりを入れると特定のアドレスでdisasする命令が増えた気がします… "
Fadisさんのツイート: "テンプレート引数が極めて長い関数をgdbでdisasしたら、ジャンプする度にアドレスの横に出てくる関数名で画面が埋まって厳しい事になってる"
herumiさんのツイート: "disassemble/rm $rip,+128 ならバイト列込みで逆アセンブルしてくれます。@_ko1 というかVisual Studio便利なんだけどなあ。 「Linux プロジェクトのデプロイ、実行、デバッグ」 https://t.co/XSdT5BSoQb"
Visual Studio で C++ Linux プロジェクトを配置、実行、デバッグする | Microsoft Docs
_ko1さんのツイート: "うお、すごい、gdbserver につなげられるんだ!… "
Fadisさんのツイート: "gdbでデバッグ中の箇所でC言語のコードをコンパイルして実行するために使われているライブラリ化されたgcc libcc1がC++に対応した模様。デバッガから挿入するコードをC++で書けるように https://t.co/iHKqz7HOUO"
FadisさんはTwitterを使っています: 「gdb 8.4からデバッグシンボルのロードをマルチスレッドで行えるようになるらしい。デバッグシンボルを読まないとしばしば人類に厳しいデバッグを強いられるけど、巨大なアプリケーションのギガいデバッグシンボルは読むだけで時間がかかる問題がこれで緩和される https://t.co/9rowszXJld」 / Twitter
GDB Adds Multi-Threaded Symbol Loading For Faster Debugging Performance - Phoronix
FadisさんはTwitterを使っています: 「デバッグシンボルがギガくなる大抵の原因はC++のマングルするととてつもなく長くなる型名なんだけど…」 / Twitter
FadisさんはTwitterを使っています: 「マングルが直接的な原因ではないな。C++erはETでカジュアルに100キロバイトオーダーの型名を生み出してしまうのである」 / Twitter
FadisさんはTwitterを使っています: 「Rustのマングリングルールに一種の可逆圧縮みたいなルールが備わってて、こいつC++(Itanium ABI)で辛かった所にしっかり対策入れてるなってなった」 / Twitter
FadisさんはTwitterを使っています 「gdbがdebuginfodに対応したらしい。debuginfodはhttpでソースコードとデバッグ情報を配るデーモン。デバッガはローカルにソースとデバッグ情報が無くてもバイナリに埋め込まれた情報を元にリモートのdebuginfodからそれらを得る事で人類に優しいデバッグ環境を提供できる https://t.co/meD6YqbLlj」 / Twitter
GDB Debugger Adds Support For Debuginfod Web Server - Phoronix
uchanさんはTwitterを使っています 「GDBの条件付きブレークポイントの機能で,スタックポインタが16の倍数じゃないときにブレークする場合は condition &lt;bnum&gt; ((unsigned long)$rsp &amp; 0xf) != 0 とするといいみたい。」 / Twitter
uchanさんはTwitterを使っています 「ブレークポイントを作りつつ条件を設定するには break ... if &lt;cond&gt;」 / Twitter
Shiro Kawaiさんのツイート: "おお、最近のLinuxはデフォルトでデバッガがアタッチできるプロセスに制約があるのか。久々に刺さったプロセスに外からgdbをアタッチしようとして知った。 https://t.co/iiKXWwtfLP"
k0kubunさんはTwitterを使っています 「backtrace(3) がSEGVするような状況でもgdbは途中までbtを出せるのは何故なのか」 / Twitter
成瀬さんはTwitterを使っています 「@k0kubun どのアドレスを参照してよくて、どのアドレスを参照したら死ぬか知っているからですね。Linuxでも https://t.co/nUQFjeeakf を使えばそのへん制御できるかもしれませんが」 / Twitter
ruby/vm_dump.c at 229ba1215fa7c8181b9296dff22807fb17442c74 · ruby/ruby
k0kubunさんはTwitterを使っています 「@nalsh なるほど。見てるSEGVの再現率が絶望的に低いのでなかなか試せませんが、次簡単にヒットさせられる状態になったら試してみます」 / Twitter
FadisさんはTwitterを使っています 「Debianがdebuginfodのサーバを立てたらしい。debuginfodはデバッグ情報とソースをデバッガに提供するHTTPサーバで、対応するgdbを使用するとローカルにデバッグ情報がなくても快適なデバッグが可能になる。RedHatを中心に作られた為Fedoraでは以前から対応が進められていた https://t.co/pUdZEie1kO」 / Twitter
Debian Launches A Debuginfod Server For Smoother Debugging Experience - Phoronix
henrichさんはTwitterを使っています 「debianプロジェクト公式インフラではなく、Debian公式開発者の一人が立ててみたよ、という話ね」 / Twitter
2021年2月25日 よきデバッグライフのために ―Debian,開発者向けdebuginfodサーバをローンチ:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「Linuxのio_uringはブロックするしかないI/Oを処理するために特殊なカーネルスレッドを作ってプロセスに結びつけるが、gdbがこのスレッドを発見するけどアタッチ出来ない状態になって詰んでしまう問題が見つかり、このスレッドはユーザ空間からどう見えるべきかで揉めている話 https://t.co/SoMHXh6cuV」 / Twitter

GDB Internals - Table of Contents
Debugging Output (Debugging with GDB)
debugging with GDB
GabrielMajeri/separate-symbols: How to separate debugging symbols from an ELF executable
https://www.kernel.org/doc/Documentation/security/Yama.txt
cyrus-and/gdb-dashboard: Modular visual interface for GDB in Python
I0608173.pdf
melancholic afternoon
GDB to LLDB command map — The LLDB Debugger
PermissionsDarwin - GDB Wiki
Releases/FeatureBuildId - Fedora Project Wiki
gdb remote protocol - Google 検索
lldbでLLVMプログラムをデバッグする - yhara.jp

rr

rr: lightweight recording & deterministic debugging
Robert O'CallahanさんはTwitterを使っています 「rr 5.4.0 released. The main new feature of this release is AMD Zen support. There is also experimental ARM Aarch64 support --- for platforms that don't use STREX. Plus tons of bug fixes and performance improvements as usual. https://t.co/yFEe9LsqZU」 / Twitter
Release 5.4.0 · mozilla/rr
ドッグさんはTwitterを使っています 「「rr がデバッグにすごく便利だから Julia にバグレポする時は使ってくれ」という Julia チームのブログ記事.rr の仕組みや perf も解説.rr は実行を巻き戻せる Mozilla の Linux 向け C, C++ デバッガ | 'Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting' https://t.co/pm2FwDJHjF」 / Twitter
Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting
ドッグさんはTwitterを使っています 「Julia では --bug-report=rr で簡単に使えるようになってるらしい.ただしプログラムが実行中に触ったファイルなども記録されるので,処理内容によってはアップロード前に privacy に気を付ける必要あり」 / Twitter
ドッグさんはTwitterを使っています 「rr 自体は前から知ってたけど,ベンチマーク初めて見た.スレッドの切り替えが激しい処理だとオーバーヘッドが大きくなるのは仕組み上仕方ないとしても,それ以外でほぼ1〜2倍程度のオーバーヘッドに収まってるのすごいなぁ」 / Twitter
[1705.05937] Engineering Record And Replay For Deployability: Extended Technical Report
1705.05937.pdf
Firefoxにブラウザ上の動作を記録・再生可能な「リプレイ機能」が搭載される予定 - GIGAZINE
Replay Docs
FadisさんはTwitterを使っています 「C言語とC++の為の新しいデバッグツールrrについての話。-g付きの実行可能バイナリをrr recordで実行すると「どのように動いたか」が記録され、rr replayするとブレークポイントを張ったり特定のメモリを監視しながらrecord時と同じように動くプロセスを観察出来る https://t.co/1KeuuGlP6i」 / Twitter
Instant replay: Debugging C and C++ programs with rr - Red Hat Developer
FadisさんはTwitterを使っています 「ソフトウェアがクラッシュした時、従来のgdbではコアダンプでクラッシュ時の状態を見て「何でそんな値が入っているのか」を人間が考える必要があったが、rr recordでクラッシュまでを記録できた場合reverse-continueで「おかしな値を入れたやつ」の時点まで時を遡る、というデバッグが可能になる」 / Twitter
reroさんはTwitterを使っています 「@fadis_ 性能激落ちしそうだから、再現試験とかが前提ではあるんやろな。」 / Twitter
Tsukasa #01さんはTwitterを使っています 「2010年にこの方式 (Record and Replay) を VM で試していたが、当時ようやく広がりつつあったマルチコアの追跡に適用するのが厳しく開発を断念した。rr はどうしてるのか――と見てみたら、全スレッドを 1 コアで (つまりは並列させずに) 動作するというとんでもない方法を使っていた。」 / Twitter
Tsukasa #01さんはTwitterを使っています 「それこそ、Record and Replay は、私が実験していたときには OS を動かして (ほぼ無入力で) 1MB 程度のトレースだけで1秒、数億命令の実行履歴を再現できた。ただ、それはプロセッサが「大部分で決定論的に動作する」ということを前提にしたもので、マルチコア環境だとこの前提が大きく崩れるのだ。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「roc大先生のrrの素晴らしいところは、record&amp;replay debuggerとして、圧倒的に速いってことですよ。速くなければ使い物にならないので https://t.co/fUGz2yt6FN」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「WinDBG Previewもrecord&amp;replay debugger入ってるけど、遅いのが致命的なんだよな」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「昔聞いたところによれば、rrを他のプラットフォームで実装するには、それ用のsystem callがあれば行けると思うよ的な話聞いてるけど、現状はLinux限定ではある。 なおrrに関してはUSENIX ATCのpaperがあるから、それを読むと面白いよ https://t.co/9lWaniZjdL」 / Twitter
atc17-o_callahan.pdf
Makoto Kato ︎︎さんはTwitterを使っています 「なお、Firefox devtoolsでrecord&amp;replayやってた人たちは、https://t.co/62UcrP6NA9 やってる」 / Twitter
Replay: Record and replay web applications
Makoto Kato ︎︎さんはTwitterを使っています 「RedHatのrrの記事では触れられてなかったけど、 https://t.co/Hmrk0UlrEm ってのをrocの会社で作ってる」 / Twitter
Pernosco

Processor Trace

LibIPT – Intel Processor Trace Decoder Library | Firmware Security
01org/processor-trace: libipt - an Intel(R) Processor Trace decoder library
Intel® Platform Analysis Library-Overview | Intel® Developer Zone
Processor Tracing | Intel® Software
BlueHat, Airplanes and Intel Pt – AaLl86 Security Corner
linux/intel-pt.txt at master · torvalds/linux
Intel Pinを使ってみる - ももいろテクノロジー
Intel Pinでcmptraceを作ってみる - ももいろテクノロジー
[CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina …
Shirouzu Hiroaki(白水啓章)さんのツイート: "x86とx64、引数がスタックに見える分だけ、前者の方が多少解析しやすい印象がある。 (後者はx86で言うfastcallのようなレジスタ渡しが標準。ちなみにMSとLinuxで引数に使うレジスタが違う)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "例外発生命令の、直前の命令位置を保存したレジスタか何か欲しいなぁ。 (例えば、0番地にジャンプした後に例外ダンプをとっても、もう遅い)"
きしもとさんのツイート: "エミュレータだと何命令か過去のヒストリがある奴あるよねというか、今なら実ハードでもそれぐらい(どれくらい?)の面積は確保してくれても良さそうという気もするが"
市川 真一さんのツイート: "例が GDB なのでアレですが、最近の Intel CPU 限定だと以下のような機能もあるようです: Processor Trace を使ってデバッグ時に詳細なトレースを取得する - Fixstars Tech Blog /proc/cpuinfo https://t.co/4hAfksgtmO… https://t.co/dur1hZ40Cq"
Processor Trace を使ってデバッグ時に詳細なトレースを取得する - Fixstars Tech Blog /proc/cpuinfo
Shirouzu Hiroaki(白水啓章)さんのツイート: "ご紹介ありがとうございます。 今解析しているのはユーザ環境のダンプなのですが、これは、そういう環境でも使える可能性があるかな…あとで詳しく見ておきます。… "
Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
x86 に AVX-512、SHA Extensions、Memory Protection Extensions(MPX)、Processor Trace(PT) が追加 - 教育は参考ブログ
perfから読み解くプロセッサトレースの仕組み (perf + Intel PT/ARM CoreSight) - Qiita

MAP, COD

MAP (file format) - Wikipedia
セクションとか.textとか
C言語のプロセスにおけるMAPファイルとは何ですか? - 思い浮か... - Yahoo!知恵袋
マップ デバッグ ファイル(*.map) - RAD Studio
/MAP (マップ ファイルの生成)
/MAPINFO (マップ ファイルに含める情報)
マップファイルを使用したデバッグ | code-lab
C言語のソースコードからどのようにメモリ領域を使用しているのかを図で説明してくれるソフト 回答数3 【OKWAVE】
static関数がmapファイルに載らない理由 - C言語・C++・C# 解決済 | 教えて!goo
JUNO通信: 不正落ちしたアドレスからエラー箇所を特定する

addr2line

addr2lineを使った調査方法 - Qiita
addr2lineを使ってスタックトレースから取得したアドレスをソースファイル名と行番号に変換する - Qiita
Man page of addr2line
Kazuho OkuさんはTwitterを使っています 「ちなみに odjdump -l は 問1. addr2line等により得られる修飾されたスタックトレースが主張するコールサイト(呼出元)の行数は実際と異なるケースがある。それはどういう場合か? 問2. スタックトレースが主張するコールサイトが信頼できるか確認すればどうすれば良いか? という設問の話でした。」 / Twitter
_ko1さんはTwitterを使っています 「objdump -l 知らなかったなあ(-S 使っちゃう) そういえば、よく使う(でも、覚えられない、デフォルト変えてほしい)オプション --insn-width」 / Twitter
Kazuho OkuさんはTwitterを使っています 「皆さん解答してくれていいんですよ!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「少し具体的に。 if (cond) { f(a); } else { f(b); } return; というコードが関数f実行中にクラッシュし、バックトレースはf(a)の行から呼び出されたと主張する。が実際はf(b)からの呼出であった。なぜか?(呼出側のスタックフレームへの依存があるため)末尾呼出最適化は関係ない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「はい。正解は、最適化コンパイラは共通式をまとめることがあり、その場合f(a)とf(b)の呼出元は同じマシン語命令になる。DWARFをはじめとする実行ファイル形式は、命令のアドレスから行数への変換を行う(コマンド名がaddr2lineだったりするレベル)ので、このような同一命令が複数行に対応する場合...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「バックトレースの主張する行数は信頼できない。というのが問1の解答。 問2は、そのようなケースを追うには、DWARFのテーブルの可視化であるobjdump -lが便利、という話でした。 https://t.co/MS0X2LTgmL」 / Twitter
_ko1さんはTwitterを使っています 「関数呼び出しがまとめられちゃうのはよく見る気がする」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「@kazuho あー、なるほど。 DWARF のテーブルをそのまま見られていい、という文脈でしたか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「GCCのオプションしては-fgcseとか-ftree-tail-mergeとか。いずれも-O2で有効になります」 / Twitter
成瀬さんはTwitterを使っています 「Rubyにはバックトレース出すために独自実装のdwarf対応addr2lineがあるのだが、本当はもうちょっと再利用可能な形にしてテストとか欲しいんだよなぁ。通常1回起動するかしないからから高速化のために癒着してるところがあるせいでやりづらいのだが」 / Twitter

libSegFault

普通のやつらの下を行け: C でバックトレース表示 - bkブログ
スタックトレースの吐出しファイル名 - Linux Square - @IT

Sanitizer

AddressSanitizer(ASan)

KASAN

KASan - Kernel Address Sanitizer(kernel 4.0)は、コンパイル時に組込んで、シャドウメモリによるメモリ内容の検査を行う - つれづれ日記
KernelAddressSanitizer (KASan) による Linux のメモリ破壊問題の検出 - Qiita
Linux:面白そうなpatch(Address sanitizer for kernel)を見てみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
The Kernel Address Sanitizer (KASAN) — The Linux Kernel documentation
Home · google/kasan Wiki
kasan.txt - kandamotohiro
社会人でもOSを作りたいさんはTwitterを使っています: 「KASan(カーネルアドレスサニタイザー)は,シャドウメモリと呼ばれる部分に,各メモリアドレスの状態(初期化済みであるかどうかなど)を記憶しており,メモリ読み書き命令が正当なものであるかをシャドウメモリの情報と照らし合わせて判定する。」 / Twitter

google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer
AddressSanitizer · google/sanitizers Wiki
Home · google/sanitizers Wiki
google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer
AddressSanitizer — Clang 7 documentation
AddressSanitizer - Wikipedia
Google Developers Japan: サニタイザーによる Android のバグ退治
Address Sanitizerで独自Frameworkのメモリエラーを検出する - Qiita
clang の AddressSanitizer を使って、バッファオーバーフロー/ヒープオーバーフローを検出する - Qiita
Address Sanitizerでメモリ不正アクセスを検知する - Qiita
clang/gccに組み込まれたAddressSanitizer/LeakSanitizerでメモリエラーを捕捉する - 千里霧中
AddressSanitizerが思った以上に優秀 | Project Flora
AddressSanitizerを試す - cuspy diary
cormoran's note - clang のSanitizerについて
バグ #4270: StateMachine.hでheap-use-after-free - OpenRTM-aist (C++) - Redmine for OpenRTM-aist
Debian -- jessie の libasan0 パッケージに関する詳細
Debian -- jessie の libasan1-dbg パッケージに関する詳細
参照カウンタオーバーフローを利用したLinuxカーネルエクスプロイト(CVE-2016-0728) - るくすの日記 ~ Out_Of_Range ~
入力の検証とプロセス間通信
[iOS 11] Xcode 9で“だいぶまとも”に!新機能をまとめてみた | Developers.IO
るくすさんのツイート: "ASan有効のWebKitビルドしたら、ビルド中に動くツールにメモリリークがあり、それをASanが検知してしまうため一生ビルドが完了しない。 キレそう"
るくすさんのツイート: "でもラップトップだとビルド通るんだよな 何もわからん"
c++ : Poisoning Memory with (or without) Address Sanitizer
AddressSanitizerManualPoisoning · google/sanitizers Wiki
Rockridgeさんのツイート: "Windows向け64bit版のビルド時にAddress Sanitizerと呼ばれるメモリエラーの検出ツールが働くようになった。参照:https://t.co/TSOKN3H8a7 https://t.co/I7KJVWTpa2 https://t.co/dDfe0RPHtE"
Introducing the ASan Nightly Project | Mozilla Security Blog

LeakSanitizer

clang/gccに組み込まれたAddressSanitizer/LeakSanitizerでメモリエラーを捕捉する - 千里霧中
LeakSanitizer — Clang 8 documentation
AddressSanitizerLeakSanitizer · google/sanitizers Wiki
LeakSanitizer - The Chromium Projects
c++ - LeakSanitizer: get run time leak reports? - Stack Overflow

MemorySanitizer

melancholic afternoon
MemorySanitizer — Clang 7 documentation
MemorySanitizer · google/sanitizers Wiki
Memory sanitizer
Memory Sanitizer - Mozilla | MDN
c++ - Memory Sanitizer - Stack Overflow

ThreadSanitizer(TSan)

ThreadSanitizer — Clang 8 documentation
ThreadSanitizerCppManual · google/sanitizers Wiki
Home · google/sanitizers Wiki
SwiftのAddress/Thread Sanitizer - Qiita
ThreadSanitizer: data race detection in practice
c++11 - Why does ThreadSanitizer report a race with this lock-free example? - Stack Overflow
ThreadSanitizer (TSan) v. 2 - The Chromium Projects
shinichiro hamajiさんのツイート: "#tcfm TSanまわりはいくつか論文読んだ記憶がある。ナイーブなeraserはくさんfalse-positiveが出て、例えばデカい配列作ってスレッドたくさん作ってjoin、みたいなやつだとワーカーとメインスレッドがraceとされちゃう。で、happens-beforeてのとのハイブリッドにしましたってのがTSanだという理解"

DataFlowSanitizer

DataFlowSanitizer — Clang 8 documentation
pannzh/dataflow-pass: A LLVM Pass with runtime dataflow sanitization
u1240976/dfsan_test: test llvm dataflow sanitizer
Address Sanitizer clashes with Dataflow Sanitizer - Google グループ
Clang Developers - Dataflow sanitizer memory mapping question
Oscar Forner's personal website
Engineering Secure Software and Systems: 9th International Symposium, ESSoS ... - Google ブックス
clang-sanitizers
Sanitizers.def source code [clang/include/clang/Basic/Sanitizers.def] - Woboq Code Browser

UndefinedBehaviorSanitizer(UBSan)

UndefinedBehaviorSanitizer — Clang 7 documentation
Google Developers Japan: サニタイザーによる Android のバグ退治
Linuxカーネル4.5リリース、細かな改善点が中心の小規模リリース | OSDN Magazine
The Undefined Behavior Sanitizer - UBSAN — The Linux Kernel documentation
The Undefined Behavior Sanitizer - UBSAN — The Linux Kernel 4.11.0-rc4-00191-g7de6e5d documentation
UndefinedBehaviorSanitizer (UBSan) - The Chromium Projects
Undefined Behavior Sanitizer | Apple Developer Documentation
GCC Undefined Behavior Sanitizer - ubsan - RHD Blog
c++ - UBSan And Asan usage with GCC 4.9.2 - Stack Overflow
GCC Undefined Behavior Sanitizer – ubsan (RH Developer Blog) [LWN.net]

LLVM Sanitizerを試す - FPGA開発日記

Intel Pin

Intel Pinを使ってみる - ももいろテクノロジー
Intel Pinでlivestringsを作ってみる - ももいろテクノロジー
Intel Pinを触る
アプリケーション インストルメンテーション - Pin によるアプリケーション分析
Intel PinにおけるNXの扱い | 一生あとで読んでろ
PinからPEMUへ | 一生あとで読んでろ

angr

angr例文集 書いて覚えるバイナリ自動解析技術 - Qiita
angrメモ - HackMD
angr+bingraphvisで実行パス差分ビューワを作ってみる - Qiita

最適化コードのデバッグ

IBM Knowledge Center - 最適化コードのデバッグ
方法 : 最適化されたコードをデバッグする

Source Map

Source Map Revision 3 Proposal - Google ドキュメント
mozilla/source-map: Parse and consume source maps.
Rockridgeさんのツイート: "Fx50:開発ツールのWebコンソールにソースマップ機能が実装された。デフォルトでは無効。 / “670002 – Use source maps in the web console” https://t.co/ehqBfbNvNj"
ソースマップを使用する - 開発ツール | MDN
Safx: JavaScriptのSource Mapの内部表現について
各ブラウザでソースマップを確認する方法 - Qiita
[JavaScript] sourceMapの作り方 - Qiita
To Be "Soulful": gulp + Sourcemap + Uglify + Debug で気を付けるポイント
jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話 - てっく煮ブログ
Source Mapを扱う関連ライブラリのまとめ | Web Scratch
Source Mapsについて調べた - console.lealog();
Browserify を使ってみる 2 – Source Map – アカベコマイリ
なかのん&マジックさんのツイート: "普通のWebサイトも難読化してるところにペナルティを与えて欲しいと思えるぐらいに、最近のWebアプリがブラウザの何が非互換で動かないのか調べるのは難しい。 / Google、信頼できるChrome拡張にするための対策を発表 | スラド IT https://t.co/ykzZJhRTsu"
Google、信頼できるChrome拡張にするための対策を発表 | スラド
なかのん&マジックさんのツイート: "最小化は必要なんだろうけど、それを復元する、もしくはオリジナルにアクセスする手段が標準化・用意されていないのはなかなかにキッツい。"
なかのん&マジックさんのツイート: "各ブラウザの開発ツールが追加で読み込める、デバッグシンボルみたいなのあってて欲しい。"
市川 真一さんのツイート: "Source Map とソースコードを zip で固めたファイルなら、比較的簡単に実現しそうな気もしますが、外部の人間にソースコードを渡す企業は限られるという問題があると思います… "
なかのん&マジックさんのツイート: "もう、くれないところは逆にWebの仕様変更時にブラウザベンダのサポート受けられないよ、的なコンセンサス欲しいですわ。… "
市川 真一さんのツイート: "それ、いいですね。多くの日本企業が市場から退場しそう… "

HAR ファイル

.har - Wikipedia
HTTP Archive (HAR) format
HAR 1.2 Spec | Software is hard
HAR ファイルの作成と Web リクエストの分析 - アトラシアン製品ドキュメント
Firefox の Firebug や Chrome のデベロッパーツールの Network の結果を HAR にエクスポートしたり PDF に印刷する方法 | ウェブル
harファイルをローカルで表示できる「HAR Viewer」|プログラミング
HARファイルの内容から指定URLの内容のみを抽出する方法 - Qiita
HARからファイルを抽出する - Qiita
JSONパーサーを作る - Qiita
HAR で Web ブラウザの動きを見よう! - 赤帽エンジニアブログ

blog

RogueWave

CodeDynamics

CodeDynamics 2015.09 初リリース - エンタープライズ向け 動的コード解析ツール - ローグウェーブソフトウェアのブログ
CodeDynamics 2015.11 リリース C++11対応と新しい検索ツール - ローグウェーブソフトウェアのブログ
CodeDynamics 2016.01 リリース - 高機能デバッガ wrap searchとブレークポイントハイライト - ローグウェーブソフトウェアのブログ
CodeDynamics 2016.04 リリース - 動的解析 CUDAデバッグ、Evaluation Point、バリアポイント、ReplayEngine強化 - ローグウェーブソフトウェアのブログ
エンタープライズ領域におけるソフトウェア開発の進化 - ローグウェーブソフトウェアのブログ

分散環境におけるメモリエラー解析 - ホワイトペーパー紹介 - ローグウェーブソフトウェアのブログ
動的解析のエンジンを再構築した理由 - CodeBuzzから - ローグウェーブソフトウェアのブログ
並列デバッガ TotalViewの多様なインターフェースと使い方 - ローグウェーブソフトウェアのブログ
複雑なデバッグをシンプルに - TotalViewのTransformations機能 - CodeBuzzから - ローグウェーブソフトウェアのブログ
TotalViewのType Transformations機能 - ローグウェーブソフトウェアのブログ
TotalView 並列アプリケーションのデバッグ機能 - ローグウェーブソフトウェアのブログ
TotalViewのCUDA関連機能 - ローグウェーブソフトウェアのブログ
TotalView 新UIでのFortranデバッグとリバースデバッグの紹介動画 - ローグウェーブソフトウェアのブログ
TotalView Python C++混合デバッグ - ホワイトペーパー紹介 - ローグウェーブソフトウェアのブログ
TotalView 2017.0 リリース - ReplayEngine高速化、新UIにウォッチポイント、NVIDIA Tesla P100 - ローグウェーブソフトウェアのブログ
TotalView 2017.1リリース - Python混合デバッグ、リバースデバッグのブックマーク、Split DWARF - ローグウェーブソフトウェアのブログ
TotalView 2017.2ベータ版 - Python混合デバッグのサポート強化、バッチデバッグとリバースデバッグ - ローグウェーブソフトウェアのブログ
TotalView 2017.2リリース - バッチデバッグでReplayEngine利用可能に、PythonとC/C++混合デバッグ強化 - ローグウェーブソフトウェアのブログ

φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

Linuxカーネルをgdbでデバッグ(またはディストリビューションのカーネルを使うときは当たってるパッチにも注意しよう) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linux kernelをgdbでリモートデバッグするときはKASLRをoffにするのを忘れずに(´・ω・`) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxでプロセス単位にaslrのon/offを切り替える仕組みめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
dynamic_debugはどのようにソースコードの行数、関数名などを読み取っているのか - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
libbfdのめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

NyaRuRuが地球にいたころ

日記を書いている途中にブラウザがハング・暴走したときするべきこと - NyaRuRuが地球にいたころ
Google Chrome をデバッグする (1) - NyaRuRuが地球にいたころ
Chromium (Chrome) のソースを読む - NyaRuRuが地球にいたころ

脱力系日記

IDAの便利プラグイン3選!!! - 脱力系日記
IDAプラグインの更新をサボっていたら割れIDAへのリンクを貼られた - 脱力系日記
PinなどのDBIツールでトレースした結果をIDAにマッピングするプラグイン「Lighthouse」を使ってみた - 脱力系日記

MySQL/MariaDB

Debugging MySQL/MariaDB (1): Build and Test - nayuta-yanagisawa's blog
Debugging MySQL/MariaDB (2): DBUG and Trace - nayuta-yanagisawa's blog
Debugging MySQL/MariaDB (3): GDB Debugging - nayuta-yanagisawa's blog
実例で学ぶ MySQL/MariaDB デバッグ - nayuta-yanagisawa's blog

Project Zero

Project Zero: The story of Adobe Reader symbols
Project Zero: Part II: Returning to Adobe Reader symbols on macOS
Project Zero: Windows Exploitation Tricks: Abusing the User-Mode Debugger

J’s Lab

OVMFをソースデバッグするお話 | J’s Lab
Intel DCI 続編(資料まとめ) | J’s Lab

スレッド名にデバッグ情報を埋め込むと激しく捗る件 - Cybozu Inside Out | サイボウズエンジニアのブログ
本の虫: ラバーダックデバッグとは
プログラマーの理想と現実 - メモリ破壊バグをつきとめる | 株式会社創夢 — SOUM/misc
EternalRed0’s Unicorn Engine tutorial | Firmware Security
バイナリエディタを作りました! - プログラムモグモグ
ccov: printfデバッグを支援するツール | retrage.github.io
Binary Translation型エミュレータを作る(ステップ実行のサポート) - FPGA開発日記
エクスプロイト可能なバグかの判断:REVEN を使用して NULL ポインタの参照先の値を取得
Jockey で Linux のプログラムの実行を記録・再生する - bkブログ
第16回「 kernel-debug ノススメ」 | NTTデータ先端技術株式会社
Bokken 1.8使ってみた - Twitterに書ききれないこと
(第15回)Ctrl-Cブレーク対応
mozregressionを使って、いつFirefoxの機能が壊れたのかを調べる - ククログ(2018-07-18)
デバッガ自作から学ぶ低レイヤー - Nao Technology
デバッガ自作から学ぶ低レイヤ2 - Nao Technology
OpenBSD in Stereo with Linux VFIO | joshua stein
アーケードゲームを支えるデバッグ術 - SEGA TECH Blog
goroutine内のpanic handling | Money Forward Engineers' Blog
Valgrindでコード解析してみる - CADDi Tech Blog

PDF

purify.pdf
tsushima12.pdf
tsushima13.pdf
ishii14.pdf
wakikawa18.pdf
doctoral.dvi - doctoral.pdf
general4-1.pdf
コンパイラの型推論を使用した型デバッガの提案
重み付き型エラースライスの提案
バイナリコードから脅威度を推定する 脆弱性検出ツールの実装と評価

スライド

Reverse Debugging with radare2 - Speaker Deck
More efficient remote debugging with Thin Hypervisor - Speaker Deck
ゆるバグ
The Game is Over. Nintendo switch has been totally compromised - Speaker Deck
Python + GDB = Javaデバッガ

GitHub

WICG/devtools-protocol
gdabah/distorm: Powerful Disassembler Library For x86/AMD64
zydis | The ultimate X86 & X86-64 disassembler library
zyantific/zydis: Fast and lightweight x86/x86-64 disassembler library
PXE BootとIntel DCIを用いたLinux Debug環境 | J’s Lab

infoQ

既にコンパイルされたアセンブリをデバッグできる.NET Reflector
ElasTestで実現するテスト時の可観測性
WebDriverIOバージョン6リリースは、ネイティブのChrome DevToolsオートメーションプロトコルを新たにサポート
New LiveRecorder for Java Enables Software Failure Replay
Chrome 83 DevToolsでは視覚障害とロケールをエミュレート
新しいChrome拡張機能で、C++ソースファイルをステップ実行してコンパイル済みWasmコードをデバッグ
Chrome 88 Devtoolsの新機能

Qiita

gdbのリモートデバッグのextended-remoteモードを試す(1) - Qiita
gdbのリモートデバッグのextended-remoteモードを試す(2) - Qiita
gdbのリモートデバッグのextended-remoteモードを試す(3) - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "chromeにデバッガがアタッチできなかった話は、保護プロセスが理由だった。https://t.co/GmoAFDpGGq そして「Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法」。勉強になった。 https://t.co/1VAkqHCmfA"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ここ数週間、chromeのプチフリーズ(5-10秒)が頻発。 VS2015のデバッガでchromeプロセスにアタッチしようとするとリジェクトされてしまうのはなぜだろう。"
Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法 - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "さらに、Windows Defender の場合はデバッガをアタッチしても、書き込み権を落としたハンドルしか渡せないという防御もあり、そのためのフィルタコールバックを如何に無効化するかという話も。ハッカーすぎる(笑)"
curl は何をしているか #システムコール編 - Qiita
「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
Linuxカーネルの起動時トレースの話 - Qiita
[Linux] coreファイルについて - Qiita
Linux シグナルの基本と仕組み (カーネル v5.5 時点) - Qiita

Wikipedia

逆アセンブラ - Wikipedia
Disassembler - Wikipedia
逆コンパイラ - Wikipedia
Decompiler - Wikipedia

Twitter

その他

SoC_デバッグ

Yuji IshikawaさんはTwitterを使っています: 「守秘義務は外すとして、ここのところ頭を悩ませていた案件に光明が見えてきた。aarch64のLinuxカーネルにプラットフォームデバイスを認識させる作業。 さくっとデバイスツリーを書いて、SoC固有のところをいじるだけなのだが、ムズい。意外と資料がない。指南書ほしい。指南書書きたい。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「だいぶやられた後に言いたいことは、有名なSoCと同じIPを使っているからと言って、やすやすとドライバが移植できると思うなよ!だった。合ってるのは公開レジスタセットの所だけで、ベンダ固有の謎のHWや、よくわからん感じにマルチプレクスされた割り込みが理不尽な振る舞いをする。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「ベンダ依存の少ないレジスタセットを使ったコアロジックは使い回せるので、ベンダ依存部分さえ直せば驚くほどすんなりドライバが動く。 まさに巨人の肩によじ登ったワンダー。 しかし重ねていうが、工数を安請け合いしてはならない。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「結局、pr_infoを仕掛けて回る、サブのプロセッサコアをLinuxの支配下に置かずにデバッグ用につかまえておいて、横からレジスタを覗いたり書き換えたりして反応を観る、という形でデバッグしてた。もっと良い方法を知りたい。」 / Twitter
Yuji IshikawaさんはTwitterを使っています: 「@Tatsuro_Ueda こういうのが強い人って、本当に強いんですよ。私がハマっていた所なんて、タネが割れてしまえば本当に簡単なこと、数十行のハックで最低限の動作ができてしまう。 でも、最初に仕組みを見通すメンタルモデルを獲得するには、莫大な研鑽が必要。偉い人にわかってほしい。」 / Twitter

histric-1

Makoto Kato ︎︎さんのツイート: "10年前の時点で自分の環境用のデバッグツールで、IEのプロセスダンプから現在開いているURLを収集および表示してるHTMLをダンプするcdbエクステンションを持ってたけど、自分のやってたところまでサポートは追いついてないのか"
Hirochika Asaiさんのツイート: "実機だとOSの挙動がおかしくなる問題のデバッグにはCPU 0以外のコンテキストをダンプをする機能が必要。お行儀の良くない初期化しただけでこんなに影響出るものなのか…?"
Kazuho Okuさんのツイート: "えぇぇぇぇ gdb で C-x 1 って入れたらソースコード表示しながらデバッグできるの!!! 知らなかった / “CppCon 2015: Greg Law " Give me 15 minutes & I'll change…” https://t.co/XDazrCP2mN"
側転幼女おるみんちゃんさんのツイート: "gdb --tui でもできる機能ですね。 https://t.co/4Y1ntlpj3o"
ぺお(ozaki-r)さんのツイート: "DTraceをNetBSD/armに移植するときも未定義命令を使ったような記憶が… "
なかのん&マジックさんのツイート: "特定のメソッドから、任意の数遡った、可能なスタックを全て表示してくれるツールとかないんかな(´ρ`)"
yukiさんのツイート: "コードを書いていくとインタラクティブにアセンブリに直してくれるサービス.すごいのが,コードのどこがどのアセンブリに対応しているのか色付きで教えてくれるところ.勉強になる.もちろんRustもある! / Compiler Explorer https://t.co/9fppGUrHHG"
Compiler Explorer
Shirouzu Hiroaki(白水啓章)さんのツイート: "某大学の講義の感想で「(二分探索的な)printデバッグ時のコストが log2 N になる話が良く判らない」という感想が出たので、次回用にフォロー資料を書いてみたり。 再現性が良く、テストしやすいプログラムの場合、printデバッグは現代でも効率が良い問題究明方法。… https://t.co/M4FDQDATwG"
なかのん&マジックさんのツイート: "Linuxで他のモジュール内部も含んだスタックトレースってどうやってとったらええんかな。"
秀の介@柏さんのツイート: "Debianならデバッグシンボルパッケージをインストールすれば良いようです。 https://t.co/59tgzJ1q1T… "
Debian 9: デバッグシンボルのdbgsymでパッケージをデバッグする - Narrow Escape
なかのん&マジックさんのツイート: "おー、ありがとうございます。やってみます。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ワーカースレッドが多いとデバッガで見たいスレッドを発見するのが手間になっていく。 デバッガでコールスタック解析して、同じコールスタックで眠っているスレッドは除外するフィルタ等があるといいのだが。 (VSSDKで作れるのかな?)"
DrumatoさんはTwitterを使っています: 「自作バイナリに独自デバッグセクションを埋め込んで,それを解析するツールも実行プログラム基盤に埋め込めた!!! ・ユーザ空間に実装したローダ ・ --run オプション ・独自readelf ・ --relocs/-r オプション(これは一部) ・独自デバッグセクション ・独自readelfで解析可能 https://t.co/Qi4MMXf6Cs」 / Twitter
DrumatoさんはTwitterを使っています: 「ユーザが特定のフォーマットでコメントアウトした時.それをバイナリから参照できるようにしたいな. 新しくセクションを打って,ヘッダからそれを参照する. https://t.co/4yGJ3PofaI」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「マルチスレッドでタイミング依存、高負荷でのみ発生、最適化に依存(大半はコード側問題の顕在化&稀に最適化バグ)といった経験を経て大人になる…そしてprintf(リングバッファ的なロギング系含む)の侵入副作用の小ささと環境非依存に「再び鮒釣りに帰ってくる老人」みたいな心境に(笑) https://t.co/ASEQrrDhhk」 / Twitter
Kengo Sawatsu@日本カネ不足協会さんはTwitterを使っています 「永遠の初心者なのでprintf普通にします (gdbかました時だけ再現しない問題とか、普通に経験ある人多いんじゃないかなあ、。) https://t.co/rJoiNKKxEU」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「全力動作でないと問題発生しない系に対して、ロギング用リングバッファを作ってメモリ上でトレース&問題検出と同時にダンプ。後は大量に出たログを眺めて動作を脳内シミュレート(と一連の作業のイテレーション)した人も多いのでは。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「RS232C出力のコンソール画面だとフロー制御するので、stdout/stderr出力が固まるってありますね。 昔々、UNISYS WSで「システム動作が停止したぞ?」と大騒ぎになった時、誰かが画面電源をOFFにしていたオチ。(で画面ONにすると何事も無かったように動作再開…) https://t.co/sUzYc1gH5I」 / Twitter
Kengo Sawatsu@日本カネ不足協会さんはTwitterを使っています 「あるあるある、。RT そしてfflush(stdout)もセットになったりします(笑) stderrがシリアルコンソールに物理的にひもづいててリングバッファからのflushが異常遅延してとかそういう思い出があったようななかったような https://t.co/ZLiLfjy5qJ」 / Twitter
ryoさんはTwitterを使っています 「というかSMPでhardware watchpoint/breakpointを共有しないと使いものにならないというTODOを思い出した」 / Twitter
herumiさんはTwitterを使っています 「https://t.co/bqgvd5sz7J ありましたね。 私が経験した中でレアなやつは コード整形しただけのはずなのに再起動するようになった(OSのバグ) gdbで起動するとgdbが落ちる実行バイナリ(gdbのバグ) 未定義命令で落ちる(VMのcpuidエミュレーションバグ) とか。そういうの集めてしゃべると楽しいかも。」 / Twitter
とみながたけひろさんはTwitterを使っています 「ログ出すとprintfがスタックをじわじわ使うのでそこで少しずつスタック拡張が起き、その次に呼ぶ関数でもスタックが使える ログなしだと該当関数がスタックを大量に確保していきなり前のほうを使うのだが、それをOSはスタック拡張と認識できず死ぬ というのがあったな…(光成さんも経験されてたような https://t.co/tjqpC7YVN8」 / Twitter
uchanさんはTwitterを使っています 「まてまてまてまて!なんだこの現象は。ログ出力を1行加えたら現象が治まったぞ!?(OS開発あるある)」 / Twitter
とみながたけひろさんはTwitterを使っています 「この現象に初めてはまった時は、リアルタイムOS厨だったので「スタックサイズ拡張なんて邪道だろ」とか思った記憶がある(中二病ぽい)」 / Twitter
ryoさんはTwitterを使っています 「PACのコード読み。なんとなく疑問点が氷解した。なぜPACがポインタ全体を暗号化せずにunused bitだけに認証コード埋め込むのかは、ポインタの値を拾いたい場合もあり得るからか。今のところlrだけなのでbacktraceくらいだけど。」 / Twitter
ryoさんはTwitterを使っています 「OpenBSDのRETGUARDはARM64 PACのソフト実装みたいな感じだが、こちらはspとreturn addressをxorしているので全bitが意味を為さなくなってポインタとしては扱えない。(が、db_traceでやってるみたいに自前でxorしなおせばいい)」 / Twitter

Kazuho OkuさんはTwitterを使っています 「printfデバッグ、二分検索を念頭において print 文を足していった結果、少ないステップ数で原因絞り込めると快感」 / Twitter
Rui UeyamaさんはTwitterを使っています 「すべてのCファイルをいったんgccでコンパイルして、そのあと1ファイルだけ自作コンパイラでコンパイルしてリンクするみたいな方法でミスコンパイルしている場所は比較的簡単に絞り込めるので、デバグはあんまり難しくない。」 / Twitter
ある🍄まじろう / 加来量一さんはTwitterを使っています 「printf() を挿入するとバグが止まることは本当によくあって、メモリ未初期化が収まるパターンとメモリ破壊がずれるパターンと、スレッドスケジュールが変わるパターンがある 特に最後のは気づきにくくて厄介」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「debuginfod (https://t.co/3WrAAVzHyn) を見ながら、やっとWiindows debuggerの世界の20年前に追いついたと。cdb/windbgだと20年前に出来たことだよな」 / Twitter
Introducing debuginfod, the elfutils debuginfo server - Red Hat Developer
Shinji KonoさんはTwitterを使っています 「結局、lldb 、Rust compilerに対して役に立ってない。デタラメに止めてstepくらいはできる。もう、debuggerの時代は終わりかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「アドレスが間違ってるので、nmの出力を解析できればアドレス直打ちで止められるかも。」 / Twitter
Shinji KonoさんはTwitterを使っています 「昔と違ってgithub上でかなりいろいろできるし。」 / Twitter
Shinji KonoさんはTwitterを使っています 「gdb/lldbはコンパイラとの連携がそもそもダメ。Dwarf formatは言語非依存を目指したものだが、それ自体が時代遅れ。コンパイラ実装でも負担になるだけだし、表示は、その言語自体が行ないと無理。」 / Twitter
Shinji KonoさんはTwitterを使っています 「サボってるのはgdb/lldb、あるいはソフトウェア工学そのものだな。なんか作るか。」 / Twitter
Shinji KonoさんはTwitterを使っています 「OSのdebugger APIも古色蒼然。」 / Twitter
Shinji KonoさんはTwitterを使っています 「lldb/gdbがうまくdebugできなくなってるのは、Rustだけじゃなくて、他の言語でもそう。C/C++でもだめ。」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「rustcに対してデバッガをかけたいというのは確かに大変そうだ…」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「optimized binary + debug infoに対してどれぐらいデバッガが効くのかは分からないな」 / Twitter
κeenさんはTwitterを使っています 「そういうのなかったっけ?lspよろしくdebudder server protocolみたいなの。実装されてるかは知らないけど。」 / Twitter
κeenさんはTwitterを使っています 「MSのDebugger Adapter Protocolか。これ微妙だな…」 / Twitter
Shinji KonoさんはTwitterを使っています 「Rustc、一応、LLVMコード生成部分は捕まえられた。lldbは使い物にならなくて、gdbでもデータ表示はできない状態。40万行。」 / Twitter
mumumuさんはTwitterを使っています 「Reverse Debugging of Kernel Failures in Deployed Systems [ATC '20] 既存のPERTというAppのReverse DebuggingのツールをKernelに適用する.Kernel固有の問題として,system callはすべてのアプリケーションが呼び出すため,どのような単位でトレースするか,割り込みをどうするか等に対処している」 / Twitter
ぬるぽへさんはTwitterを使っています 「Logpoints, C/C++とかでもprintfと違って構造体をぶち込んで雑にログできて便利、という理想的な状態に反して実際は内容が省略されてしまう上に、表示がただのログアウトプットでブレークポイントと違ってインタラクティブなやつじゃないので中身をクリックして後から展開とかもできない」 / Twitter
ぬるぽへさんはTwitterを使っています 「理想的にはdev toolsのconsole.log状態になってほしいわね」 / Twitter

bt

shinichiro hamajiさんはTwitterを使っています 「@nullpo_head @kazuho 僕は普段は backtrace 吐いて死ぬけど、環境変数セットしてあると getpid 表示して wait する、くらいが好みでした。これみたいな: https://t.co/88ubOcbLzH これだと /proc/&lt;pid&gt;/maps 見に行くとか、 gdb 以外のこともできますし」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ソフトウェアを配布するにあたっては、質の高いバグレポートをもらうというのは死活的に重要で、そのためには、きちんとしたバックトレーサを同梱しておくと良いので、僕は今のところ * backtrace_symbols_fd をシグナルハンドラで実行 * その出力をaddr2lineに噛ませるようなラッパーを予め起動」 / Twitter
Kazuho OkuさんはTwitterを使っています 「という方法をとってます。cf. https://t.co/cDGwQzIg57 https://t.co/e4i17DHQ3X」 / Twitter
h2o/main.c at 8ad43f45dd570e72e66cf2af70d8c6135c197776 · h2o/h2o
Kazuho OkuさんはTwitterを使っています 「これでだいたい行番号付きのバックトレースが送られてくる。ビルドされたgit commit idも入れるべきだな...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @shinh @nullpo_head 実際のところシグナルハンドラ適用後に復帰する使い方ではないので、だいたいのケースで動けばそれでいいですね」 / Twitter

コールスタック

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「根の深い例外ダンプが送られてきた…起動時に作っているはずのメインObjのアドレスが0近傍になっている。 近傍=保持しているオブジェクト0でそのオフセット値という可能性高いも、何か合点がいかない感。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「類似状況を試したら、NTDLLを呼んでいる場合だけに現れる、一時的なコールスタック表示崩れの問題のようだ。 とはいえ、IP=0 でSEGV例外になった点は事実。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえばデバッガは、コールスタック途中のレジスタ復元どうやっているのだろう?(エピローグpushからスタック退避位置を推定?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「エピローグではなくプロローグ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「security cookie を有効のため、スタック破壊で0に飛ぶことは無い。 ということは、vtblの中身が破壊された?(obj ptrがnullの場合、vtblを引く操作でエラー=eipが0になる前に例外になるはず)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、ソースコードに bo_test() というコードを仕込んでいて、時折、有効化したビルドを行って、buffer overflow 時の挙動&ダンプの中身を確認している。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお、今時のVC++は bo時の例外ハンドラ起動を許さないので、そのx86/x64コードにnopを動的に入れることで、自前ハンドラに飛ばすhackを行っている。 (良い子はマネしない方が良い)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まあ年に数回であれば、ダンプを眺めるのは良い訓練。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「たぶん判った。 これは特殊な条件で、OS/デバドラ側が非同期でスタックを壊しに来てる…うーむ、どうしたものやら。」 / Twitter

Custom section(WASM)

chikoskiさんのツイート: "custom sectionね。… "
chikoskiさんのツイート: "Custom section の仕様:https://t.co/JUTEAiTUjA"
Custom Sections — WebAssembly 1.0

int 3

histric-1

まさみさんは語りたいさんのツイート: "https://t.co/RL88Qp8eam デバッグレジスタを使ったメモリアクセストレース(所謂hwbreakpoint)の例外発生パターンが、一部の命令だけ違っていることを見落としていた話。ほぼ全ての命令ではメモリアクセス命令の直前で例外が発生するが、スタックセグメント(SS)レジスタのPOPとMOVだけ命令の直後。"
POP SS debug exception- CVE-2018-8897 [Moderate] & CVE-2018-1087 [Important] - Red Hat Customer Portal
まさみさんは語りたいさんのツイート: "基本的には全てメモリアクセス命令の直前で止まっていると思って処理をするため、例外発生アドレスが指す命令を記録してエミュレートする(あるいはDRを一時的にクリアしてシングルステップ実行?)ことになるけど、同じ処理をするとMOV SSとPOP SSだけ2度実行されることになる?"
まさみさんは語りたいさんのツイート: "うーん、なんかもっと深刻な酷さだぞ。何だこの酷い仕様。 the processor delivers pending interrupts and/or debug exceptions after the first instruction following when the stack switch is executed."
まさみさんは語りたいさんのツイート: "普通スタックの切り替えはセグメント切り替え+スタックポインタ復帰の2命令で行われる MOV SS, [RAX] MOV RSP, RBP なのでデバッグ例外は2つめの命令が実行されるのを待ってから行われると。 ところが単に命令数をカウントしているだけなので、MOV RSPではなくSYSENTERとかだと・・・"
まさみさんは語りたいさんのツイート: "MOV SS, [RAX] SYSENTER で、RAXの指すアドレスのリードアクセスをデバッグレジスタに指定すると、デバッグ例外がSYSENTERのハンドラ(ring0に変更済み)の先頭で発生する・・・? そうか、そうするとkaslrで移動させたアドレスがバレバレになるのか。"
まさみさんは語りたいさんのツイート: "https://t.co/hhLvrHFK7i んー??CVE-2018-8897は違う問題か?icebp(ICE breakpoint)っていう隠し命令があるという話。"
kernel/git/torvalds/linux.git - Linux kernel source tree
まさみさんは語りたいさんのツイート: "icebp、胸熱命令だな。int3はBP例外を発生させるけど、icebpはDB例外を発生させることのできる命令らしい。ICEが繋がっているとそちらからハンドリングできるソフトウェア命令と。"
まさみさんは語りたいさんのツイート: "https://t.co/hhLvrHFK7i 修正パッチが全く違うのは異なるCVE番号が付いているから。2つのCVEがあるという話らしい。"
kernel/git/torvalds/linux.git - Linux kernel source tree
まさみさんは語りたいさんのツイート: "icebpはint1か。linuxカーネルだとdo_debugでヒューリスティックにicebpではないかと推測して処理されるけど、kvmではvmxに明示的にフラグが立つので確実に処理できると。"
まさみさんは語りたいさんのツイート: "Loading the SS register with a MOV instruction inhibits all interrupts until after the execution of the next instruction. This operation allows a stack pointer to be loaded into the ESP register with the next instruction (MOV ESP, stack-pointer value) before an interrupt occurs."
まさみさんは語りたいさんのツイート: "If a code instruction breakpoint (for debug) is placed on an instruction located immediately after a MOV SS instruction, the breakpoint may not be triggered."
まさみさんは語りたいさんのツイート: "However, in a sequence of instructions that load the SS register, only the first instruction in the sequence is guaranteed to delay an interrupt."
まさみさんは語りたいさんのツイート: "In the following sequence, interrupts may be recognized before MOV ESP, EBP executes: MOV SS, EDX MOV SS, EAX MOV ESP, EBP えっ、なにそれ??"
まさみさんは語りたいさんのツイート: "本当に一命令だけ遅延させるんかwww"
まさみさんは語りたいさんのツイート: "あっ、これはIntelの聖典のMOV命令のところに書いてる。"
まさみさんは語りたいさんのツイート: "2018 MayのIntel SDMではICEBPという名前が見えるけど、一箇所だけ、脚注にあるだけっぽい。"

まさみさんは語りたいさんのツイート: "MOV SS/POP SSはシングルステップ実行のトラップも遅延させるぐらい強力なものなのか。kprobesの場合、MOV SS/POP SSは両方共booster対象なのでシングルステップ実行はしないけど、uprobesはヤバイんじゃないかな。"
まさみさんは語りたいさんのツイート: "https://t.co/JlzgRoXsYf Andyの書いたテストプログラムに酷い仕様が書かれている。MOV SSのあとにint3を挟むと、なんとint3の例外は発生せずdebug例外だけ起きるらしい。"
まさみさんは語りたいさんのツイート: "これからint3を入れるときには、事前に一つ前の命令を確認してmov ssではないことを確かめないといけないってことになるのでは。あるいはdo_debugで発生命令がint3だったときにはdo_int3を呼び出すとか。"
まさみさんは語りたいさんのツイート: "んー?int3とbreakpointが別れて書かれてるということは、このbreakpointはhw breakpointのことなのか。じゃあ大丈夫かな?"
まさみさんは語りたいさんのツイート: "最新のIntel SDMをダウンロードして、"MOV SS"で検索すると、凄いポピュラーな単語になっててワロタw"
るくすさんのツイート: "CVE-2018-8897ようやくちゃんと読んだんですが、これは結局Linuxだと MOV SS, [RAX] INT 3 とすると、INT 3を実行して#BP用のISTが切り替わった最中に1行目のwatchpointにより#DBが届いてしまい、同じISTを使おうとしてカーネルクラッシュ→DoS という認識で良いのかな"
るくすさんのツイート: "ただ一つ分からないのが、Linux以外で#DBにISTを使わずそのままカーネルスタックを使うような設計のOSだと"権限昇格"ができる可能性があると記述されているのだけど、これはどういう意味なんですかね..."
まさみさんは語りたいさんのツイート: "MOV SS; INT3の場合、BP例外ハンドラの先頭でDB例外が発生→処理されてからBP例外が継続、なのでこのケースは気にしなくてもいいっていうことだな。むしろMOV SSにINT3入れるとSingleStepが出来なくて死ぬ。"
るくすさんのツイート: "Linuxカーネル開発サイクルに関する一般的な質問なのですが、いくつかのパッチは、とりあえずマージせずにstable-queue(?)とかいうのに置いてあって、今回過去のパッチが脆弱性修正に繋がると判断したのでmainlineにマージしました、という認識であってますか?… https://t.co/WNYer77UF4"
まさみさんは語りたいさんのツイート: "というわけでkprobesとuprobesのパッチ作っているなう。"
まさみさんは語りたいさんのツイート: "mov hoge,%ssなんて見つかるわけ無いだろー?とか思ってたら案外_switch_toでさっくり見つかって驚いている。"
まさみさんは語りたいさんのツイート: "LSS使えってSDMに書いているのに、結構ポピュラーなんだ・・・。"
まさみさんは語りたいさんのツイート: "まあ、実行される箇所はポピュラーだけど、実際にこれ以外にはsecondary_startup_64ぐらいでしか見つからないので、ポピュラーとはいえないか。"
まさみさんは語りたいさんのツイート: "arm64のpatch_textの実装確認したらstop_machine使ってた・・・まじか。"
まさみさんは語りたいさんのツイート: "stop_machineはかなり重い処理だから、余り使いたくない。特にコア数が増えるとものすごいジッタが発生するはず。IPI送って、それぞれのコアの待ち合わせを行った上で、処理をしてる間も止まってるわけだから。"
まさみさんは語りたいさんのツイート: "x86の場合はint3使って迂回路を生成して書き換えるっていうkprobes由来の方法が一般化されて利用されてる。さらにエイリアスページを使う念の入りよう。"
Kazuho Okuさんのツイート: "Linuxの USDT サポートが /proc/<pid>/mem を開いてフラグを書き換えたり、おそらく同時に NOP -> INT3 してることはわかったけど、INT3 受け取ったカーネル内での、デバッガ呼び出しと eBPF 呼び出しの切り分けはどうやってるんだろう"

@mhiramat

まさみさんは語りたいさんのツイート: "おっ、綺麗にスタックが出た!っとおもったら何故か PC is at _raw_spin_lock_irqsave+0x2c/0x6c これはひどい。(多分メモリ領域壊している)"
まさみさんは語りたいさんのツイート: "にわかには信じられないけど、この2つの関数の組み合わせだけで起きる。一つずつだと起きない。関連性が全く分からん。"
まさみさんは語りたいさんのツイート: "ウオオオわかった https://t.co/SVYRV1RS1v kprobe on arm、お前・・・未定義命令だったのか・・・"
まさみさんは語りたいさんのツイート: "いやそれはおいておいて、アセンブラを書く羽目になっている"
まさみさんは語りたいさんのツイート: "よし、本件についてはクローズしたとみなす。"
まさみさんは語りたいさんのツイート: "あちゃー、まずいな。ftraceとperfの両方がそれぞれ違うring_buffer構造体を作ってるんだけど(同じ名前で)、debug情報がこれをごっちゃにしているのが分かった。ftraceのring_bufferをダンプするとperfのring_bufferの型をつかってダンプしよる・・・。"
まさみさんは語りたいさんのツイート: "えっ、これgdbのバグ?binutilsのバグ?gccのバグ??"
まさみさんは語りたいさんのツイート: "IDA/radare2 というのを使って逆アセンブルする。radare2というのがベーシックブロック解析付きの逆アセンブラみたいな感じ? #kernelvm"

@fadis_

Fadisさんのツイート: "CPUを初期化ペリフェラルの初期化、DRAMの初期化をした後u-bootは自身をRAMにコピーしてそこにジャンプする。→ アドレスが変わるためgdbで追うのが辛い → relocateaddrを調べてgdbでadd-symbol-fileする #kernelvm"
Fadisさんのツイート: "書いたコードがSEGVで停止するのは幸運なケースだ。本当に面倒なバグは配列の範囲外だけど書き込み可能なページ内をしれっと書き換えていく"

Kazuho OkuさんはTwitterを使っています 「CI で asan だけコケてるの見て、これはなんか遅い場合だけ出るタイミング依存のバグかなーってんで考えて、テストコードいじって再現成功して、USDT probe 使って原因つきとめて、修正パッチ書けたから今日はいい日」 / Twitter
まさみさんは語りたいさんのツイート: "Googleのエキスパート Chromeのフリーズを直すまでの奮闘記 #ldnews https://t.co/yRsSKYWcbX 面白い。メモリ断片化でフリーズって、昔はサーバの問題だったのに。"
Googleのエキスパート Chromeのフリーズを直すまでの奮闘記 - ライブドアニュース
C++でOS自作 技術書典5 お05さんのツイート: "研究ではC#に対して実装してた。事前に対象プログラムにデバッグコードを埋め込むことで、ステートメント単位の実行、変数の値の取得などを行っていた。C++でやるとしたらLLVMでASTを取得して書き換えれば同じことができそう。"

小崎資広さん「人に依存しないデバッグのために,道具の使い方を知ってほしい」〜RubyKaigi 2015基調講演 2日目:RubyKaigi 2015レポート|gihyo.jp … 技術評論社
ぬるぽへさんはTwitterを使っています 「外部入力がデフォルトで分離されてて内部に非決定性の無いwasmは、実装がめっちゃ簡単なのでデバッガはtime travel debugできるのが標準になってほしい、そしてproxy-wasmとか組み込み環境にとってこそデバッガがタイツトラベルを標準サポートしてくれるとめっちゃ嬉しくない??」 / Twitter
Add wasminspect as source-level debugger by rhysd · Pull Request #1 · vshymanskyy/awesome-wasm-tools
デバッガのための実行基盤の実装について

クラッシュダンプ

MS

その他

usskim / ワトソン博士
Windbg を用いたリモートデバッグ - Web/DB プログラミング徹底解説
Debug Diagnostic Tool を利用したクラッシュ時のデバッグ方法 - Web/DB プログラミング徹底解説
「ReadProcessMemory 要求またはWriteProcessMemory 要求の一部だけを完了しました」と出てアップデートが出来ません - HASP
めもりーくりーなー 「ReadProcessMemory 要求または~」と出る?
Windowsプログラミングそこそこ役に立つサンプル集-[API-ReadProcessMemory]
Windows:Windows Error Reportを使ってプロセスがクラッシュした際のダンプファイルを取得できるようにする設定方法
NKY-TECH. ソフトウェア開発部: プロセス ダンプ(ユーザー ダンプ)の作成
デバッガを接続していないアプリが不正終了した時にミニダンプを作成する方法
「その場で」と「あとから」と成功体験 - NyaRuRuが地球にいたころ
他プロセスのメインモジュールのエントリーポイントアドレスを取得したい。 • C言語交流フォーラム ~ mixC++ ~
i4shamrock - きままに情報発信
メモリダンプから様々な情報を抽出するためのオープンソースのツール : volatility
IBM MustGather: Windows でのアプリケーションやシステムハングの診断情報収集について - Japan
DSAS開発者の部屋:Win32 プログラムのデバッグTips (1)
Windows 10 Active Memory Dumpとカーネルメモリダンプ
Windows 10 Active Memory Dumpとカーネルメモリダンプ
Windows XP/7/8/10のセッションとプロセス
Impact of Session 0 Isolation on Services and Drivers in Windows - Windows 10 hardware dev | Microsoft Docs

Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "MiniDumpWriteDumpで特定の仮想アドレス範囲を除外したダンプを作るには、MiniDumpCallbackを用意して、ごにょごにょすれば可能なはずなのだが、どうも上手くいかないな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IPMsgで例外ダンプが送られてきて解析したのだが、ダンプから推測した範囲ではNICにIPアドレスを100個以上付与している環境らしかった。(例外発生はそれに起因) ともあれ、ミニダンプは解析にとても役立つ。 https://t.co/Q9gepzbHfG"
Shirouzu Hiroaki(白水啓章)さんのツイート: "例外ログ(スタックのhexデータ)から手動で関数フレームを辿る計算をしていた時代に比べると、統合環境から解析できるようになったのは、徒歩から新幹線くらいの差がある…(稀に脱線して使えないときは、想像力+手計算が有効な場合も)"
Windowsで不要なデータを除いたダンプを作成する
Windowsで不要なデータを除いたダンプを作成する
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、delete [] p; のようなコードで例外発生していた。 ダンプ解析経験者なら皆ご存じの通り、メモリ開放中の例外は解析が困難なことが多い。(原因箇所よりも後で例外発生のため、原因箇所が確定しづらい) ただ幸い今回は原因箇所と例外発生が近かったため、比較的スムーズに解析できた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ヒープではなくスタック侵犯だと、カナリア検出で例外発生となるはずだが、関数フレームも壊れている可能性が高いため、解析はかなり困難になる。 (とはいえ、(カナリアなしで)存在しないメモリ番地に飛んで落ちるよりはマシで、命令アドレスは一応見える、はず)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみにVCライブラリのカナリア処理は、例外ハンドラ登録(SetUnhandledExceptionFilterで登録した関数)に遷移せずに強制終了するコードになっている。 (IPMsg/FastCopyではここにメモリ上でパッチを当ててダンプを出してから強制終了するようにしている)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "といったことを書くと、未だにメモリ管理で消耗してるの?とか煽られる時代になった気も…いや、それはそれで正しいんですが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Wine上で作成されたミニダンプがVisualStudioでそれなりに見える。"

Minidump Files (Windows)
MINIDUMP_TYPE enumeration (Windows)
ReadProcessMemory 関数
クラッシュ ダンプの分析
メモリ ダンプ ファイルを生成する方法について | Ask CORE
OCA ミニダンプ ファイルをデバッグする - Windows 10 hardware dev
Using WER (Windows)
クラッシュが発生した場合に、Windows によって作成された最小メモリ ダンプ ファイルを読み取る方法
Windows でシステム障害と回復のオプションを構成する方法
クラッシュ後 Windows でメモリ ダンプ ファイルが保存されない
Windows Server 2003 でカーネル ダンプ ファイルや完全メモリ ダンプ ファイルを生成する方法
シンボルを使用したデバッグ
Windows シンボル パッケージのダウンロード - Windows ハードウェア デベロッパー センター
Symbol Files (Windows)
DBG ファイル
Windows ベース システムでは、NMI を使用して、完全なクラッシュ ダンプ ファイルまたはカーネル クラッシュ ダンプ ファイルを生成する方法

ブルースクリーン

本の虫: Old New Thing: ブルースクリーンを書いた人間は、まあ、僕さ
クラッシュ・ダンプ - マイクロソフト系技術情報 Wiki
@IT:Windows TIPS -- Tips:障害調査用のメモリ・ダンプを無効にする
一方、ふうえんさんちでは… メモリ異常によるブルースクリーンの対処法
WinDbg
デバッグにあると便利なシンボルとは? - Web/DB プログラミング徹底解説
DBGファイルを活用する方法
なかのん&マジックさんのツイート: "とりあえず、BSODはドライバが原因の場合は、どれがクラッシュしたのかの情報を明示して欲しい。「最近、追加したハードウェア、または更新したソフト」みたいな文言は、自動アップデートが当たり前な昨今、ナンセンス。"
なかのん&マジックさんのツイート: "BSODの画面上デザインを変更するときに、なんで、根本的に分かり易いエラー内容表示にしようとしなかったのか、割と不思議に思ってる。"

マルチスレッド

Windows C++ マルチスレッドアプリケーション デバッグ法 | Wander Alone Like A Rhinoceros Horn
めんどうくさいSQL Serverのデバッグ (1/2):EnterpriseZine(エンタープライズジン)
gdbでのマルチスレッド処理のデバッグや制御について - 千里霧中
(第22回)GDBのスレッド対応(その5:スレッド切替えとまとめ)
Debugging with GDB: 5.4 マルチスレッドプログラムの実行停止と実行再開
Debugging with GDB - 停止と継続

マルチプロセス

Debugging with GDB - GDB配下でのプログラムの実行
Debugging with GDB: 4.11 forkするプログラムのデバッグ
既に起動しているプロセスをgdbで制御する:Geekなぺーじ
マルチプロセスデバッグと資源割り当てで思いを馳せる | Everyday Deadlock

kdump

kdumpでダンプを取得する方法
26.2.3. コマンドライン上で kdump の設定 - Red Hat Customer Portal
第26章 kdump クラッシュリカバリーサービス - Red Hat Customer Portal
第1回「 kdump ノススメ」 | NTTデータ先端技術株式会社
カーネルダンプ出力設定メモ - Qiita
kdump
CentOS 6 で kdump の設定をしてみた | 黒ぶちメガネのblog
◇Kdump(CentOS6)◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆
kdump (Linux) - Wikipedia
Kdump - ArchWiki

POSIX

Solarisでいきましょか? -クラッシュダンプ(PANIC)-
ダンプ解析講座 ~第3回 ダンプの構造~ | VA Linux Systems Japan株式会社
Executable and Linkable Format - Wikipedia
Tips ELFフォーマットその1 ELFフォーマットについて
gdb - ELF core file format - Stack Overflow
Anatomy of an ELF core file - /dev/posts/
A brief look into core dumps
Man page of CORE
core(5) - NetBSD Manual Pages
How to read/write memory in an external process
Microsoft/ProcDump-for-Linux: A Linux version of the ProcDump Sysinternals tool

Android

Crash Fast: Androidのクラッシュに対するSquareのアプローチ
Google – www.developer-plus.com
xuningjack/JCrash: Android自定义异常处理模块(Based on KSCrash)

Java

システムのクラッシュ
JVMのクラッシュ
ポストモーテム診断ツール

ストレートマップ

魔術師見習いのノート

Wikipedia

Memory corruption - Wikipedia
コアダンプ - Wikipedia
Core dump - Wikipedia
クラッシュ (コンピュータ) - Wikipedia
ブルースクリーン - Wikipedia
Blue Screen of Death - Wikipedia

GitHub

pd: process dump
glmcdona/Process-Dump: Windows tool for dumping malware PE files from memory back to disk for analysis.

Twitter

その他

Fadisさんのツイート: "Linuxカーネルにクラッシュしたとき代わりのカーネルを上げてデバッグする仕組み(kdmup)があるようにsystemd死んだら死んだとき用systemdが上がってくる必要がありそうなヤツだ…"
ぶんちょうさんのツイート: "次鳥小屋作るとしたら、どう考えてもwebサーバーがsandboxのwsサーバーのアドレスと認証キー返すようにして、ブラウザはそこに繋ぎに行くだけの設計にするんだよな"
メモリダンプと模様が見える男|kamezawa.hiroyuki|note
Makoto Kato ︎︎さんはTwitterを使っています 「MSのPermier Supportだと一日数本ダンプ解析の依頼来てたけど (今はしらない)、ジュニアなエンジニアに解析させると、わからないのに頑張って調査しようとするから、あれをジュニアな人たちにやらせるのはそんなに良くないんだよな。個人的にはダンプ解析なんてジグソーパズルみたいなものですよ。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「NとかFとかHとかが中途半端に解析してきたログを見ると、半分以上見当違いな調査してて、まぁなんというか、センス問われる」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「というかWindowsでもそうだったけど、論理的な原因理由がないとクラッシュダンプの痕跡だけだと、直さないの普通じゃない?日本のパートナー企業はそういうところで変なこと言い出して揉める印象」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「もちろん政治的に揉めた案件とか、信頼できる人からの修正リクエストだと、必ずリジェクトされることではないが。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「ただダサすぎな例外もあって、組織として (WinDiv) 、クラッシュレート下げろっていう指令がトップダウンで落ちてした時なんて、よくわからないワークアラウンドコードが入ったりしてた」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "WinFsp(Windowsファイルシステムプロキシ)、Windows版Fuseの一種らしいが、実用レベルで使えている印象。 https://t.co/eNNuJ4AUF7 (ドイツから、FastCopyに例外が出るという連絡で知った)"
Main | WinFsp
billziss-gh/winfsp: Windows File System Proxy - FUSE for Windows
Shirouzu Hiroaki(白水啓章)さんのツイート: "ダンプ解析したところ、WNetGetUniversalName が成功を返しているのにlpUniversalNameがNULLなのが原因。 WinFspの互換性が微妙に足りていないのか、WNet系に渡せないという意味で意図的にNULL?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ともあれ、こういう類の解析は嫌いじゃないなぁ。 次のバージョンから、ミニダンプも入れる予定。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「例外ダンプは無駄にスカスカなので、zlib圧縮化。 8MB -&gt; 0.9MBと約1/9くらいに。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「このバージョンから例外ダンプをzlib圧縮したので、1MB未満になることが多くなるはず。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「内部エラーが検出された時は、「内部エラーが発生しました」などを表示するより、安全にクラッシュさせてdumpを送ってもらった方が良いな。 (滅多にある話ではないけれど)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「プログラマーの特性として、クラッシュはつい禁忌しがちだけど、自前ダンプ機構を実装しているときは意識を変えたほうが良さそう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「確実にクラッシュさせる方法についての議論。 Redisは *(char*)-1 = 'x'; らしい、、、正確には未定義かもだが、現実的なコードと。 https://t.co/1oQ24rkm74」 / Twitter
What is the easiest way to make a C++ program crash? - Stack Overflow
蒲地 輝尚さんはTwitterを使っています 「@shirouzu これほんとそうですね。例外をつかまえてエラーメッセージを表示するほうがユーザーにとっては親切かと思うんですが、クラッシュダンプがないと例外の本当の原因がわからないままになってしまう。そして開発者に通知されることもなくいつまでも残ってしまう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tkmc そう思います。 Windowsだとダンプ出力の送付は、ユーザにおまかせ(メール等)という感じなのですが、Android/iOSは送信する仕組みがあるのでしたっけ。」 / Twitter
蒲地 輝尚さんはTwitterを使っています 「@shirouzu ユーザーが診断情報の提供に同意していれば、クラッシュ時の状況が自動送信されます。Androidはこれがないととてもデバッグしきれませんでした。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tkmc それいいですね。Windowsにも搭載して欲しい…」 / Twitter
市川 真一さんはTwitterを使っています 「@shirouzu @tkmc 法人なら WER が使える可能性がありそうですが、書籍「Advanced Windows 第5版 下 第26章 エラー報告とアプリケーションの回復」に書かれています。利用経験がないので、今でも使えるのかは不明ですが: Windows Error Reporting - Win32 apps | Microsoft Docs https://t.co/KaOtfJd86g」 / Twitter
Windows Error Reporting - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tenpoku1000 @tkmc ありがとうございます。 あのレポートシステムは、MSしか使えないかと勘違いしてました。」 / Twitter
蒲地 輝尚さんはTwitterを使っています 「@shirouzu @tenpoku1000 これでデバッグが捗る! ^^」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++ だと __debugbreak() を使うのが良いかも。 (例外コードが int3 ... 0x80000003 になり、SEGVの 0xC0000005 と間違わずに済む) https://t.co/tQf6IPaSEl」 / Twitter

@vyv03354

vyv03354さんのツイート: "@piro_or Cu.crashIfNotInAutomation(); で、Mozillaの自動テスト環境以外なら「安全に」(メモリ破壊を起こさず)クラッシュさせられます。"
vyv03354さんのツイート: "Firefox 62からabout:crashparentとabout:crashcontentが追加されて、さらにお手軽にクラッシュさせられるようになりました。 https://t.co/VqsGtkKKYQ… "

@rockridge07

Rockridgeさんのツイート: "Firefoxのクラッシュ率を分析・比較するMission Controlは、現在も開発中。2018年後半に正式版へ。参照:https://t.co/qXKKoCRgB0 / “Mission Control update” https://t.co/LLhyatSRac"
Rockridgeさんのツイート: "Mozillaが測定しているFirefoxのクラッシュ率は、検知したクラッシュ数をアクティブな利用時間で割って算出しているらしい。Android版は利用時間が少ないため、デスクトップ版と率を比べるのが困難だという。 / “Fir…” https://t.co/j9zbp45uKr"
Rockridgeさんのツイート: "Mozillaはユーザーからのデータ収集を必要最小限にとどめ、データを収集する場面ではユーザーに通知し、収集したデータはきちんと保護するという。 / “Lean Data Practices — Mozilla” https://t.co/R2QpFKzoGn"

@satoru_takeuchi

satさんのツイート: "「ハードが悪い」って、言葉にすると簡単なんですが、サポートからしたら重い言葉です。直接ハードが犯人である証拠は掴みづらいので、だいたいは「ソフトではありえない」という方法で証明する必要があります。これがかなりつらい"
satさんのツイート: "さらにハード屋さんに通じる言葉(たとえば論理CPU番号でなくLAPIC ID、とか)でボールを渡さなきゃいけない、とか。その後ハード交換しても再発したら交換したハードの原価と工賃をドブに捨てることになりますし、「おい、話が違うやんけ」となって泥沼"
satさんのツイート: "体感ではカーネルパニックの殆どはソフト(カーネル)バグで説明付きましたね。メモリを含む「ソフトではありえない。これはハードだな」ってケースはかなり珍しい"

@jeffi7

Taisuke 'Jeff' Inoueさんのツイート: "これが組み込みになると「ごめん、ハードやったわ、リメーク、リメーク。あ、ワークアラウンドこれね。」ってのがそこそこの頻度であるので(ry… "
Taisuke 'Jeff' Inoueさんのツイート: "スマホとか競争が激しくて先を争って新しいハードを積むやつは、チップセットもボードも、従ってBSPやドライバも、ほんでOSもみーんな新規だったりするので、枯れてるのはカーネルくらい。低レベルがおかしいってなったら、ハード屋とソフト屋ががーっと集まって一緒にデバッグしてましたね。… https://t.co/PsrMiMaTgX"

@d_toybox

sanonosa(インフラエンジニア)さんのツイート: "経験的に、OSのブルースクリーンやカーネルパニックはメモリ故障起因が多い。CPU使用率いきなり100%継続はストレージまわり起因。NIC link upがいきなり1Gbpsから10Mbpsとかに落ちるのはLANケーブル不良起因。この手の話しをうまく本に収めたいけどうまく書けなくてつらい。"
なかのん&マジックさんのツイート: "私の経験では、BSODはドライバのバグも多い。"
なかのん&マジックさんのツイート: "クラッシュしてる理由は納得だけど、nsIFrameのアドレスが全ビット1になってるの、どういう状況なんだっけ。 / [@ mozilla::PresShell::EventHandler::EventTargetData::SetFrameAndComputePresShell] - Firefox 67.0 Crash Report https://t.co/O2BygMnkGZ"
[@ mozilla::PresShell::EventHandler::EventTargetData::SetFrameAndComputePresShell] - Firefox 67.0 Crash Report - Report ID: 1890d652-b339-4bf5-bfa9-b44560190605
Makoto Kato ︎︎さんのツイート: "ハードウェアエラーによるビット化けかUse After Freeかと… "
なかのん&マジックさんのツイート: "確かnsIFrameのインスタンスはPresShellが用意してる広大なエリア上に確保されるんで、delete時にわざわざビット立ててるかもしれないんですけど、そのコードをまだ発見していないんですよね(セキュリティのために元データを消してしまう話があったような)。… https://t.co/eClb9YWEoL"

@mhiramat

まさみさんは語りたいさんのツイート: "うッ・・・新人の時に最初に担当したカーネルロックアップ(しかもしばらくしたら復帰する)が、どうやって調べても当時最新技術だったHTが絡んでいたのではないかというトラウマが。(タイミングよく全スレッドでSpinlock取り合うと、関係ないロック同士でも動作がめちゃくちゃ遅くなる)"
まさみさんは語りたいさんのツイート: "まあ、あんなにハードウェア由来の問題だったのはあとIA64サーバで起きたロックアップ問題ぐらいだし、初物のハードウェアは老舗であっても問題が多いっていうことですね。"

障害の事後分析を読んで得た教訓 ― 「何がシステムを停止させるのか?」 | 開発手法・プロジェクト管理 | POSTD
Go言語のトラブルシューティング機能 // Speaker Deck
エラーレポートツール - LibreOffice Help
暗号屋から見たEメールの死について(EFAIL解説) - そんなことはさておいて
Webシステムへのアクセス集中時に処理要求を待ち行列で管理するWebアクセス制御システム「WebLobby」を発売|日立ソリューションズ((旧)日立システムアンドサービス)
iOS13にバグが多い理由、元Appleのソフトウェア技術者が語る - iPhone Mania
Linux 版の Sysinternals ProcDump を試す (1) - hibomaの日記
Linux 版の Sysinternals ProcDump を試す (2) - hibomaの日記
Windows の予期しない再起動が発生した原因について | Microsoft Docs
イベント ID 41 に関する高度なトラブルシューティング-"システムは、最初に正常に起動していない状態で再起動しました" | Microsoft Docs
メモリダンプの模様とはどのようなものなのか(入門編) - 覚書
第673回 カーネルのクラッシュ情報を取得する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第674回 カーネルのクラッシュ情報を解析する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

SEH

MS

例外処理 (x64)

例外処理 (x64)

例外処理とデバッガー サポートのためのアンワインド データ

例外処理とデバッガー サポートのためのアンワインド データ
構造体 RUNTIME_FUNCTION
構造体 UNWIND_INFO
構造体 UNWIND_CODE
チェーン アンワインド情報の構造

アンワインド プロシージャ
言語固有のハンドラー

MASM のアンワインド ヘルパー

MASM のアンワインド ヘルパー
生の擬似演算
MASM マクロ
スタック割り当て
動的なパラメーター スタック領域の構成
関数の型
malloc アライメント
alloca

C でのアンワインド データの定義

Visual C++ での例外処理
C++ 例外処理
構造化例外処理 (C/C++)
Structured Exception Handling Functions (Windows)
Structured Exception Handling Structures (Windows)
RtlUnwindEx function (Windows)
Masaru IritaniさんはTwitterを使っています: 「今日は同僚の方に Stowed Exception について教えてもらいました。記録されたときにはもう居ない、幽霊のような例外ですね。運が良ければ手掛かりが掴めるかも、と…… https://t.co/mQ5hmLZ8KL」 / Twitter
Stowed Exception C000027B | Inside Show | Channel 9

x64

Vectored Exception Handling

Vectored Exception Handling (Windows)
Using a Vectored Exception Handler (Windows)
Windows ベクトル化例外処理 (ベクタ例外処理, VEH) - Web/DB プログラミング徹底解説
GCとか継続とか例外処理とか | 日々の反省1
W64.Shruggle.1318 | シマンテック 日本

Exploring the x64
www.ffri.jp/assets/files/research/research_papers/psj10-murakami_JP.pdf
16.2. win64 Structured Exception Handling
X64 の TrapFrame は信用できない? - Beyond the Basics - Windows Debugging & Troubleshooting Blog - Site Home - TechNet Blogs
japanese.sugawara-systems.com/systemverilog/movement_to64.htm
X64 Deep Dive - moon-walker's tech blog
Makoto Kato ︎︎さんのツイート: "Windows x64とかarm/aarch64のehabiなら例外はunwind infoからスタックがとれるのにね。。。今時じゃないABIは。。。"
Makoto Kato ︎︎さんのツイート: "dwarfいらず"

x86

SEHOP・EMET

Preventing the Exploitation of Structured Exception Handler (SEH) Overwrites with SEHOP – Security Research & Defense
SEHOP per-process opt-in support in Windows 7 – Security Research & Defense
SEH_Overwrite.pdf
EMETReport.pdf
Application Compatibility Database - Google 検索
www.ffri.jp/assets/files/monthly_research/MR201307_Investigation_into_EMET4.0_JPN.pdf
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~番外編SEHOP~ « 他人の空似
EMET 4.0/4.1のSEHOPおかしくね? - Togetter
Nothing but Programming: SEH and SEHOP 現在の疑問
SEH and SEHOP 現在の疑問 とりあえず解決? | JugglerShu.Net
WindowsでEMETを回避するシェルコードを書いてみる - ももいろテクノロジー
Microsoft、脆弱性緩和ツール「EMET」の開発を終了 - 窓の杜
EMET の新しいバージョン V.2.1 をリリースしました! – 日本のセキュリティチーム
EMET は Windows 10 Defender Exploitation Guard へ統合されます – 日本のセキュリティチーム
EMET II のさらに先へ – Windows Defender Exploit Guard – 日本のセキュリティチーム
Enhanced Mitigation Experience Toolkit - Wikipedia
How to enable Structured Exception Handling Overwrite Protection (SEHOP) in Windows operating systems
Bypassing SEHOP
Bypassing SEHOP

/SAFESEH (安全な例外ハンドラーがあるイメージ)
C言語系/memos/VC++/11, 構造化例外処理と"/SAFESEH"リンカオプション - Glamenv-Septzen.net
15.2. win32: Safe Structured Exception Handling
Nothing But Programming - SEH
A Crash Course on theDepths of Win32 Structured Exception Handling, MSJ January 1997

C++

C 関数を通過する例外

herumiさんのツイート: "yupo5656さんの記事は大昔読んだことあります。 でも何年か前に試したときは動くようになってました。 https://t.co/dlq1b8gKsS 今試したらyupo5656さんのコードも落ちないようです(gcc-7, clang-6.0)。 https://t.co/XH6ke51Hnr"
misc/cpp/throw_in_c at master · herumi/misc
yohさんのツイート: "#nakamecpp で @herumi さんが言及してたC関数を例外通過する件 https://t.co/htNaOeUAVO https://t.co/pNgUzZwXUe GCCでも明示的に-funwind-tables指定が要るような気はするけどどうだろう"
herumiさんのツイート: "Visual Studio 2017だと/EHaオプションでCの関数内で呼んだC++関数のthrowをcatchできました。"
herumiさんのツイート: "どの程度のcallbackを想定されていらっしゃるのかわかりませんが、 https://t.co/dlq1b8gKsS のu.cpp, v.c, w.cpp程度のcallbackは動きました。 https://t.co/mKqYU5BETm"
misc/cpp/throw_in_c at master · herumi/misc
にゃははー仙人さんのツイート: "動きましたというのはabortせずにということですよね?考えてたのはまさにextern "C"でリンクするのではなく、関数ポインタを渡すようなものです… "

Twitter

Fadisさんのツイート: "C言語のerrnoはその場で見なければ失敗が無視されるから拾っていなければ直ちに不具合だけど、C++の例外をその場で拾うべきかどうかは、その場で起こった問題からの回復が可能かどうかに依る。bad_allocする状況は多くの場合回復不能な状況だからそのままabortするしかないケースは少なくない"
Fadisさんのツイート: "あと、bad_allocを拾って標準出力にデバッグ情報を書こうとするマンは、メモリが全く確保できない状況でそれを行うと何が起こるかについて少し考えてみてほしい。bad_allocが飛んできた時にできることは本当に少ない"
Ryou Ezoeさんのツイート: "メモリ確保失敗したときにできるのは実質terminate()だけなんだからterminateしようぜ、メモリ解放とかはアロケーターに仕込んどくべきだろとウォルターブライトが言っていたな。… "
オスツ🍣さんのツイート: "うおおおお、2 週間ぐらい超悩んだ、なぜか C++ の例外が AArch64 で GCC 5/6 では動かなくて、7 では動くという問題。最終的に __builtin_eh_return が異常挙動という所まで追い詰めで、GCC のソース差分見て、7 では omit-frame-pointer 時でも強制的に fp を埋め込むというハックが入ったことを発見"
Ryou Ezoeさんのツイート: "例外を一部の場合にゼロオーバーヘッドにすりゃお前ら使うだろという提案。 https://t.co/2nH5hQlHyd"
p0709r1.pdf
Ryou Ezoeさんのツイート: "例外がゼロオーバーヘッドの原則を満たすようになれば無効化されないしみんな使うだろうという考えのもと、特別な整数型ならばreturnで戻してif文で比較するのと同じパフォーマンス特性にしてしまおうという提案。"

C++ 例外処理と構造化例外処理 (1) - Web/DB プログラミング徹底解説
C++ 例外処理と構造化例外処理 (2) - Web/DB プログラミング徹底解説
VC++構造化例外メモ(Hishidama's VC++2005 SEH Memo)
How a C++ compiler implements exception handling - CodeProject
LLVMで例外を実装するには - 近&況
Exception_basic_struct
本の虫: C++に提案されている静的例外

Wikipedia

Microsoft-specific exception handling mechanisms - Wikipedia
例外 - Wikipedia
コールスタック - Wikipedia
例外処理 - Wikipedia

Twitter

渋川よしきさんのツイート: "これ、昔から超思ってた。例外、存在自体が矛盾してるしてる。 https://t.co/9CqtCKFZWh"
渋川よしきさんのツイート: "例外を「設計」した段階でそれは「例外」ではなく「想定の範囲内」になってしまうという論理的矛盾。"
渋川よしきさんのツイート: "例外処理の説明の時に、だいたい「例外==想定外」とか書かれていることが多いのが良くない。正常ケース、非正常ケースなら分かる。"
渋川よしきさんのツイート: "例外について考えていたこと、例外のパラドックスという名前がついていた。 https://t.co/6ocDMQZx5f"
Fadisさんのツイート: "例外はその例外からの復帰が可能なレイヤーでcatchするんだよ。握り潰して失敗をなかった事にされても困るし、起こった問題から復帰させるべきレイヤーを超えて中の実装を知らないレイヤーに例外が届いても困る。本当に誰の手にもおえない例外が飛んだ場合は、そのままabortさせるのが多くの場合正しい"
Fadisさんのツイート: "あと正常系で例外が飛ぶような作りにしてるとgdbを使う時に発狂するから例外は文字通り例外的な状況で飛ぶようにしておいた方がいい"
Makoto Kato ︎︎さんのツイート: "Windows x64とかarm/aarch64のehabiなら例外はunwind infoからスタックがとれるのにね。。。今時じゃないABIは。。。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "むむ、VC6だとSEGV系もtry/catch出来ていた記憶があるのだが、少なくともVS2017では__try/__exceptを使ったWin32構造化例外を明示指定しないとキャッチできない様子。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SEGVが例外の枠組みで処理できるのは、一部状況ではとても助かる。 gccの場合、-fnon-call-exceptions で同様の動作が可能。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、try/catch + -fnon-call-exceptionsの場合、throw "sigsegv" 等を記述したsigfuncをSEGV等に紐づけておく必要あり。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2017ではコンパイルオプションの /EHa、GUIだと「C++の例外を有効にする」を「はい - SEHの例外あり」を選べば良かったらしい。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「一部状況」というのは、こちらの手出しできない、標準モジュール内SEGVに暫定対処したいとき。 (例えば、INetFwProductというOS標準COMモジュールの呼び出しが、稀な環境で内部SEGV発生とか)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2005以降だったか、スタック破壊を検出した場合、CRT(の __raise_securityfailure関数)で、登録ハンドラを意図的にキャンセル(例外ハンドラをNULLに再セット)して強制終了させている話ですね。… "
yoh2さんのツイート: "WindowsはスタックオーバーフローでC++の例外と統合された構造化例外すっ飛ばしたり、MFCのCStringがprintf系の %s に渡されても動いたり、thisがnullptrで非virtualなメンバ関数呼び出せたりとなかなかやりたい放題ですよねw"
yoh2さんのツイート: "Windowsのスタックオーバーフローで例外すっ飛ぶってやつから、スタックを消費する関数は決してnoexceptを付けられないんじゃないかという疑問もわきそうだけど、これに関する私の見解は以下の通り。 その例外を考慮したい: noexcept は諦めてね 考慮しない: SO時は未定義と覚悟してnoexcept付けよう"
Shirouzu Hiroaki(白水啓章)さんのツイート: "これは g++ 等でも同じではないのかしらん? > thisがnullptrで非virtualなメンバ関数呼び出せたり"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでは、__raise_securityfailure(staticリンク)の一部に動的にnopを入れて、キャンセル動作を抑止している。(なお独自ハンドラはMiniDumpを吐いて終了するもの) https://t.co/nBDLF22Egp"
FastCopy/tmisc.cpp at 72655443c775af09a69cc2fd2aa6a602b4d987c9 · shirouzu/FastCopy

C#機能: Deferredエラー処理
構造化例外処理と UnhandledExceptionFilter - Web/DB プログラミング徹底解説
構造化例外処理 ~ 例外情報の取得 - Web/DB プログラミング徹底解説
Super Technique 講座~longjmpと例外
Center CLR Try!開発 #2 – kekyoの丼
Windows における例外ハンドリング - @a4lg の準技術的日記 (See Left side for My Twitter Link)
Windows における例外ハンドリングとか 64-bit プロセス固有のあれそれとか - NyaRuRuが地球にいたころ
SHIROUZU Personal Log(2016-10-18)
won't fix: llvmとrustにおけるWindows/aarch64のサポート
スタックオーバーフローのハンドリング (Stack Overflow Handling)
構造化例外のフィルタ処理(C++) - RAD Studio
.NET非同期処理(async-await)と例外の制御 – kekyoの丼
Exception Handling in LLVM — LLVM 12 documentation

MS

Winternl - Win32 apps | Microsoft Docs
Calling Internal APIs - Win32 apps | Microsoft Docs
Getting the Active Console Session ID - Win32 apps | Microsoft Docs
Getting the Session ID of the Current Process - Win32 apps | Microsoft Docs
TlsGetValue function (Windows)
GetModuleHandleExA function (libloaderapi.h) - Win32 apps | Microsoft Docs
LoadLibraryExA function (libloaderapi.h) - Win32 apps | Microsoft Docs
GetProcAddress function (libloaderapi.h) - Win32 apps | Microsoft Docs
FreeLibrary function (libloaderapi.h) - Win32 apps | Microsoft Docs

Thread Environment Block

Win32 Thread Information Block - Wikipedia
svchost.exe - Wikipedia
TEB (winternl.h) - Win32 apps | Microsoft Docs
Thread Environment Block (Debugging Notes) - Win32 apps | Microsoft Docs
PEB / TEB の覚書 - Windows 2000 Blog
Win32デバッグ(12)・・・SEH(Structured Exception Handling): vanillaの日記
ASCII.jp:Windowsのメモリー管理をx86の仕組みから読み解く (3/4)|基礎から覚える 最新OSのアーキテクチャー
WinDbg - マイクロソフト系技術情報 Wiki
デバッグメニュー デバッガ

Process Environment Block

PEB (winternl.h) - Win32 apps | Microsoft Docs
PEB_LDR_DATA (winternl.h) - Win32 apps | Microsoft Docs
Process Environment Block - Wikipedia
他プロセスのメモリを読む(C++編) - # riosu's memo
Windowsプログラミングそこそこ役に立つサンプル集-[API-ReadProcessMemory]
スライド 1 - MR201312_History and Current State of Heap Exploit_JPN.pdf
デバッガ検出技術:PEB.BeingDebuggedFlag:IsDebuggerPresent() - Log.i53
アンチアンチデバッギング #LT駆動

リバースエンジニアリング入門

シェルコードから始めるマルウェア解析 (1/2):リバースエンジニアリング入門(1) - @IT
コツ? 開発者の立場になって考えることさ! (1/2):リバースエンジニアリング入門(2) - @IT
シェルコード解析に必携の「5つ道具」 (1/3):リバースエンジニアリング入門(3) - @IT
Undocumentedなデータ構造体を知る (1/3):リバースエンジニアリング入門(4) - @IT
Undocumentedなデータ構造体を知る (2/3):リバースエンジニアリング入門(4) - @IT
Undocumentedなデータ構造体を知る (3/3):リバースエンジニアリング入門(4) - @IT
PEフォーマットを解釈せよ! (1/3):リバースエンジニアリング入門(5) - @IT
PEフォーマットを解釈せよ! (2/3):リバースエンジニアリング入門(5) - @IT
PEフォーマットを解釈せよ! (3/3):リバースエンジニアリング入門(5) - @IT
API名のハッシュ化テクニックを理解せよ! (1/3):リバースエンジニアリング入門(6) - @IT
API名のハッシュ化テクニックを理解せよ! (2/3):リバースエンジニアリング入門(6) - @IT
API名のハッシュ化テクニックを理解せよ! (3/3):リバースエンジニアリング入門(6) - @IT
SQL Slammerのコードを解析せよ! (1/3):リバースエンジニアリング入門(最終回) - @IT

Twitter

Kazuho OkuさんはTwitterを使っています 「Userspace DTrace だったり、一部命令を書き換えて動的にログ出力・解析するのが流行だと思ってる(自分がやってるだけ、とも言う)」 / Twitter
渋川よしきさんはTwitterを使っています 「printデバッグを「低レベルなデバッグ手法」みたいに扱うのはやめた方が良いというか、クラウドとか分散システムとかが増えてきて、適切なprintデバッグ手法の確立を進めた方が良い気がしている(GCP Cloud Debuggerとか、VSCodeのリモート開発みたいな変態技術はおいといて)」 / Twitter
MURAOKA TaroさんはTwitterを使っています 「printfデバッグができるのは深い理解があってこそなんだよな。ビジュアルデバッガーは大量のシンプルなバグを直すには向くけど、そのせいで浅い理解に留まる傾向にあるように見える。もっともバグの大多数はシンプルなやつなのでそれで良いとも言えるけど。 まれにある複雑なのに手が出なくなる。」 / Twitter
渋川よしきさんはTwitterを使っています 「デバッグだけでなく、どの情報を出すかの選択とか、本番環境のログ設計にもシームレスに繋がるようなprintデバッグ道みたいなのがある気がしてる。」 / Twitter

LIST_ENTRY の仕組みと利用方法 - Web/DB プログラミング徹底解説
LIST_ENTRY に関するデバッグコマンド - Web/DB プログラミング徹底解説
Windows の内部動作 - Web/DB プログラミング徹底解説
Reflective DLL Injection | すなのかたまり
msmania/procjack at 1.0
Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
Windowsで電卓を起動するシェルコードを書いてみる - ももいろテクノロジー
黒翼猫のコンピュータ日記 2nd Edition:2017年07月21日 - Windows 2000 Blog
CTF writeup 2|岸辺の旅
SHIROUZU Personal Log(2016-11-01)
GetProcAddress を書く手間を減らすあれそれ - NyaRuRuが地球にいたころ
kobaさんはTwitterを使っています 「@kotatsu_mi そんなとき -Og はいかがですか。デバッガに支障が出ない範囲で最適化するというものです。 gccのドキュメントではここ。clangでも同様のオプションがあるはずです。 https://t.co/dzahH8dQoE」 / Twitter
Optimize Options (Using the GNU Compiler Collection (GCC))

左再帰

6.pdf
手書きLLパーサにおける左結合性を持つ演算子の左再帰をループで解決する - ふるつき
4.pdf
compiler_04.pdf
左再帰 - Wikipedia
再帰下降構文解析の間接左再帰の除去方法について具体的な方法... - Yahoo!知恵袋
chainl の正体 - ksmakotoのhatenadiary

浮動小数点数

その他

ビットで表す数字の世界~浮動小数点編~
浮動小数点数について本気出して考えてみた - 一から勉強させてください( ̄ω ̄;)
【5分で覚えるIT基礎の基礎】ゼロから学ぶ2進数 第4回 | 日経 xTECH(クロステック)
浮動小数点数型と誤差
浮動小数点計算の基本的事実 – 「浮動小数点数は実数ではない」ということ | POSTD
浮動小数点
浮動小数点数は実数ではない | プログラマが知るべき97のこと
電子工作
浮動小数点数型
浮動小数点数の内部表現(IEEE)
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
浮動小数点数内部表現シミュレーター - instant tools
PEZY-SC2上における倍々精度Rgemmの実装と評価
Comparing Floating Point Numbers, 2012 Edition | Random ASCII – tech blog of Bruce Dawson
Ryu: Fast Float-to-String Conversion
ちょっとだけ怖い三角関数のはなし
WDM ドライバーでの浮動小数点の使用 - Windows drivers | Microsoft Docs
Boost math constantsの変遷記録 - in neuro

NaN boxing

複数精度の浮動小数点を取り扱うための手法NaN Boxingについて - FPGA開発日記
NaN boxingとsizeof(mrb_value) - mirichiの日記
NaN boxing - 枕を欹てて聴く
NaN Boxingというテクニックを知った
mrubyのJITの64bit対応 - Qiita
3. NaN-BoxingによるJavaScriptの最適化 | CodeLunch.fm
C#でNaN Boxing - RoundWide Systems

言語

PHP: 浮動小数点数 - Manual
Go言語の浮動小数点数のお話
マシンの中のリアル : Dの浮動小数点数 - プログラミング言語 D (日本語訳)
Java 入門 | IEEE754 浮動小数点数表現
JavaScript:float32による小数演算最適化 | ψ(プサイ)の興味関心空間
ECMAScriptの浮動小数点数の丸め仕様がスゴい - hnwの日記
nan("is Not-a-Number") - yohhoyの日記
浮動小数点数比較マクロ - yohhoyの日記
sqrt(dx*dx + dy*dy)とhypot(dx, dy) - yohhoyの日記
だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数の曖昧な比較」の適切なやり方はケースバイケースなので、言語標準でそういう関数や演算子が提供されていても考えなしで使ってはいけない。」 / Twitter
yhara (Yutaka HARA)さんはTwitterを使っています 「浮動小数点数から文字列への変換。Ryuというアルゴリズムがあるのか / 1件のコメント https://t.co/7yZxeJ5xiu https://t.co/OrG1TP67qr」 / Twitter
[B! rust] https://crates.io/crates/ryu/
ryu - crates.io: Rust Package Registry
だめぽラボ@技術書典9さんはTwitterを使っています 「自作SML処理系での数学関数(Math.sinとか)のテストをどう書いたものか悩んでいたが、「MPFRで真の値±100ULP(適当)な区間を事前に計算して、テストコード中にその値を埋め込んで結果がその区間に収まっているか確認する」みたいなのが一番現実的な気がする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の数学関数は一部を除き厳密な等式が成立することは期待できないが、sinとcosを取り違えるようなやつは流石にテストで弾きたい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「libmを実装するわけでもないし「原点から遠いところでの三角関数」みたいなやつはテストしない。とは言ってもULP基準だと値が0に近い時にアレだな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数のunordered周り、何らかの方法で提供したいのはわかるけど言語組み込みの演算子で提供するほどじゃなかったね」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語ではisunorderedみたいなアルファベットからなる名前が使われている」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「使用するlibc (libm)がAlpine Linuxではmusl, Debianではglibcなのが差異の原因ではないかと思います。四則やsqrt等の一部の関数はいいのですが、sinやexpを含む多くの数学関数の精度はlibcの実装に依存します。」 / Twitter
ぜり (zeriyoshi)さんはTwitterを使っています 「何が原因なのかわからないけど -O0 の -fno-fast-math なのに Alpine Linux と Debian で倍精度浮動小数点の誤差が違って泣いてる gcc のバージョン違うけどなんか変わったんかな…」 / Twitter
えびちゃんさんはTwitterを使っています 「@mod_poppo これらの関数の精度に関して IEEE 754 ではどう規定されてるんでしたっけ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「@rsk0315_h4x この場合重要なのはIEEEよりもむしろC言語の規格の方で、C99のAnnex Fでは「sqrtやremainder等の一部の関数はIEEE準拠、他の多くについては精度を規定しない」としています。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「Cコンパイラにおける浮動小数点数の最適化 constA * variable / constB を (constA / constB) * variable に変換して constA / constB をコンパイル時に計算するって、一般的にやってくれるんでしたっけ? 何かできない理由があって、やらないんでしたっけ」 / Twitter
Seiya YazakiさんはTwitterを使っています 「@kazuho C99 でいうところの 5.1.2.3 で示されているような理由でしょうか。 参考: https://t.co/3UEmgGQtxc GCC, clang では -fassociative-math や -funsafe-math-optimizations 等でオプトインできた記憶があります」 / Twitter
FLP01-C. 浮動小数点式の演算の順序に注意する
Kazuho OkuさんはTwitterを使っています 「@saiya_moebius ありがとうございます。そのあたりがドンピシャでほしかった情報でした。」 / Twitter
mod_poppoさんはTwitterを使っています 「そもそも1/3は二進浮動小数点数では正確に表現できないのでアレという問題もあった。C言語のcbrt関数なら指数部の表現の問題を受けずに1/3乗できる。」 / Twitter

strtod

だめぽラボ@技術書典9さんはTwitterを使っています 「そのうち「十進小数から二進浮動小数点数への変換が(各種処理系で)何桁まで正しく行われるか試してみた」みたいなやつをやる必要があるな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「十進小数型がどっちのビット列表現を使っているか判断するプログラムも書きたいね」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「0x1.00000000000008pN の形の数の正確な十進表記と、それを若干ずらした物を手元の環境のstrtodに与えてみたが、用意した例については全て正しい丸めが行われた。意外」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「普通に十進変換しても800桁未満にしかならないので、もっと末尾の 000...0001 を長くして文字列長を稼ぐか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「MacもLinuxも(libcの)strtodが真面目に実装されすぎてて面白くねえ。一方MSVCは極端なケースで間違えてくれた(規格準拠の範囲ではある)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Cのstrtodは結構真面目に実装されていることがわかったので、他のプログラミング言語処理系も試すべきかな。といっても内部的にCを呼んでいたら同じことだけど」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数周りの関数が「真面目に実装されすぎてて面白くねえ」ってひどい言い草だな」 / Twitter

atof

文字列少数点数表記を IEEE754 倍精度浮動小数点数にエンコードする方法|Sukesan1984|note
きしもとさんはTwitterを使っています 「atof に関してはラスボスが居てですね……そこまで要求されることは普通は無いにしても https://t.co/bhnYhi2qdV」 / Twitter
Gauche:浮動小数点数をどこまで読むか
きしもとさんはTwitterを使っています 「このパターン、atof が実のところ一番簡単な use case で、2進小数でちょうど境界になる場合、「厳密に計算した後、正しく丸めた」結果を得るには、関数によってはどれだけ計算が必要か予め決められないとして、Table Maker's Dilemma と、カハン先生によって命名されています https://t.co/c2RfXrW9eB」 / Twitter
Introduction to the Table Maker's Dilemma
きしもとさんはTwitterを使っています 「@ksmakoto このテーブルというのはイケアで売ってるような木工とかのことではなくて、「数表」のことですが、余談ですが以前、数表に関してこんなツイートを見ました(2重丸めに注意という話)」 / Twitter

dtoa.c

島鉄雄さんのツイート: "libc を使わ(え)ない環境で strtod (古くは atof)が必要になった場合に、ネットにある GPL じゃない実装を比較検討したところ、1つ以外全部 glibc の strtod と結果が合わなかった。(要するに精度が悪い) 以下のページの this code のリンク先にある dtoa.c が唯一の解だね。 https://t.co/6R2VfOHHAI"
How strtod() Works (and Sometimes Doesn't) - Exploring Binary
https://www.ampl.com/netlib/fp/dtoa.c
rounding.pdf
島鉄雄さんのツイート: "コンパイルする時は $ gcc -c -DIEEE_8087 dtoa.c のようにする。 紹介したページの解説をみたり、this paper のリンク先の論文をぱっと見したりすると、strtod は素人が実装出来るしろもんじゃない事が良く分かる…"
島鉄雄さんのツイート: "Ruby も 2019/2 に strtod を dtoa.c のに変えたようだ。 (勿論 libc の strtod が有ればそっちを使うはず) https://t.co/J8Amrv3zv7"
History for missing/dtoa.c - ruby/ruby
島鉄雄さんのツイート: "Windows の場合は libc が msvcrt.dll になるけど、strtod の挙動は微妙に違うようだ。 なので、マルチプラットフォームなインタプリタを実装している場合は dtoa.c のものに統一する方がいいだろう。 インタプリタは strtod を使いまくるので、複雑な計算をした場合に OS 毎に結果が違う事態を防げる"
島鉄雄さんのツイート: "Rust や Go はセルフホストなので、strtod のような処理を自前で実装してるので見たところ、文字列→10進浮動小数(いわゆる decimal)→2進浮動小数(通常の double)としているようだった。 (ちなみに Rust のコードはぱっと見訳が分からないw Go は atof.go と物凄い分かり易かった) 続く"
島鉄雄さんのツイート: "先の論文も decimal → double へ変換する際の誤差を減らすというもののようだし、結局以下の事が言えそう。 ・double だけ使って実装された strtod は全てなんちゃっての可能性が高い ・セルフホストする言語を実装するには decimal を実装した方がいいだろう(浮動小数のパースに使う為)"
島鉄雄さんのツイート: "dtoa.c もざっと見てみると、必要最小限の10進浮動小数(のような?もの BigInt)が実装されていた。"

例外

Microsoft Visual c 浮動小数点の最適化 | Microsoft Docs
cfenv - cpprefjp C++日本語リファレンス
浮動小数点例外Cなぜそしてそれは何ですか。 - コードログ
HiPEとclangの浮動小数点例外 - Qiita
浮動小数点例外 - 数理計画用語集
浮動小数点例外
次のプログラムをコンパイルしたところ、”浮動小数点演算例外です... - Yahoo!知恵袋
浮動小数点例外の処理
浮動小数点例外処理 (-fpe) オプションの使用
実行したところエラーがでました - プログラマ専用SNS ミクプラ
概要: 浮動小数点例外の制御
浮動小数点環境 - cppreference.com
浮動小数点演算ではまった話 - bkブログ
整数除算のオーバーフローについて - やた@はてな日記
浮動小数点の最適化
WGC1 第4章 浮動小数点表現 4.6 浮動小数点の例外 - みちしるべ
Exception handling
ieee - 浮動小数点例外モードを設定

用語

浮動小数点数(フドウショウスウテンスウ)とは - コトバンク
浮動小数点演算(フドウショウスウテンエンザン)とは - コトバンク
IEEE 754 ‐ 通信用語の基礎知識

IEEE754

IEEE754 について
あちゃぴーの自転車通勤: 32-bit float IEEE 754 浮動小数点数について
IEEE754について。モダンなコンピュータはどのように少数を扱っているのか - Yabu.log
IEEE 754-2019 - IEEE Approved Draft Standard for Floating-Point Arithmetic
黒澤亮二さんはTwitterを使っています: 「浮動小数点の仕様IEEE 754が少し改訂されたらしい。2008年にも改訂されていて、ほぼ10年ごとのサイクル?2008ではdecimal floatの追加があったようだが今回はそこまで大きい追加はなさそう。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「2の補数表現以外の符号付き整数表現をするハードウェアは滅びたと思っていたが、IEEE-754の指数部ってoffset binaryなんだな。」 / Twitter
dif_engineさんはTwitterを使っています 「IEEE754はよく考えられた規格で,一見不合理だったり冗長だったりするように見える規則を捨てて実装するとたいていどこかおかしくなる. (高速化を目的として多くのチップメーカーがIEEE754の変形実装をしたけど,それで評判を落としたことが多い).」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@dif_engine だが一番普及してしまってるintel x87がカハン教授が加入する前の草案で見切り発車してクソ実装してしまったから。速い代わりに計算精度低くて、カハン教授のコンプラ試験ソフトでボロカスにエラー出る。」 / Twitter
dif_engineさんはTwitterを使っています 「Kahanさんがこの規格を作るのに相当貢献していたはず.Kahanさんの研究を無視した浮動小数点演算のクソ実装をするとこんなふうに(https://t.co/fwqZO7ttCV)処刑されます.」 / Twitter
JAVAhurt - JAVAhurt.pdf
IEEE 754-2019 浮動小数点の仕様書を購入 - FPGA開発日記
IEEE754-2019 メモ: 竹下世界塔の計算機よもやま話
セクスィ・ナカナカピエロさんはTwitterを使っています 「@Hishinuma_t @7danmoroboshi 現状の浮動小数点の精度 IEEE float64で不満がある方はdouble-double型で実装されたもの(long double)を使うのではなくIEEE float128 (binary128)を使うのが良いかと。浮動小数点の精度を上げるために積むのは徳ではなく、レジスタのビット数ですかね。笑。」 / Twitter
電子計算機の沼さんはTwitterを使っています 「訳:お前俺に浮動小数点の基礎を講釈した挙げ句,Double-double型じゃなくてIEEE754 binary128を勧めてくるとかどうなってんだ それとレジスタのビット数なんか積めるわけねえだろ何考えてんだ」 / Twitter
電子計算機の沼さんはTwitterを使っています 「&gt; double-double型で実装されたもの(long double) そもそもlong doubleはdouble-doubleじゃねえよ」 / Twitter
にゃんにゃん@日本に帰りたいさんはTwitterを使っています 「@NakanakaPierrot @Hishinuma_t float128をハードウェアサポートしてる環境がほとんどないからdouble-doubleを使うんですが、、、」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「HaskellでIEEE 754-2019準拠な浮動小数点演算を提供するライブラリーをHackageに上げた(基本的にRealFloatの範疇でやっているので一部制限あり) https://t.co/EDnHsvbog3」 / Twitter
fp-ieee
だめぽラボ@技術書典9さんはTwitterを使っています 「制限事項: ・NaNの符号やペイロードを扱うには専用の型クラスが必要 ・浮動小数点環境に介入することはできない(純粋&遅延評価と相性が悪い) ・十進浮動小数点数のexponent周りは非対応(RealFloatクラスが対応してないので)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「十進浮動小数点数を富豪的データ構造として実装する分にはそんなに問題はないと思うけど、IEEEの十進交換形式みたいに32*kビットになるべく詰め込もうとするとアレ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE754の十進交換形式には同じ符号の無限大を表すビット列が複数ありうる」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE754の十進交換形式は ・そもそも一本化されていない(DPD vs binary) ・正規化されないので一つの値に対して複数の仮数部・指数部がありうる ・一つの仮数部・指数部の組について複数のビット列が対応する場合がある など、二進と比べて大変愉快な仕様となっているぞい」 / Twitter

x87

Twitter

sizeof

だめぽラボ@技術書典9さんはTwitterを使っています 「sizeofを比較しても同じ型かどころか、同じ浮動小数点形式かすらわからないから……(80ビットのlong doubleがsizeofで測ったら16を返してきたりするし)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/uvtZjvyuFb」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「GCCのドキュメントと挙動が食い違っているのを発見してしまったかもしれない(ドキュメントでは__float80は_Float64xのエイリアスだとされているが、実際は(-mlong-double-80の下では)long doubleのエイリアスになっているっぽい) https://t.co/2tCMVPCdNn」 / Twitter
Floating Types (Using the GNU Compiler Collection (GCC))
だめぽラボ@技術書典9さんはTwitterを使っています 「昨日の_Float64xの話題で思った(というか前から思ってた)んだけど、extended precision formatに対応する型をわざわざ標準化する必要あるのか?非自明な拡張ナントカ精度って実質x87のアレしかなくない?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「TF32は拡張じゃなくてむしろ縮小でしょ」 / Twitter

hsjoihsさんのツイート: "IEEE754の乗算は交換法則の方は成り立つんだっけな(結合法則はそりゃ成り立たない)"
uint256_tさんのツイート: "IEEE754, Nan boxing すごいってくらいの知識しかない"
Zıᴘʜıʟ Sʜᴀʟᴇıʀᴀꜱ ╹ω╹さんのツイート: "交換するけど結合しないって数学的には珍しい?"
tkr@合格0,不合格6,発表待ち1さんのツイート: "そういえば前2chで「浮動小数点数は何が起きるか分からないから精度いらない場面でも絶対使うな」って騒いでるやついたなぁ 乱数じゃないんやぞ…"
白山風露@ᗣᘎᘄさんのツイート: "8087互換FPUは状態を内蔵しているので「何が起きるか分からない」はある意味正しい。 丸め方向やゼロ除算例外の扱いなどが変更される可能性があるので本当に厳密に使うならチェックしないといけない。… "
tkr@合格0,不合格6,発表待ち1さんのツイート: "状態持ってるまじ?"
tkr@合格0,不合格6,発表待ち1さんのツイート: "IEEE754なら大丈夫だよね?"
白山風露@ᗣᘎᘄさんのツイート: "まあゼロ除算はそもそもC++だと未定義だけど"
白山風露@ᗣᘎᘄさんのツイート: "IEEE754の規格からは外れていないが、そもそも規格に丸め方向等が複数種類存在し、その切替をFPU内部のフラグで行うことができる… "
tkr@合格0,不合格6,発表待ち1さんのツイート: "え、これまじですか 規格っていうから必ずこうなるって決まってるのかと…… "
yuyabuさんはTwitterを使っています: 「https://t.co/0HWDwOgyrz AArch64(arm)はsin,cosとか計算する機械語あるのか。java 11以降のmathではこいつら(CPU専用命令)を直接使うらしい。 #javareading」 / Twitter
yuyabuさんはTwitterを使っています: 「intel系のCPUにはsin,cosなどを計算する命令は8087などにあるらしいけど、普通に計算した方が早いのでgccなどはfpuなどを使わずにソフトウェア的に計算しているらしい。」 / Twitter
FadisさんはTwitterを使っています 「LLVMでMMX intrinsicsをSSE2に落とす改良が提案されている。MMXはx86のSIMD命令で、SSEと異なりx87とレジスタを共有する。この為MMX使用後片付けずにx87を叩くと動かないが、LLVMは容赦無く命令を入れ替えるので片付け前にx87が使われない事を保証出来ない問題を抱えていた https://t.co/dpDlvvk6eK」 / Twitter
LLVM Developers Looking At Phasing Out Intel MMX Support - Phoronix
ママレモンサワーさんはTwitterを使っています 「まあMMX intrinsicsからSSE2を吐くようにしようぜって今さら言われたら、もうサポート自体やめるわってなるよな…」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「sinやcosの精度絡みでは、x87 FPUにはsinやcosや底2の指数関数・対数関数を計算する命令があって、あれらは精度が実装依存っぽいので再現性が必要なら使っちゃダメな系のはず(同じ命令列を実行しても異なる結果が返る可能性がある)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「実際、Intel SDMにはPentiumでそれらの命令の精度が向上したようなことが書かれている(つまり、それ以前のCPUとは異なる結果が返ってくる)。AMDは知らん」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「SSE系には逆数や平方根の逆数の近似を返す命令があるけど、相対誤差しか規定されてないっぽいし、あの辺もCPUによって返る値が違う可能性のあるやつかな?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「(異なるマシン間での再現性の観点でいうとx87 FPUは煮ても食えない(Control Wordをいじったとしても非正規化数の計算にコーナーケースがある)ので初手切り捨てが最善ですね…)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語での浮動小数点数の評価方法(FLT_EVAL_METHOD周り)をテストするやつを書いた。x87 FPUが使用されると出力が変わる系のやつ。 https://t.co/nSSKGD6jZS」 / Twitter
floating-point-test/eval-method.c at master · minoki/floating-point-test
だめぽラボ@技術書典9さんはTwitterを使っています 「これまでに書いた浮動小数点数周りのテストコードがあちこちに散らばっているのをどうにかしたい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「IEEEで例外発生の有無が実装に委ねられているやつ」をテストするコードも追加した(FMA(0, ∞, qNaN)でinvalidが発生するかどうかと、アンダーフローの判定が丸めの先か後か)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「NaNのペイロードの伝播の仕方を確認するやつも書いた。入力の両方がNaNだった場合に常に左側を返すやつ、演算が可換になるように両方見て決める奴、常にペイロードが0なNaNを返すやつなどがある https://t.co/XD0oBQOScj」 / Twitter
floating-point-test/nan-propagation.c at master · minoki/floating-point-test
だめぽラボ@技術書典9さんはTwitterを使っています 「x87 FPUの呪い [C言語] on @Qiita https://t.co/bLfIx7zR7t」 / Twitter
x87 FPUの呪い - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「Javaのstrictfpは何のために存在するのか、C言語のFLT_EVAL_METHODは何を表しているのかがわかる記事を書きました: https://t.co/w3YBXz2foh」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「x87 FPUで倍精度演算がアレなのはこの前の記事に書いた通りだけど、x87 FPUを拡張したような感じのItaniumでは命令ごとに精度を指定できたりFPSRで指数部の範囲を拡張するか選択できたりしてそういう「呪い」はないという認識で良いのかな」 / Twitter

サイン、コサインをインテルの CPU で計算すると少しバグっているらしい – tomeapp
x87 FPU で厳密な単精度演算を行うコスト - NyaRuRuが地球にいたころ
x87 FPU で厳密な単精度演算を行うコスト (2) - NyaRuRuが地球にいたころ
Shiro Kawaiさんのツイート: "#tcfm https://t.co/9L8G8XZaBY 第10回 IEEE754の数学関数は数ULPくらいの誤差は許されていたような気がする。 sqrtは基本演算扱いで完全に指定されてたかもしれない。"
Rui Ueyamaさんのツイート: "浮動小数点数フォーマットは最近学校で習ったので2^-1022近辺の浮動小数点数は特別にバグりやすい罠があるというのをすぐに理解してしまった。"
スタックマシン ‐ 通信用語の基礎知識
Tips x87 FPUプログラミング
ロボ太さんのツイート: "そうそう、x87命令とかSSEについてもちょっとだけ書きました。なぜx86に64ビットの浮動小数点レジスタが無いかとか、long doubleが80ビットな理由とか・・・。あんまし深掘りしてないけど・・・ https://t.co/eX0vwsSaB0"
sevendayshpc/README.md at master · kaityo256/sevendayshpc
Island Life - 拡張浮動小数点数の扱い
作って理解するOSを読んだ感想とメモ - Qiita

SSE

鈴木友紀さんはTwitterを使っています 「なぜ Legacy SSE 命令は YMM/ZMM の上位を保持する仕様にしたのか調べていたら Microsoft の所為ということになった。 assembly - What is the penalty of mixing EVEX and VEX encoded scheme? - Stack Overflow https://t.co/gXCIIKLeGF」 / Twitter
assembly - What is the penalty of mixing EVEX and VEX encoded scheme? - Stack Overflow
鈴木友紀さんはTwitterを使っています 「Using Floating Point or MMX in a WDM Driver https://t.co/nfoEiV6XFq」 / Twitter
Using Floating Point or MMX in a WDM Driver
だめぽラボ@技術書典9さんはTwitterを使っています 「Intel SDMのCVTTS[SD]2SIの説明に "When a conversion is inexact, the value returned is rounded according to the rounding control bits in the MXCSR register." って書いてあるけどこれは間違い?(常にtruncateするはず)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「_mm_cvttsd_si32 (SSE2)と_mm_cvttsd_i32 (AVX512)の違いがわからないんだが、命令のエンコーディングが違うみたいなやつか?でもclangで-mavx512fの下ではどっちもvcvttsdsiになっているように見える」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Intelのintrinsicsなんもわからん」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Apple Clangは最近のmacOS上では自動で-msse4.1が有効になるっぽい(ceilとかfloorとかの関数が1命令にコンパイルされる)」 / Twitter

AVX

AVX512

SIMD 最適化

Hideyuki Tanakaさんのツイート: "それはそうとavx512の命令セットはなんであんなグッチャグチャになってしもたんや?まあx86自体がグッチャグチャやという話もあるが"
Tsukasa #01 [要出典]さんのツイート: "opmask というある意味では GPU 的な演算制御を手動でやるために用意されたとしか思えない仕組み。"
Hideyuki Tanakaさんのツイート: "まあ要するにそういうことだよなあ(´・_・`)…てかもうこれ人間が書くんじゃなくて、#pragma omp simd とか、オートベクタライズ期待とかそういうの前提なんじゃないのか。コンパイラ死にそうだけど"
Tsukasa #01 [要出典]さんのツイート: "手で書くことはもちろん可能だけど、ある程度以上はコンパイラ任せに……したいんだろうなぁ (にしては opmask の演算命令の中に不穏なものがあるけど)。"
Hideyuki Tanakaさんのツイート: "絶対インテルコンパイラ以外ではまともな性能出ないことが目に見えててキビC~"
Hideyuki Tanakaさんのツイート: "少なくともインテルコンパイラではまともに動いてるのかは気になるところ(´・_・`)"
Hideyuki Tanakaさんのツイート: "いやそれかインテルコンパイラ開発してる人からのこれもないとまともにコード生成できひんでっていう命令がごっそり入った結果あんなグッチャグチャな命令セットになったという可能性もある"
Hideyuki Tanakaさんのツイート: "まあ実際PEZY-SCでのプログラミングはあんま考慮することが少なくて、ワイドSIMDにまつわる問題はなくて楽といえば楽。フラッシュと同期を使いこなして、キャッシュヒット率を上げるだけやからな。(それが難しい)(でもそれは何でも一緒な気はする)"
AVX2/AVX-512を用いたLennard-Jones系 ポテンシャルの力計算のSIMD化 // Speaker Deck

histric-1

AVX512での逆数近似と精度補正 - Qiita
kaityo256/rcp28_sample: Sample code of vrcp28pd
或るプログラマの一生 » AVX-512 がアナウンスされていた
Fadisさんのツイート: "SIMDで一度にたくさんのベクトルや行列を扱う場合、個々のベクトルや行列を順番に並べてメモリに置いていると、今すぐに必要な要素の値が広範囲に散らばって配置されることになって、パフォーマンスの低下を招く、という現象がSIMDがとてもとても長いマシンで時々観測される"
AVX-512(フォーマット)詳解
きしもとさんのツイート: "(vp)ternlog命令の説明に関して考えていたのですが、この ternary は「三値論理」のように繋がるのではなく、「三項」ではないでしょうか(続… "
herumiさんのツイート: "ご指摘ありがとうございます。iSUSの翻訳は三値でしたが、三項の方がよいですね。修正します…と思ったのですが、slideshareはupdateできないのでした。orz #x86opti… "
インテル® Xeon® スケーラブル・プロセッサーのインテル® AVX-512 のベクトル長の拡張機能 | iSUS
Hideyuki Tanakaさんのツイート: "SIMDはAVX512とか見てるとやっぱもう末期だよなあというか、というか、なんで長さ変えるだけで命令セット新しいの使わないと活かせないとか、これわざと最適化リソースかけさせて、x86から離れるのを惜しませているマーケなんじゃないのかとか、普通にAVX2をDual Issueでいいんちゃうのとか、謎は多い"
CPUID に AVX-512 デープラーニング用命令のフラグが追加 - 教育は参考ブログ
__int128にvpternlogdしたい - Qiita
InstLatX64さんのツイート: "#AVX512_VNNI is 1|.5 L|T… "
melancholic afternoon
InstLatX64さんのツイート: "#TigerLake/#AVX512_VP2INTERSECT extended Venn-diagram about the 19+1 levels of #AVX512 in #Intel processors The importance and significance don't correlate with the area (the number of instructions is shown in parentheses) MICs are starting to fade out....… https://t.co/al4b7Pt9wW"
SIMDプログラミング入門(AVX-512から始める編) - Qiita
AVX-512を用いた、たぶん世界最速のBase64エンコード実装について - Qiita
herumiさんはTwitterを使っています 「指数関数expのAVX-512によるベクトル化 https://t.co/hzsvtuAreu の記事を書きました。 &gt;標準関数std::exp(float)に対する相対誤差は2e-6、速度は10倍ぐらいです。 コードはこちら。 https://t.co/qDVxSujr5K」 / Twitter
指数関数expのAVX-512によるベクトル化 - Cybozu Inside Out | サイボウズエンジニアのブログ
fmath/fmath2.hpp at master · herumi/fmath
herumiさんはTwitterを使っています 「https://t.co/OdN6YvJUxE ここで書いたやり方で実装してみました。https://t.co/y5f1T5NJMy float16個あたり5.44clk(Xeon Platinum 8280 2.70GHz)でした。@k_nitadori」 / Twitter
herumiさんはTwitterを使っています 「@k_nitadori vpermt2ps面白いですね。頭に入れときます。x∈[1,2]なら2^x={exp(x log2 /4)}^4で{}を私の記事の5次近似して1mul+5fma+2mulもありですかね。」 / Twitter
misc/two-pow.cpp at master · herumi/misc
Keigo NitadoriさんはTwitterを使っています 「@herumi ありがとうございます。 直列に依存する命令列に対してこれは速いですね。」 / Twitter
herumiさんはTwitterを使っています 「logもAVX-512で書いてみた。3D Now!時代(20年以上前!)に考えていたアルゴリズムを再実装したけど、もっとうまい方法あるのかな(あるんだろうなあ)。 https://t.co/GTDyR0p6DB」 / Twitter
melancholic afternoon

herumiさんはTwitterを使っています 「AVX-512によるlogの実装、いろいろ試したら結局素直な方法が一番よさけな感じ。試行錯誤のメモ。 https://t.co/spzgjOrIYJ」 / Twitter
fmath/log.md at master · herumi/fmath
FadisさんはTwitterを使っています 「Linus Torvalds氏が「AVX-512は苦しんで*んで欲しい」と言った事で各方面が盛り上がっている。AVX-512は512bitレジスタを用いるSIMD拡張命令で、多くのベンチマークでAVX2より高い性能を示すが、同じ拡張命令でもプロセッサによって対応がまちまちで使い辛い問題を抱える https://t.co/2Qu1ZyKVLq」 / Twitter
Linus Torvalds: "I Hope AVX512 Dies A Painful Death" - Phoronix
FadisさんはTwitterを使っています 「この発言はIntelが新しいマイクロアーキテクチャAlder LakeがAVX-512をサポートしなかったことを受けてなされたものだが、Intelは今後AVX-512対応プロセッサを作るのかについては何も明言していない」 / Twitter
てらモス♋さんはTwitterを使っています 「AVX512命令って広大なんやな…(´・ω・`) https://t.co/19nVsqxA7p」 / Twitter
Implement AVX-512 intrinsics · Issue #310 · rust-lang/stdarch
Hideyuki TanakaさんはTwitterを使っています 「(´・_・`)👇これ見たらAVX512をよく知らない人でもリーナスのお気持ちが多少は理解できるんじゃないかな(適当)」 / Twitter
herumiさんはTwitterを使っています 「IntelのマニュアルによるとAVX-512が使えるかの判定はXCR0レジスタの5-7ビットが111を確認することになってるのだけど、macOSではオンデマンドでAVX-512を有効にする(使われるとUD例外でOSで処理して戻る)のでそのフラグを見てはいけないらしい。 https://t.co/zXGfIp6Ala」 / Twitter
fixed incorrect detection of AVX-512 on macOS by atafra · Pull Request #110 · herumi/xbyak
herumiさんはTwitterを使っています 「こういうコンテキストスイッチのコストを減らすためのテクニックをみると、2018年のLazyFPUの脆弱性を思い出す。 https://t.co/45vlGTCuhR まあ今は2020年だし大丈夫なんだろうけど。 https://t.co/40oXJDf72b」 / Twitter
LazyFP vulnerabilityの紹介
herumiさんはTwitterを使っています 「XbyakがAVX-VNNI命令に対応しました。 https://t.co/gplgSKCuFB AVX-512用のvpdpbusdなどの積和演算命令をAVX-512非サポートなCPU(Alder Lake以降)でも使えるようにした命令群です。VexEncodingを明示して利用します。アセンブラ泣かせ。こんな細切れに命令増やしてていいのだろうか。」 / Twitter
InstLatX64さんはTwitterを使っています 「GFNI_Demo.h, VBMI2_Demo.h: wrapper headers for emulating the missing byte/word shift and rot instructions with the new #AVX512 extensions (in notation of the great officedaytime site) https://t.co/yOrubv5wCT Free source: https://t.co/u7BbdTjmBt https://t.co/6QJiipRBtF https://t.co/ZrSuSV4JPJ」 / Twitter
InstLatX64さんはTwitterを使っています 「Other non-crypto use of (V)GF2P8AFFINEQB in GFNI_Demo.h: - revbit, bit-broadcast, prefix-xor bytes; - rotate, mirror, multiplication for 8x8 bit matrices; - entire register pospopcount; #SSE #AVX #AVX512 https://t.co/u7BbdTjmBt https://t.co/4CdNRQquBx」 / Twitter
InstLatX64さんはTwitterを使っています 「VPCLMULQDQ_Demo.*: experimental entire register prefix-xor operation w/ VPCLMULQDQ (ymm version for #AMD #Zen3) #SSE #AVX #AVX512 https://t.co/Ecvy2CSs1W」 / Twitter
HPC Phys-20201203
FadisさんはTwitterを使っています 「Intelの第11世代Core i9でAVX、AVX2、AVX-512を使った場合の性能の比較。AVX-512を使った場合AVX2と比較して多くのベンチマークでほんの僅かに性能が向上するが、猛烈に消費電力が増える事が示されている。えぐいケースではAVX2で180WがだったのがAVX-512で270Wに達する https://t.co/00OUE0C62w」 / Twitter
AVX / AVX2 / AVX-512 Performance + Power On Intel Rocket Lake - Phoronix
herumiさんはTwitterを使っています 「AVX-512とSVEって同じ512bit SIMDでもgatherとFMAの比率が結構違う感じ。AVX-512だとFMAで押し切った方が速い部分が、SVEだとテーブルルックアップした方がよいときがある。アルゴリズムが変わるので大変だな。」 / Twitter

ホイール欲しい ハンドル欲しい » Intel AVX その3 命令
AVX-SSE 切り替えペナルティーを回避する | iSUS
インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 組込み関数の詳細
From IA-32 to avx-512
Shirouzu Hiroaki(白水啓章)さんのツイート: "簡単な実験中。AVX2のgather命令、手元のCoffeeLakeだと十分速い。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "動作が不完全だった。完動したら、別段速くないというオチに。 8つのindexが別々のキャッシュラインにアクセスする場合、AVXのvgather命令を使っても、遅いものは遅いという印象。"
x86/x64 SIMD命令一覧表 (SSE~AVX2)
「GNU Binutils 2.32」リリース | OSDN Magazine
CPU命令セット“AVX-2”の活用で大幅な性能向上を果たした「EmEditor」v18.7.0 - 窓の杜
まさみさんは語りたいさんのツイート: "んー??wgetがAVX2命令実行中にsegv起こして落ちた。しかも多分終了作業中??(99%)"
まさみさんは語りたいさんのツイート: "rep stosでavx2命令を使ったメモリクリア中にdstアドレスが化けたっぽい。バグなのかどうかはまだ不明。"
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
./note122.html
yohさんはTwitterを使っています 「何かに似てるなとおもけど SIMD命令でデータ加工するやつだなこれ マァnumpyはSIMD相当だし当たり前か」 / Twitter
yohさんはTwitterを使っています 「forループ回せば(コーディングは)早いんだけど numpyのindexingやらを駆使してゴニョゴニョやっていくの 完全にパズルだなこれ」 / Twitter
cpuidでAVX2に対応しているか調べる - 睡分不足

FMA

QEMU

だめぽラボ@技術書典9さんはTwitterを使っています 「Rosetta 2は浮動小数点演算の細かいところをどのぐらい正確にエミュレートしてるんだろう(x86とAArch64ではアンダーフロー例外の発生条件が微妙に違う)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QEMUはアンダーフローの発生条件についてはしっかりやっているようだ。実行したのはこれ: https://t.co/qVwojFzUJE https://t.co/KS4iNPqJDA」 / Twitter
floating-point-test/exception.c at master · minoki/floating-point-test
だめぽラボ@技術書典9さんはTwitterを使っています 「QEMUは fma(0, inf, nan) での例外の発生の有無がなんか変だな。アーキテクチャ的にはどうなるのが正しいんだ」 / Twitter

だめぽラボ@技術書典9さんはTwitterを使っています 「Haswell以降の(FMA命令を持つ)Intel Macでfma関数は常にハードウェアFMAを使うようだけど、-mfmaの有無でNaNのペイロードに関する挙動が若干違うな(コンパイラーの選んだ命令とlibSystem内部で使われている命令が違うのか)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Intel SDMを読んだ感じ、x86_64のFMA命令はfma(0, inf, nan)について例外を投げないのが正しいっぽい。Linux上で例外フラグを立ててるのはglibcのfma関数かな。-mfmaの他に-O2を指定すると例外を投げないようになった」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「AArch64はfma(0, inf, nan)についてinvalid例外を発生させるっぽいな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE 754-2008のFMAは当時すでにあった実装(PowerPCとItanium)でFMA(0, ∞, NaN)の例外の有無が食い違ってたから規格ではその場合の例外の有無を定めない(実装に委ねる)ことにしたみたいな話をどこかで読んだ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数こそこそ噂話!」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「PowerPCはFMAのこの場合に例外を投げるっぽい。ItaniumはSDMを読んでもよくわからん」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「FMA4は入力と出力を合わせて4オペランドであって、入力の数的にはあくまで3項演算子なのでは(z←x+yを3項演算子と呼ぶ流儀だったらごめんなさい)」 / Twitter
富岳てるみさんはTwitterを使っています 「Intel「AVX世代のFMAは4オペランドにしよう!」 AMD「ほーん。そうやって作るわ」 Intel「(チッなんだよこいつ…) やっぱ3オペランドにするわ」 AMD「えぇ…(困惑)」 そしてFMA4という拡張は忘れられていくのじゃ…」 / Twitter
Fumihiro MatsuiさんはTwitterを使っています 「そういやFMA命令は使うと丸めの出方とか変わるんだよな。そのうちいっぺん初期値鋭敏性のある挙動でどんな感じで差が出るか or 意外と安定かとか比べてみたいな。また暇な時にでも」 / Twitter
和積演算(FMA) - yohhoyの日記
だめぽラボ@技術書典9さんはTwitterを使っています 「FMA (fused multiply-add) の話 https://t.co/34TUwDJPYJ この記事に「__builtin_fmaは最適化目的で存在するのであり、ハードウェアFMAが使用されるとは限らない」って注意書きしておいた方が良いのかな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「俺もよくわかってないけど__builtin_fmaの役割は ・定数畳み込み ・ハードウェアFMAが利用可能な場合にその命令列を吐く ぐらいでいいのかな。fma(x, 1.0, y)みたいなやつをx * yに変換するようなことはあるのだろうか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ISAによっては浮動小数点数の乗算や加算専用の命令を持ってなくてFMAだけがある、みたいなやつもあるみたいだが」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「そういえばFMAの記事で使ったこのコード、volatileをつけ忘れたせいで賢いコンパイラーだとコンパイル時に全部計算してしまって実行時にfma関数を呼び出さなくなるという重大な不具合があるんだよな https://t.co/csJG3TEwjG」 / Twitter
test-fma/test-fma.c at 9d656d5940478625317d9b0833a061a5a78144ef · minoki/test-fma
だめぽラボ@技術書典9さんはTwitterを使っています 「fma(x, 1.0, y) と等価なのは x + y だった。clangはこの最適化をやるけどGCCはやらなさそう」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/UJTIa6g7Qq を見た感じ、通常は__builtin_fmaとfmaは全く同じ意味で、-fno-builtinを指定した場合のみ後者に対する最適化が抑制される、という感じかな。」 / Twitter
Other Builtins (Using the GNU Compiler Collection (GCC))
だめぽラボ@技術書典9さんはTwitterを使っています 「FMA(融合積和演算)を使ったら計算が遅くなった話 https://t.co/6aysE7vdPu これ多分命令のサイクル数(?)がどうのこうのみたいな話になるんだろうけど自分はその辺詳しくないのでコメントできない。Haswellでの結果のようだけど、違うマイクロアーキテクチャだと違う結果になりそう」 / Twitter
FMA(融合積和演算)を使ったら計算が遅くなった話 - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「Ice Lake搭載Macで試したらFMA使用・不使用でほぼ同じ実行時間になった」 / Twitter
mod_poppoさんはTwitterを使っています 「FMAは浮動小数点数の乗算と加算を兼ねるので、FMAをソフトウェア実装する際は乗算の面倒くささと加算の面倒くささの両方と対峙することになる」 / Twitter

bfloat16

だめぽラボ@技術書典9さんはTwitterを使っています 「bfloat16の演算ってfloat32でエミュレートする際は掛け算が素直にできないやつか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「これ反例が作れなさそうな気がするし実は問題ない?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Intelのbfloat16の実装は非正規化数を扱わないのか。ふーむ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「同人誌でbfloat16を安易に「IEEE準拠」と分類したのは早まったかなあ。少なくとも注意書きは必要」 / Twitter

AMX

FadisさんはTwitterを使っています 「Intelが新しいCPU向けの拡張命令AMXのサポートをGCCとLLVMに投げているらしい。AMXでは新しいレジスタTMM0~7が追加される。レジスタ長は1KiB(8192bit)で512bitレジスタx16行の2次元配列で1本のレジスタを構成し、このレジスタに対して行列演算を行う命令が追加される https://t.co/wPmT8V1LRH」 / Twitter
GCC Compiler Support Posted For Intel AMX - Phoronix
FadisさんはTwitterを使っています 「これBFloat16とINT8に対応してるあたりからして、ニューラルネットワークの学習に使う気満々で、要するにIntel版のTensorCoreか…」 / Twitter
herumiさんはTwitterを使っています 「XbyakにIntel AMX命令の追加pull reqが来たのだけど、TMMレジスタって何? 全然知らなかった。というか仕様が公開されたの昨日? え? https://t.co/7SmMzq2jcq」 / Twitter
Add support of Intel® AMX instruction set by nshustrov · Pull Request #95 · herumi/xbyak
herumiさんはTwitterを使っています 「Intel AMXをざっくりと読んでみた。AVXを置き換えるものではない。現状bfloat16かint8の大きな行列の積のタイリング専用演算TMUL。TMMはタイルを表すレジスタ。tileloaddで部分行列読み込み、tdpbf16psなどで行列積の足し込みをする。行列パラメータはldtilecfgで設定 https://t.co/M8N4ISlX47」 / Twitter
blog/amx.md at master · herumi/blog
Intel Advanced Matrix Extension(AMX)とは何なのか - FPGA開発日記
FadisさんはTwitterを使っています 「IntelがAMX拡張命令のサポートをLinuxカーネルに入れるべくパッチを更新している話。AMXはint8またはbfloat16を大量に並べた8本の8192bitレジスタを使って行列演算を1命令で行うIntel最新のふぁっきんクレイジー命令セット。 https://t.co/xwjgR7To5x」 / Twitter
Intel Sends Out Latest AMX Support For The Linux Kernel - Phoronix
FadisさんはTwitterを使っています 「@KuniSuzaki パッチを見る限り、コンテキストスイッチする際に8KiBものレジスタを待避する領域を常に用意するのは勿体ないから、必要な時だけこのレジスタを復元できるようにする為のものっぽいです」 / Twitter
FadisさんはTwitterを使っています 「で、複雑な命令をトランジスタ数でゴリ押す最先鋭であるAMXは、コンテキストスイッチでレジスタを退避させる時に必要なメモリが大きすぎて、常にAMX分の退避領域を確保したくないって事でユーザ空間からAMXする気がある事をカーネルに伝えるシステムコールが議論されてる https://t.co/5IfjDzNq9v」 / Twitter
Intel Posts Newest Advanced Matrix Extensions Patches For Linux (AMX Patches v7) - Phoronix
FadisさんはTwitterを使っています 「AMXはIntelプロセッサに8192bitのレジスタを8本追加し、このレジスタ上を2次元配列と見做して1命令で行列演算を行う拡張命令。ALUは既存の物とは独立している。xsaveで退避するには追加で8KiBのメモリが必要、ということになる」 / Twitter
とみながたけひろさんはTwitterを使っています 「これを見て「うわーなつかしの手抜きレイジーコンテキストスイッチや!俺も書いたことある!」などと思うロートル」 / Twitter
とみながたけひろさんはTwitterを使っています 「たかだか512byteのコンテキストやったんやけど当時としてはでかかったので、スレッド作るときとかにこの命令使うぞと指定しないと未定義命令例外で落とす(そこで自発的に使用可能にはしない)、とかしてた。未定義命令ハンドラでメモリ確保して〜、も出来るのだけど、間違って使うのを防ぐため」 / Twitter
とみながたけひろさんはTwitterを使っています 「なおすごく真面目な、多重ネストできる割り込みハンドラでもFPU使えるっていうレイジーコンテキストスイッチも実装したことがある。なかなか辛かったがストレージ読み込み性能とかで1割以上は稼げたので嬉しかった記憶 今じゃみんな何でもSSE使うから意味が殆どないよなー」 / Twitter

四倍精度

てくのたのしーさんはTwitterを使っています 「ところでi128やu128はあるのにf128が無いのはなんで?」 / Twitter
白山風露@🔴👁️👁️🔴🔴👁️🔴さんはTwitterを使っています 「binary128がまともにハードウェアサポートされてるアーキテクチャあるんです?」 / Twitter
てらモス♋️さんはTwitterを使っています 「POWER9…(´・ω・`)?」 / Twitter
てらモス♋️さんはTwitterを使っています 「Power9+V100構成であるSummit他のユーザー氏〜(´・ω・`)」 / Twitter
電子計算機の沼さんはTwitterを使っています 「これはdouble-double precisionの方で,IBMは昔コンパイラに入れてた. ただ,この方式はIEEE 754-2008で正式に4倍精度が策定されてからは4倍精度と名乗れなくなったので現在は区別してdouble-double型とかいう. ただPower9はちゃんとIEEE754-2008の4倍精度のはず」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「あー、コンパイラ側がソフトウェア実装としてサポートしてたのとアーキテクチャがネイティブでサポートしてたのが両方とも 128 bit だけど内容が別みたいな感じなのか」 / Twitter
The saga of the Power ISA 128-bit long double
電子計算機の沼さんはTwitterを使っています 「あっ!こんなところに4倍精度の関連研究に詳しい論文が!! https://t.co/8Hwo1sXcsH」 / Twitter
SIMD演算を用いた高精度疎行列計算ソフトウェアの高速化 , hpc::numa.blog()
電子計算機の沼さんはTwitterを使っています 「IBMのやつ https://t.co/iBcLaUKLTa」 / Twitter
電子計算機の沼さんはTwitterを使っています 「IBM方式とか言ってるのは倍精度2つ使って,指数部をずらして長い桁を表現する.仮数部は2倍,指数部は変わらない. 指数部を増やそうと思うと表現範囲を増やさないといけないので作るのが大変だけど,仮数部を増やすだけなら指数部を15桁分ずらして誤差を拾えばいいから簡単」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「The saga of the Power ISA 128-bit long double https://t.co/drW8AOY1P4 ㍂」 / Twitter
C言語で四倍精度浮動小数点数 (binary128) を使う - Qiita
うわの空さんはTwitterを使っています 「@mod_poppo @Qiita FYI ですが最近 icc 周りのパッケージの名称が変わって、ついでに無料で手に入るようになったようです: https://t.co/LwB9eZ41gC」 / Twitter
Intel® oneAPI Toolkits

blog

-OfastはNaNチェックを無効化する - in neuro
エラーフリー変換の紹介 および FastTwoSum アルゴリズム の紹介と証明 -- glibc のコードを読むための参考に -- - 小清水さんとコンピューター数学
作る側の気持ちで理解する浮動小数点数 - in neuro
QEMUはどのように浮動小数点命令をエミュレートしているのか - FPGA開発日記
Binary Translation型エミュレータを作る(浮動小数点演算の検討) - FPGA開発日記
Binary Translation型エミュレータを作る(浮動小数点演算の実装) - FPGA開発日記
Binary Translation型エミュレータを作る(softfloatクレートの実装変更) - FPGA開発日記
複素関数記述DSLについて | 雑記帳
文字列から浮動小数点数に変換する、なるべく速く - toge's diary
複数精度の浮動小数点を取り扱うための手法NaN Boxingについて - FPGA開発日記
半精度浮動小数点(2バイト)と単精度浮動小数点(4バイト)のC言語での変換方法を調べる - cvl-robot's diary
非数と無限大のメモ | 可音月堂
浮動小数点数の等値判定 - fujieda's tech blog

Wikipedia

浮動小数点数 - Wikipedia
Floating-point arithmetic - Wikipedia
NaN - Wikipedia
NaN - Wikipedia
IEEE 754 - Wikipedia
IEEE 754 - Wikipedia
IEEE 754における負のゼロ - Wikipedia

Qiita

娘に分かりやすく浮動小数を教えるシナリオ - Qiita
long doubleと拡張倍精度浮動小数点数フォーマット - Qiita
0.1は浮動小数点で正確に表せないのに、printしたときに0.1と表示されるのはなぜか - Qiita
浮動小数点数の min / max - Qiita
浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita
浮動小数点数の16進表記 - Qiita
理想の浮動小数点数である「浜田のURR」を理解する - Qiita
Javaの strictfp が実際に意味を持つ環境を用意する - Qiita
ArmにあるというJavaScript専用命令とは何か、あるいは浮動小数点数を整数に変換する方法について - Qiita
Haskell/GHCでの浮動小数点数の扱い - Qiita
yohさんはTwitterを使っています 「float型では123456789すらも表現できない話 - Qiita https://t.co/BnYlrG6cgK IEEE Binary32だと FLT_DIG==6 だよなと思ったら https://t.co/Wc697GXaD0 また小難しそうな話が」 / Twitter
float型では123456789すらも表現できない話 - Qiita
C++ `digits10` is 6 for IEEE float, but the first non-representable integer already has 8 digits? - Stack Overflow
閲覧者のユーザーエージェントを三角関数で判定可能か? - Qiita

Twitter

その他

histric-1

taklさんのツイート: "#tcfm 19 11:58~ レジスタウィンドウみたいなものが廃れたのは、レジスタ割当技術が進歩してコンパイラにやらせた方がいいということになったから、という説明をどこかで聞いた記憶があります。"
Miura Hidekiさんのツイート: "https://t.co/ha96GdyoRl #tcfm 大変面白かったのだけど、IBMのマシンをもって昔はスタックが無かったというのだけはもやもやした。バローズのスタックマシンとかもあったわけなので"
Toru Hisaiさんのツイート: "そういえば昔 GDC で聞いた講演で、C++ の最も素晴らしい機能はデストラクタで、なぜならそれは決定論的だから、というのを思い出した。 https://t.co/wjnrpFTKT8 ここの「The Beauty of Destruction」という講演。 https://t.co/QpeC1gj3XG #tcfm"
Kazuho Okuさんのツイート: "そもそもIEEE754は実用上の理由に基づいたもので気持ち悪いところはいろいろあるよね。小さい数の場合はだんだん精度が悪くなってくけど、大きい数の場合はいきなり無限大に切り替わるとか"
Ryou Ezoeさんのツイート: "入門書に書く浮動小数点数の詳細、IEEE-754がデファクトスタンダードなので解説するとしても、完全に詳細にはやらないかな。"
Ryou Ezoeさんのツイート: "符号ビット、仮数部、指数部、+0.0と-0.0、+∞と-∞、2種類のNaNぐらいで十分だが、正直NaNはQuiet NaNだけで十分かもしれない。"
Shiro Kawaiさんのツイート: "NaNはNaNでありNaN以上でも以下でもない! gosh> (list (nan? +nan.0) (>= +nan.0 +nan.0) (<= +nan.0 +nan.0)) (#t #f #f) だがNaNでもない! gosh> (= +nan.0 +nan.0) #f… https://t.co/zpKbzMG9jI"
Shiro Kawaiさんのツイート: "おお、丸めモードの違いが目に見える形で現れたケースとして興味深い。… "
小学ニ年生 別冊付録さんのツイート: "#tcfm 向きの話題だ https://t.co/TVGQAngDEe"
なぜWii版マリオ64で長時間放置すると足場が浮かび上がるのか(非技術者向け解説)
Ryou Ezoeさんのツイート: "16bit浮動小数点数型、機械学習用途以前は、HDR用途に使われていた経緯がある。"
KURODA, Michihiroさんのツイート: "@tanakh はじめまして。 3DCGIのOpenEXRファイルフォーマットが16bitFPが主流なのでそうなっています。 CGIのレンダリング時の演算自体は32bitFPのものがほとんどです。合成ソフトに限っては16bitFPのものがあったりします。"
Tsukasa #01 [要出典]さんのツイート: "@tanakh オフラインレンダリングでも出力で 32-bit float はあまり無かった気が。リアルタイムレンダリングだと最近主流の 16-bit float とか Xbox 360 なら 10-bit float というのも。ディスプレイの出力側は最近 10-bit 整数に基づく HDR… https://t.co/bOkmhjTMHV"
x86/x64における小数から整数への丸め処理命令の変遷 - Cybozu Inside Out | サイボウズエンジニアのブログ
Fadisさんのツイート: "浮動小数点数から整数への変換はC言語の場合C11 §6.3.1.4.1でゼロに近づける方向にtrancate、C++の場合C++17 §7.10.1で小数部を破棄するのと同義になるようにtrancate(つまりC言語と同じ)、という風に定められてるよ"
Fadisさんのツイート: "ただし浮動小数点数から元の値をそのまま表現できない浮動小数点数への変換を行う場合、近傍の2つの表現可能な値のうちどちらをとるかは実装が決めて良い事になっている(つまりどちらかになる事をプログラマは期待してはいけない) C++17 §7.9.1"
Fadisさんのツイート: "Intelが将来のプロセッサで利用可能になる新しい浮動小数点数フォーマットBF16を公開した。BF16は既にある半精度浮動小数点数FP16と異なり、指数部8bit仮数部7bitになっている。Intel曰く、このくらいの方がディープラーニングにおける学習で欲しい範囲に合うらしい https://t.co/tTPfqMCXLa"
Intel Publishes Whitepaper On New BFloat16 Floating-Point Format For Future CPUs - Phoronix
Tsukasa #01 [要出典]さんのツイート: "参考までに、BF16 (bfloat16) は Google TPU (v2 以降) の演算形式で、かつ binary32 (IEEE single) の上位 16 ビットを切り取ったものです。――というか何故今ニュース記事になってるんだろう。 https://t.co/6h3XyUQMWj… https://t.co/h9aws20YxD"
bfloat16 floating-point format - Wikipedia
Tsukasa #01 [要出典]さんのツイート: "NVIDIA は単純な (tensor core で使用できる) IEEE FP16 (half) だと勾配消失を起こして学習が進まないことがあることを指摘しており、学習時のロスを大きくすることでこれを防ぐ手法を必要に応じて推奨している。BF16 は精度の代わりに表現範囲を増しており、この手法の必要性を低くする……のかな。"
島鉄雄さんのツイート: "浮動小数点も2進数で計算されてて ︙ 2^2 = 4 2^1 = 2 2^0 = 1 2^-1 = 0.5 2^-2 = 0.25 2^-3 = 0.125 ︙ 少数の方はどう頑張っても2のマイナスべき乗の組み合わせじゃ表現できない10進数が出てくる 0.1 をどうやって表現するか?小さい数を足していけばいいけど、小さくするにもビット数に限界がある… https://t.co/nsR9P1U0Gy"
mはげさんのツイート: "誤差の原因は2つです。実は2つ目の方が支配的です。 また2つめは多め少な目どちらも起こりえます。 1. 10進数を2進数の32bit浮動小数点に変換した際の丸め誤差(表現誤差) 2. 大きい数(今までの合計)と小さい数(これから足す数)の足し算時の桁落ち誤差… "
Hisaki Oharaさんのツイート: "bfloat16 (指数部が単精度と同じ8-bit) のwhite paperが出ていた (PDF) https://t.co/JzKq5iRGAR"
bfloat16 - Hardware Numerics Definition

histric-2

Masaki Haraさんのツイート: "https://t.co/4hmu15zgrv Rustのpowfは1.0のNaN乗を1.0とするが、これはIEEE754のpowではないもののPOSIXのpowf(3)の規定には準拠しているらしい。そういうこともあるのか。"
powf for NaN returns 1 · Issue #60468 · rust-lang/rust
Shirouzu Hiroaki(白水啓章)さんのツイート: "Rubyにはこんな節約技が使われているのね。 (ちなみに「仮数部がすべて 1 の場合に NaN」というのは、「指数部」の誤記ではないかしらん?) ---- NaN Boxingというテクニックを知った - 不確定特異点 https://t.co/xQOhkVc076"
NaN Boxingというテクニックを知った - 不確定特異点
Fadisさんのツイート: "IEEE754の-0とかbitwiseで異なるNaN、浮動小数点数の山の中に別の情報を埋め込むのに使えるから数値計算系のデバッグで稀に役に立つ"
島鉄雄さんはTwitterを使っています: 「NaN === NaN //falseはそれでいいと思うけど? Cでも(というか機械語レベルで)nan == nan =&gt; 0となる。 逆にd !== dがtrueになる時はdがNaNになっていると判定出来る。(昔のCにはisnan()が無かったからd != dと判定した) NaNになった時にトラップ出来ない環境だと、NaNのデバッグは地獄だけどねw https://t.co/Nm3xh5tNlx」 / Twitter
島鉄雄さんはTwitterを使っています: 「言語の実装でセルフホストにしたい時に、最難関な部分が浮動小数点の入出力だと思われる。 例えば 123456789012345678901234567890123456789012345678901234567890.0 を読み込んで 1.2345678901234567e+59 と出力して、それを更に読み込んだ時に内部でビットレベルで一致している事が求められる。 続く」 / Twitter
島鉄雄さんはTwitterを使っています: 「C で普通にやると strtod() と printf() を使う事になるけど、printf() は正しい値を出力せずに、指定した桁か暗黙に決められてる桁数(6とか)しか出力しないから、入力⇔出力でビットレベルで一致させる事が常に出来ない(たまたま合う事はある)。 Emacs Lisp の場合はどうしてるかというと、」 / Twitter
島鉄雄さんはTwitterを使っています: 「出力にgnulibのdtoastr()を呼び出しているけど、それは内部で 1.snprintf() を少ない桁数で文字列化 2.それを strtod() で読み込む 3.ビットレベルで一致しているか判定 4.一致してれば出力、してなければ桁数を増やして1へ と涙ぐましい努力をしているw セルフホスト用に自前実装する場合は」 / Twitter
島鉄雄さんはTwitterを使っています: 「入力:AlgorithmM,AlgorithmR,Bellerophon 出力:Dragon4 あたりのアルゴリズムを使うけど、Mは簡単に理解出来るけど、それ以外はボヤっとしか理解出来ないw 特にDragon4は公開されてる実装が世の中に3つしか無いから俺が実装したよってサイトから拝借したw それでうまく行った 長文失礼しました」 / Twitter
島鉄雄さんはTwitterを使っています: 「リーダブル(入力⇔出力で値が変わらない)な浮動小数文字列を出力するC言語の関数(snprintf_double) を Gist に登録しました。 C言語で正確な浮動小数を出力するには、こんな感じにすればいいよというサンプルコードです。」 / Twitter
島鉄雄さんはTwitterを使っています: 「URLを忘れた… https://t.co/kJrYHVh2l5」 / Twitter
リーダブル(入力⇔出力で値が変わらない)な浮動小数文字列を出力するC言語の関数(snprintf_double)
島鉄雄さんはTwitterを使っています 「JavaScirpt は数字は全て倍精度浮動小数で何だこれwと思ったけど、よく考えたら、普通の言語だと(i: 整数, f: 浮動小数) i + i, i + f, f + i, f + f の4通りを割り出す条件分岐が必要だけど、JavaScirpt は f + f の1通りで良い。 条件分岐が要らないからインタプリタ実行が高速になる。 天才だろ!」 / Twitter
島鉄雄さんはTwitterを使っています 「CPU レベルで考えたら、整数演算を倍精度演算器で実行するとか有り得ないけど、昔の CPU が非力でしかもインタプリタ実行しか無い時は、少しでも高速に実行したい訳だから、良く考えられた仕様だった。 という事に今気付いた。」 / Twitter
κeenさんはTwitterを使っています 「Rustは浮動小数点数をMapのキーに出来ないように作られてる https://t.co/1Nnq6ZUDkv」 / Twitter
ぽけばさんはTwitterを使っています 「はてなブログに投稿しました NaNとMap - pocketberserkerの爆走 https://t.co/sHSLwGKffR」 / Twitter
NaNとMap - pocketberserkerの爆走
くいなちゃんさんはTwitterを使っています 「整数と浮動小数点数では、メモリ上の配置が全然違うため、整数をむりやり浮動小数点数として読むと 値が大きく変わってしまいます。 逆にこれを活用して、ビットが0の個数を瞬時に数えたり、平方根を瞬時に求める方法が編み出されたりしていて、こわい黒魔術がたくさんあるのです…。」 / Twitter
TokusiNさんはTwitterを使っています 「@kuina_ch 整数浮動小数点の変換回路をlog2の計算に使うのは実際にやったことがある・・・」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「浮動小数点の謎テクニックだと、こんなのも。 ---- 「IEEE 754形式では、float a, b が与えられたとき、a&gt;b&gt;0なら*(int*)&amp;a&gt;*(int*)&amp;bとなる」 https://t.co/96ewE7pAaT https://t.co/ve2f0VfUSF」 / Twitter
基数ソート - Wikipedia
Hideyuki TanakaさんはTwitterを使っています 「あとsqrtの丸め方向調べたいなら、printfで%gで表示するんじゃなくて%aで表示すべきじゃないんですかね…」 / Twitter

だめぽラボ@技術書典9さんはTwitterを使っています 「@Hishinuma_t MPFRで所定のビット数を指定して、演算ごとにmpfr_subnornalizeを呼び出せば、非正規化数の扱いを含めてbinary256相当になるはずです(NaNの扱いを除く) https://t.co/eGqZOcuShP」 / Twitter
GNU MPFR 4.1.0
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数小話を読み返してたけど、二段階丸めのところで奇数丸めからの最近接丸めがうまくいく条件が書いてないな(桁数の差が1だとうまくいかない。1.4999→(奇数丸め)→1.5→(最近接偶数丸め)→2みたいなやつ)」 / Twitter
ドッグさんはTwitterを使っています 「浮動小数点数のパースは精度と速度のトレードオフがあるからなかなか大変そうだ…」 / Twitter
きしもとさんはTwitterを使っています 「ヤバいのはアレね、Rubyとかのような一部の言語にある「小数点以下、十進でn桁」(←ヤバい)を指定できる奴」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「十進小数を二進浮動小数点数にするやつ、最初の700桁ぐらい読んで判断できない場合は残りの部分が0より大きいかどうか判断する、って感じで行けたりする?そもそも700桁も読みたくない?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「【特に深い意味のないアンケート】「演算の順序」と聞いたときにどっちを思い浮かべますか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「昨日のアンケートだけど、「掛け算の順序」と言った時には x*y vs y*x を指していて、「浮動小数点数の演算の順序(どちらを先に計算するか)」と言ったときには結合法則の方を指してるんだよね。なので「演算の順序」って曖昧な言葉だな〜〜と思ったのでした(実際にアンケート結果は綺麗に割れた)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「だからHaskellのEqクラスが(==)と(/=)の両方をメソッドとして持ってるのは完全に冗長なんだよね。x /= y = not (x == y)以外の定義が有意義な状況を俺は知らない。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の等号・不等号について成立しないのは x == x や x &lt; y ⇔ not (x &gt;= y) であって、 x == y ⇔ not (x != y) は普通に成立します」 / Twitter
ドッグさんはTwitterを使っています 「だから Rust で f32 や f64 は Eq ではなく PartialEq なのじゃ…」 / Twitter
てらモス♋️さんはTwitterを使っています 「ほんとだ NaN != NaN は ture だ」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「自分が何をしているかもわからないまま浮動小数点数の等号比較で許容する誤差として計算機イプシロンを使う人の話はやめろ!!!」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「計算機イプシロンは「浮動小数点数の四則演算1回の相対誤差の上限」みたいな感じの特徴を持つ量です。確か。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「元のツイートでは省略しましたがもちろん非正規化数が反例になります。確か。」 / Twitter
Miura HidekiさんはTwitterを使っています 「あと知恵だけど、PythonはBCD演算を採用しておけばよかったかもね。後々事故が起きそう。どうせパフォーマンスは重視されないし」 / Twitter
(あんちべ! 俺がS式だ)さんはTwitterを使っています 「浮動小数点って何? - Qiita https://t.co/s7FziMCvTJ この話、年に1回くらい誰かにしてるんですが、コンピューターサイエンスやってない私のような文系卒は余計こういうところ注意しておきたいですね」 / Twitter
浮動小数点って何? - Qiita
(あんちべ! 俺がS式だ)さんはTwitterを使っています 「検定について質問に来た若者にR使って説明したら「あんちべさんPythonじゃないの…」って言われたけど、適宜タスクに応じて使い分ければいいと思うし、超雑な説明として「Rの方が多分CSやってない人は意外性少ないと思う」って話の例で0.05*0.05の結果見せたら納得してもらえた(上がpython、下がR) https://t.co/F2K815Tkfy」 / Twitter
(あんちべ! 俺がS式だ)さんはTwitterを使っています 「私含め浮動小数点の誤差がどうこうとか知らないまま大人になった勢、CSの人と話すの厳しいこと多くて、私は入り口としてここから本読んでいった。今もっといい本あるかもだけど、今読んでも楽しいし、夜長の(あくまで読み物として)読書におすすめ https://t.co/Yfyg9jE6ic」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「MS謹製のFMA実装が古いマシンだと間違える件、VS Feedbackを探したら「Closed - Not a Bug」になっているのを見つけた / [C++] std::fma returns incorrect result on Intel i7-2630QM - Visual Studio Feedback https://t.co/LIROJmSGjj」 / Twitter
[C++] std::fma returns incorrect result on Intel i7-2630QM - Visual Studio Feedback
だめぽラボ@技術書典9さんはTwitterを使っています 「誰もバグ報告してないようなら自分がバグ報告するつもりでいたけどこういうの見かけると萎えちゃうなあ。無償で他人を説得するほどのコミュニケーション能力は持ち合わせていないので」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「FMA3を実装していないx86 CPUがこの世から一掃されれば解決する(=放っておいても時間が解決する)問題ではあるのだが、気持ち悪い」 / Twitter

環境依存

だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点演算の結果が環境依存なのはどんなとき?」みたいな記事を書こうと思ってまだ書いてない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「まずlong doubleは環境依存。sinとかexpとかの数学関数も環境依存。コンパイラーの最適化で結果が変わるやつが有効になっていると環境依存。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「同じバイナリーの実行したときの結果は同じか?実行時にcpuidとかを見て使う命令を変えていると環境依存。コア数とかを見て結合法則に頼りつつ並列度合いを変えていると環境依存。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「同じ命令列が実行されたときの結果は同じか?一部のCPU命令は近似値を返すので、CPUによって結果が違うかもしれない。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「みたいな内容を膨らませて例も挙げつつ論じる記事にしたい。」 / Twitter

Rust

熨斗袋さんはTwitterを使っています 「Rust で最近困ったこと f64 に入ってる正の数を切り上げて i64 にしたいんだけど、ceil して cast するときに誤差で -1e-10 されてたら floor になっちゃうし +0.5 して cast するのもなんか違うよなという感じでもやもや」 / Twitter
熨斗袋さんはTwitterを使っています 「多分 ceil したときに内部表現が整数になる保証があると思うんだけど記述見つからないし、そういうのに頼りたくない気持ちがある」 / Twitter
熨斗袋さんはTwitterを使っています 「@TumoiYorozu 例えば元の値が 1.5 だとして、ceil して 1.9999 になって cast したら 1 になりました、は嫌じゃないですか? 浮動小数点数の内部表現と密に関わりたくないというか、うまく説明できないのですが」 / Twitter
百千万億 萬さんはTwitterを使っています 「@noshi91 要するに ceil で得られる数に,小数点以下の情報がない保証が見当たらないって話ね.まぁ回路的に小数点以下を切り捨てる回路は難易度低そうだし,信じていい気がするけど」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「普通の浮動小数点形式では(少なくとも、IEEEで規定されているようなものは)、「ある浮動小数点数の両隣の整数」はその形式で厳密に表現できるので、floorやceilは(入力が正確だとして)正確な結果を返す」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点型を経由せずにfloorやceilを計算するにはC言語なら丸めモードを変更した上でlrint/llrintを呼び出すという手があるが、普通はそこまでしない」 / Twitter
kashiさんはTwitterを使っています 「@mod_poppo 細かいことですが、「ある*整数でない*浮動小数点数の両隣の整数」ですかね。浮動小数点数xが整数であった場合は、(floorやceilはそのまま返せばいいですが) 両隣の整数が表現できないことはよくあると思います。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「@mkashi おっしゃる通りです(細かいので端折ってしまいました)」 / Twitter
かにかまさんはTwitterを使っています 「浮動小数点って全順序集合だと思ってたけど、NaNがある言語だともしかして前順序ですらないのか…?」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@ka2_kamaboko そうっすよ。その辺考慮してRustではPartialOrdというtraitのインスタンスになっています」 / Twitter
かにかまさんはTwitterを使っています 「@igrep おー、まさに半順序的なtraitがあるんですね。i32は比較可能だからOrdなのか。面白いですね。」 / Twitter

Java

Takahiro YAMADAさんはTwitterを使っています 「浮動小数点演算でstrictfpがデフォルトになると。(Java 1.2時代と同様に戻る意味でRestoreなのかな) 昔(1990年代)のCPUだと厳密な演算はオーバーヘッドがかかってたが、Pentium 4(懐かしい)以降のSSE2だと特に問題ないのが理由とか。この辺りは正直あまり気にしたことがなかった。」 / Twitter
OpenJDKさんはTwitterを使っています 「Proposed to target JDK 17: JEP 306: Restore Always-Strict Floating-Point Semantics: https://t.co/ppADvu1gRq #jdk17 #openjdk #java」 / Twitter
JEP 306: Restore Always-Strict Floating-Point Semantics

Itanium

だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE浮動小数点数における平方根演算の精度に関する覚書 - よーる https://t.co/2V9Ga4l1NX」 / Twitter
IEEE浮動小数点数における平方根演算の精度に関する覚書 - よーる
だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumには浮動小数点数の除算や平方根の命令がないのマジかーと思った(近似値の命令とFMAでソフトウェア実装するらしい)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumの浮動小数点数周りを調べてみると、浮動小数点数レジスターの内部形式がx87より指数部が2ビット多い82ビットらしくて、なかなか変態的だ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumの浮動小数点数周りを見るとかなり変態的というか尖った設計になっているようだ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「加算・乗算専用の命令はFMAがあれば要らない(加算での符号付きの0の扱いは一部のレジスターを特別扱いして対処する)」「除算と平方根は近似命令だけ用意して正確な値は複数の命令を組み合わせて頑張ってもらう」「浮動小数点数レジスターの指数部の幅はx87の15ビットから2ビット増やす」」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「x87と違ってbinary32やbinary64の本来の指数部の範囲で計算することができる」「FPSRの一部のフィールドは複数通り用意しておくことができて、命令ごとにどれを使うか選択できる」」 / Twitter

倍精度

hrk先生さんはTwitterを使っています 「これに関する研究は太古の昔からたくさんあり、多くの計算は短精度で十分だが、データ依存で事前に見分けるのがむずかしいから全部倍精度というのが現状だと思います。まあ、電気代の無駄ですね。」 / Twitter
Yuki NagaiさんはTwitterを使っています 「なぜ物理の計算は倍精度計算で行われているのだろう?実は単精度でも問題ないとかないのかな」 / Twitter
Hiroshi ShinaokaさんはTwitterを使っています 「@cometscome_phys 最終結果は単精度で良いとしても、計算の途中で容易に精度が落ちますね。例えば、条件数が10^3程度の「良条件」の逆問題を解くと、有効桁数が3桁落ちるので、単精度だと残り2桁。」 / Twitter
Hiroshi ShinaokaさんはTwitterを使っています 「@cometscome_phys あとは、sumをとる変数を単精度にすると誤差が徐々に蓄積とか。精度落ちが伝搬しないように、単精度を使えるところを探す必要がありそうです。」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@Prof_hrk 今時はSIMDベクトル演算器が沢山並んでるから、単精度の演算器を2個使って倍精度、…n個使って多倍長精度、ってできないかと悩んでるが現状ソフトでやった方が現実的なのが悔しい。」 / Twitter

桁落ち

だめぽラボ@技術書典9さんはTwitterを使っています 「桁落ち、誤差が発生するとしたら引き算そのものではなくその前にすでに発生してるんだよな」 / Twitter
kashiさんはTwitterを使っています 「この話、なかなか伝わりにくい。近い数同士の引き算は桁落ちが起きるとか言って脅されるのでヤバい演算みたいな先入観があるけど、近い数同士の引き算はむしろまったく誤差が発生しないことが知られています。 https://t.co/XnOJLsxbui」 / Twitter
kashiさんはTwitterを使っています 「これなあ。0.28-0.27が0.01にならないみたいな例で浮動小数点演算に誤差が入ることを説明してるけど、それ、0.28や0.27を浮動小数点数に変換するときの誤差が100%で、減算では「全く」誤差は入っていないんだが、例として適切なのかな。 https://t.co/5cJiSzV9ve」 / Twitter
個人的な感想さんはTwitterを使っています 「高等学校「情報Ⅰ」文科省研修用教材を検証する(3):誤差の問題|E.V.ジュニア #note https://t.co/VV4AJwlfeT」 / Twitter
高等学校「情報Ⅰ」文科省研修用教材を検証する(3):誤差の問題|E.V.ジュニア|note
kashiさんはTwitterを使っています 「どのくらい近いと無誤差になるかというと、浮動小数点数a,bが同符号で絶対値の差が2倍以内、すなわち|b|≦|a|≦2|b|であれば、a-bの計算に誤差は入りません。例えば199-99.5みたいな、3桁で差が2倍以内の引き算は、必ず答えが3桁以内になります。200-99.5=100.5みたいに2倍以上開いていると反例が。」 / Twitter
kashiさんはTwitterを使っています 「この性質は、twosumみたいな変換が無誤差になるために重要な役割を果たしています。」 / Twitter
kashiさんはTwitterを使っています 「せっかくなんでもう少し補足。浮動小数点演算で絶対値の差が2倍以内の引き算が無誤差になるという性質、厳密に言うとアンダーフローで指数部が下限を突破してしまうと成り立たないんだけど、IEEE754では非正規化数があるためこの破綻は決して発生しない。ここまで考えてたとしたらKahan先生すごい。」 / Twitter

誤差

だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数で演算結果の真の値がその形式で表現できないこと」と「真の値に最も近い浮動小数点数(または、正しく丸めた値)とは異なる値が返ってくること」を(単に「誤差」と一括にするのではなく)区別して指す言葉があると嬉しいような気がするし、そんなに嬉しくない気もする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「前者は「丸め誤差」では?」 / Twitter
Miura HidekiさんはTwitterを使っています 「広い意味で量子化誤差じゃないかなーって思うけどどうだろう?」 / Twitter
zakkiさんはTwitterを使っています 「前者は量子化誤差で、後者は近似計算誤差?後者はなんか違う気がする。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数を正しく恐れる」ようになるにはどのぐらいの知識があればいいのかなあ。実装のバグまで考慮すると「この演算(のソフトウェア実装)はバグっている可能性が無視できない程度に存在する(例:FMA)」みたいな知識も要る」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「例えば数学関数のsinは多くの環境では「真の値に最も近い浮動小数点数が返ってくる保証はない」わけですが、sinを呼ぶ側からすると関数呼び出しを一回しているだけなので「累積」とは呼びたくないんですよね」 / Twitter
アーロンさん、頑張らないさんはTwitterを使っています 「結局前者が累積して後者になるのが本当の問題なので両方とも「誤差」でいいと思っている どうしても区別したいときは前者を「丸めたときの誤差」、後者を「累積した誤差」と呼ぶかな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「無限級数や積分で表される関数を有限和で近似するときは丸めによる誤差以外に「打ち切り誤差」みたいなやつも出てくるから「和を計算する際に丸め誤差が累積するから最終結果に誤差が出る」という考え方は正しくない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE 754のレベルではそうなんですが、C言語では(Annex Fの下であっても)sinがIEEE準拠であることは要請していないので、その辺に転がっているsin関数がIEEE準拠とは期待できないのですよね」 / Twitter
たいやき🥐さんはTwitterを使っています 「あんまり詳しくないんですけど,IEEE 754 で sin は correctly rounded であるべき(shall)とされているので,それなりに多くの環境で期待通りの答えが得られたりしないんでしょうか. https://t.co/gTBxb6gYtH」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「そもそも現行のC規格(C17)では参照しているIEEE 754のバージョンが1985相当で、IEEE 754-1985ではsinとかは規定されていない(sin等の超越関数が「Recommended correctly rounded functions」として規定されたのは2008以降)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数での三角関数の実装、初手「入力をπで割った余りを計算する」みたいなことをすると思うんだけど、πは有限桁の浮動小数点数では表現できないし、多倍長に頼らずに正確にやるのは辛そう」 / Twitter
電子計算機の沼さんはTwitterを使っています 「職場のTさん「あれ?マシンを変えたら精度が悪くなったな」 沼にひきずりこむオタク「現行のほとんどのアーキテクチャはIEEE 754-2008のbinary64に準拠した演算器なのでマシン実装のせいではなく並列度が変わったことによる演算順序の違いが丸め誤差に影響をしているんじゃないでしょうか例えば..」」 / Twitter

libmのsinの実装が正しく丸めた値からどのくらい乖離しているか判定

だめぽラボ@技術書典9さんはTwitterを使っています 「libmのsinの実装が正しい値(正しく丸めた値)からどのくらい乖離しているか判定するコードを書いている(「正しい値」はMPFRで計算する)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「2^nの形の入力に対し、macOSのlibSystemは概ね真の値の1ulp以内の値を返すが、1ulp以上離れるケースもちょいちょいある。AArch64でのglibcはほとんどのケースで正しく丸めるが、0x1p25と0x1p938に対しては1ulp以内のズレがある。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ソースはこれ(書き殴りなので雑) https://t.co/SgltkVNV18」 / Twitter
libmのsinの実装が x=2^n (-1000≤n≤1000)の形の入力に対して「正しく丸められた値」からどのぐらいずれているか検査するやつ
だめぽラボ@技術書典9さんはTwitterを使っています 「実行環境にMPFRを要求するのはアレなので値をソースコードに埋め込む形にしたいが、そういうのは時間ができたらだな」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「いくつかの環境でlibmのsin関数の精度をチェックしてみた結果をGitHubに上げた: https://t.co/Tuv6dMZDhg」 / Twitter
minoki/math-func-test
だめぽラボ@技術書典9さんはTwitterを使っています 「使用したlibcのバージョンとかも明記した方が良いのだろうけど、そういうのは追々」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptの数学関数の精度を検証(ブラウザー間での差異の比較)するのも同じ要領でできそうだけど、JavaScriptには十六進浮動小数点数リテラルがないのでアレ。十進リテラルで埋め込むか、文字列として埋め込んで手動でパースするか、あるいは53ビット整数と2の冪の積の形で埋め込むか。」 / Twitter

平方根

だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の平方根をソフトウェア的に正確に(正しい丸めで)計算したいんだけどどういうアルゴリズムがいいのかね。ジェネリックな関数として書きたいので、反復の回数とかは決め打ちできない」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「多倍長整数や有理数は使って良いものとする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「有理数の平方根を連分数表示するコードは書いてみたけど、結局何らかの方法で整数の平方根(のfloor)を別途計算する必要があるから、にゃーん」 / Twitter

ECMAScriptのMath.powや**演算子

だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptのMath.powや**演算子って 2**n (nは整数)に対して正確な値を返す保証がないな?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「C言語もpowについてのそういう保証はないけど、C言語にはldexpとかscalbnとかがあるからなあ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptで正確に2の冪乗を計算したいなら Number(2n ** BigInt(n)) が一つのやり方としてあり得そう(BigIntからNumberへは正しく丸められる保証がある)」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptで十進小数リテラルは20桁以内なら正確に丸められることが保証されてる感じか?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptでNumberを十六進浮動小数点表記する関数を書くの、初手ArrayBuffer/DataView経由でビット列に変換するのが一番手っ取り早いな?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptでNumberを十六進浮動小数点表記する関数、ざっくりこんな感じかな。表記のスタイルはいろいろカスタマイズの余地があるけど https://t.co/BxD5qWwVUi」 / Twitter

シンタックスハイライト

だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数関連のコードや記事を書いてると、各所のシンタックスハイライターが浮動小数点数の十六進リテラルに対応してなくてにゃーんという気持ちになる」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaもGitHubも対応してない。VSCodeは単体のソースファイル表示時とMarkdown中のソースで違ったかもしれない。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「セルフ先行研究 https://t.co/XalT9ePP6d」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaのC言語のシンタックスハイライト、16進浮動小数点数リテラルに対応してない気がする」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaのシンタックスハイライトはRougeというやつを使っているらしい https://t.co/OqJiiVnYPy」 / Twitter
Qiitaでシンタックスハイライト可能な言語一覧 - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「VSCodeのMarkdown中のCのシンタックスハイライトも16進浮動小数点数リテラルに対応してないっぽい」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「VSCodeのMarkdownプレビューのMarkdown処理にはmarkdown-itが使われていて、他の言語のシンタックスハイライトにはhighlight.jsが使われているという感じかな https://t.co/YYn0bGh6rm」 / Twitter
vscode/package.json at 9bd54c15ae0c2017f4ea251e9eb9a88fb38d62c9 · microsoft/vscode

ゼロ除算ができる数、輪

だめぽラボ@技術書典9さんはTwitterを使っています 「ゼロ除算ができる数、輪を実装してみたので解説 https://t.co/4uImnCh1ns #Qiita wheelを考える動機付けがこの記事だけだと弱い気がする(元ネタの文書では代数幾何への応用を考えてる感じ?)。」 / Twitter
ゼロ除算ができる数、輪を実装してみたので解説 - Qiita
だめぽラボ@技術書典9さんはTwitterを使っています 「あと、元ネタの文書によると「wheel ⨀」の由来は「実射影直線(円と同相)に1点を付け加えたように見えるから」らしいけど、この記事だとその辺ちょっと誤解がある気がする。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の「正負の無限大を同一視」「NaN同士は等しい」とするとwheelっぽくなるんかな」 / Twitter

構成的な環論

だめぽラボ@技術書典9さんはTwitterを使っています 「HaskellのNum周りの型クラス階層がアレなのは事実だけど、Monoid =&gt; Semiringは良くないでしょ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「(+)についてのMonoidインスタンス」と「(*)についてのMonoidインスタンス」を独立に扱えるような言語機能を作るか、通常のMonoidの他に「AdditiveMonoid」「MultiplicativeMonoid」みたいなクラスをそれぞれ用意するか」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「PureScriptの階層はメソッドのデフォルト定義がなくてnegateがzero - xと定義されているのが浮動小数点数的に良くないのと、あとはまあアーベル群みたいなやつは想定してないみたいで加法と乗法が分かれてない。あと除算周りもこれはどうかなあという仕様があった」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「いろんな環をうまく型クラス階層として定式化するには環論、それも普通のPIDとか言ってる方じゃなくて構成的な理論を勉強する必要がある」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「誰かが考えた数の型クラス階層は大抵他の人には満足のいくものではないので、満足のいくものが欲しかったら再発明上等というスタンスでやっていくしかない」 / Twitter

乗算のMitchellの対数乗算の近似

Shiro KawaiさんはTwitterを使っています 「これは賢い。仮数部からのオーバーフローも指数部に+1することになるからオーダーは合う。指数部のオーバーフローはバイアス引く時にキャンセルされる。ただ加算後の指数部が127以下だとまずくないってのと、int加算のオーバーフローってUDじゃなかったっけ?」 / Twitter
Dan KogaiさんはTwitterを使っています 「なるほど。すでに符号と仮数以外は対数表現になっているので足せば掛け算になる。計算尺の原理。符号もintならMSBの位置にあるので-×-はオーバーフローして+」 / Twitter
nikqさんはTwitterを使っています 「へええええ~~~!IEEE754をintにキャストして加算すると、乗算のMitchellの対数乗算の近似になるのか…」 / Twitter
Ikemen Mas KotさんはTwitterを使っています 「Deep Neural Network Training without Multiplications https://t.co/ow0HlEh6mt #maskotlib」 / Twitter
[2012.03458] Deep Neural Network Training without Multiplications
nikqさんはTwitterを使っています 「Cost-Efficient Approximate Log Multipliers for Convolutional Neural Networks https://t.co/fWa9qcqJ9n より、Fig2.1 https://t.co/eKr0seAUJ3」 / Twitter
Dan KogaiさんはTwitterを使っています 「@anohana intオーバーフローは例外で落とす処理系も確かにあって、例えばSwiftの整数演算はそう(オーバーフロー通す演算は&amp;+とか&amp;*とか&amp;を頭に付けたのが別に用意)。けどオーバーフローを全く通せない処理系もまた見かけないし、整数キャストの理由自体MLの高速化なので指数は十分足りてると見立てたのでは?」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@dankogai 論文には明記されてなかったと思うけど(見落としたかも)指数範囲は前処理とかで別途対処でしょうかね。signed intのオーバーフローがUDというのは論文にC++コードがあったからだけど、実装はC++である必要は確かにないですね。」 / Twitter

machine epsilon

ドッグさんはTwitterを使っています 「浮動小数点数の比較のマージンに machine epsilon を使う (abs(a - b) &lt; epsilon) のを推奨するのは良くないのではという話 https://t.co/o2znSYgCMg」 / Twitter
EPSILON is a bad error margin and should not be recommended [float_cmp] · Issue #6816 · rust-lang/rust-clippy
ドッグさんはTwitterを使っています 「そもそも浮動小数点数の精度は値に依存するので abs(a - b) &lt; delta の delta に常にフィットする値が存在しないのはそれはそうだと思う.下手すると machine epsilon が何なのかすら分かってないケースとかもありそう」 / Twitter

02.pdf
2020年振り返りと来年に向けて | 雑記帳
『浮動小数点演算について計算機科学者は何を知っておくべきか』の付録 - Oracle® Solaris Studio 12.4: 数値計算ガイド

Advent Calendar

その他

Rui Ueyamaさんのツイート: "Forth書いたこともWindowsバイナリ手書きしたこともコンパイラのセルフホストしたこともあるけど、この記事すごくよいのでは? 1日ではできないだろうけど腰を据えて読めば。 https://t.co/sCr5wN2uZZ"
一日でできるセルフホスティングForthコンパイラ - Qiita
Shiro Kawaiさんのツイート: "うん、とても良い。セルフホストで立ち上げるの楽しいんで自分も記事書いてみたいと思うんだけどいろいろ細かい話がたくさんあって全部説明しつつ短い記事にまとめるのがすごく難しい。なのでこんだけまとめて書けるのすごい。 https://t.co/ZDjB0sbM3A"
PyPy Advent Calendar 2011 まとめ - pypy-ja
ひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017 - Qiita
MPI Advent Calendar 2017 - Adventar
AVX-512 Advent Calendar 2014 - Qiita
Emacs Advent Calendar 2018 - Qiita
セキュリティツール系 Advent Calendar 2018 - Adventar
Brainf*ck Advent Calendar 2019 - Adventar
Ruby 2.7 Advent Calendar 2019 - Qiita
Elixir Advent Calendar 2019 - Qiita
自作言語 Advent Calendar 2019 - Qiita

Theorem Prover

Theorem Prover Advent Calendar 2013 - Qiita
Theorem Prover Advent Calendar 2014 - Qiita
Theorem Prover Advent Calendar 2015 - Qiita
Theorem Prover Advent Calendar 2016 - Qiita
Theorem Prover Advent Calendar 2017 - Qiita

アルゴリズム

グラフ探索アルゴリズム Advent Calendar 2015 - Qiita
文字列アルゴリズム Advent Calendar 2016 - Qiita
文字列アルゴリズム Advent Calendar 2017 - Qiita
データ構造とアルゴリズム Advent Calendar 2018 - Qiita
データ構造とアルゴリズム #2 Advent Calendar 2018 - Qiita
データ構造とアルゴリズム Advent Calendar 2019 - Qiita
データ構造とアルゴリズム Advent Calendar 2020 - Qiita

WebAssembly

WebAssembly Advent Calendar 2017 - Qiita
WebAssembly Advent Calendar 2018 - Adventar
WebAssembly Advent Calendar 2018 - Qiita
WebAssembly Advent Calendar 2019 - Qiita
WebAssembly Advent Calendar 2020 - Adventar
WebAssembly Advent Calendar 2020 - Qiita

C 言語

C言語 Advent Calendar 2015 - Qiita
C言語 Advent Calendar 2016 - Qiita
C言語 Advent Calendar 2017 - Qiita
C言語 Advent Calendar 2018 - Qiita
C言語 Advent Calendar 2019 - Qiita

テスト

ソフトウェアテスト Advent Calendar 2016 - Qiita
ソフトウェアテスト Advent Calendar 2017 - Qiita
ソフトウェアテスト Advent Calendar 2018 - Qiita
ソフトウェアテスト Advent Calendar 2019 - Qiita
ソフトウェアテスト Advent Calendar 2020 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2017 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2018 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2019 - Qiita
ソフトウェアテストの小ネタ Advent Calendar 2020 - Qiita

言語実装 Advent Calendar 2015 - Qiita
言語実装 Advent Calendar 2016 - Qiita
言語実装 Advent Calendar 2017 - Qiita
言語実装 Advent Calendar 2018 - Qiita
言語実装 Advent Calendar 2019 - Qiita
言語実装 Advent Calendar 2020 - Qiita
ML Advent Calendar 2014 - Qiita
ML Advent Calendar 2015 - Adventar
ML Advent Calendar 2016 - Qiita
ML Advent Calendar 2017 - Adventar
ML Advent Calendar 2020 - Qiita
意味論 Advent Calendar 2016 - Adventar
型 Advent Calendar 2019 - Qiita
Idris Advent Calendar 2020 - Qiita

IDE

MJ文字情報検索システム | 独立行政法人 情報処理推進機構 - IPA
Desktop Screen Resolution Stats Japan | StatCounter Global Stats
富豪的プログラミング
自分が使わないものを発表するな - 増井俊之
自分の成果物を自分で使え - 西尾泰和のScrapbox
「目新しい技術」を避け「退屈な技術」をソフトウェア開発で採用すべき理由とは? - GIGAZINE
AmazonのAPI設計方針 (The Bezos Mandate) - Qiita
Google Registry APIを使用したAPI情報の整理
HTMLとCSSだけでWebブラウザにサイドチャネル攻撃を仕掛ける手法 - PC Watch
[2103.04952v1] Prime+Probe 1, JavaScript 0: Overcoming Browser-based Side-Channel Defenses

その他

機械学習によるテスト失敗の予測
開発イテレーション偏重 - 兼雑記
mumumuさんはTwitterを使っています 「SPINFER: Inferring Semantic Patches for the Linux Kernel [ATC '20] Linuxみたいな大規模SWのAPIの変更に対して,関連するファイルの変更Patchを自動で生成するためのルールを生成する研究.どちらかというとルールベースで推論(ML的なのではない)してる.正確性は90%近くくらいらしい.」 / Twitter
Web 技術の調査方法 | blog.jxck.io
Makoto Kato ︎︎さんはTwitterを使っています 「rniwaよりもWebKitトップのMajの方が方向性は一番重要だし、TPACそこまで重要ではない気がするし、WICGは個人草案という表現はちょっとと思うし、細かいところに粗がいろいろある感じ https://t.co/SFRnNutDep」 / Twitter
リポジトリクラスのメソッド設計 - kawasima
Dropboxが新開発した「非同期処理フレームワーク」はどのように構築されているのか? - GIGAZINE
Introducing Ungrammar
井山梃子歴史館さんはTwitterを使っています 「Ungrammar( https://t.co/vSiuWSh6EC )の考え方は面白いと思っていて,これは言語定義におけるインターフェイスと実装の分離なんだよね」 / Twitter
rust-analyzerの紹介 | κeenのHappy Hacκing Blog
Fabulousにより、F#でiOS向けとAndroid向けの宣言型クロスプラットフォームUIが構築可能に
リファクタリング - Visual Studio | Microsoft Docs
Visual Studio での C++ コードの編集とリファクター | Microsoft Docs
OSTree - Google 検索
Flatpak - Google 検索
Google、オープンソースのモジュール依存関係を分かりやすくグラフ化してくれる「Open Source Insights Project」公開 - Publickey

MS

その他

NyaRuRuが地球にいたころ

Win32 Fiber カッコワルイ - NyaRuRuが地球にいたころ
HotKey でキーリピートを無視する機能が付いたらしい - NyaRuRuが地球にいたころ
Header Annotations - Visual C++ - NyaRuRuが地球にいたころ
SPU C/C++ Language Extensions - NyaRuRuが地球にいたころ
Microsoft が提供する C/C++ ヘッダファイルにおける事前条件・事後条件の充実っぷりは異常 - NyaRuRuが地球にいたころ
ゲームプレイ中のスクリーンセーバやディスプレイ休止を回避する方法 - NyaRuRuが地球にいたころ
コンソールアプリケーションで出力がパイプされているときに,それが閉じられたのを知る方法 - NyaRuRuが地球にいたころ
別スレッドでリソースを解放することのあれそれ - NyaRuRuが地球にいたころ

Msdn フォーラム - Windows SDK サポートチーム
Msdn フォーラム - Windows Driver Kit サポートチーム
Msdn フォーラム - Windows クライアント開発
EternalWindows
Gecko1.8相当製品において修正したバグ - WebStudio
64 ビット Windows アプリケーション開発 - RAD Studio
碧落 - Win64 開発
1985年誕生「Windows1.0」を触ってみたら、恐怖のおっちょこちょいOSだった - デイリーポータルZ
Visual C++(cl.exe)で UTF-8 のファイルをコンパイルする - Bite Code
Windows 10のInsider PreviewでシステムロケールをUTF-8にするオプションが追加される | スラド
OneCore.lib/MinCore.libの紹介 « 他人の空似
Big Sky :: ネットワーク構成を変更した直後に Cygwin や msys2 が激遅になる問題の解決方法
Big Sky :: Windows で子プロセスの標準入出力バッファリングを無効にする
Idleプロセスと名無しのプロセス
ChalkTalk CLR – COMのすべて – kekyoの丼
ASCII.jp:Windows 10「October 2018 Update」でファイル消失の原因になったKnown Foldersって何? (1/4)|Windows Info

MS

その他

Diagnostics (Windows)
Graphics and Multimedia (Windows)
Audio and Video (Windows)
System Services (Windows)
Security (Windows)
Restart Manager Reference (Windows)
Packaging, deployment, and query APIs (Windows)
System Administration (Windows)
Networking (Windows)
Per-directory case sensitivity and WSL – Windows Command Line Tools For Developers
KeyboardDeliveryInterceptor Class (Windows.UI.Input) - UWP app developer | Microsoft Docs
Ink presenter (Windows)
DirectComposition (Windows)
Makoto Kato ︎︎さんのツイート: "Windowsのコンソール系バグ (APIも含む) は、https://t.co/97QTqsydFS で報告できるようになったのは素晴らしい"
Microsoft/console: Windows Console Tools
Windowsドライバ開発を容易にするMicrosoft Driver Module Framework
Condition Variables - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自前Conditionクラス、CriticalSectionで守っているため、CAS(Compare And Swap)不要なのにCASを使っている気がする。 (そもそもVista以降、CV入っているし、ネイティブCVに移行してXPユーザには泣いてもらうかな…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちがった。 クラス内csで守る部分と、globalリソースのためのCASに分けていたのだった。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ポインタサイズの省サイズ&高速な ReaderWrite Lock (ポインタサイズのため再帰不可) ---- Slim Reader/Writer (SRW) Locks (Vista以降) https://t.co/CNVy8QiN1J」 / Twitter
Slim Reader/Writer (SRW) Locks - Win32 apps | Microsoft Docs

Windows 10

削除または非推奨

Windows 10 Creators Update Deprecated Features | Microsoft Docs
Windows 10 Fall Creators Update Deprecated Features | Microsoft Docs
Windows 10, version 1803 - Features that have been removed | Microsoft Docs

API

Windows 10 version 1607 API changes - UWP app developer | Microsoft Docs
Windows 10 Creators Update API changes - UWP app developer | Microsoft Docs
Windows 10 Fall Creators Update API changes - UWP app developer | Microsoft Docs
Windows 10 Build 17134 API changes - UWP app developer | Microsoft Docs
SetThreadDescription function | Microsoft Docs

Windows Hypervisor Platform

Windows Hypervisor Platform | Microsoft Docs
Windows Hypervisor Platform API Definitions | Microsoft Docs
VM Saved State Dump Provider API | Microsoft Docs
QEMUのWindowsホストでのHyper-Vのサポート | K'zlog
[Qemu-devel] [PATCH 0/4] Implements the Windows Hypervisor Platform acce
[Qemu-devel] [PATCH 1/4] Add the Windows Hypervisor Platform accelerator
[Qemu-discuss] configure fails with whpx enabled on msys2 w64 build proc

Microsoft Windows 10 - Wikipedia
What's new in Windows 10 build 10240 - July 2015 - UWP app developer | Microsoft Docs
What's New in Windows 10 build 10586 - November 2015 - UWP app developer | Microsoft Docs
What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
Windows 10 の開発者向け新着情報、ツール、機能 - UWP app developer | Microsoft Docs
Windows Machine Learningなど開発者にも続々と新機能 - Windows 10 April 2018 Update | マイナビニュース
What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
TLS (Schannel SSP) | Microsoft Docs
Why Are We Deprecating Network Performance Features (KB4014193)? | Ask Premier Field Engineering (PFE) Platforms
Update on Microsoft’s Symbol Server – Debugging Tools for Windows
Microsoft public symbol server | Microsoft Docs
Windows Filtering Platform (Windows)
SetThreadDescription function (Windows)

Technical documentation, API, and code examples | Microsoft Docs
Bug Check Code Reference | Microsoft Docs
Windows API Index (Windows)

非推奨

Shirouzu Hiroaki(白水啓章)さんのツイート: "WIn95時代から存在する、Win32アニメーションコントロールを初めて使ってみる…AVI縛り以外は意外と良いかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "うーん、非圧縮でない場合に、RLE8縛りになるのが厳しいな… https://t.co/5NHvwiXDeE An animation control can display an AVI clip originating from either an uncompressed AVI file or from an AVI file that was compressed using run-length (BI_RLE8) encoding."
About Animation Controls (Windows)
Shirouzu Hiroaki(白水啓章)さんのツイート: "結局、GDIplusで、アニメーションGIFのフレームを1つずつ取り出しながらタイマーで描画、というベタな解に落ち着きそう。"
市川 真一さんのツイート: "古い環境をサポートするためなのでしょうけど、GDI+ は非推奨 API らしいですね。今なら Direct2D を使ってほしいみたいです: Deprecated or legacy APIs https://t.co/Z283r33XkN… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ありがとうございます。 MSは広まったAPIやコンポーネントは滅多に廃止しないので、GDIとGDI+は事実上廃止されないのではという気も(笑) (CreateFileTransactedのような不人気API群は躊躇なく廃止しますが)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "GDI/GDI+が廃止されるとしたら、デスクトップ開発はC#等のマネージドアプリのみを認め、C++はドライバ開発のみと決断した時かな?とも。… "
市川 真一さんのツイート: "それに期待したいところです。ゲームや Web 関係の技術は廃止されて被害にあってる人も多いようですね… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "それは知りませんでした。 ゲーム系はよく知らないのですが、Web系だとIEコンポーネントやInternetOpen等廃止されそうと言われつつも、しぶとく未だに使えている印象もあったのですが(笑)… "
市川 真一さんのツイート: "例えば Web 系だと C/C++ じゃないですが、J# が丸ごと廃止になってたり。あれで開発してた人もいたのですけどね… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 MSの過去の行動を見ると、累積ソフト資産の総量で決めている感じがしますね。 累積総量が多いと、古臭くても非推奨でもしぶとくサポート、と。 逆に、Windows Mobileなどは、梯子を外された感を持つハード&ソフトベンダの方も多そうですが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "その点、Appleは結構大胆に切り捨てている印象が…でもユーザが思ったほど離れない不思議。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔MSは、SDIよりMDIを推奨し続けて、ついにMDIアプリはMS Excelのみ、といった時代になってようやくMDI推奨を取り下げて、その後ExcelもSDI化したという歴史があったような。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "2001年に SDI推奨になった資料があった…ということで、記憶より前からSDI推奨に変わっていた様子。 https://t.co/j2vs3xRRW8"
Microsoft Windows ユーザー エクスペリエンス FAQ

Microsoft API とリファレンスのカタログ
Windows 7 API List (Windows)
Windows 8 and 8.1 Technologies (Windows)
Windows におけるコーディング規約 (Windows)
Technical features new to Windows Vista - Wikipedia
Windows のキーボード ショートカット - Windows Help

MSDN

Windows Hardware Certification blog

New Windows 10 Driver Failure Report, now live in Hardware Dev Center – Windows Hardware Certification blog
Win32 logo certification deprecation – Windows Hardware Certification blog
Errata filter database lookup is now available via Hardware Dev Center – Windows Hardware Certification blog

Japan WDK Support Blog

カーネルモード デバッガで UMDF ドライバをライブデバッグする – Japan WDK Support Blog
NDIS Connection-less Protocol Driver Sample をインストールする – Japan WDK Support Blog
MSDN インシデントで技術サポートにドライバー開発のお問い合わせをする方法 – Japan WDK Support Blog
INF ファイルが Universal かどうか検証する方法 – Japan WDK Support Blog
SimRep File System Minifilter Driver サンプルを動かしてみる – Japan WDK Support Blog
新しい Windows Driver Kit documentation – Japan WDK Support Blog
Minispy File System Minifilter Driver サンプルを動かしてみる – Japan WDK Support Blog
Visual Studio 2015 でのテスト署名方法 – Japan WDK Support Blog
パブリック シンボルとプライベート シンボル – Japan WDK Support Blog
Windows 10 update history 公開 - Japan WDK Support Blog - Site Home - MSDN Blogs
Err.exe でエラーコードの定義を探す – Japan WDK Support Blog
WDK for Windows 10, version 1803 – Japan WDK Support Blog
Hyper-V 仮想マシンへのネットワーク経由のカーネルデバッガ接続方法 – Japan WDK Support Blog
プリンタードライバーの GPD ファイル記述に関する注意事項 – Japan WDK Support Blog
Authenticode 署名のドライバインストールのトラブルシューティングの一例 – Japan WDK Support Blog
Intel、新規格「UWD」に対応したグラフィックスドライバ - PC Watch
GPU情報取得ツール「GPU-Z」が新しいドライバー形式“UWD”に対応 - 窓の杜
Microsoft、Windows互換認定を受けたハードウェアのカタログサイトを公開 - 窓の杜
Partner Center

JAPAN Platform SDK(Windows SDK) Support Team Blog

NotifyIcon.ShowBalloonTip メソッドで表示されるバルーン表示の問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Microsoft Print to PDF 選択時の CPrintDialog::OnInitDialog() 動作について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Windows 10 で ISequentialStream インターフェースからファイルを操作する際のパフォーマンスについて – JAPAN Platform SDK(Windows SDK) Support Team Blog
UIAutomationCore.dll を利用するアプリケーションが異常終了する問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
CFileDialog クラスにて表示したダイアログ ボックスの応答がなくなる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Thread.Abort メソッドを利用してスレッドを終了させる際の注意点について – JAPAN Platform SDK(Windows SDK) Support Team Blog
ツールバー移動時の軌跡が残像となる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
リモート メールスロットへの書き込み時 ERROR_BAD_NETPATH (53) となる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
LoadImage 関数が負の高さをもつビットマップの読み込みに失敗する – JAPAN Platform SDK(Windows SDK) Support Team Blog
ICopyHook::CopyCallback ハンドラ関数へ通知される pszDestFile が空になる – JAPAN Platform SDK(Windows SDK) Support Team Blog
Windows 10 でトースト通知が表示されないことがある – JAPAN Platform SDK(Windows SDK) Support Team Blog
Virtual Bytes が、Windows 10 April 2018 Update 適用前後で異なる – JAPAN Platform SDK(Windows SDK) Support Team Blog
Graphics.DrawLine メソッドで Panel コントロールに描画した直線が表示されません – JAPAN Platform SDK(Windows SDK) Support Team Blog
WPF アプリケーション上で、F10 キーが押されたことを検出できない – JAPAN Platform SDK(Windows SDK) Support Team Blog
仮想化した TreeView コントロールが自動的にスクロールされる。 – JAPAN Platform SDK(Windows SDK) Support Team Blog
TryShowPrimaryView メソッドを実行してもタッチ キーボードが表示されない – JAPAN Platform SDK(Windows SDK) Support Team Blog

Cloud and Server Product Japan Blog

Visual Studio 日本チーム Blog – 日本マイクロソフト株式会社 Visual Studio 製品マーケティングの Blog です。 日本のお客様向けに Visual Studio に関する様々な情報をお届けします。
Cloud and Server Product Japan Blog – サーバー&クラウド関連の製品やサービスの発表をお伝えする、マイクロソフト マーケティングチームの公式ブログです。
Windows Server 2008 SP2 のサービス変更について – Cloud and Server Product Japan Blog
IoT デバイスへの証明書のインストール – Cloud and Server Product Japan Blog

Visual Studio サポート チーム blog

Visual Studio サポート チーム blog – Visual Studio / .NET Framework をご利用いただいている開発者の方に役立つ情報をお届けします。
夏時間が適用されるタイムゾーンにおける mktime 関数利用時の注意事項について – Visual Studio サポート チーム blog
Visual Studio 2015 の _utime32 関数で指定可能な時刻の上限が以前と異なる – Visual Studio サポート チーム blog
Visual Studio 2015 / 2017 で発生する可能性がある _snscanf_s 関数の問題について – Visual Studio サポート チーム blog
Visual Studio 2015 および Visual C++ 2017 のリンク時のコード生成における最適化の不具合について – Visual Studio サポート チーム blog
参照側プログラムのリビルドが必要となるような DLL の変更について – Visual Studio サポート チーム blog
Windows 10 および Windows Server 2016 における Windows インストーラー パッケージの VersionNT プロパティについて – Visual Studio サポート チーム blog
Visual C++ の正規表現ライブラリで発生するバージョン間での動作の違いについて – Visual Studio サポート チーム blog
以前のバージョンの Visual Studio 2017 インストーラーについて – Visual Studio サポート チーム blog
OLE パッケージ オブジェクトを含むドキュメントを開くと GDI オブジェクトが増加する – Visual Studio サポート チーム blog

The Visual Studio Blog

The Visual Studio Blog | The official source of product insight from the Visual Studio Engineering Team

C

多次元配列 (C)
Microsoft 固有の修飾子
コンパイラ セキュリティの徹底調査
不完全な型
通常の算術変換
代入変換
定義済みマクロ
EncodePointer function (Windows)
DecodePointer function (Windows)
memcpy_s、wmemcpy_s
strnlen、strnlen_s、wcsnlen、wcsnlen_s、_mbsnlen、_mbsnlen_l、_mbstrnlen、_mbstrnlen_l
x86 Intrinsics List
C/C++ ビルドのリファレンス
/X (標準インクルード パスの無視)
コンパイラ組み込み
コマンド ラインでのビルド
Visual Studio での C++ プロジェクトのビルド
リンカー オプション
_STATIC_ASSERT マクロ
/Gs (スタック チェック呼び出しの制御)
Creating Guard Pages (Windows)
_resetstkoflw
__rdtsc
データ型の範囲
データ型定数
グローバル定数
非数 (NAN) 項目
How do I access the magic IEEE floating point values like NaN in code? | The Old New Thing
C 浮動小数点定数
String Manipulation Summary (Visual Basic)

Windows Driver Kit documentation | Microsoft Docs
UI オートメーションの概要 | Microsoft Docs
Windows Machine Learning - UWP app developer | Microsoft Docs
What’s new in Windows Console in Windows 10 Fall Creators Update – Windows Command Line Tools For Developers
IE11のドキュメントモードのフローチャート | Microsoft Edge Japan
USB デバイスが「不明なデバイス」として表示される場合の対処法 – Windows & Devices 開発統括部
ソリッド ステート ドライブ (SSD) に関するサポートと Q&A – マイクロソフトのEngineering Windows 7 ブログ
文字列の操作
Naming Files, Paths, and Namespaces (Windows)
お客様の声から学びました
Open Specifications Developer Center
Windows Driver Kit (WDK) - Windows 10 hardware dev
Functions
Open Specifications Developer Center
API を廃止する
wimをアクセスするコード(不完全)
新しいハードウェアダッシュボード問い合わせ方法について
Msdn forums - Open Specifications

Winsock

データの送受信(標準編)
Winsock2関数
c++ - what is __in and WSAAPI? - Stack Overflow
DNS クライアントの新機能
GetAddrInfoEx function (Windows)
FreeAddrInfoEx function (Windows)
GetAddrInfoExCancel function (Windows)
GetAddrInfoExOverlappedResult function (Windows)
Windows Sockets Error Codes (Windows)
Handling Winsock Errors (Windows)
WSAGetLastError function (Windows)
FormatMessage function (Windows)
Error Codes - errno, h_errno and WSAGetLastError (Windows)
IdnToAscii function (Windows)
IdnToUnicode function (Windows)
IPPROTO_TCP Socket Options (Windows)
Big Sky :: Windows 10 に AF_UNIX が来たので試してみた。
AF_UNIX comes to Windows – Windows Command Line Tools For Developers
Graceful Shutdown, Linger Options, and Socket Closure - Windows applications | Microsoft Docs

Application Manifests

MS

Wikipedia

リソース (Windows) - Wikipedia
Resource (Windows) - Wikipedia
Multilingual User Interface - Wikipedia

Resource Files

About Resource Files (Windows)
Resource-Definition Statements (Windows)
Resource File Formats (Windows)
RESOURCEHEADER structure (Windows)
Resource Types (Windows)
Resource Types (Windows)
Resource Files (Visual Studio)
Multilingual User Interface Reference (Windows)
Manifest Resources

/ALLOWISOLATION (マニフェスト検索)
/MANIFEST (side-by-side アセンブリ マニフェストを作成する)
/MANIFESTUAC (UAC 情報をマニフェストに組み込む)
/MANIFESTINPUT (マニフェスト入力の指定)
アプリケーション マニフェスト
方法 : マニフェストを C/C++ アプリケーションに埋め込む
C/C++ 分離アプリケーションおよび side-by-side アセンブリのトラブルシューティング
Installing Side-by-side Assemblies (Windows)
Side-by-side Assemblies Reference (Windows)
Windows XP ビジュアル スタイルの使用
コマンド ラインでのマニフェスト生成
Visual Studio でのマニフェスト生成
Mt.exe (Windows)
Manifests (Windows)
Manifest Files Reference (Windows)
Manifest Files Reference (Windows)
Application Manifests (Windows)
Application Manifests (Windows)
Application Manifests (Windows)
Application Configuration Files (Windows)
Publisher Configuration Files (Windows)
Manifest File Schema (Windows)
Application Configuration File Schema (Windows)
Publisher Configuration File Schema (Windows)

UAC関連
現在のWindowsサイドバイサイドについて
現在のWindowsサイドバイサイドについて-続き-
Windows マニュフェストファイルの読み込み順 |
c++ - reading an application's manifest file? - Stack Overflow
winapi - How to use a manifest embedded as a resource? (Windows XP/Vista-style controls) - Stack Overflow
resourcelib/Manifest.md at master · resourcelib/resourcelib · GitHub
RT_MANIFEST
RT_MANIFEST resource, and ISOLATION_AWARE_ENABLED – Junfeng Zhang's Musing
[Delphi/BCB] manifestファイルをexeに埋め込む: プログラミングの覚え書き
[ 314_アプリケーションマニフェストの作成とリソースの操作 ] - Mr.XRAY
Programming Windows Maniacs - プログラミング ウィンドウズ マニアックス - Windows XP以降でアプリケーションにThemeを反映させるには(2)
WindowsXPのVisualStyleを使う(SDK)
Section7.5 ボタンとかのデザインをXP仕様にする
Windows 7 64-bit 環境で Application Manifest が無視されることがあるように見える - NyaRuRuが地球にいたころ

PATH

PATH の正規化

パス内の"."や".."を削除して、正規化する - .NET Tips (VB.NET,C#...)
PathCanonicalize function - MSDN Search
軽減策: パスの正規化 | Microsoft Docs
8-1. Windowsパス名の落とし穴
Windowsのパスがうまく指定\表示できない問題 in Python - ぴよぴよ.py

MAX_PATH

INADA Naokiさんのツイート: "Pythonは10年以上かけてWindowsでwchar_tを使うように、ANSI APIを排除するように頑張ってきたけど、それが終わる頃に、WindowsがANSI APIでUTF-8つかえるようにする&パス長制限を外す動きを見せて、何もしなくてもUTF-8対応できたんや…ってなりそう。MSの動きが10年遅いんだよ。。。。"
About Unicode Enabling Applications and Code Pages – Windows Embedded Standard (Standard 7, Standard 2009, XPe…)
GetFullPathName function (Windows)
Naming Files, Paths, and Namespaces (Windows)
CreateFileW等のwin32apiでMAX_PATH 超のメモ - Qiita
Windows で長いファイル名のファイルがあるフォルダに対して、ワイルドカードを使うと落ちることがある · Issue #675 · vim-jp/issues
.NET Framework 4.6.2 を発表 – Visual Studio 日本チーム Blog
More on new .NET path handling – Jeremy Kuhne's Blog
Maximum filename length in NTFS (Windows XP and Windows Vista)? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(1607)以降、レジストリ変更(LongPathsEnabled)すると、MAX_PATH制限が無くなる=システム全体の変更。 こういう制限は、アプリのマニフェスト定義でオプトインの形の方が望ましい気がする。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "読み足りなかった。マニフェストに longPathAware を追加すれば、アプリ単位設定できる、とある。 https://t.co/rLxJ5bYraW (一方で、システム設定変更とマニフェスト追加の両方を行わないと有効にならない、と動作結果を報告しているサイトもあるな…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、\\?\ の場合の文字列上限に関する、最新と昔の記述の違い。 昔は「nearly 32,000 Unicode characters long」というアバウトな数字だった。… "

Naming Files, Paths, and Namespaces (Windows)
Naming Files, Paths, and Namespaces - Win32 apps | Microsoft Docs

ファイル時刻

GetFileTime function (Windows)
FILETIME structure (Windows)
SetFileTime function (Windows)
c - How do I get the file HANDLE from the fopen FILE structure? - Stack Overflow
_get_osfhandle | Microsoft Docs
_get_osfhandle - RAD Studio
_fileno | Microsoft Docs
_fileno - RAD Studio

ストレージ

Disk Management Reference (Windows)
Distributed File System Reference (Windows)
Extensible Storage Engine Reference
File Management Reference (Windows)
Offline Files Reference (Windows)
Packaging API Reference (Windows)
Remote Differential Compression Reference (Windows)
Transactional NTFS Reference (Windows)
Volume Management Reference (Windows)
Windows Storage Management Provider (Windows)
hitoさんのツイート: "CVE-2018-6557を見て、symlink restrictionの有効性に久しぶりに感動している"
Create symbolic links (Windows 10) | Microsoft Docs
Symbolic link - Wikipedia
NTFS symbolic link - Wikipedia
Symlinks in Windows 10! - Windows Developer BlogWindows Developer Blog
ASCII.jp:Windows 10 RS5で改良されたファイル名の大文字/小文字の区別 (1/2)|Windows Info
Shirouzu Hiroaki(白水啓章)さんのツイート: "と思ったが、このフラグはXP以降デフォルトでは無効らしい(レジストリ設定がある)。 で、WSL用にWin10で、ディレクトリにこのフラグを設定する例外を増設したという話…付け焼刃感強い&わかりづらすぎる。 https://t.co/rbsSnStKz5"
Enable or Disable Case Sensitive Attribute for Folders in Windows 10 | Tutorials
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「逆に言うと、Windowsはopenやgetattr系の命令は同期なので(read/writeはasyncあり)、特にSMB3以降で、open/getattrをマルチスレッド化すると効果大。 (だが explorer はそれをやってない様子) https://t.co/bAVs9YmwHN」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya smbはopen/closeが同期かつ遅い、という印象はありますね。 逆に、nfsだとopen/close自体が無いのと、readdirplusでreaddirのついでにエントリのfh取得まで出来ます。 ただ、それ以外の話もありそう、、、sambaはユーザーモードですし。」 / Twitter

GUI

Windows Accessibility Features Reference (Windows)
DWM Reference (Windows)
Globalization Services (Windows)
National Language Support Reference (Windows)
Windows User Interface (Windows)
Windows Animation リファレンス (Windows)
Windows Ribbon Framework Reference (Windows)
Property System Reference (Windows)
Shell Reference (Windows)
Windows Search Reference (Windows)
Console Reference - Windows Console | Microsoft Docs
User Interaction (Windows)
Legacy User Interaction Features (Windows)
Windows and Messages (Windows)
Windows 10 Fall Creators Update での GetPixel、SetPixel 関数の処理速度について – JAPAN Platform SDK(Windows SDK) Support Team Blog
Windows 10 Fall Creators Update での Credential Provider に対する影響について – JAPAN Platform SDK(Windows SDK) Support Team Blog
「Fall Creators Update」でGetPixel/SetPixel関数が遅くなる問題 ~一部アプリの動作速度に影響 - 窓の杜
「Fall Creators Update」でGetPixel/SetPixel関数が遅くなる問題、「KB4058258」で修正 - 窓の杜
メッセージクラッカ - Web/DB プログラミング徹底解説
Windows Programming/Resource Script Reference - Wikibooks, open books for an open world

Windows のマウス キー機能 - マイクロソフト アクセシビリティ
なかのん&マジックさんのツイート: "マウスとか、特定の入力デバイスに依存したUIは本当にあかん。マウスに依存してるのだと、hover時にしか開かれないメニューとか。"
XAML Islands Archives - Windows Developer BlogWindows Developer Blog

SegmentHeap

メモリ食いのGoogle Chrome、ついに消費量削減へ - PC Watch
Opt in to the Windows "segment heap" (I217d045e) · Gerrit Code Review
May 2020 Updateの「Microsoft Edge」は省メモリ ~ブラウジング時の消費量を最大27%削減 - 窓の杜
Improving Memory Usage in Microsoft Edge - Microsoft Edge Blog
Application Manifests - Win32 apps | Microsoft Docs
Visual C++ 2017 第4回 アプリケーションマニフェストの作成(1/2) : FENIX-PC
us-16-Yason-Windows-10-Segment-Heap-Internals.pdf
Windows-kernel-SegmentHeap-Aligned-Chunk-Confusion/ at master · synacktiv/Windows-kernel-SegmentHeap-Aligned-Chunk-Confusion

Win32 Container

Microsoft explains how Win32 apps will work on Windows 10X - Neowin
Microsoft Bagikan Detail Lebih Lanjut Mengenai Windows 10X | WinPoin
Makoto Kato ︎︎さんはTwitterを使っています 「Windows internals Part 2が出ないところで、新しいContainerシステムなWindows 10Xが出るんだが、これをフォローするWindows internalsはいつ出版されるんでしょうか」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Native ContainerなEdgeからWin32 ContainerなEdgeに変わるのは劣化だよな。。。」 / Twitter
ASCII.jp:Windows 10Xはなぜかアップデートが90秒で終わるらしい (1/2)
イスラエルエリカちゃんさんはTwitterを使っています 「Virtual events - Microsoft 365 https://t.co/OsuRSCDvBS」 / Twitter
Virtual events - Microsoft 365
イスラエルエリカちゃんさんはTwitterを使っています 「ぇっ、「Win32アプリが動くコンテナ」には「ゲストカーネルとドライバ」が動いていて、ホストOSへUIを表示する為にはホストOS上でRDP client走らせるの…」 / Twitter
イスラエルエリカちゃんさんはTwitterを使っています 「今までニュースサイトとかで話に出てた”Windows Core OS”の事っぽいから急に出てきたものじゃないみたいだけど、別OS感すげぇな」 / Twitter
イスラエルエリカちゃんさんはTwitterを使っています 「「Classicじゃん!!!(MacOS Xの)」ってなってしまった」 / Twitter
ASCII.jp:アプリ互換性を維持しつつ生まれ変わったWindows 10Xでタブレット市場を挽回できるか (1/2)
ASCII.jp:変わるWindowsのアプリ戦略 UWPからデスクトップアプリに原点回帰か (1/4)|Windows Info

NUMA

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MapViewOfFileExNuma というWin32APIが増設されていた。 https://t.co/BLSySUw57w」 / Twitter
MapViewOfFileExNuma function (winbase.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NUMA関連Win32API一覧 https://t.co/kMatP7SyHE」 / Twitter
NUMA Support - Win32 apps | Microsoft Docs

ストレージ

Project Zero

Project Zero: Windows 10^H^H Symbolic Link Mitigations
Project Zero: Between a Rock and a Hard Link
Project Zero: The Definitive Guide on Win32 to NT Path Conversion
Project Zero: Windows Exploitation Tricks: Arbitrary Directory Creation to Arbitrary File Read

@shirouzu

時刻

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32のSYSTEMTIME構造体はミリ秒が最小単位。 だが、Win8以降、GetSystemTimePreciseAsFileTime という100ns単位のAPIが増設され、実効的には1usの精度のUTC時間が取れるようになっていた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIXのファイル時間は秒単位の時代が長かったが、最近はns単位が普通となった。 以前は、samba経由で保存すると(100ns単位が)秒単位に丸められてしまった。 今は、samba経由で保存すると、100ns倍数のmtimeとなり、samba経由で保存したファイルだね、とすぐ分かるように(笑)"
SODA Noriyukiさんのツイート: "あれはLinuxのext2fsがウンコだっただけで、1990年代前半くらいにはffsを採用しているOSならばファイルシステムのフォーマット的にはミリ秒(SVR4)ないしナノ秒(*BSD)、解像度的には 10ms くらいにはなってました。ext2fs だけはファイルシステム的に秒単位だったので、だいぶ不便でしたが。… https://t.co/LsrXxpYO5z"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 あとは、samba側が長らく秒単位のstat/utimeを使っていたから、というのもあったのかもしれませんね。(昔、SolarisやHP-UX上のsambaでも、長らく秒単位だった記憶があるので)… "
SODA Noriyukiさんのツイート: "なんと。SVR4 の場合、stat(2) でも st_mtime は「# define st_mtime st_mtim.tv_sec」で定義されていて、tv_nsec が使えたんですが、Samba 側が使ってなければどうしようもないですねえ... 僕はずっと UNIX native の開発ばかりしてたので気づきませんでした。… https://t.co/juPB5wvdiE"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Solaris7/8時代のmanを検索してみましたが、tv_nsecの件、見当たらないですね…statがtimevecも入れた構造体に拡張されると、statのABI互換が無くなると思うのですが、timevec対応statには別syscall番号を振る、みたいなことをしたんですかね。 https://t.co/0WtgsRlw8i… https://t.co/AcDQIe6iIC"
SODA Noriyukiさんのツイート: "4.0BSDではダメですが少なくとも 4.2BSD くらいには tv_nsec 分の領域が struct stat にリザーブされていたので https://t.co/0QatkejSe6 Solarisの場合、ABI問題はないんですよ。… "
SODA Noriyukiさんのツイート: "AT&T 3b2用のピュアなSVR4の場合、 ユーザーランド: !defined(_STYPES)ならばユーザランドはデフォルトでtv_nsec用の領域がある カーネル: システムコール番号18,28,88が昔からのstat(2),fstat(2),lstat(2)、123,124,125がtv_nsecつきのxstat(2),lxstat(2),fxstat(2) でした。… https://t.co/OzUDHKxenR"
SODA Noriyukiさんのツイート: "Solaris の方を見ると、システムコール番号18,28,88が st_nsec つきのインターフェースになっていて、 123,124,125は別のシステムコールになってますね。 https://t.co/Wb44d4q1Sw… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "確かに、各timeにreserveだかspareだかという記述なら、SunOS4.1.2時代のヘッダにも、それっぽいフィールドが載っていたような気も…。 ABI的には大丈夫だったのですね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルシステムの比較表。 ext4でようやく生成日時を保存するようになった様子だが、stat(2)側の問題で、Birth timeは空のまま。 https://t.co/QHYYiPleVL… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ext4のinodeを直接漁れば、生成日時は取れるらしい。 そういえば、UNIXのctimeはちょっと変わってる印象。 (atime以外の)inode修正日時の保存し、syscall経由では変更不可、というのは解析やセキュリティ用途を意識したものだったのかしらん? (たしかに調査用途に使ったことがある)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "timevecじゃなくてtimespecだった。 この構造体はいつ頃定義されたのかしらん。 (初めて意識に上ったのはnanosleepを使おうとした2000年くらいだったか、あまり昔という印象が無い)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho Win32API経由でOneDriveフォルダ(WebDav)を操作すると、CreateFile -&gt; WriteFile -&gt; SetFileTime -&gt; CloseHandle だと SetFileTime が反映しない・ローカル側が消えると秒粒度になる等で、使いづらい面はありましたね。 (OneDrive(WebDav client)実装側の問題かも)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu ありがとうございます。LAN用のファイル共有プロトコルから離れると、細かな問題はいろいろありそうですね」 / Twitter

セキュリティ

Shirouzu Hiroaki(白水啓章)さんのツイート: "昔は、共有ドライブルートのACLは読めなかったと思うのだが、Win10で試すと問題なく取れるようになってるなぁ。 共有ドライブルートの場合、GetFileAttributes APIすらエラーになっていた記憶があるのだが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsドメインでのACLの扱いは、NT3.5時代にドメイン管理していた頃の知識のままだなぁ。 ローカルグループ同士は入れ子構造にでき便利だったが、サーバ側ドライブのACLで使えない。ドメイングループは入れ子表現できず、適切なACL表現にするのに苦労した記憶…今はそんな縛りは流石に無いのかな?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "CreateFileにACCESS_SYSTEM_SECURITYを立てると、BackupReadでもSACLを取得できるとは知らなかった。 でもこのフラグを立てたCreateFileはAdmin必須でsambaではエラーになる。local + admin の場合のみ有効にするかな…。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy v3.62をリリース。 ACLオプション動作の拡張(管理者権限でローカルNTFS(or ReFS)間のコピーでは、DACLだけでなくSACLもコピーするように) https://t.co/L7jJavdtio #fastcopy"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsでEAを使うには、ZwSetEaFileというドライバー用APIのユーザランド版をntoskrnl.dllからGetProcAddressして使うしか無さそうに見える。 https://t.co/4Y9332b9lq"
ZwSetEaFile routine (Windows Drivers)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32/NTFSって、chmod 600 としたいだけでも、これだけ手順必要。 (多機能=典型的な設定すら大変な作業に…典型的なダメデザイン) https://t.co/5J7695dCnB」 / Twitter
Win32API セキュリティ属性を指定してファイルを作成する - s-kita’s blog

ディレクトリ削除

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsのディレクトリツリーの削除が、POISIX的な削除ではうまくいかないという話。 (DeleteFile直後は dir-entry的から消えてないが、MoveFileだとentry消えるから、tempにfile-moveしてのempty-dir削除の方が確実と。悪夢だ…) https://t.co/eNtfzFKvGn https://t.co/bDzkL5a61x」 / Twitter
fs::remove_dir_all rarely succeeds for large directories on windows · Issue #29497 · rust-lang/rust
CppCon2015/Racing the Filesystem - Niall Douglas - CppCon 2015.pdf at master · CppCon/CppCon2015
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyではこの現象に出くわすため、RemoveDirでエラー発生時はNotification系APIでイベント待ちのループでリトライしてるのだが。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「コマンドプロンプトから標準コマンドを使っても、問題を起こすので、皆のtipsが寄せられるの巻。 (リトライとか移動とか。大した解決策はない) https://t.co/pVQxIeD2oK」 / Twitter
windows - How to solve "The directory is not empty" error when running rmdir command in a batch script? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FindFirstFile等で得るファイル属性値と、ファイルハンドルから直接GetFileInformationByHandleで得る属性値が異なることがあって、NTFSがファイル情報を dir-entry と file-slot に二重持ちをしているのか、OSが最新でないキャッシュを握って返すのか分からないけど、この辺も妙なのは確か。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++ の std::remove_all を見ると、やはりリトライしてるのだけど、最下部で Undocumented なパラメータを使った、SetFileInformationByHandle() を呼んでる…うーん、いつもながらのMSスタイル(笑)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この辺の話。 https://t.co/YQWskLCgKg」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これ読むと、VC++ の std::remove は Vista以降だと何も考えずに SetFileInformationByHandle を発行していて、DeleteFile/RemoveDirectoryは使ってない。(フォールバックすらしない) あとXPにはSetFile...は無いので、とりあえずRemoveDirectory発行してダメなら DeleteFileと。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「実際の VC++ STL用ライブラリソースはこちら。 https://t.co/MAgVCURokh それを呼び出してるSTLヘッダ側はこちら。 https://t.co/4Ai75IT1kK」 / Twitter
STL/filesystem.cpp at master · microsoft/STL
STL/filesystem at 2914b4301c59dc7ffc09d16ac6f7979fde2b7f2c · microsoft/STL
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「逆に最新の Win10なら、SetFileInformationByHandle(FILE_DISPOSITION_FLAG_POSIX_SEMANTICS) が増設されたことで、Dir削除がnot emptyでエラーになる呪いが消えていたりする…?(要検証) (これ、元々はWSLのために作られたのかしらん?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「手元で簡単に試した範囲では、同一プロセス内で create/unlinkがシミュレートできるようになっただけだった。やれやれ。 (別プロセスが開いたファイルは相変わらず ERROR_SHARING_VIOLATION が出る)」 / Twitter

direct I/O

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「こういうレポートは有り難い。 https://t.co/mOLcjcLzn4」 / Twitter
Results of using FastCopy in an LTO Drive environment. - Google グループ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「1ファイル毎にヘッドが戻る現象、ftruncateが効いているのか、SetFileTimeが効いているのかだろうなぁ。 前者なら対処は可能だが、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「direct I/Oで用意するバッファ、セクタ単位必須(&アライン)なのはいいけど、末尾書き込みサイズは非セクタ単位をサポートしてほしいところ。 実際、読み込みではその仕様だし、、、書き込みと非対称。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、direct I/Oで末尾のセクタ単位未満のアクセス。 別スレッドで観察すると、末尾以降にディスクのゴミデータが一瞬現れた後にゼロクリア、なんてことが起きてないか、ちょっと気になったり。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IO前に、mmu/pte的に当該ページ群をユーザランドから無効化してそうだな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「太古のUSBだと Direct I/O や Async I/O でバグるのものあるのだよなぁ。 (あと XP時代のRDP Drive共有で Async I/Oで書き込み場所が狂うという豪快なのも…Async I/O = offset位置明示APIにもかかわらず)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Vista あたりから Async I/O、Win8.1くらいからDirect I/Oを 標準Explorerでも使っている様子で、それ以降は枯れてきた感じある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔、Linuxでも Async I/O が枯れてない話があった記憶…最近は io_uring も充実してきたので、状況変わったかな?」 / Twitter

非同期 I/O

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SetFileIoOverlappedRange は面白そうなWin32APIなのだが、Vista時代にSQL Serverでデータ破壊バグがあったのが少し気になる。 https://t.co/9PPX3QyYef https://t.co/sJLCdtJKU3」 / Twitter
SetFileIoOverlappedRange function (fileapi.h) - Win32 apps | Microsoft Docs
SQL Server data corruption when a memory range is accessed by the SetFileIoOverlappedRange function and an I/O operation in Windows Vista, in Windows Server 2008, in Windows 7, or in Windows Server 2008 R2
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このAPIは非同期I/Oするにあたって、事前に物理メモリロック範囲指定をファイルに紐づけて行うことで、I/Oごとの細かく個別ロックするカーネル処理がスキップできる、というイメージかな。 (手元で簡単に試した範囲だと、複数ファイルで同一領域しても大丈夫そう)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy で仮想メモリ→物理メモリロックで、時折遅い状況が出る、などがあれば改善できそう。 ただよほど巨大バッファ指定(GB越えとか)でなければ、普通は1周すれば物理メモリに乗った状態になるので、普通はそんなに変化無さそう。 (バッファにGB超指定しても、意味ある環境あるかな…)」 / Twitter

histric-1

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy実験。 削除をマルチスレッド対応にすると、ネットワークドライブの削除(小さなファイル群)で2.5倍の速度が出るようだ。 (ローカルドライブでも、1.5~1.8倍くらいのレートに)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ローカルドライブの単一ファイルシステム内の並列削除でも、マルチスレッドで高速化している。 OSファイルシステム処理(NTFSドライバ&キャッシュマネージャ)が、きちんと並列処理している現れで、興味深い。 (=MFT処理でジャンボロックなどしていない、ということ)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "本当はwin32に、asyncなopen/delete apiが欲しい。"
Ryota Shioyaさんのツイート: "Windows 上のファイルの削除ですと,先に全部ファイルを消してから次にディレクトリを消すと妙に速くなると言うのを以下で見て,実際やってみたらその通りだった記憶があるのですが,このあたりって何か関係あったりするんでしょうかね https://t.co/dUbeTuLfzA… https://t.co/bXc0f8WfP8"
Shirouzu Hiroaki(白水啓章)さんのツイート: "どうなんでしょう? 手元のWin10(17134)で、HDD/SSDで数万~数十万ファイル程度の削除を何度か確認した範囲では、rmdir単体より、del + rmdir の方が速い、という傾向は出ないみたいですね。 XP~Win10のどこかで、処理が変わったのかもしれません。… https://t.co/2VRWenxYJb"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSファイル削除は、ブロック解放($Bitmap変更)、当該ファイルスロットの無効化(MFT自体の変更)、direntryの削除(B+treeのリーフ削除?)といった(あとジャーナル($LogFile)もかな)、あちこちにアクセスする話なので、それらの物理配置も強く影響しそう。(つまり作成時の状態に依存)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "高速なファイル検索のためには、先に空ファイルを全て作った後に、ファイル実体を作った方が、dir-entryの物理配置が集約するので良い、という話もあったり。 (いかにB+treeでも、物理ブロックが飛び飛びになると遅くなる)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、SSDだとディレクトリのフラグメントはもう気にしなくていいかもしれない。(未計測だが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "削除多重度を上げるため、全ファイル非同期削除→全ディレクトリ削除、という2フェーズ削除を実験してみたが、これはHDD上では逆効果だった。 (別ディレクトリエントリ間の並列動作=ヘッドシーク多発、となった可能性あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSにバックアップ(FastCopy)すると「CreateHardLink(この要求はサポートされていません。50)」が大量に出ていた。 何だろうと思ったら、ReFSはハードリンクをサポートしていなかった。ReFSがシステムドライブに使えないのが理由の一つが良く判る(WinSxSには大量ハードリンク有り)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ローカルNTFS相手でも、多数のCreateFileをマルチスレッド化すると目に見えて高速化するのは想定外だった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32サブシステムは、ファイル名の大小文字("A"と"a")を同一と見なすが、いわゆる全角の大小文字(「A」「a」)も同一とみなす…ちなみに「あ」と「ア」は別。 (なお、NTFS内は区別していて、POSIXサブシステム経由だと別扱い)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTCreateFileを使うと、openat()相当の動作が可能になる。 ただし、そのハンドルはNTxxx系APIでしか利用できない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FAT32内のキリル文字ファイルをD&Dすると、FindFirstFileExW()で ERROR_NO_UNICODE_TRANSLATIONが発生する謎、しかもコマンドライン起動の場合は発生しないとのこと。 W系APIの中で、MBCS変換している?謎だ… https://t.co/FwWfW0lFp8"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WinAPIというより、システムコールと呼ぶべき、NTCreateFileを使うと、openat相当の技が使えるようになる…今計画している拡張にはすごく欲しいな。 (計画だと、パスデータのメモリコピーが多く発生しそうなのだが、それを一気に減らせる)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "GetVolumeInformation、Win7以降からようやく、FileSystemFlagsにまともな値が返ってくる様子。 (ただし、この値を信用するとXP/Vistaでまともに動作しなくなる。起動すら不可、にしたら使う感じかな)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深い。ちょっと補足すると、 ・Transactional NTFS は事実上obsolete。 https://t.co/Ff9lb6vR4u ---- 「Windows のファイルのコピーは、驚くほど奥が深い」 https://t.co/O0fi9TiORc"
Transactional NTFS (TxF) - Windows applications | Microsoft Docs
登 大遊 - Windows のファイルのコピーは、驚くほど奥が深い。 Windows... | Facebook
Shirouzu Hiroaki(白水啓章)さんのツイート: "さらに補足。 ・ファイル拡大でゴミを読み取る可能性があるのは、SetFilePoiter+SetEndOfFile ではなく、SetFileValidData(管理者権限)を使用した時だけ。 (NTFSで)前者で領域確保のみを行い、ReadFileを行うと0データが返る。 初めてWriteした時点で、0~書込位置にゼロfillが走る。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なおFAT系の場合、書き込み時ではなく、領域確保時点でゼロfillが走る。 NTFSの挙動は extent方式の特徴。extent管理領域に「未書き込み」フラグを立てておき、読み込みで0を返す、という技が使える。 (ext4も同様で、ftruncateによるサイズ拡大が一瞬で終わるが、ext3だとゼロfillが延々走る)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "下記は、一応昔ながらの BackupRead という手はあるかも。 >「Win32 SDK の API ドキュメントを見渡したが、NTFS のアクセス権限を無視した代替ストリームの列挙を可能とする API は 1 つも存在しなかった」"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、SetFilePointer+SetEndOfFileは実領域確保が約束されているわけではなく、samba ではsparse fileとなり、これを避けるには(お勧めは出来ないが)SetFileValidData を使えばいけたはず。 (ただ、このAPIはfallocateに翻訳されるため、ext3だと延々zero-fillになる問題が出る)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、登さん、良く調べてるなぁ。さすが。"

histric-2

Shirouzu Hiroaki(白水啓章)さんのツイート: "もし一般権限でファイルサイズ拡大だけで、全ユーザの削除データを読み取れるなら、ACLなど無意味な特大セキュリティホールのような…… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "MSの生き字引、レイモンド・チェンによると(ACLなどない)Win95ではSetEndOfFileでゼロクリアしていなかったらしい。 ドキュメントに保証する記述が無いのは、そのためと。 https://t.co/fE5alE9v4y"
On the various ways of creating large files in NTFS | The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "それに関して「(ファイルシステム部が)NT系なら拡張部分を0と仮定してよい」と書いてあった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: ""NtSetInformationFile extends the file and pads the extension with zeros." とあるので、NT系ならNTFS以外でも0fillを期待して良さそう。 https://t.co/HIOONRG02K"
NtSetInformationFile function (ntifs.h) - Windows drivers | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんのツイート: "この件で、久々に「Windows NT ファイルシステム詳説」を見たのだが、あまり役に立つ情報は見つけられなかった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ただ、昔の記憶にあった通り、「NTキャッシュマネージャ」は単なるキャッシュ以上の動きをしていることを確認できてよかった。 (場合によって、ファイルシステムドライバ側の領域拡張命令を呼び出したりする)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ここは正確でなかった。 WindowsNTファイルシステム詳細を参照すると、(ext4やxfsと違い)未書き込み管理はextentに保存していない。 ValidDataLengthという8byteの属性のみで、そのため、先頭からnバイトまで有効なデータ、という情報のみ=末尾writeすると、先頭~末尾0fillを行う必要が出る。"
鯉江さんのツイート: "ちなみにext4とかだとエクステント内に穴があくときはどうなるんでしょう?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そんなことは無かった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "GetFullPathNameW、パス途中にショートファイルな要素が存在すると、fnameポインタがNULLになる、というバグ的挙動があるな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "この関数「マルチスレッドでは非推奨」とあって驚く。 static buffer類は使ってないのに何故?と思ったら、「C:だけ指定するとカレントディレクトリを埋めて戻す」機能があり、別スレッドがcwdを変えると問題になるから、というオチだった。なんだそれ感。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ふーむ、IO_REPARSE_TAG_LX_SYMLINKって知らなかった。 https://t.co/HCp71rLXsL"
ツッコミどころいろいろ (#3611861) | Windowsにおけるファイルコピーに関する驚くほど複雑な注意点 | スラド
Shirouzu Hiroaki(白水啓章)さんのツイート: "SHCreateItemFromParsingName APIに対しては、たとえMAX_PATHを超える場合も、\\?\ を付けてはいけない謎tips。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それはいいのだが、8.3文字変形される(=longpathではMAX_PATHを超える)場合、ファイルダイアログ系&ドラッグ&ドロップで、非ASCIIパス要素が化けるバグがある様子。 たとえば「あいう」が「B0D0F0」に化ける。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(17763)でLongPathAwareを有効にしなくても、ファイルダイアログ系で(バッファ指定を大きくすると)MAX_PATHを超えるパスを格納してくる様子。 パス要素8.3文字化でMAX_PATHに収まるときはその形。それでもMAX_PATHを超える時は \\?\ を付加して通常パス名で格納というハイブリッド動作。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、マニフェストでlongPathAwareを有効にすると、そもそも8.3文字変形が無くなるため、この問題は消える。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32では、Symlink / Junction / Mount-point はいずれも「リパースポイント」という枠組みで実装されている。 FastCopyではリパースポイントをリパースポイントとして複製しているため、新しい種類のリパースポイントが現れてもそのまま動作するはず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、リパースポイントにもカテゴリーがあり、DeDupやHSM(階層化ストレージ)用のリパースポイントだけは実体をコピーするようにしている。 具体的には、IsReparseTagNameSurrogateで識別する。 https://t.co/E4AEELiaOm"
IsReparseTagNameSurrogate macro (winnt.h) | Microsoft Docs

histric-3

Shirouzu Hiroaki(白水啓章)さんのツイート: "今のところ、Win10(17763.475)上で、マニフェストlongPathAware(&レジストリLongPathsEnabled)を有効にしても、Drag&Drop経由では ShortPath換算MAX_PATH以内のファイルしか受け取れない様子。 (DragQueryFileWで MAX_PATH以上のバッファを指定しても無効)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ManifestでLongPathAwareを組み込むには、Win10SDKのmt.exeが必要。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「MSさん、FILE_SHARE_DELETEを作った時にUNIX的挙動に寄せなかった理由は何だろうなぁ…まったくもって使いづらい。 (大昔と違って)開いていてもリネームは可能なので、それで凌ぐことが多い。(インストーラで、コピーしたいファイルが開かれている時など) https://t.co/pOOus50ERd https://t.co/YiOxt1mLTJ」 / Twitter
消えないファイルの話 – JAPAN Platform SDK(Windows SDK) Support Team Blog
mattnさんはTwitterを使っています: 「提案している人達は FILE_SHARE_DELETE を付け足す事で logrotate を実現したいという話だけども、Windows の FILE_SHARE_DELETE は UNIX のそれとは違う。これは issue の中のC言語のコードでも実証した。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昨年から fsutil file setCaseSensitiveInfo dir-path enable とやると、WSL配下以外でも大文字小文字を別ファイルとして扱うように、という今更迷惑千万な改変。 API的には NtQueryInformationFile(FileCaseSensitiveInformation) という隠しAPI的な呼び出しが必要。 https://t.co/9mIoB1292f」 / Twitter
NtQueryInformationFile function (ntifs.h) - Windows drivers | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win32APIのUTF8拡張を、システムグローバルなコードページ(日本だとSJIS/CP932設定)をUTF8に変更で実現もそうだけど、とってもセンスがない。 (APIの場合、やるならUTF8専用API(=主にW系APIのラッパーで良い)の追加が最もスジが良い方法)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「何と、この問題が起きるのは FindFirstFileExW だけであり、FindFirstFileW では問題なかった。 MSさん、一体どういう実装しているのかしらん…? https://t.co/Rm1VAZ6MUB」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いい加減な情報を返すことがある FindFirstFile系… ---- 「本当に最新情報が欲しい場合は GetFileInformationByHandle を使え」 https://t.co/RnvYvsd0en」 / Twitter
FindFirstFileExW function (fileapi.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NTFSの副次ストリーム(ADS)の上限数が、ストリーム名長合計に依存する話。 副次ストリーム名は$ATTRIBUTE_LISTに含まれ、$ATTR…のサイズ上限は256KiB(&UTF16で格納)。 https://t.co/D5Utjev1J6」 / Twitter
How many alternate data streams can a file have? - Colin Atkinson's Blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SSD/NTFSで、10並列CreateFileすると、CreateFileプロセスよりMsMpEng(Windows Defender)がCPUの殆どを消費してしまう…これをOFFにすると10倍くらいCreateFile速度が延びる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GetDiskFreeSpaceWはドキュメントと違い、途中dirでも情報取得できる模様。(実際そうでないとジャンクション等で困る) https://t.co/JO3ALotTaK」 / Twitter
GetDiskFreeSpaceW function (fileapi.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近、GetFileAttributes等のfileattrに 0x100000 という undocumented な値が取れてしまう。 調べてみると最新のwinnt.hに FILE_ATTRIBUTE_UNPINNED という値が増えていた。(ただし説明無し。クラウド上ファイルをローカルに常駐させるかのフラグっぽい) https://t.co/VUwGZzsUSM」 / Twitter
What do new Windows 8/10 attributes mean: No scrub file (X), Integrity (V), Pinned (P), Unpinned (U) - Super User
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy英語掲示板で、アーカイブビット(変更があると1になる属性bit)を利用したバックアップできると良いなぁ、というご意見。 今時でもコレを利用したバックアップって、メジャーなのだっけ?」 / Twitter
Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「弊社ではまったく扱った記憶がなく、、どちらかというとAcronisとかのバックアップソフトが活用するメタなのでは?と思ってたり」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「タイムスタンプ&サイズ」が無変化だが、実は変更有だとアーカイブビットの意味ある…だがその状況はかなりレア。 (mmap中のメモリ経由更新はその類い。ただmmap中ファイルはバックアップする意味ほぼない)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Ext4 の Case Insensitiveモードって、Windowsとのファイル交換トラブルを減らすために作られたのかしらん? ちなみにWindowsだと、日本語ファイル名の「A」と「a」も同じ文字扱いと知っている人は少なめ。」 / Twitter
概念と化した恐竜先生さんはTwitterを使っています 「@shirouzu ちゃんと追ってないけど、考慮不足な気がするんですよね。Sambaの下敷きとして使うときにcase insensitiveが欲しくなるのはそうなんですが、そういう時には厳密にMS互換の動作をしてほしくて、Unicodeルールで処理されてもうれしくないと思うんですよ」 / Twitter
UnagiさんはTwitterを使っています 「うお。全角 A a が同じなの今まで気付いてなかった。試してみると macOS もそうなのね。」 / Twitter

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「動作が奥まで見えていると、無駄・並列化可能部分が判るのだろうなぁ。 16年前にFastCopy設計した時も、src/dstは別物理HDDなら並列化可能(逆に単一HDDなら大きなバッファ単位で切り替え動作が良い)、OSキャッシュは利点無いので回避、といった知見の積み重ねだったな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「&gt;OSキャッシュは利点無い 大量のコピーやバックアップ的な動作では、srcやdstに溜まったキャッシュは、次々発生するコピーによって置き換わって再利用されず、しかも他のプロセス/ファイルの物理ページもLRU的に侵食していたのだよね。 (なお最近のWin10は置換ロジックが少し改善されたのだが)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお UTF-16で数えた文字数なので、ANSI API+漢字だと 260バイト=130文字とかになる。 なお、OSレジストリ変更+アプリmanifest(longPathAware)+アプリ側で MAX_PATH超に対応、を満たすより、FastCopyのように内部で \\?\ 付与して MAX_PATH超対応する方がOS ver縛り無くて汎用性高いのだよな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyのベリファイは、OSキャッシュ排除は FILE_FLAG_NO_BUFFERING で排除してるが、デバイスキャッシュの影響も(なるべく)排除すべく、全コピー完了後にベリファイモードに移行する形にしてる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これに FILE_FLAG_WRITE_THROUGH を追加設定すると ReadFileでもCDB(SCSI/SATAコマンド列)にFUA(メディアI/O強制)ビットが設定されている、とのこと。へぇ。 (ただし効果があるかはドライバ依存) https://t.co/CK1KWGjZMR」 / Twitter
How to verify file write to a physical hard disk — OSR

file コマンド

ぬるぽへさんのツイート: "最近のfileコマンドは、先頭のマジックとマジックごとに用意されたテキストデータベースを比較するとかじゃなくて、専用のバイトコードでマジックのインタプリタが書かれていてそれを走らせて判断しているらしい"
Tsukasa #01さんのツイート: "magic のバイトコードは一応チューリング完全になることを回避してるはず (私が知る magic では自由な形でのループは制限されてたはず)。 #kernelvm"
Tsukasa #01さんのツイート: "あぁ、線形実行する形になってるからやはりチューリング完全ではない (ある値にマッチしたら深いマッチを行える程度) し、実行時間も完全に予測/制御可能。 #kernelvm"
本の虫: 実行可能ファイルかつPDFファイルかつJarファイルかつHTMLファイルとして認識されるファイル

Cached I/O と Non-Cached I/O の違いをパフォーマンスカウンタで見てみたよ - NyaRuRuが地球にいたころ
「システム キャッシュ」の謎 - NyaRuRuが地球にいたころ
ハードウェア書き込みキャッシュのバイパス要請 - NyaRuRuが地球にいたころ
メモリマップドファイルとワーキングセット - NyaRuRuが地球にいたころ
Win32 API でファイルのハードリンクカウントを調べる - WinSxS フォルダの真実 - NyaRuRuが地球にいたころ
ユーザの感情に作用する遅延書き込みの仕組みを暴け - 記事紹介: Inside Vista SP1 File Copy Improvements (3) - NyaRuRuが地球にいたころ
SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ
Vista のファイルコピーが遅い件について - NyaRuRuが地球にいたころ
記事紹介: Inside Vista SP1 File Copy Improvements (2) - NyaRuRuが地球にいたころ
記事紹介: Inside Vista SP1 File Copy Improvements (1) - NyaRuRuが地球にいたころ
IWordBreaker とファイル検索 - NyaRuRuが地球にいたころ
ReadyBoost と FILE_FLAG_NO_BUFFERING - NyaRuRuが地球にいたころ
Big Sky :: CreateFile で FILE_SHARED_DELETE を指定するとどうなるか
全言語で気をつけるべき、ファイル書き込み時のお作法 - Qiita
ほぼすべてのウイルス対策ソフトにOSを破壊可能な脆弱性 ~現在は多くのソフトで修正済み - PC Watch
Microsoft、ゲームのロード時間を大幅削減する「DirectStorage」のWindows版を提供 - PC Watch
ドッグさんはTwitterを使っています 「path-slash で Windows のファイルパスの verbatim prefixes を正しく扱えてないバグがあった.ファイルパスの prefix 地味にムズいなぁ https://t.co/zp1Sft0Z2x」 / Twitter
std::path::Prefix - Rust
ドッグさんはTwitterを使っています 「これ例えば verbatim UNC だと \\?\UNC\server\share までが prefix なのか…」 / Twitter
マイクロソフトのDirectStorage APIがPCIe 3.0 NVMe SSDとDirectX 12 GPUを対応|自作.com

インストーラ

Windows Installer

MS

Windows インストーラー パッケージの作成
Visual Studio Installer :インストーラ パッケージ (.msi) ファイル
Windows インストーラーのエラーをトラブルシューティングする方法
Download Windows Installer 4.5 Redistributable - 日本語 from Official Microsoft Download Center
Windows インストーラー 4.5 について
【レビュー】「Windows Installer」の不正なインストール情報をクリアできるMS純正ツール - 窓の杜
Windows インストーラーの基本概念
Windows Installer (Windows)
Windows Installer Guide (Windows)
Windows Installer Reference (Windows)
About Windows Installer (Windows)
Windows Installer Examples (Windows)
Overview of Windows Installer (Windows)
Using Windows Installer (Windows)

サードパーティ

Windows Installer の修復によるインストールトラブル対処方法(Windows)
Windows Installer を修復してインストールの不具合を回避する方法 - F-Secure Community - 67241
「Windows Installer」とは何ですか? - Wise for Windows Installer 5J Professional - ナレッジベースの詳細 | GrapeCity Developer Tools
Windows Installerに対応したソフトウェアのリモートインストール手順
相栄電器 サポート情報: インストール時に Windows Installer のログを記録する
インストーラー作成ソフト「Inno Setup」が2年ぶりのバージョンアップ - 窓の杜
jrsoftware.org // Jordan Russell's Software

Qiita

Windows GUIプログラミング入門15 インストーラー(1) - Qiita
インストーラー作成ツールの選択 - Qiita

Wikipedia

Microsoft Windows Installer - Wikipedia
Windows Installer - Wikipedia
WiX - Wikipedia
WiX - Wikipedia

Twitter

おおきくてながいさんのツイート: "インストーラーの中身は全く見てないけどmsiならupgrade table吹き飛ばしたりsetup.exeからたたいてるみたいだからレジストリにlogging=voicewarnupつけて引数解析したうえでmsi直実行したりproperty tableのそれっぽい値を探したりいろいろ悪いことは思いつくインストーラークラスタ"
おおきくてながいさんのツイート: "インストーラーの中身全然知らないけどね。orcaも入れてないし。うん、全然知らない。何にも知らない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "アンチウイルスに誤検出されずらい、インストーラの作り方、を知りたいところ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "この形にしたのは(Explorer等を使った場合に起きる)展開ファイルにゾーン情報が付与されるのを回避するため。 付与されていると、exe実行時に警告が出る以外に、ヘルプ(.chm)の目次は出るものの、肝心の中身が表示されないという、原因が分かりづらい問題が出る。… https://t.co/e71lQ4w7g3"
うがp@「~」←ちるだ!!さんのツイート: "FastCopyを使っていた人ならわかるけど、 今回からINSTのみの配布。 実行時、展開のみ というオプションがあるみたい。 高速ファイルコピーツール「FastCopy」v3.50が公開 ~処理が2倍以上高速化するケースも - 窓の杜 https://t.co/nHxDHpWnVQ @madonomoriさんから"
Shirouzu Hiroaki(白水啓章)さんのツイート: "32bit/64bit版を同梱した共通化インストーラ(32bit製)が完了。 1,194KB → 1,461KB と約22%のサイズ増加。 ただ今時だと、誰も気にしないレベルかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "/SILENT, /EXTRACT, /EXTRACT(32|64) などのオプションも追加。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WinServer 2008以降、WOW64 をアンインストールすることが可能になっている様子。 (32bit製インストーラのみ、という点がネックになる可能性はあるのかな?) https://t.co/YAD124wZZ3"
WoW64 Is Now an Optional Feature for Server Core (Windows)
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyインストーラは、インストーラexeをビルド後、末尾にメインファイル群を付加する形。 IPMsgインストーラでは、インストーラのソースに、メインファイル群をC言語データ配列化したものが含まれ、ビルドするとexe自身にそれらが内包される形。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "後者は、アンチウイルスの誤検出低減への効果を期待したものだったが、数年運用した結果として、全く無意味と判った(笑)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy最新版は、32bit/64bitの両インストール(or 取り出し)を可能にした、単一インストーラ(当然32bitバイナリとして作成)となった。 今のところ、特に困った人もおらず、こちらは配布ファイルが1つで済むので良いことしかない様子。次の IPMsgでも同様にしよう。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "普通にインストールすれば、x64環境ではx64版が動くはず。 だが、わざわざx86版を取り出して、x64環境で使っている人が居るっぽい。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "インストーラに、sha256による自己ハッシュ検証を入れるように変更。 ただ、コード署名を入れれば不要になるが。"
Rockridgeさんのツイート: "Fx65:MSI形式のインストールパッケージをサポート。15年前から要望がでていたが、ついに。参照:https://t.co/eWVZm3gyU7 / “show_bug.cgi?id=1475510” https://t.co/yw35MuaNhh"

WiX チュートリアル 日本語訳
WiXではじめるWindows Installer作成入門 第1回 (1/3):CodeZine(コードジン)
Microsoft Visual Studio 2015 Installer Projects を利用してインストーラーを作成する
Visual Studio 2015でWindows Installerを使えるようにする - Webサービスで起業を目指すプログラマーblog
Visual Studio 2015 Community Edition で Windowsインストーラを作成する - グロブ
Visual Studio 2017 Installer Projects でインストーラーを作成する │ Web備忘録
Visual Studio Installer (インストーラー プロジェクト) に関するあれこれ | Tk2Kpdn Wiki
Windows Installer の削除して良いファイル - Windows 2000 Blog
第561回 ローカルインストール時もcloud-initを活用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

MSIX

MSIX とは - MSIX | Microsoft Docs
Three things you need to know about Windows Developer Day - Windows Developer BlogWindows Developer Blog
Microsoft/msix-packaging: MSIX Packaging SDK
Free Windows Installer - MSI Installer Tool
Grant identity to non-packaged desktop apps | Microsoft Docs
Identity, Registration and Activation of Non-packaged Win32 Apps - Windows Developer Blog
新しいUWPとWin32アプリケーション配布モデル
Microsoftがアプリ戦略をアップデート 新形式「MSIX」でモダン化は進むか (1/2) - ITmedia PC USER
MSIXでパッケージ可能になった開発者向けWindows 10 SDK Previewが公開 - PC Watch
新しいアプリインストール形式“MSIX”が利用可能 ~「Windows 10 RS5」Build 17682以降 - 窓の杜
Microsoft、次世代アプリパッケージ“MSIX”を作成・編集するツールをストアで公開 - 窓の杜
「MSIX Packaging Tool」がストアで正式公開 ~MSI後継のインストールパッケージを作成 - 窓の杜
Microsoft、“MSIX Packaging Tool Insider Program”を開始 - 窓の杜
「Windows 10 May 2020 Update」、開発者向けの準備が完了 ~“Go-Live”なSDKが公開 - 窓の杜
Windows Virtual Desktop の MSIX アプリのアタッチの概要 - Azure | Microsoft Docs
Windows Virtual Desktop の MSIX アプリのアタッチ - Azure | Microsoft Docs
「Windows 10 Enterpriseマルチセッション」で「MSIX App Attach」をサポート - ZDNet Japan

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7以降、「プログラムの追加と削除」エントリは、非Adminでも登録可能になっていた。いつアナウンスされたのだろう…? (正確には HKEY_LM 以外に HKEY_CU 配下の REGSTR_PATH_UNINSTALL も有効になった、という形)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「コード署名」「Program Filesインストール」「マニフェスト(uiAccess=true)」の3つが揃ったプログラムはUACをバイパスして、管理権限プロセスにも SetWindowsHookEx できるのね。 (インストール時に管理者権限必須とはいえ、ちょっと微妙だな…) https://t.co/T9bnrIg7Ip"
visual studio でビルドする際の uiAccess="true" について
Shirouzu Hiroaki(白水啓章)さんのツイート: "正確には、管理者権限アカウントからプロセス起動した場合に、UACでは落とされるべき一部特権が落とされないで起動する、という話だろうなぁ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsで、日本語(マルチバイト)ユーザ名だけで発生する問題、時折、うっかり踏んでしまう…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最近の FastCopy や IPMsgインストーラは、x86/x64版を同梱したファットバイナリで、OS種別により x86/x64バイナリのどちらかをインストール。 配布ファイルが1種類になり楽になった。 (以前は x86/x64 * exe/zip の4種類インストーラを配布。exeのみでOKになったのはコード署名のおかげ)… https://t.co/g8o1y5YmLv"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この意味が未だに分からない…どういう意図なのだろう? https://t.co/KLLYxZcwBT」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「設定→「アプリと機能」と、コントロールパネル→「プログラムと機能」in Win10。 アンインストール時、ユーザ権限インストールで登録されたアプリでも、前者だけは必ず管理権限を求められる。」 / Twitter
UnagiさんはTwitterを使っています 「@shirouzu うちのだと特に特権昇格してくる事はないんですけど、確かに動作が違っててよくわからん動きするんですよね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@unagix そうなのですね。 ところで「動作が違って、、、」というのは具体的にはどんな違いでしよう?」 / Twitter
UnagiさんはTwitterを使っています 「@shirouzu うまく説明できないんですが、RestartManager API 周りがちゃんと動いてくれてない感じなんですかね。自分のアプリを落としてアンインストールした後にまた上がってきたりする。他のアプリでも、動きは違うけどうまくアンインストールできないケースをよく見ますね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@unagix なるほど、、、 環境によって挙動がバラバラだと対処に困りますねぇ。」 / Twitter

2019年2月6日 OSを"インストール"ではなく"デプロイ"する ―マルチブート環境を簡単に実現するデプロイツール「znx」:Linux Daily Topics|gihyo.jp … 技術評論社
Dockerイメージのレイヤー構造について - めもめも
ASCII.jp:WindowsでのWin32アプリケーションのインストール状態を調べる方法 (1/2)
第9回 Windowsのファイルシステムの概要とFATファイルシステム (1/2):Windows OS入門 - @IT
Periodic Background Sync 及び Web を Install するということ | blog.jxck.io
FadisさんはTwitterを使っています 「CentOSのインストールディスク、ボリューム名をデフォルトから変えるとinitrdの中で詰んでしまうの何でかと思ったけど、これ光学ディスクドライブが複数あるマシンでブートした時に間違ったディスクをマウントしない為にボリューム名をチェックしてるのか」 / Twitter

システム情報

システム情報
SystemParametersInfo 関数
IsProcessorFeaturePresent 関数
GetSystemMetrics 関数
GetSystemInfo 関数
GetKeyboardType 関数
GetCurrentHwProfile 関数

イベントログ

Windows 7/8.1/10などで一部アプリが接続不能に ~2021年6月のパッチが原因 - 窓の杜
Windows 10, version 21H1 | Microsoft Docs
Event Logging Reference - Win32 apps | Microsoft Docs
Windows Event Log - Win32 apps | Microsoft Docs

アクセシビリティ

Windows 8.1/8 のアクセシビリティ機能 | マイクロソフト アクセシビリティ
Windows 7 のアクセシビリティ機能 | マイクロソフト アクセシビリティ
Windows 10 のアクセシビリティ機能 - マイクロソフト アクセシビリティ
アクセシビリティ
マイクロソフト アクセシビリティ ホーム
アクセシビリティ対応アプリケーションの開発 – Windows アプリ開発
支援技術情報トップ - マイクロソフト アクセシビリティ
Windows Vista のアクセシビリティ機能 | マイクロソフト アクセシビリティ

Audio & Video

DirectX Video Acceleration - Wikipedia
DirectX Video Acceleration - Wikipedia
DXVA の構造体
MediaSinkでDXVA
便利機能 >ハードウェアデコーディング
Media Foundation - Wikipedia
Media Foundation - Wikipedia
つまみぐいプログラミング Media Foundation でカメラ画像を取得
XAudio2とMedia FoundationでMP3/WMA再生 - syghの新フラグメント置き場
MediaFoundation --- 動画の読み込み - 何でもプログラミング
5時間でMedia Foundation Interfacesをとりあえず使いこなしてアプリに実装する心得 - notes5375
MediaFoundationを使う (1) MediaFoundationの特徴 - プログラマのつれづれなるままに
Media Foundationで再生する動画(wmv)をDirect3D 9 surface上で表示したい
チュートリアル: WRL および Media Foundation を使用した Windows ストア アプリの作成
MediaFoundationでID3D11Texture2Dに動画のフレームを読み込む 覚書β - 昏の花
XAudio2 Introduction (Windows)
XAudio2 移行ガイド

Fixstars Tech Blog /proc/cpuinfo

Windowsデバイスドライバの基本動作を確認する (1) - Fixstars Tech Blog /proc/cpuinfo
Windowsデバイスドライバの基本動作を確認する (2) : プラグアンドプレイ - Fixstars Tech Blog /proc/cpuinfo
仮想マシン上でWindowsデバイスドライバをデバッグする - Fixstars Tech Blog /proc/cpuinfo
Windowsドライバのテスト署名の動作を確認する - Fixstars Tech Blog /proc/cpuinfo
WDKのサンプルRAMDiskドライバを触ってみた (1) - Fixstars Tech Blog /proc/cpuinfo

Wikipedia

クライアント/サーバー ランタイム サブシステム - Wikipedia
Win32コンソール - Wikipedia
Windows プレインストール環境 - Wikipedia
Windows Recovery Environment - Wikipedia
Windows Aero - Wikipedia
ClearType - Wikipedia
Microsoft Transaction Server - Wikipedia
Desktop Window Manager - Wikipedia
Windows Imaging Component - Wikipedia

GitHub

EasyHook
EasyHook/EasyHook: EasyHook - The reinvention of Windows API Hooking
Microsoft/vcpkg: VC++ Packaging Tool
masafumiさんのツイート: "MicrosoftからHLSLを様々なグラフィックスAPI向けシェーダにコンバートするツールがオープンソースになってた。SPIR-VやMetalとかどうなんでしょうなぁ ShaderConductor https://t.co/LgrPRJUkTr"
Microsoft/ShaderConductor: ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages

Qiita

Wine Emulator の内部構造 : Inside Wine - Qiita
Visual Studio 2017 Update 3 で Win32 プロジェクトが作成できなくなった時の対処法 - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "VisualStudioデバッガで、文字列表示をMBCSからUTF-8に変更する方法、残念ながらVS2017の設定ファイルに項目当該が見つけられない。 https://t.co/55UOPeSTn2 (毎回ウォッチ画面で、str, s8 とかすればいいのだが、ちょっと面倒)"
Visual Studio のデバッガで文字列を UTF-8 で表示させる - Qiita
ダウンロードしたファイルの「ブロック解除」をコマンドで - Qiita
Windows 10 NTFS代替ストリーム - いろいろメモ
COM Advent Calendar 2014 - Qiita
【IE限定】JavaScriptからCOMを呼び出す - Qiita

Twitter

その他

藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "Cygwinがsocket全部にSO_{RSV,SND}BUF付けて回るのやめさせたら速くなったよって話 / “Windows network performance suffering from bad buffering |…” https://t.co/dIyhmKE12X"
Windows network performance suffering from bad buffering | Networking Blog
道化師さんのツイート: "Windows さん、単純なファイルの読み書きを大量に実行するとそれだけでちょくちょくエラーになるのホント勘弁して欲しい。。。 # 失敗した場合でもリトライするだけ成功する"
sweetie089さんのツイート: "windowsの下位互換性は他に比べるとすごいけどやっぱり色々切り捨てていて、例えば別に確保した隣り合うメモリーを一つと扱い巨大データを入れて一部APIに突っ込むとエラーする。 これができる前提のコンパイラ利用アプリは動くけど長く使ってると唐突に落ちるという意味不明挙動になりマジで困る。"
Windows_Japanさんのツイート: "【ファイルの容量をいち早く確認したいそんなとき】 メールに添付をするときなど、ファイルのサイズが気になる時はありませんか? 「Alt+ダブルクリック」でファイルを選択するとプロパティを表示できるので、すぐに確認ができますよ。 #Windows #Windows10… https://t.co/npiBujXYu0"
品川 高廣さんのツイート: "Windows 10 SDK (10.0.17763.0) にある Windows Hypervisor Platform API のヘッダファイルにタイポを見つけた。UINT32 を UNIT32 と書くのはありがちなタイポではあるけど、Microsoft がやるとはね。https://t.co/ys9MFdwl3e"
Virtual Processor Exception | Microsoft Docs
マイクロソフトサポートさんのツイート: "エクスプローラーをすぐに開きたい時は、「Windows」キー+「E」キーを使うのがお勧めです。キーボードだけで操作できるので作業時間の短縮にもなります。覚えておくと便利なショートカットキーですよ #MSHelpsJP… "
moriyoshitさんのツイート: "これかー https://t.co/xyp9yF9c3u… "
http://www.catch22.net/tuts/undoc01
mattnさんのツイート: "通常 Windows のプロセスは UNIX の様に extra FDs を渡せないんだけど、どうやら STARTUPINFO の lpReserved2 に * fd の個数 * fd の種別 * fd の配列ポインタ の構造体ポインタを食わせた場合には UNIX と同じ動作になるという裏 API があるっぽい。"
Takashi Kawasakiさんのツイート: "Restart Managerも結局のところ中途半端な感じだし、MSIは何をしているのかわからんし、Windows Updateでの再起動を減らしましたって話も気づいたら元に戻ってるし・・・、ファイルロックからは逃げられないのだよ。"
Akso de la Malbonoさんのツイート: "ちょっと待って, Windows 上で動くバイナリエディタ探したら20年以上更新が停止しているソフトウェアがいまだに人気で現役稼働ってどういうことやねん.というか,それよりも20年以上更新が停止しているプログラムが最新 OS で普通に動くってどういうことやねん."
Takashi ToyotaさんはTwitterを使っています: 「テーブルは各プロセスに紐づけられている。解析すれば、各プロセスとカーネルオブジェクトの関係が簡単に分かる。たとえば、気になるプロセスが参照しているレジストリ(Keyオブジェクト)情報を容易に取得・解析できる。」 / Twitter
Takashi ToyotaさんはTwitterを使っています: 「Windowsのハンドルテーブル周辺は幾度となく内部変更されてきた。この記事では変更の背景をアセンブラーレベルで紹介している。このテーブルはオブジェクト名前空間と関連し、フォレンジック解析では避けて通れない。大変魅力的なテーブルである。」 / Twitter
Takashi ToyotaさんはTwitterを使っています: 「WinDbgとWindows XP/7/8/10のハンドルテーブル解析 https://t.co/XYwXiaXNRS via @t_toyota」 / Twitter
Inada NaokiさんはTwitterを使っています: 「Windows 1903 から、アプリ単位でACPをUTF-8にできるようになったらしい。今までは-W系APIが推奨されていたけれども、これからは-A系もOK。 https://t.co/g5V8HEBJVG」 / Twitter
Windows UTF-8 コードページを使用する - UWP apps | Microsoft Docs
だんぼーだよさんはTwitterを使っています: 「PaaS やマネージドなクラウド移行ができず IaaS 移植に留まる原因いろいろあるのですが、検討の結果最終的に "外字" が主要因で諦めたケースをよく聞きます。そして大半が非 Unicode のシステムで、Unicode には意図する文字が存在する (外字不要) のことが非常に多いです。 https://t.co/CAFZq00T7F https://t.co/dJOo0cTecZ」 / Twitter
だんぼーだよさんはTwitterを使っています: 「アプリの書き直しに加えデータの置換が発生するため、非常に難しい移行になります。新規に開発するシステムでは少しずつでも Unicode 対応を検討し、やむを得ない場合以外は新たに外字を増やさないところから PaaS を見据えたデザインが必要です。業務上必要な記号等も外字以外の実装方法はあります。」 / Twitter
だんぼーだよさんはTwitterを使っています: 「なお、Windows において、外字は作成したコンピューター以外での使用は非サポートです。外字のコピーによって回避策のない文字化けや Bluescreen に至ることもありますので、すぐには難しいユースケースもあると思いますが、可能な限り控えてください。 https://t.co/8BMmugw9Gu」 / Twitter
Windows で外字エディタを使用して外字を作成する方法
Masahiro SakaiさんはTwitterを使っています 「Why does CoCreateInstance work even though my thread never called CoInitialize? The curse of the implicit MTA https://t.co/GwGqJ23yVz CoInitialize[Ex]してないのにMTAに属してているように見え、仕様なのか疑問に思ってたけど、一応ちゃんとドキュメントされていたのね。」 / Twitter
Why does CoCreateInstance work even though my thread never called CoInitialize? The curse of the implicit MTA | The Old New Thing
ケケモコソカメニハさんはTwitterを使っています 「(横から失礼します。Windowsのカット/コピー/ペーストは元々Shift+Del/Control+Insert/Shift+Insertでした。C X VはApple起源ですね。叩く方もよくわかってないまま叩いてるので流石に可哀想になります。 https://t.co/X8rbIpOtH7 https://t.co/whPSWFvxLz ……って割り込もうか悩んでまs)」 / Twitter
Cut, copy, and paste - Wikipedia
Computer History: Who Invented Copy and Paste Command?
ドッグさんはTwitterを使っています 「winrt-rs,windows-rs に改名してたことを知った.crate 名も windows という直球な名前になってる https://t.co/mqTF1aQi0c」 / Twitter
microsoft/windows-rs: Rust for Windows

API・型

kenichiudaさんはTwitterを使っています 「元ツイートの意図から外れるかもしれないが、Windows APIを擁護すると - STRICTが定義されていればHBITMAPとHCURSORは別になる。 - cにもintptr_tあるし、サフィックスのPTRはWindows API固有ではない。 - WORDはIAに引っ張られている感がある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C言語でなくWin32APIの型定義だと ・HANDLEのtypedef多すぎで、HBITMAPとHCURSORを取り違えてもエラーにならず ・LP…と言いつつ、far(lp)に対するnear pointerはもう無い ・DWORD_PTRは、ポインタ型でない ・WORDは2バイトのまま(まあ互換性大事) とか色々ツッコミ所多い。 https://t.co/THs00R4U4q」 / Twitter
Windows Data Types (BaseTsd.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔からSTRICT入れてるのだが、最近もHANDLE関係で形違い代入できてオイオイと思った記憶あるのだが、何だったかなぁ。 (HICONとHCURSORは意図的に代入可能にしてあるっぽいが) STRICT は HDC だと struct HDC__ {...}; typedef struct HDC__ *HDC; みたいな変形になる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「型の話はズレるけど、HANDLE型の大半は CloseHandle() なのだが、HANDLE FindFirstFile() は FindClose() で閉じるとかの例外も意外と多くて困りもの。 (OS内部で振り分け可能だろうに…kernel32.dllなどのユーザランドでアレコレする必要があるとかだろうか?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「レイモンド・チェン氏に、The Old New Things で取り上げてもらいたいところ。 (同じ型なのに開放方法が違うの、newとmallocポインタと同じで、自動開放しづらくて嫌)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、関連。 https://t.co/OBzWJY0Czd」 / Twitter
Kernel Objects - Win32 apps | Microsoft Docs
kenichiudaさんはTwitterを使っています 「@shirouzu ハンドル系のunique_ptrを個々に定義するより、WILを使った方が楽かもしれません。 https://t.co/NU9BsgLWcw」 / Twitter
RAII resource wrappers · microsoft/wil Wiki

App Paths

はぇ~☆さんはTwitterを使っています 「Windows APIの中には、ごくまれに実行ファイルのインストール先がProgram Filesか否かで挙動を変えるものがあるから、あんまりおすすめはできないよ。 https://t.co/xeCTyu8Rcl」 / Twitter
はぇ~☆さんはTwitterを使っています 「あとApp Pathsという仕組みがあるから、ちゃんとしたアプリケーションであれば、インストール先がどこであれ起動できるのよ。例えばGoogle Chromeは start chrome でちゃんと立ち上がる。」 / Twitter
UnagiさんはTwitterを使っています 「@haxe あれすごくチートっぽくて、ユーザープログラムが触れて良いものなのか悩ましい気がする。」 / Twitter
はぇ~☆さんはTwitterを使っています 「@unagix HKCRに書いてもいいのよ?」 / Twitter
はぇ~☆さんはTwitterを使っています 「@unagix HKCUだた」 / Twitter

Store 締め出し

Hideaki_nomapさんのツイート: "どうやらMicrosoftは、人気やアクティビティの低いappを排除することでStoreの質を高めようとしているみたいですが、市場の価値は人気商品ばかりではなく多様性も重要というところに、どうして気付かないのだろう。たとえ利用者が僅かでも、その人たちには有用でしょうに。 @microsoft @msdevjp"
Hideaki_nomapさんのツイート: "私が視覚障害者の補助のために作成したappは、この理由によって強制的に公開停止されたようです。フィードバックを得て改良する道も閉ざされました。Storeチームには本当に呆れました。… "
Hideaki_nomapさんのツイート: "Store teamは、"Create amazing apps with staying power" sectionを見ろと言ってきます。ポリシー10.1.4のActive Presenceは、よく考えると最悪ではないですか。人気の本しか置かないダメな図書館と似たような臭いを感じるのです。… https://t.co/BVWvyex40K"
Hideaki_nomapさんのツイート: "Win 10用のアプリをセキュリティ的に安全に配布しようとすると、Storeを使うことになるのですが、@microsoft が行っていることは、人気がないといった理由でその配布手段を開発者から奪う行為です。これが許されるなら、Windows用に開発する価値は全くないですね。"
Hideaki_nomapさんのツイート: "例えば、ホーキング先生の車椅子のようなのもを作ったとします。たった一人のためのアプリでも、利用者が必要性を認めるなら、有用性は高いものです。大勢に関係のないアプリでも、まだ稚拙な代物でも、その配布手段を奪う行為は、市場やプラットフォームの破壊でしかないと思います。"
Hideaki_nomapさんのツイート: "MSからメール連絡が来て、突然にunpublishされました。こちらで調査し、修正する余裕すらありません。理由はこれだけ→… "

SendInput

kayaさんのツイート: "UWPではSendInput使えなかったか..."
kayaさんのツイート: "いや、使えるけどキーロックがずれる?"
なかのん&マジックさんのツイート: "SendInput使えないと自動テストが限定的になりそう。"

@shirouzu

互換性

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@totutohoku ご興味がありましたら参考まで。 WindowsにSimCityのバグ対応が入っている話。 https://t.co/lD4ccuV95P 泥臭い対応の数々。 https://t.co/2c2nq0oN1S クラッシュで次回からメモリ管理の挙動変更 Fault Tolerant Heap。 https://t.co/omhmQlcKQj」 / Twitter
2004-07-03
本当はすごい「Windowsの互換性維持」 | 日経 xTECH(クロステック)
Fault Tolerant Heap - Windows applications | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32 APIのUTF-8版出さないかなぁと昔から思う。 (ANSI版をコードページで不完全にu8対応させるのではなくて)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「不完全と言うのは、ANSI用構造体だとサイズ不足なメンバがそこそこあること。 (以前はシステムグローバルでMBCS捨ててのUTF-8解釈モードという、さらに使い物にならない縛りがあったが、今はアプリ単位が可能に)」 / Twitter

同期

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32 CriticalSectionとEventを使った自作Condtionクラス、待受スレッド上限が32なのだが(atomic系演算の制約)、そろそろVista以上を必須とする Win32 CONDITIONを使うかな。 (以前のベンチでは、性能は同等だった)"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「それにしてもVistaて、セキュリティ関係だけでなく、CONDITION_VARIABLEやRWLockなど便利なプリミティブが随分と増えた…OSのメジャーバージョンを上げただけのことはある。」 / Twitter

ソート順

Shirouzu Hiroaki(白水啓章)さんのツイート: "Explorerのソートは、数字は自然ソート、漢字は音読みソート、になっている様子…NTFSの順序(unicode順)と違っているため、プログラム出力と順序が違っていて、作業がしづらいな。"
SODA Noriyukiさんのツイート: "音読みに変換しているわけではなくShift_JISというかJIS X0208的順序でしょうから(含まれている文字がすべてShift_JISで表現できるのであれば)文字コードを Shift_JIS にして自然ソートすればいいんじゃないでしょうか?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そこまでやる気なら、その通りです(笑)… "

エラー

Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsのHRESULTは、ファシリティだのといった構造を持っている割に、現実の問題解決に繋がらないことが多すぎ。 エラーコード(抽象化されたエラー内容)よりも、いっそエラーファイル名&行番号を出してくれた方が問題解決DBが充実するのでは感もあったり(笑) https://t.co/LMOWLxABiz"
ASCII.jp:Windowsで表示されるエラーコードの見方|Windows Info
Shirouzu Hiroaki(白水啓章)さんのツイート: "古い話だが、エラー時のHANDLE値がINVALID_HANDLE_VALUE(0xffffffff)だったりNULL(0)だったりと揺らぐ理由…Win16関連APIは前者、Win32独自は後者。 (前者はGetCurrentProcess()等の疑似ハンドルとも等値なので注意) https://t.co/HEzgH6enao"
Why are HANDLE return values so inconsistent? – The Old New Thing
Shirouzu Hiroaki(白水啓章)さんのツイート: "ただし、CreateFileはWin32新設だがWin16時代に予約されていたこと&OpenFileが存在することから、0xffffffffに統一。 そういえば、UNIXの creat → open に対し、Windowsは OpenFile → CreateFile と逆の名前に進化したな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "0xffffffff ではなく -1 が正しい。 (x64で符号拡張なしに64bit化したと思っていたのだが、改めて確認するとそんなことは無かった)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、INVALID_HANDLE_VALUE という長い命名はイマイチ感。 命名は、エントロピー符号的に「頻度の高いものは短く」をベースにして欲しいところ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "カーネル内部で発生したNTSTATUSエラーがWin32エラー番号に翻訳できないと、ERROR_MR_MID_NOT_FOUND(317: strerror() での変換に失敗的なエラー)に変換されてしまう様子。 https://t.co/LX107xcAXD"
c# - How to convert specific NTSTATUS value to the Hresult? - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "出くわしたのは、GetOverlappedResult(非同期IOの結果を受け取るAPI)で 317 が返る、という問題。 非同期API系は利用頻度が少ないせいか、こういうアラが出やすい印象がある。"

エクスプローラ

Shirouzu Hiroaki(白水啓章)さんのツイート: "Explorerの各アイコンの表示設定は、ROT13BLOBなレジストリに保存されている。 (これを強制変更すれば、次回ログイン(or Explorer再起動)以降は表示可能、という動作ならできるのだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでシェル拡張のオプションが通常のオプション指定とは別画面になっているのは、元々、シェル拡張はOSグローバルな機能だった名残り。(全員に設定が反映する) しかし、今は原則ユーザ毎拡張が出来るようになったので、そろそろ通常設定画面に移してもよいかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Fall Creators Updateから、通知領域アイコンが(隠しAPIを使っても)プログラム的に常時表示できなくなった点、いろいろと調べたけれど、結局、OS設定画面へのショートカットボタンを作るという、ソーシャル的解決にすることに。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで、Explorerの標準コピーハンドラを置き換える実験に成功。 当初、ICopyHookを使うと思っていたのだが、これはsrcがディレクトリにしか効かない中途半端なシロモノだった。 何日か研究・試行錯誤した末にようやくたどり着いた…「MSさんちょっと酷いよ」と言いたくなる方法というか。"

ネットワーク

Shirouzu Hiroaki(白水啓章)さんのツイート: "WNetOpenEnum 等のWNet系APIですかね。 FastCopyだと逆に、ドライブレターの付いたネットワークドライブからサーバ名+共有名に変換するのに、WNetGetUniversalName APIを使っていたりします。… "
Kengo Sawatsuさんのツイート: "Win32APIでIPアドレスまたはUNCで引いた名前からSMBの共有ポイント名サーチする関数ってないのかなぁ。 ちょろっとした社内情報探索スクリプトを作りたいのだけど。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ネットワークドライブ相手だと、スレッド数は多いほど削除速度が上がっていく様子(50→60スレッドで10%向上など)。 自作CondVarは32スレッドまでの制限があるので、そろそろVista以降でのみ使える CondVar に移行するかな… https://t.co/mg9NKhH1OQ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "2018 April Update以降の挙動と思うが、隠しAPIに近い、IOCTL_LMR_DISABLE_LOCAL_BUFFERINGを発行しておかないと、ネットワークドライブへのWriteFileが、非同期I/Oあり非同期I/Oなしと同じ速度に低下する。 ちょっと酷い挙動だなぁ…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "MSDNでの IOCTL_LMR_DISABLE_LOCAL_BUFFERING に関する記述。 (SDKのheaderにすら番号の定義がない) ---- The IOCTL_LMR_DISABLE_LOCAL_BUFFERING control code is defined internally by the system as 0x140390 and not in a public header file. https://t.co/E2iWHkdlvQ"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Vista以降、CreatePersistentTcpPortReservation API が増設され、指定ポート範囲を永続予約(&この時のトークンを使って bind)が出来たのだが、手元で試すとトークン不要でbind出来てしまう謎… https://t.co/jIIJgS8yzA」 / Twitter
CreatePersistentTcpPortReservation function (iphlpapi.h) - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(Reserve済みでも(トークンなしに)bind出来て、逆にbind中にReserve試みると「使用中エラー」になるという、話が逆ではとか)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、コマンドラインだと管理者権限でこんな感じ。 netsh int ipv4 add excludedportrange tcp 開始ポート番号 ポート数」 / Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32APIで、20数年たっても未使用なreserved引数や、逆に Ex とか 2 が付いた APIも多いさまを見ると、事前に見通すことの難しさよとか思ったり。 (Win16 → Win32で形だけ残したreserved引数もあるらしいが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "MSの中の人がコメントしていた。 https://t.co/o2vTZrQz9Z"
winapi - Windows API reserved parameters - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "最近のWin系OS判定は、IsWindows10OrGreater() 的な関数を使うのが推奨だが、いずれ、 IsWin10FallOrGreater() みたいな関数が登場するのだろうか?(ない) https://t.co/U8QY5ahSjN"
Version Helper functions - Windows applications | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「古くて新しい話。 WinProcは汎用関数のため、メッセージ種類によって、2つ用意されたuint的なパラメータに、char/wcharポインタをキャスト代入したりする。 混在ミスがあってもコンパイラは警告を出せないという話。 unixのioctlの引数問題に近い。 https://t.co/b0DxHz5HiP」 / Twitter
「Windows 10」のシャットダウンを妨げる謎の「G」アプリ、マイクロソフトが説明 - CNET Japan
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、UWP/XAML を Win32 から使うという手はあるらしい。 ただこれは、Win8.1以降用のビルドの必要があるので、WIn7をサポートするならDLL化が必要。 https://t.co/T8JGi0t18v」 / Twitter
UWP XAML を使用した C++ Win32 アプリでの API のホスト | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32の Kernel Handle は常に下位2bitは0であり、それらは CloseHandle で閉じられる。 (のはいいけど、HANDLE型を名乗りながら、FindCloseしろとか、非Kernelな疑似Handle多すぎ) https://t.co/5XDjnNsJPn」 / Twitter
Why are kernel HANDLEs always a multiple of four? | The Old New Thing

@rockridge07

Rockridgeさんのツイート: "Fx57:Windows 10上のテーマではウィンドウの半透明効果を無効にしている。ウィンドウのリサイズが高速化されるなど、パフォーマンスに好影響も。 / “1366405 - We're forcing the window'…” https://t.co/WurqxtabCf"
Rockridgeさんのツイート: "Fx60:Windows版で、グループポリシーを用いた集中管理が可能となった。 / “1433136 - Implement GPO support on the Policy Engine” https://t.co/6ImjkZEVsQ"
Rockridgeさんのツイート: "Fx63:Windows 10のダークモードをサポート。Fx65ではアクセントカラーも正しく反映されるようになった。参照:https://t.co/Nre4vq8hvA / “1368808 - Respect Windows …” https://t.co/uACKUzrjGZ"
Rockridgeさんのツイート: "Fx64:Windows版で、ページアクションメニューに「共有」の項目が新設された。OSネイティブなページ共有機能を呼び出すことができる。 / “1363169 - Add support for native Windows …” https://t.co/MUAc7IToXv"

@d_toybox

なかのん&マジックさんのツイート: "WindowsってVista以降はプロセスがビジー状態になると一旦、ウインドウがフォーカスを失ったかのようなメッセージが発行されてるんで、たぶんそれによってドラッグの処理が中断されて……みたいな感じなんだろうなと。知らんけど。"
なかのん&マジックさんのツイート: "FirefoxでもIME周りでそれが原因で遅いマシンだと未確定文字列が意図せず確定されまくるというバグが昔あって、 https://t.co/ypmQllanBc で修正してたり。"
窓の杜さんのツイート: "正直、“タブレットモード”のボタンとかいりますか? クイックアクションに表示されるボタンをカスタマイズする【いまさら聞けないWindows 10のTips】 https://t.co/Whjwx33yv8 https://t.co/FtlmXUENU6"
なかのんクエストさんのツイート: "デバッグ時に必須のボタン。"
なかのん&マジックさんのツイート: "Windowsのタブレットモード使うと、WebアプリがFirefox for Androidより使いにくくて、逆に、「モバイルブラウザモード」みたいなの欲しくなるな。「PCブラウザモード」みたいなの。"
なかのん&マジックさんのツイート: "あ、先にGoogleさんとの協議の結果、決まったWindowsのAltGrキーのイベント発火を修正するか。おおむね、Geckoの動作が好ましかったっていう結果なので修正簡単そう。"
なかのん&マジックさんのツイート: "WindowsのAltGrって、なんで内部的にはCtrl+Altの同時押しという、すごいリソースが無かった時代からの伝統です、みたいな感じがあるんだろう。MS-DOSの頃にどうしてたのか分からないんだけど、少なくともWindowsの時代にはそこまでシビアじゃなかったと思うんだけど。"
なかのん&マジックさんのツイート: "Win10のRDP、サーバ側と、クライアント側でDPI設定が違うとき、RDP経由か否か、それぞれで起動したアプリが、もう一方の方で見る時にDPIおかしくなるのは、やっぱりアプリのデキが悪いのかなぁ。"
なかのん&マジックさんのツイート: "Windowsをタブレットで使うときには、タッチキーボードをサードパーティーに解放して欲しいのと、OSレベルでの戻るボタンみたいなの必要だなーと感じる。"
なかのん&マジックさんのツイート: "タスクバーに戻るボタンみたいなの、あるにはあるけど、そうじゃねーっていう動き。"
なかのん&マジックさんのツイート: "SendInput()でWM_KEYDOWNとWM_CHARを発生させたときに、lParamの31ビット目 (lParam << 30) がどうなるか詳しい人居ません?"
なかのん&マジックさんのツイート: "SinharaとTamilのIMEと自称するキーボードユーティリティがWM_KEYDOWNとWM_CHARを自前で生成して送ってくるんだけど、それらのlParamの31bit目が常に1で困ってる。"
なかのん&マジックさんのツイート: "(lParam & (1 << 30))だ"
なかのん&マジックさんのツイート: "あー、なんか分かった気がする。 KEYEVENTF_KEYUPを指定しておかないと、キーが内部的に押されたままになってて、lParamの31bit目の値が決まってそう。"
なかのん&マジックさんのツイート: "Win/macOS間はやりたいことと、好みの問題大きいな。個人的にはWinだけど、Winの、とくにノートパソコンでは、タッチパッドの出来が恐ろしいほどピンキリなんでこの辺の環境で当たりを引いたかどうかでも大きく評価が変わりそう。ひどいのは本当に使い物にならない。"
なかのん&マジックさんのツイート: "MicrosoftはSurfaceBook見る限りは、MacBookと同等のタッチパッドを提供できるんだから、各PCベンダにライセンス供与とかなんとかできんものかな。"
なかのん&マジックさんのツイート: "あの辺、ソフトウェア特許の塊らしいから。"
なかのん&マジックさんのツイート: "レビューしてて初めて知ったけど、Win2k以降はデバイスの変更を普通のアプリも簡単に検出できたのか。"
なかのん&マジックさんのツイート: "そういえばPDFのサムネイル作成って異様に遅いけど、あれやってるのはWindows自身なのか、Adobeのシェル拡張なのか。"
なかのん&マジックさんのツイート: "そーいや、D&Dを受け入れるアプリがバッチ処理とかで当分応答できない時に、エクスプローラからのドラッグ中にそのアプリのウインドウの上を通過しちゃうとエクスプローラ全体を再起動するしかなくなるのつらい。"
おこめ/つなもりさんのツイート: "リモートドライブ(停止中)通ったりすると死… "
なかのん&マジックさんのツイート: "歴史的にしゃーないけど、設計自体のバグよね……… "
なかのん&マジックさんのツイート: "Windowsがマイクロソフトアカウントの作成、もしくは登録から行くと、ユーザー名でフォルダ作るの本当に迷惑。古いVCのランタイムが使えなくなるんで動かないアプリが出てくるんだよな。"
なかのん&マジックさんのツイート: "非ASCII文字が含まれてる場合、ASCII文字だけの別名も用意しておくとか逃げ道欲しい。「短いファイル名」みたいな。スマートじゃないけど、アクセシブルなのは保証される。"
おおきくてながいさんのツイート: "名前に土吉含んでたらmsiすら動かなくて完全にダメ"
なかのん&マジックさんのツイート: "WindowsってプロセスのCPUの優先度以外に、ネットワークの優先度って設定できないのかな。ダウンロードしながらインストールするインストーラが動いてると、ストリーミングで動いてる動画ソフトが途切れ途切れになる。"
なかのん&マジックさんのツイート: "最近のMSはユーザー目線でも、悪い意味でMSらしくないと思うけど、アプリ開発者としては、APIの互換性・安定性という点、また、そのドキュメントのクオリティでは、最高かなって思えてしまう。"
なかのん&マジックさんのツイート: "よそのデスクトップアプリ開発者向けのドキュメントなんて、形だけで役にたたないとか、そもそも書いてることが嘘とか多過ぎで。"
なかのん&マジックさんのツイート: "ただ、COM形式のAPIは正直なところ、手放しで褒められるものは私の知ってる狭い範囲には無い。"
なかのん&マジックさんのツイート: "Win32のあのメッセージドリブンな形式の採用や、C APIの設計って今でも天才的だと思う。"
なかのん&マジックさんのツイート: "APIをオブジェクト指向にしちゃいかんと、最近本当に思う。オブジェクト指向は一見綺麗な、すっきりして見える構造を作り出せるんだけど、そのスッキリ感を維持するためには大きな変更を必要とするので、安定感や互換性を求められるAPI向きではないよな、と。"
なかのん&マジックさんのツイート: "Cocoaとかホントにアレ。"
なかのん&マジックさんのツイート: "そーいや、Cocoaに代替API無いのにCarbon APIを無かったことにしていくの、本当に頭おかしい。Geckoのキー入力のハンドリング部分なんか、今、Appleが公開してるドキュメントだけを元に書けなかったりする。"
なかのん&マジックさんのツイート: "興味ある人は読んでみると面白いかも。TISで始まってるAPIを使いまくってるけど、これがないと、入力を国際化してフレームワーク的な他のアプリの土台となるものを書けなかったりする。ちなみに、いまだにMacOS9以前のAPIも使ってたりする。使わないとどうしようもなく、かつ、今はドキュメントも無い"
なかのん&マジックさんのツイート: "https://t.co/kUOexQ9Ro6 このへん。"
TextInputHandler.mm - mozsearch
サンディスクさんのツイート: "Windowsさんはなぜ、「フォーマット」と「取り外し」をすぐ近くに配置するのか・・・(*'ー'*) (←USBメモリーを安全に取り外そうとして、間違ってフォーマットを押してしまい、しかも、あれ??フォーマットするんだっけか・・・・(*'ー'*)?? と勘違いしてフォーマットしてしまった)… https://t.co/agxZKjArdd"
なかのん&マジックさんのツイート: "フォーマットがそもそもコンテキストメニューに必要なんだろうかってのはいつも感じる。"
なかのん&マジックさんのツイート: "レコーダーで、BD/DVDのディスクの初期化の近くにHDD/USB HDDの初期化があるのもかなり怖い。"
なかのん&マジックさんのツイート: "GUIアプリ書いてると嫌になるのはダントツでmacOSだなー。APIがころころ変わったり、代替わりしたり、新機能への対応がしんどかったり。Linuxはちょっとシンプル過ぎてやれないこと多かったり、IME周りはカオス過ぎてアレ。Windowsはその辺のバランスが良い。進化してるけど互換性が凄い。"
なかのん&マジックさんのツイート: "うわー、Windows、VK_OEM_PLUS 0xBB For any country/region, the '+' keyっていう定義なのに、`+`キーが入力できないキーでこのキーコードが発生するケースあったのか。知らんかった……"
なかのん&マジックさんはTwitterを使っています: 「WindowsってShiftキーだけ、両方を離した時にしかWM_KEYUPが発行されないバグがあるんだ……Win7でも再現した。 / https://t.co/OFWbfje4Qj - keyup event with ShiftLeft/ShiftRight code sometimes not fired」 / Twitter
1566848 - keyup event with ShiftLeft/ShiftRight code sometimes not fired
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「全然違う話だけど、Microsoftさん、マウスホイールのメッセージに、モーメンタムかどうかの情報を足すようにしてくれませんかね。つまり、SendInputからの変更。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Ctel + wheelでズームを実装すると、惰性でホイールが回り続けているイベントを、後からCtrlキーを押したことで、意図しないズームが発生しちゃうんですわ。macOSはイベントから惰性かどうかを判断できるのでこういった不本意なズームを回避できる。」 / Twitter

@makoto_kato

Makoto Kato ︎︎さんのツイート: "Nightlyをアップデートするたびにe10s (with sandbox)が動作しなくなるので調べたけど、Windows 10のGetMappedFileNameWがバグってる気がするんだ。たぶんCoWがらみな気がするだけど。 https://t.co/TZM2FEEhOp"
Makoto Kato ︎︎さんのツイート: "https://t.co/zZDcKsDro8 "またWindows On ARMでは、AArch64のネイティブコードからなるデスクトップアプリケーションが動作する" WDKみてると、なんかaarch64なデスクトップアプリ使えないようにしてる雰囲気あるって話でてるんだけど、こ… https://t.co/er1hwgIZKC"
Makoto Kato ︎︎さんのツイート: "WinRTの時だって、バイナリ的には署名チェックさえバイパスすれば動いたし (CSRSSにデバッガアタッチしてバイナリパッチしちゃえばだったはずだけど)、あれはホント愚策だったなぁと"
Makoto Kato ︎︎さんのツイート: "clang使った場合で、最新のWindows SDK使うとビルドエラーになるの、これね https://t.co/FPwttRPSeI"
clang can't compile wrl/implements.h - Developer Community
Makoto Kato ︎︎さんのツイート: "現在(過去も含めて)公開されているWindows SDKだとChakraCoreとか.NET Coreのaarch64版をビルドできないんだけど、彼らコントリビューター増やす気はさらさらない感じしてる"
Makoto Kato ︎︎さんのツイート: "https://t.co/A1Ny6xp2ne"
Makoto Kato ︎︎さんのツイート: "rustというかllvmのマトモなポートしない限り無理だけど"
Makoto Kato ︎︎さんのツイート: "Windows on arm用のイニシャルゴードはllvmに入ってるけどexception handlerのサポートが入ってないからrustはそままではポートできない。そもそもMicrosoftがehの仕様に関するドキュメント公開してない"
Makoto Kato ︎︎さんのツイート: "armasm64のehサポートに関しては必要なヘッダはバグ報告したんで最新のWindows SDKには入ってる"
Makoto Kato ︎︎さんのツイート: "armasm64のEHサポートに関してはcプリプロセッサ通さないとarmasm64だけではサポートほぼ不可という状況で、いろいろ面倒なこと増える"
Makoto Kato ︎︎さんのツイート: "そもそもMSはarm/aarch64のアセンブラを自社開発せずにArmからライセンス貰ったみたいで、いろいろ残念なこと多い"

@vyv03354

vyv03354さんのツイート: "@d_toybox OSVERSIONINFOとか、OPENFILENAMEとか、結構ありますよ。"
vyv03354さんのツイート: "@piro_or Win64にはファイルシステムリダイレクションというのがあって、32bitアプリがフルパスでSystem32を指定しても強制的にSysWOW64にリダイレクトされます。"
vyv03354さんのツイート: "爛 ←游ゴシックでは木偏、それ以外では火偏に見える不思議な漢字 とりあえずフィードバックは送った。https://t.co/otBZ51LvoT ネタ元はこちら https://t.co/WPawWoR3Ky #もずでぶ"
vyv03354さんのツイート: "爛︀ ←元ネタ通りにStandardized Variantを使えばTwitterにも投稿できるけど、Firefoxでしかうまく字形が変わらない"
vyv03354さんのツイート: "しかもどうやらTwitterがフォントを指定しているのでTwitter上では確認できない"

@unagix

uNagiさんのツイート: "Windows 10 IP 17063 の例のデフォルトロケール UTF-8 の件、有効にすると想像通りの動作になる。A 系の API が全て UTF-8 で I/O されてる。コマンドプロンプトは cp65001 になる。 https://t.co/E1t5YdPD8V"
uNagiさんのツイート: "メモ帳の読み書き時に選択できる" ANSI" は、A 系 API なので全て UTF-8 になる。だから Shift-JIS のファイルも UTF-8 で読もうとして化けてしまう。"
uNagiさんのツイート: "メモ帳で "UTF-8" を指定して保存しても、"ANSI" で保存しても、どちらも UTF-8 になるという奇妙な事が起きる。これがシステム全体で発生する事になるので、 A 系 API が一つでも残っているコードを保守している人はこの設定がいつデフォルトにされるか注視する必要が… https://t.co/hF5aShqkuu"
uNagiさんのツイート: "国内でよく見かけるのが ANSI API = cp932(SJISみなし) という間違った扱いをしているもので、そういうアプリは元から海外では正常動作していないのだけど、このオプションが有効の場合は国内でもダメという事になる。"
uNagiさんのツイート: "マルチバイト文字セットでビルドされているアプリの末路・・・ https://t.co/59CktY6zOU"
Unagiさんのツイート: "@syuu1228 Windows NT には昔からある、予約語の制限を回避するプレフィックス。¥¥.¥ というのもある。これ使うとドライブレター無しでアクセスするのもできた気がする。まとまった公式ページがあったはずだけど、この記法に名前がちゃんと付いてなくてググれない…"

Error Handling (Error Handling) - Win32 apps | Microsoft Docs
Drawbridge - Microsoft Research
Drawbridge - Drawbridge.pdf

Unicode

その他

公的機関等

法務省 戸籍統一文字情報 トップ
文字情報基盤整備事業 | IPA 文字情報基盤整備事業に関するWebサイトです
MJ縮退マップ | 文字情報基盤整備事業
長年の懸案だった“外字問題”が解決へ、6万字を1万字に対応付ける「縮退マップ」が完成 | IT Leaders
MJ縮退マップとマイナンバー | yasuokaの日記 | スラド

Locale

最近の Python-dev

DSAS開発者の部屋:最近の Python-dev (2017-01)
DSAS開発者の部屋:最近のPython-dev (2017-05)
DSAS開発者の部屋:最近のPython-dev(2017-06)

Language code - Wikipedia
Locale (computer software) - Wikipedia
Codes for constructed languages - Wikipedia
List of HTTP header fields - Wikipedia
Country code - Wikipedia
ISO/IEC 9995 - Wikipedia

ascii

SODA Noriyukiさんのツイート: "*BSD系のascii(7) https://t.co/TzFY5Tqgtl が LF/FF じゃなく nl/np (newline/newpage) な件で、 Bell研からの伝統だよねー( https://t.co/gBQvXfjQTo )という話をしてた。 Linuxのman https://t.co/WtZTvdGgHE だとASCII規格通りでNPへの言及はないのね。LFはLineFeedじゃなくてnewlineとあるけど"
ascii(7) - NetBSD Manual Pages
unix-history-repo/ascii.7 at Research-V7-Snapshot-Development · dspinellis/unix-history-repo
ascii(7) - Linux manual page

革命の日々!

革命の日々! IEがEUCのJIS X 212をサポートしていないのは規格違反なのか
革命の日々! FirefoxのEUCの独自拡張のセンスが最低な件について
FrontPage - Legacy Encoding Project
革命の日々! プロジェクト「セーブ・ザ・鷗外」
革命の日々! レガシーエンコーディングなオフ会
革命の日々! それは典型的な波ダッシュ問題ではあるまいか

Man page of ASCII
第4回 UTF-8の冗長なエンコード:本当は怖い文字コードの話|gihyo.jp … 技術評論社
文字のチェック方式 - マイクロソフト系技術情報 Wiki
文字コードについて
中国語の文字コード
Kyoto University Research Information Repository: 日本・中国・台湾・香港・韓国の常用漢字と漢字コード
ISCIE2001.pdf
CP932変換表の問題が顕在化する例 - yanok.net
書家の第3水準漢字が文字化けするわけ - yanok.net
Java 9 でようやくResourceBundle のデフォルト文字コードが UTF-8に - yanok.net
本の虫: ASCII以前の世界
libiconv - GNU Project - Free Software Foundation (FSF)
【やじうまWatch】 ウェブサイトにおける文字コードの割合、UTF-8が90%超え。Shift_JISやEUC-JPは? - INTERNET Watch
Usage Statistics of Character Encodings for Websites, June 2018
Usage Statistics of UTF-8 for Websites, June 2018
Historical trends in the usage of character encodings, June 2018
なかのん&マジックさんのツイート: "へー。便利そう。 / "WTF-8 (Wobbly Transformation Format − 8-bit) is a superset of UTF-8 that encodes surrogate code points if they are not in a pair." https://t.co/uvxuX2KXX6"
The WTF-8 encoding
強いユニコード - Google 検索
ドッグさんはTwitterを使っています 「godot engine って font fallback とか RTL とか CJK variants とか BiDi とかテキストレイアウトちゃんと実装してるのか https://t.co/znfSgWVG4X」 / Twitter
Godot Engine - Complex text layouts progress report #2
WindowsでもC++でUTF-8で読み書きしたい、他OSと同じビルドシステムを使いたい - Qiita

blog

その他

MySQL と寿司ビール問題 - かみぽわーる
Unicode の雪だるま - bkブログ
「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記
文字コード考え方から理解するUnicodeとUTF-8の違い | ギークを目指して
プログラミング言語における文字コードの話 | ++C++; // 未確認飛行 C ブログ
Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
kaya: 主な実装における EUC-JIS-2004, Shift_JIS-2004 から Unicode への変換結果の違い
特殊顔文字に使われている謎の文字よ、お前は一体何者なのか – たぬきフォント
Java とか Android (DEX) の MUTF-8 (Modified UTF-8) って何者よ?っていう話 - bearmini's blog
クメール文字とUnicode - Togetter
Unicode 12.0正式版が登場。日本語では小文字の「ゐ」「ゑ」「を」「ヰ」「ヱ」「ヲ」「ン」が追加。新元号が発表され次第、次の12.1で新元号キャラクタを追加 - Publickey
UTF-8小話 - Plan9日記
UTF-8とルーン文字 - Plan9日記
Wayback Machine
unicode-math を完全に理解したい話(1) - マクロツイーター
漢数字が数字順にソートされない理由を調べてみた - give IT a try
文字エンコーディングの検出方法 - インフラエンジニアway - Powered by HEARTBEATS

The Unicode Blog

The Unicode Blog: Unicode CLDR 35 alpha available for testing
The Unicode Blog: Announcing The Unicode® Standard, Version 12.0
The Unicode Blog: Adopt-A-Character Grant to Support Maya Inscriptional Hieroglyphs
The Unicode Blog: Unicode CLDR Version 35 Language/Locale Data Released
The Unicode Blog: CLDR Version 35.1 Language/Locale Data Released for Reiwa Era, Unicode 12.1
The Unicode Blog: New Unicode Working Group: Message Formatting
unicode-org/message-format-wg: Developing a standard for localizable message strings
The Unicode Blog: Unicode Locale Data v37α available for testing
The Unicode Blog: Announcing The Unicode® Standard, Version 13.0

Tociyuki::Diary

「ソフトウェア作法」40周年を過ぎて - Tociyuki::Diary
日本語 Wikipedia の深さ優先探索 - Tociyuki::Diary
UnicodeData Canonical Combining Class のダブル配列トライ - Tociyuki::Diary
Unicode East Asian Width 再び - Tociyuki::Diary
Unicode East Asian Width さらに - Tociyuki::Diary
Unicode の文字数カウント - Tociyuki::Diary
ucd::width 関数 (その1) - Tociyuki::Diary
ucd::width 関数 (その2) - Tociyuki::Diary
EastAsianWidth 対応 wcwidth - Tociyuki::Diary
UTF-8 エンコーディングのままでバッファ・ギャップ - Tociyuki::Diary
UTF-8 エンコーディングのままでバッファ・ギャップ その2 - Tociyuki::Diary

にせねこメモ

『ギリシャ文字・キリル文字・ラテン文字』 - にせねこメモ

ギリシア語

マクロン付きのギリシア文字の母音にアクセントや気息記号を付けて表示する - にせねこメモ
古典ギリシャ語会話表現集 - にせねこメモ

ロシア語

『ロシアの文字の歴史』 - にせねこメモ
ロシアらしい数字 - にせねこメモ

モンゴル語

ネット閲覧可能な(モンゴル文字による)モンゴル語資料 - にせねこメモ
モンゴル文字簡易翻字ブックマークレット - にせねこメモ
モンゴル文字とUnicode - にせねこメモ
Unicodeモンゴル文字フォント一覧 - にせねこメモ
現在のUnicodeモンゴル文字の問題点と最近の動き - にせねこメモ

中国語

簡体字フォントセミナー「中国の文字、いろいろと。」に行ってきた。 - にせねこメモ
繁体字フォントセミナー「台湾の文字、いろいろと。」に行ってきた。 - にせねこメモ

韓国語

ハングル書体セミナー「韓国の文字、いろいろと。」に行ってきた - にせねこメモ

ブラウザ上で文字列のUnicode Code Pointを調べる - にせねこメモ
イオニア数字変換TeXマクロ - にせねこメモ
文字のデザインに筆記具が与える影響 - にせねこメモ
変な文字化け - にせねこメモ
Adobe Illustrator CS6日本語版でタイ文字やアラビア文字を組む - にせねこメモ
Type& 2015「書体視認性:MIT AgeLab と Monotype の共同研究」を聴いてきました - にせねこメモ

yasuokaの日記

その他

「くゎ」と「か」の対立 | yasuokaの日記 | スラド
「だぢづでど」と「ざじずぜぞ」の対立 | yasuokaの日記 | スラド
法律における「碍」の1字 | yasuokaの日記 | スラド
島津製作所の「dzu」と標準式ローマ字 | yasuokaの日記 | スラド
常用國字標準字體表の「彞」とedukai-3.ttf | yasuokaの日記 | スラド
直接構成素解析と直接構成鎖解析 | yasuokaの日記 | スラド
Universal Dependenciesにおけるcompound:prtと直接構成鎖解析 | yasuokaの日記 | スラド

Unicode・ISO・JIS

Unicode 10.0.0がリリース | yasuokaの日記 | スラド
「⿰月兊」はUnicode 10.0のどこに行ったのか | yasuokaの日記 | スラド
U+337B「㍻」は、いつUnicodeに収録されたのか | yasuokaの日記 | スラド
ISO/IEC 10646:2017に収録されていない『新潮日本語漢字辞典』の漢字 | yasuokaの日記 | スラド
Adobe-Japan1-6にないJIS X 0212の漢字 | yasuokaの日記 | スラド
U+2D583は「出」の別体なのか | yasuokaの日記 | スラド
元号の合字を含むISO/IEC 10646:2017 Annex Aのコレクション | yasuokaの日記 | スラド
Unicode 13.0リリース | yasuokaの日記 | スラド

大漢和辞典

ISO/IEC 10646:2017に収録されていない『大漢和辞典』の漢字 | yasuokaの日記 | スラド
ISO/IEC 10646:2017に収録されているが文字情報基盤に含まれていない『大漢和辞典』の漢字 | yasuokaの日記 | スラド
大漢和番号14404は本当にU+2339Fなのか | yasuokaの日記 | スラド

登記統一文字

登記統一文字01009170を含む会社法人 | yasuokaの日記 | スラド
登記統一文字01054170を含む神社 | yasuokaの日記 | スラド
登記統一文字01019580を含む寺院 | yasuokaの日記 | スラド
登記統一文字01009670を含む神社 | yasuokaの日記 | スラド
登記統一文字01080960を含む神社 | yasuokaの日記 | スラド
登記統一文字01104650を含む会社法人 | yasuokaの日記 | スラド
法人番号公表サイトにおける登記統一文字用例 | yasuokaの日記 | スラド

戸籍統一文字

戸籍統一文字152850「はかた」がU+2D92Aへ | yasuokaの日記 | スラド
戸籍統一文字で重複している漢字 | yasuokaの日記 | スラド
「⿺辶鳥」は“ナベ”の異体字なのか | yasuokaの日記 | スラド
戸籍統一文字370600はU+2713Cではないのか | yasuokaの日記 | スラド

住基統一文字

住基統一文字B159を含む会社法人 | yasuokaの日記 | スラド
『住民基本台帳ネットワーク漢字辞典』の音義未詳字 | yasuokaの日記 | スラド
住基文字b077「𭖬」を含む地名 | yasuokaの日記 | スラド
Re: 住基文字b077「𭖬」を含む地名 | yasuokaの日記 | スラド

文字情報基盤

𡶌部神社の「𡶌」は、なぜ文字情報基盤に含まれていないのか | yasuokaの日記 | スラド
U+2B1E6「𫇦」とU+241FE「𤇾」は、どういう関係にあるのか | yasuokaの日記 | スラド
「野」を字母とする変体仮名 | yasuokaの日記 | スラド

登記ねっと 供託ねっと

「登記ねっと供託ねっと申請用総合ソフト」の外字コード | yasuokaの日記 | スラド
ソフトウェアのダウンロード | 登記・供託オンライン申請システム 登記ねっと 供託ねっと

法人

U+2C0B2「⿰木亜」を含む会社法人 | yasuokaの日記 | スラド
U+2D047を含む会社法人 | yasuokaの日記 | スラド
「⿰金鼡」を含む会社法人 | yasuokaの日記 | スラド
「⿲氵車斥」を含む寺院 | yasuokaの日記 | スラド
U+2E092「⿰示責」を含む神社 | yasuokaの日記 | スラド
「⿱目勿」を含む会社法人 | yasuokaの日記 | スラド
「𛂯𛀿𛀸゙」を含む会社法人 | yasuokaの日記 | スラド
「⿸屁月」を含む神社 | yasuokaの日記 | スラド

人名漢字

「胱」「腥」「腟」は人名用漢字なのか | yasuokaの日記 | スラド
氏名における「髙」や「𠮷」や「乭」 | yasuokaの日記 | スラド
Re: 氏名における「髙」や「𠮷」や「乭」 | yasuokaの日記 | スラド
子の名を当用漢字に制限する戸籍法施行規則の施行 | yasuokaの日記 | スラド
「襄」は子の名づけに使えるか | yasuokaの日記 | スラド
戸籍と在留カードにおける「陳」と「陣」 | yasuokaの日記 | スラド
昭和9年4月5日民事甲第428号民事局長回答の射程は「千遥」の出生届に及ぶのか | yasuokaの日記 | スラド
昭和9年4月5日民事甲第428号民事局長回答とその実態 | yasuokaの日記 | スラド
在留カードの入国管理局外字とその変遷 | yasuokaの日記 | スラド

本の虫

本の虫: ㄘんㄘん
本の虫: C++0x本:求む、簡単なBMP外の文字

yanok.net

波ダッシュ問題はなぜ『文字コード技術入門』の第8章にあるのか - yanok.net
Unicode の嫌なところを触ってしまった Python - yanok.net
Unicode 10.0リリース、変体仮名を収録 - yanok.net
言語を示すのに国旗を使うのはよくない - yanok.net
「ユニコードは犯罪だからやめてください」の衝撃 - yanok.net
BOM つき UTF-8 へのその場しのぎの対処 - yanok.net
UTF-16 が単に Unicode と呼ばれることがある理由 - yanok.net

Python

DSAS開発者の部屋:最近のPython-dev(2017-12)

Ruby

Rubyist Magazine - Ruby M17N の設計と実装
最近のruby-core (2016年11月) | Money Forward Engineers' Blog
最近のruby-core (2016年7月) | Money Forward Engineers' Blog
最近のruby-core (2016年4月) | Money Forward Engineers' Blog
最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年2月) | Money Forward Engineers' Blog
UTS #18: Unicode Regular Expressions
Locale
最近のruby-core (2017年3月) | Money Forward Engineers' Blog

Makoto Kato ︎︎さんはTwitterを使っています 「https://t.co/RCyv4OefHq これ書いた人全くわかってないと思うんだけど、IVSはバリエーションがあるので、例えばAdobe-Japan-1-7対応なフォントがあったとしても、IPAフォントが採用してる汎用電子情報交換環境整備プログラムのHanyo-DenshiなフォントのIVSとは互換性がない」 / Twitter
Windows と日本語のテキストについて - Windows Blog for Japan
Makoto Kato ︎︎さんはTwitterを使っています 「なので、Windows側でHanyo-Denshi側のフォントもデフォルトで提供すべきだと思うんだ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「全く同じ字形であってもIVSのバリエーションが異なれば同じコードポイントにならんでしょ。」 / Twitter

News

UnicodeのWAVE DASH例示字形が、25年ぶりに修正された理由 - INTERNET Watch Watch
Unicode 8に対応、「GNU C Library 2.23」が公開 | OSDN Magazine
Unicode 10、変体仮名と縦書きレイアウト導入へ | マイナビニュース
新絵文字56種類が追加された「Unicode 10.0」が発表される - GIGAZINE
変体仮名285文字や縦書きレイアウト仕様が追加された「Unicode 10.0」 -INTERNET Watch
ıɥɔıɐʇ ɐʇɐqɐʍɐʞさんのツイート: "そういえば今開催中のUnicode技術委員会で、新元号の合字の文字符号が U+32FF(ここしか空いてない)に確保されることになったらしいので、それである程度は備えられるかも。/https://t.co/nF9ou4TxCI / 新元号システム問題 https://t.co/w6xMtUelGC"
17429-sc2-n4577-japan-new-era.pdf
新元号の発表はいつになるのか…。現役SE「システム屋を殺す気か」と悲鳴
「Qt 5.11」リリース、Unicode 10対応を強化 | OSDN Magazine
【山田祥平のRe:config.sys】さよならシフトJIS、主なしとて春な忘れそ - PC Watch
Unicode 12.1をサポートした「Glibc 2.30」リリース | OSDN Magazine

エンコード自動検出

Google Chrome 55.0.2845.0 canary で、ついにエンコーディング自動検出がデフォルトになって、エンコーディングメニューがなくな...
google/compact_enc_det: compact_enc_det - Compact Encoding Detection

ICU

ICU 55.1: Main Page
JVNVU#97322697: ICU4C ライブラリに複数の脆弱性
International Components for Unicode - Wikipedia
Downloading ICU - ICU - International Components for Unicode
ICU License - ICU 1.8.1 and later
ICU のライブラリサイズを削減する方法 - Qiita
小倉唯さんのツイート: "https://t.co/hR3900GqQl うおおおおおおおおおおおお, ABI 大崩壊わらうw"
Makoto Kato ︎︎さんのツイート: "Geckoの中のICU、59に上げるのはキャンセルになってます"
Rockridgeさんのツイート: "Fx56:文字の符号化処理を行うコンポーネントがuconvからRust言語ベースのencoding_rsに置き換えられた。参照:https://t.co/WFb7iNCLq2 / “1261841 - (encoding_rs)…” https://t.co/QGyHR8aExD"
Uconv - Wikipedia
uconv(1) - Linux man page
Makoto Kato ︎︎さんのツイート: "ICU 60.1って、Fuchsiaのサポート入ってるんだ"
Makoto Kato ︎︎さんのツイート: "https://t.co/kCtE4o40Gn icuもLinuxでUTF-8じゃないロケールサポートやめるぽいな"
PostgreSQL 10のICUコレーションとJIS X 4061 – yohgaki's blog
Makoto Kato ︎︎さんのツイート: "ICUのデータファイル、ECMA-402的には半分以上いらないので、BlinkとかGeckoとかがやってるようなデータ削減をnodejsもやるべきとは思う"
Makoto Kato ︎︎さんのツイート: "BlinkのAndroid版のICUデータ、通貨とかのローカライズ情報はGNPを元に削減してるのは、面白かった"
Rockridgeさんのツイート: "Firefoxでは、主にICUライブラリを通じて、Unicodeコンソーシアムが管理するCLDR(Common Locale Data Repository)によって提供されるロケールデータを利用している。 / “CLDR as…” https://t.co/QhO8R4vO1w"
CLDR as source of key internationalization data in Firefox: milestones achieved and next steps | Mozilla L10N
mattnさんのツイート: "昨日言ってた、Google Chrome の最新版が Windows7 で new Date が韓国標準時を返すバグ、ICU が原因なんだけど moriyoshi さんが詳細を送ってくれた事もあり解決しそう。 https://t.co/aZZ16PRsa3"
チェンジセット 41514 – Unicode ICU trac
Makoto Kato ︎︎さんのツイート: "ABI以外にもUnicode 10ベータのデータ使ってるとか、DateTimeのゾーン表記がGMTで書かれてたのにUTC表記になってるとか(これがなぜ変わったか調べてないからなんともいえないけど)ひどい有様です。… "
The Unicode Blog: ICU 64 Released

HarfBuzz

HarfBuzz - Wikipedia
HarfBuzz - Wikipedia
HarfBuzz – Y.A.M.A.P
Fadisさんのツイート: "これからは「〜文字まで」みたいな仕様があったらHarfBuzzをリンクするか https://t.co/gVGozYsCZ1"
HarfBuzz Manual: Clusters

GNU FriBidi

GNU FriBidi - Wikipedia
fribidi/fribidi: GNU FriBidi
fribidi/fribidi - GNU FriBidi 0.19 series, an implementation of the Unicode Bidirectional Algorithm

Unicode

Unicode Terms of Use
Unicode Terms of Use
Technical Reports
Unicode Character Database
Index of /Public/PROGRAMS
Index of /Public
Unicode 9.0.0
UAX #24: Unicode Script Property
UAX #31: Unicode Identifier and Pattern Syntax
UAX #34: Unicode Named Character Sequences
UAX #38: Unicode Han Database (Unihan)
UAX #41: Common References for UAXs
UAX #42: Unicode Character Database in XML
UAX #44: Unicode Character Database
UAX #45: U-source Ideographs
UCS-2 ‐ 通信用語の基礎知識
Unicode ‐ 通信用語の基礎知識
ユニコード
Unicode―文字コード入門―
Tech Basics/Keyword:Unicode(ユニコード) - @IT
怖くないユニコードの話 - YouTube

JIS X 0221

JIS X 0221:2014とISO 10754:1984 | yasuokaの日記 | スラド
JIS X 0221 - Wikipedia
JIS X 0221:2014が出ています - yanok.net
国際符号化文字集合(USC)(JIS X 0221)が改訂 | カレントアウェアネス・ポータル
JIS X 0221:2014附属書JA(参考)日本文字部分レパートリ | yasuokaの日記 | スラド

絵文字

INTERNET Watch

「Unicode 9.0」が6月21日にリリース、72種類の絵文字を追加 -INTERNET Watch Watch
これからの絵文字の実装指針、UTR #51“Unicode Emoji”とはなにか - INTERNET Watch Watch
「Unicode 8.0」で肌の色の多様性に対応へ、“絵文字”に肌の色を変化させる符号を追加 -INTERNET Watch Watch
「Unicode 7.0」仕様公開、約250文字の絵文字を追加 -INTERNET Watch Watch
「Unicode 6.0」が策定、絵文字が国際標準に -INTERNET Watch Watch
Unicode、男女を切り替えられる絵文字を追加 -INTERNET Watch
「Unicode 10.0」への追加候補となる51種類の絵文字を発表 -INTERNET Watch

スラド

Unicode 9.0.0で追加される72種の絵文字 | スラド アップル
Unicode 9.0.0でライフルの絵文字が追加されなかったのはAppleとMicrosoftが反対したため? | スラド アップル
Unicodeの絵文字にスコットランド国旗が追加されない理由とは | スラド IT
iOS 10では拳銃の絵文字が水鉄砲の絵文字に置き換えられる | スラド アップル
絵文字のピストル、本物っぽいデザインとおもちゃっぽいデザインのどっちがいい? | スラド IT
Unicodeの絵文字のルーツ | yasuokaの日記 | スラド
キーマンズネットの考える絵文字とそのルーツ | yasuokaの日記 | スラド
J-PHONE SkyWalker絵文字とUnicode絵文字 | yasuokaの日記 | スラド

Wikipedia

UnicodeのEmojiの一覧 - Wikipedia
Unicode6.0の携帯電話の絵文字の一覧 - Wikipedia

Twitter

Rockridgeさんのツイート: "Fx50:EmojiOneライブラリを取り込むことで、Windows XP/Vista/7およびLinux上で絵文字のサポートを強化。参照:https://t.co/ZDKMAOTZMA / “1231701 – Ship an…” https://t.co/jGCunzkZYt"
Rockridgeさんのツイート: "Windows版およびLinux版Firefox 50でカラー絵文字が正しく表示されるようになった。 / “Emoji for all Firefox users! | Blog: timdream” https://t.co/3zTq4D17Ur"
Rockridgeさんのツイート: "Fx59:絵文字用フォントの指定に対応し、通常文字と絵文字が混在しても絵文字が崩れないようにした。 / “1032671 - Add https://t.co/x39AiS2czz-list.* for Emoji” https://t.co/817tDG1ZM1"
Rockridgeさんのツイート: "Fx61:絵文字ライブラリがEmojiOneからTwitter Emoji(Twemoji)へと変更された。参照:https://t.co/mAgjkdO4nE / “1358240 - Replace EmojiOne wit…” https://t.co/lvlTa4XT6i"
Twitter Emoji (Twemoji)
twitter/twemoji: Twitter Emoji for Everyone
堀 正岳(Lifehacking.jp)さんのツイート: "台風の絵文字(U+1F300)は機種依存しているので環境や、使っているSNSによって表示は違うのですが、ツイッターとGoogle(Android)はなんと右巻きの渦になっています。現実の台風は北半球だと左巻きですので、注意しないといけませんね。… https://t.co/dIK3lSOlEk"
堀 正岳(Lifehacking.jp)さんのツイート: "iPhone上でもSafariでサイト上で見ると右巻き、アプリで見ると左巻きになっているところが面白い(笑)… "
堀 正岳(Lifehacking.jp)さんのツイート: "ツイートがのびているので付け加えておくと、もとのUnicodeは”Cyclone"に対応しておりこれは「低気圧」という一般的な名称をさしてます。だから右巻き・左巻きのどちらが正解ということはありません。でもふだんの経験と違うものがみえると驚くのと、表示環境しだいで違うというのは面白いですよね"
堀 正岳(Lifehacking.jp)さんのツイート: "「場所次第で台風・サイクロン・ハリケーンと呼ぶのでは?」という質問もあるかもしれませんがUnicodeはその3つを区別しているわけではなく、もし地域差を表示してるとしてもサイクロンは北インド洋を含むので右巻きか左巻きかは、言葉だけからはわからないんです..."
えいす8️⃣さんのツイート: "📛←日本人にはどう見ても幼稚園の名札だが、外人には何なのかさっぱり分からないらしく「燃えるトーフ」とか呼ばれている絵文字"
なかのん&マジックさんはTwitterを使っています: 「Windows 10でも、デスクトップアプリのpassword fieldと、UWPのそれは、絵文字の取り扱いが違うのか。前者はsurrogate pairだけ意識してて、後者は見た目の文字単位でハンドリングしてる。」 / Twitter
なかのん&マジックさんはTwitterを使っています: 「UWPのpassword fieldの動作が一番良いように思える。GTKのはUTF-16の一文字単位で編集できてしまうし(現在のGeckoも同じ)、macOSに至っては絵文字が混じってるとマトモに動作しなくなる。」 / Twitter
桃芭蕉実🍑🍌さんはTwitterを使っています: 「お寿司🍣の絵文字、見え方がスマフォとかによって違うんだね〜しらなかった〜 https://t.co/EReSX1551u」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「最近https://t.co/0cq48c17Uaの話を見ることなかったのですが、QID emojiってのを知って、まぁ呆れた https://t.co/cZuF21UHX4」 / Twitter
UTS #51 Addendum: Unicode Emoji QID
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「絵文字等のUTF16的にマルチバイトな文字をどうマスクするかで今年夏にちょっと格闘してみたんだけど、メチャクチャに難しいですな。確か、WindowsのUWPのパスワードフィールドの処理が一番綺麗だった気がするものの、細かいことは忘却の彼方。 https://t.co/y0KFfhi7HT」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「@d_toybox これ現在インストールされているフォントとかにも依存するので最適解はないですね。なんであんな仕様になったと今でも思ってる。(というと自分が仕様側に入れよと言われる話なんですが)」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「@makoto_kato とりあえず、layoutがflushされてるかという例の問題と、やたらとあちこちにassertが仕込まれてて、クラスタ内やサロゲートペア間で何も起きないこと前提になってて、どんだけ直さないといけないのやらっていう感触でした。フォントはシステムデフォルトを強制するとかで緩和するしかないですかね……」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています: 「@d_toybox Platformのバージョンによってインストールされているフォントが変わるので、レンダリング情報 (nsTextFrame) をみないと正しいマスクされる文字数がわからないんですよね。。。プラットフォーム固定だとどうにかなるんですが。。。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今更だが、emojiの書記素(Grapheme Cluster?)判定をやらないと、こんなことになる。 それにしても、「親」絵文字と「子」絵文字が並ぶと「家族」絵文字にする仕様、誰得な仕様としか思えない(笑) https://t.co/wGg7RMVUiB https://t.co/so7v3SabmY https://t.co/uTk0td9Ixu」 / Twitter
書記素分割/Unicode カテゴリー判定 | ++C++; // 未確認飛行 C ブログ
🦀葛城玲🦀さんはTwitterを使っています 「@shirouzu 合字の仕様ですね。そうしたくない場合はU+00A0(NBSP記号)を間に入れるルールになってた筈です。」 / Twitter

特集 : 絵文字が開いてしまった「パンドラの箱」 - CNET Japan
「Firefox 50」リリース、絵文字の独自サポートなどを導入 | OSDN Magazine
おう吐・ゾンビ・授乳などUnicodeに新しい絵文字69種類が追加される - GIGAZINE
“Emoji 5.0”をサポート、日本語対応も充実した「Windows 10」Build 16226 - 窓の杜
Unicode Emoji 11.0が公開〜157種の絵文字が2018年に仲間入り - iPhone Mania
絵文字を支える技術の紹介 - Qiita
「Unicode 11.0」に含まれる157の新しい絵文字をサポート ~「Windows 10 RS5/19H1」 - 窓の杜
定番のテキストエディター「秀丸エディタ」v8.85β7、絵文字の結合文字に対応 ほか - ダイジェストニュース - 窓の杜
「Windows 10 19H1」Build 18277が公開 ~“集中モード”や“アクション センター”が改善 - 窓の杜
結合文字を利用したカラー絵文字をサポート ~「秀丸エディタ」v8.85が正式版に - 窓の杜
栗田穣崇さん『ドコモの絵文字にうんちを入れたかったのですが、社内で大反対されまして…』 うんちの絵文字がUnicodeに登録されるまでの裏話 - Togetter
The Unicode Blog: Unicode Emoji 12.0 — final for 2019
絵文字が開いてしまった「パンドラの箱」第3回--Unicode提案の限界とメリット - (page 6) - CNET Japan
Windows 10プレビュー、絵文字の検索機能を追加 - PC Watch
“Emoji 12.0”をフルサポートした「Windows 10 20H1」Build 18845が“Skip Ahead”に - 窓の杜
「Windows 10 19H1」も“Emoji 12.0”に完全対応 ~Build 18348が“Fast”リングに - 窓の杜
The Unicode Blog: Emoji 12.0 Now Available for Adoption
The Unicode Blog: Unicode Technical Committee Considers Emoji Color Mechanism
The Unicode Blog: The Unicode Consortium Launches New Website in Celebration of World Emoji Day
iPhoneの絵文字一覧から「台湾国旗」が削除されてしまったと香港・マカオのユーザーが報告 - GIGAZINE
The Unicode Blog: The Most Frequent Emoji
Emoji Frequency - Unicode
The Unicode Blog: Emoji 12.1 release: 168 Emoji added
Windows 10プレビュー版で顔文字が呼び出し可能に - PC Watch
iOS14.2で「マスクを着けた顔」の絵文字が笑顔に変更 - iPhone Mania

照合

Unicode照合アルゴリズム - Wikipedia
Unicode collation algorithm - Wikipedia
UTS #10: Unicode Collation Algorithm
🐬🍣🍻さんはTwitterを使っています 「MySQL 8.0のキャラクターセットとCollation(照合)の利用。utf8mb3の利用はNG, 将来バージョンで非サポートの方向。照合は要件に応じてutf8mb4_binかutf8mb4_0900_*のいずれかのみ推奨。日本語ではutf8mb4_900_ai_ciは病院美容院(拗音の照合)問題があるので非推奨。 #mysql_jp https://t.co/VqMFnm6n9R」 / Twitter

互換漢字

CJK互換漢字 - Wikipedia
CJK Compatibility Ideographs - Wikipedia
CJK統合漢字 - Wikipedia
CJK Unified Ideographs - Wikipedia
Unicode CJK互換漢字 F900~FAFF - CyberLibrarian
Unicode CJK互換漢字補助 - CyberLibrarian
CJK互換漢字 ‐ 通信用語の基礎知識
日本の文字とUnicode 第4回 | 大修館書店 WEB国語教室
人名用漢字と互換漢字 | yasuokaの日記 | スラド
“情報化時代”に追いつけるか? 審議が進む「新常用漢字表(仮)」: 第2部 新常用漢字表と文字コード規格第5回 なぜUnicode正規化は生まれたか

異体字

ITpro

新常用漢字が引き起こす文字コード問題 - UnicodeのIVSがもたらすメリットとデメリット:ITpro
新常用漢字が引き起こす文字コード問題 - 漢字1文字が最大8バイト、Unicodeの「IVS」とは?:ITpro
新常用漢字が引き起こす文字コード問題 - UnicodeのIVSがもたらすメリットとデメリット:ITpro

INTERNET Watch

渡邊の「邊」などの異体字の使い分け、MS Officeで可能に、IVSアドイン公開 -INTERNET Watch Watch
人名に使われる異体字など、IVS文字の入力を支援するソフト「IVSパレット」、イーストが発売 -INTERNET Watch

blog

IVDの2017-12-12版が公開 | yasuokaの日記 | スラド
Index of /ivd/data/2017-12-12
「崙の簡化字」のIVS | yasuokaの日記 | スラド
Windows標準のフォントだけで異体字(IVS)を扱う | 毛流麦花
Mac OS X 用異体字(異体字セレクタ Unicode IVS を含む)入力支援プラグイン及び TeX 系エディタ TeXShop 対応バイナリ - 技術考
IMEパッドでUnicodeの異体字セレクタを利用する―Office IME 2010を使いこなすを使いこなす―
日本語は1文字何バイト? ( ソフトウェア ) - アルファのブログ - Yahoo!ブログ

Twitter

Tsukasa #01さんはTwitterを使っています: "PanCJKV IVD Collection (unregistered) : https://t.co/jjnt5Enuqh"
Tsukasa #01さんはTwitterを使っています: "国ごとの字形の違いを表現するための IVD を Adobe がとうとう提案しようとしているのか。"
Tsukasa #01さんはTwitterを使っています: "OpenType の feature で国ごとの字形の違いを表現することは一応可能だとは思うけど、IVD を使うことでプレーンテキストの中でも同様のことができるようになるのか。"
vyv03354さんのツイート: "@makoto_kato IVS対応フォントでも通常IVSを単独の文字として収録していないので、ブラウザが認識していないとVSだけフォールバックが起きてうまく表示されません。フォントを1つしか使わない普通のアプリでは問題になりませんけど。"
Rockridgeさんのツイート: "Fx52:Windows版で、Webメールなどにおいて、IVS(Ideographic Variation Selector:漢字の異体字セレクタ)を用いた文字がバックスペースを2回押さないと消えない問題を修正。 / “8500…” https://t.co/uKAQekBADG"
ISO/IEC 10646:2017発行 | yasuokaの日記 | スラド
なぜ「⿸广帯」はISO/IEC 10646:2017から漏れてしまったのか | yasuokaの日記 | スラド
「⿺辶鳥」はISO/IEC 10646:2017に収録されたのか | yasuokaの日記 | スラド
楠 正憲さんのツイート: "この6万文字をWindowsやOffice、Mac、Linuxでもちゃんと扱えるところまできたのに自治体外字は百数十万文字も残ってるんですよね。マイナンバー対応で統合宛名の整備も進んだので、さすがに決着をつけたいな / “コンピ…” https://t.co/wCtbmA3lPQ"
ひめ@女体化したいさんのツイート: "どうせISO/IEC 10646:2017に関係するニュースでしたらこちらの岩手県大船渡市盛町字二本𭫚(にほんどう、拡張F U+2DADA)がオススメです https://t.co/iazheILI34"
Tsukasa #01 [要出典]さんのツイート: "あ、文字情報基盤周りだと、ISO/IEC 10646:2017 だけじゃなくて、IVD が 2017-12-12 版になったことも関連してるのかな (この版では、大漢和で重複収録されたものを "区別" するための IVS が追加されている。"
Tsukasa #01 [要出典]さんのツイート: "まぁそれはそうと、"全漢字" 使用可っての、だいぶ語弊があるよね。(ここまで書いて) 語弊があるどころか、登記統一文字で実際に複数の法人名に用例があるような字でも収録から外れてたり云々。"
Makoto Kato ︎︎さんのツイート: "IVSってフォントに依存するし、AdobeのセットとあのIPAが絡んでるセットは正規化してないから、グリフの形が全く同一でも同じコードになってないってところが好きじゃないんだけど、それ解決してるの?"
Makoto Kato ︎︎さんのツイート: "だから、IPAフォントじゃなくて、Noto CJKにあのIPAのIVSを移植しないと意味ない"

Standardized Variants
Ideographic Variation Database
Windows 8 の IVS 対応と IVS Add-in for Microsoft Office | マイクロソフト 公共機関向け
c - C言語でのUTF-8文字列の正確な長さを取得する - スタック・オーバーフロー
ダイナフォントのIVS(異体字切り替え)対応について教えてください。 | ダイナコムウェア株式会社
Unicode IVSとは | 異体字フィクサー | 製品情報 | 株式会社リンクス
IVSフォント利用ライブラリー|イースト株式会社
IVD/IVSとは | 文字情報基盤整備事業
IVS対応情報 | 文字情報基盤整備事業
異体字セレクタ - Wikipedia
異体字セレクター
IVD ‐ 通信用語の基礎知識
異体字セレクタセレクタ (α v0.5)

結合文字

Unicodeの特殊な文字 “結合文字列” – ものかの
サロゲートペアや結合文字が含まれているか調べる: .NET Tips: C#, VB.NET
結合文字列をUnicode正規化で合成する方法の危険性 - Qiita
結合文字列を合成する安全な方法を考える - Qiita
macのファイル名のための安全なNFC正規化 - Qiita
ICU 結合文字かを判定する - Faith and Brave - C++で遊ぼう
文字数をチェックする際にイタズラを目的とした大量の結合文字を見逃さないようにする  - Qiita
Unicode結合文字の取り扱い | 文字列 | プログラミング言語の比較 | hydroculのメモ
結合文字についてMacのおしい点 - yanok.net
「プログラマのための文字コード技術入門」EPUB版販売開始! - yanok.net
合字 - Wikipedia
Typographic ligature - Wikipedia
複雑なテキスト配置 - Wikipedia
Complex text layout - Wikipedia
結合文字 - Wikipedia
Combining character - Wikipedia
合成済み文字 - Wikipedia
Precomposed character - Wikipedia
図形素結合子 - Wikipedia
Combining Grapheme Joiner - Wikipedia
Unicode結合文字 難読化シェル芸

制御文字

ASCII

制御文字 - Wikipedia
ISO 2047 - Wikipedia
エスケープシーケンス - Wikipedia
エスケープ文字 - Wikipedia
改行コード - Wikipedia
キャリッジ・リターン - Wikipedia
キャレット記法 - Wikipedia
肯定応答 - Wikipedia
削除文字 - Wikipedia
シフトアウト・シフトイン - Wikipedia
スペース - Wikipedia
ソフトハイフン - Wikipedia
タブキー - Wikipedia
置換文字 - Wikipedia
テキスト終結文字 - Wikipedia
伝送終了文字 - Wikipedia
問い合わせ文字 - Wikipedia
バックスペースキー - Wikipedia
否定応答 - Wikipedia
ベル文字 - Wikipedia

一ノ瀬 いろはさんのツイート: "ゼロ幅接合子にゼロ幅非接合子・・・・・・ ウッ、アタマが!… "
ゼロ幅非接合子 - Wikipedia
Zero-width non-joiner - Wikipedia
ゼロ幅接合子 - Wikipedia
Zero-width joiner - Wikipedia
macOS 10.13/iOS 11のゼロ幅非接合子処理の不具合を利用しアプリをクラッシュさせる文字列が複数発見される。 | AAPL Ch.
2. スペースは" "だけじゃない的な話
jaco-js/SPACE_CHARS.ts at master · jaco-project/jaco-js
\sは本当に空白文字を網羅できているのか? - Panda Noir
新たな元号にZERO WIDTH JOINERは使えるのか | yasuokaの日記 | スラド
ノーブレークスペース - Wikipedia
単語結合子 - Wikipedia
Word joiner - Wikipedia
ゼロ幅スペース - Wikipedia
Zero-width space - Wikipedia
Thin space - Wikipedia
図形間隔 - Wikipedia
Figure space - Wikipedia

正規化

Unicode正規化 - Wikipedia
Unicodeの等価性 - Wikipedia
Unicode equivalence - Wikipedia
Unicodeの互換文字 - Wikipedia
Unicode compatibility characters - Wikipedia
ダイアクリティカルマーク - Wikipedia
Diacritic - Wikipedia
Unicode正規化
Elasticsearchでの文字列の正規化 - Carpe Diem
IBM Knowledge Center - エンコーディングと正規化
ユニコード
UAX #15: Unicode Normalization Forms
Unicode正規化 用語の混乱について 第4.2版 – ものかの
HFS+のエンコーディングとUnicode正規化 第3版 | ものかの
HFS+のテキストエンコーディング – ものかの
普通のUnicodeはNFCなのか – ものかの
本の虫: Linus Torvalds、HFS+に激怒
Taku Kudoさんのツイート: "NFKC 正規化といっても、Unicode Version が異なると結果が変わることがある(極めてレアだけど)。正規化を完全に自己完結モジュールにしたければ、Unicode Versionもモデルに含めないといけない。"
Kazuho Okuさんのツイート: "しかし「NKDで正規化したハッシュテーブル」みたいなやつ(ファイルシステムとか)、文字が追加されたらNKDの定義がかわるわけだけど、いったいどういう動作するのかな。未定義文字は登録できない、かつ、定義済の文字についてはNKDの定義がかわらない、みたいな規則にはしてないだろうし"
macOS上のAPFSはUnicode Normalizationを行うのか? - なるせにっき
にせねこさんのツイート: "現在のTwitterでは投稿時にUnicode正規化がなされるらしく、互換漢字の旧字は対応する新字に置き換えられてしまうようです。 https://t.co/0CrCRXA9TM… "
TwitterにUnicode正規化が導入された時刻の推定 by zeeksphere - Togetter
ファイルシステムとS3でのユニコード正規化の関係を調べてみた2021 - Techブログ - MNTSQ, Ltd.

東アジアの文字幅

UAX #11: East Asian Width
東アジアの文字幅 - Wikipedia
和字間隔 - Wikipedia

書記素クラスタ

Shiro Kawaiさんのツイート: "#tcfm 12回 https://t.co/orkUFymQiq Grapheme clusterを構成するコードポイント数って上限無いんじゃなかったっけ。文字数で入力制限かけるようなコードだとやばそうだな。"
Jun Mukaiさんのツイート: "https://t.co/mIq2d78OKz GB9とGB11のルールの組み合わせによりいくらでも長いgrapheme clusterはつくれます… "
UAX #29: Unicode Text Segmentation
Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
Perl 5.26 & Unicode 9.0 で変わる書記素クラスタ(grapheme Cluster)のお話 - Shogo's Blog
Python でタイ文字やアラビア文字の個数をうまく数える - Qiita
UAX #29: Unicode Text Segmentation

サロゲートペア

サロゲートペア入門:CodeZine(コードジン)
JavaScriptでのサロゲートペア文字列のメモ - Qiita
サロゲート・ペアのトラブルはいつまで続くか - yanok.net
Unicodeサポートの現状 - yanok.net

双方向テキスト

UAX #9: Unicode Bidirectional Algorithm
双方向テキスト - Wikipedia
Bi-directional text - Wikipedia
bidiフォーマット文字も追加:Unicode標準6.3が公開、日中韓の互換表意文字改善 - @IT
七誌さんはTwitterを使っています: 「Windows 2000の頃からWin32の標準TextBoxで右クリックするとメニューにRLM等のUnicode制御文字関連項目があるのは知っていたけど、初めて使った。 Wikipediaの例をコピペして制御文字を表示すると存在が確認できる。バイナリダンプすると対象文字(!)の後にある。 https://t.co/UbIAZG3oj0 https://t.co/KX29zYXXHz」 / Twitter
Right-to-left mark - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「牛耕式」を知っている人少なそう、、、牛耕式対応BiDiとかあったらすごいな。 https://t.co/o0QRy67YAk」 / Twitter
中村 実さんはTwitterを使っています 「古代ギリシャ語を牛耕式で書く場合、右から左の行と左から右の行では文字の左右が逆、つまり鏡文字になったそうだが、現代のエディッタ&amp;フォントで表示できるのかしら?」 / Twitter
Masaki HaraさんはTwitterを使っています 「ちなみにRustは1年以上前に文字列の端を取り除くメソッドの一種であるtrim_left/trim_rightを非推奨にしてtrim_start/trim_endにしていますね。これは右から左に書記する体系では混乱のもとだからです」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえは、IPMsgのログビューアは、一応アラビア語などbidi表示されるのだけど、範囲選択で馬脚を現してしまう、、、本当ローカライズは色々面倒。」 / Twitter
Go でアラビア語を描画する - Qiita
unicode-org/lstm_word_segmentation

行分割

- UAX #14 Unicode 行分割アルゴリズム - metacpan.org
UAX #14: Unicode Line Breaking Algorithm
UAX #29: Unicode Text Segmentation
Qt in depth: Qt の禁則処理 - Qt Japanese Blog
libunibreak
adah1972/libunibreak

Wikipedia

その他

U-PRESS - Wikipedia
Template:文字コード - Wikipedia
Template:Character encodings - Wikipedia, the free encyclopedia
Character encoding - Wikipedia, the free encyclopedia

文字

Unicodeにおけるラテン文字 - Wikipedia
Latin script in Unicode - Wikipedia
拡張漢字 - Wikipedia
香港増補字符集 - Wikipedia
Hong Kong Supplementary Character Set - Wikipedia
西夏文字 - Wikipedia
Tangut script - Wikipedia
バムン文字 - Wikipedia
Bamum script - Wikipedia
たいと - Wikipedia
Taito (kanji) - Wikipedia
ノーティカルスター - Wikipedia
Nautical star - Wikipedia
蘇州号碼 - Wikipedia
Suzhou numerals - Wikipedia
カシーダ - Wikipedia
Kashida - Wikipedia

Unicode - Wikipedia
Unicode - Wikipedia
ISO/IEC 10646 - Wikipedia
Universal Coded Character Set - Wikipedia
DIS 10646 - Wikipedia
ユニコードコンソーシアム - Wikipedia
Unicode Consortium - Wikipedia
Ideographic Rapporteur Group - Wikipedia
Ideographic Rapporteur Group - Wikipedia
Common Locale Data Repository - Wikipedia
Common Locale Data Repository - Wikipedia
Unicode一覧 - Wikipedia
List of Unicode characters - Wikipedia
Unicode一覧表 - Wikipedia
Unicode文字のマッピング - Wikipedia
Universal Character Set characters - Wikipedia
文字符号化方式 - Wikipedia
UTF-8 - Wikipedia
UTF-8 - Wikipedia
ホモグラフ攻撃 - Wikipedia
IDN homograph attack - Wikipedia
バイトオーダーマーク - Wikipedia
Byte order mark - Wikipedia

Twitter

その他

合字

KIMATA RobertHisasiさんのツイート: "日本語の文中で全く読めない文字「ゟ」に出くわして、「より」の合字があることを知る"
KIMATA RobertHisasiさんのツイート: "ひらがなの合字とカタカナの合字、UNICODEで定義されているのはここらへん参照らしい https://t.co/PSgHt1RbcO https://t.co/zLCBg9u89L 濁点、半濁点以外の合字だと平仮名の「ゟ」(より)と片仮名の「ヿ」(コト)がある模様。なお、「〼」(ます)は枡記号であって仮名ではないらしい。そうなんだ"
The Unicode Standard, Version 12.0
The Unicode Standard, Version 12.0
Shirouzu Hiroaki(白水啓章)さんのツイート: "「ゟ」は、「より」のひらがな合字、「合略仮名」と。… "

OS作れないマンさんのツイート: "wchar_tがUnicodeだと言われるともやもやする。"
なぎせ ゆうきさんのツイート: "ユーザー「ちゃんと文字数数えてくださいよ!」 プログラマ「では文字の数え方を定義して下さい。"👎"これは?」 ユ「1文字」 プ「サロゲートペアは1文字と。"・ิ"これは?」 ユ「1文字」 プ「合字は1文字と。"フ゜"これは?」 ユ「2文字……?」"
Fadisさんのツイート: "Unicodeへの絵文字の追加によって、表音文字を使ってきた文化圏が表意文字をカジュアルに使い始めた事は遠い未来から文字の歴史を見ると大きな事件になっているのかもしれない"
渋川よしきさんのツイート: "UTF-8は最大6バイトでは?「絵文字を入力する」ユースケース対応でIME対応が進むことも期待できる。 : 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama|note(ノート) https://t.co/nzV61y7j5Y"
kamimuraさんのツイート: "@shibu_jp @ymotongpoo 自身では単純に、utf-8の可変長でもほとんどの文字が6バイト(今では4バイト)になる、後方互換気にしない、いずれ2~6(4)バイトの大きさは気にするほどでもなくなる、と都合よく仮定して文字をUTF-32で実装してみたり。 https://t.co/KWo9s6Xqam… https://t.co/CAPAA5GLsz"
Shiro Kawaiさんのツイート: "@tenpoku1000 @mkamimura @rui314 同意。「文字」というのはどうコード化しても前後の文脈に依存する場合が出るので、文字列=互いに独立した文字オブジェクトのランダムアクセス列、という道は幸せにはなれないと考えます。SchemeもR6RS前に大きな議論があって、結局言語上の文字=コードポイントと割り切り意味的な文字はア… https://t.co/m04MNNXdGt"
鹿野壮(かのたけし)さんのツイート: "Google Chromeで絵文字のサイズを257px以上にすると、消えるよ。 (FirefoxやSafariでは消えない) #跡部王国 https://t.co/8lhNaJ9Fly"
mashabowさんのツイート: "新元号の組文字、「BMPに符号位置確保しといて」って要求が日本NBから出てた https://t.co/OsFnV1JWBT"
17429-sc2-n4577-japan-new-era.pdf
Ken Lunde (小林劍󠄁)さんのツイート: "This is the second—and likely final—draft of the new figure for Section 18.2, “Ideographic Description Characters,” of the #Unicode11 Core S… https://t.co/YEnqKjnYCq"
Kazuhiro Kazamaさんのツイート: "JavaやJavaScriptの国際化に携わってきたNorbert Lindenbergが日本語の勉強に来日した時に「日本語は難しい」と嘆いていたのですが,新たに日本語にハングルの要素を取り入れた"Niji script"を考えたそうです.ぜひ見てあげてください. https://t.co/5pJ1tSPZKq"
The Niji script
Masaki Haraさんのツイート: "WTF-8、知らなかった。「UTF-16として解釈してほしい気持ちだけど、実際には任意の16bit整数が入りうるデータ」をWTF-16と定義して、WTF-16をエンコードできるようにUTF-8を拡張したものをWTF-8と(非公式に)呼んでいるのか。RustのOsStringはWindowsではWTF-8を使っていると。"
Masaki Haraさんのツイート: "https://t.co/a3trBXwv2U WTF-8とCESU-8の違いも述べられている(というか全然違う)。WTF-8は「対応しないサロゲートをそのままエンコードし」「対応するサロゲートを結合してエンコードする」。CESU-8は「対応しないサロゲートを禁止し」「対応するサロゲートを分割してエンコードする」。"
Hiroyuki Komatsuさんのツイート: "1970-1980 年代のコンピューターで使われていた画像描画用の文字が、ユニコードに採択されました。 古いコンピューター風の演出や、エミュレーター用途だけでなく、軽いツールのアイコンとしても使えそうです。顔文字の表現の幅も広がりますね。 僕の好きな MSX の命令は VPOKE でした。… https://t.co/ZrvdDhMVrc"
The Unicode Consortiumさんのツイート: "214 characters from legacy computers and teletext that were proposed by @DougEwell, @BeckieRGB, and others in the “Terminals Working Group” in L2/19-025 were just accepted at #UTC158 for a future version of #Unicode → https://t.co/BNVgHvH2XQ… https://t.co/iI2Zo54TZO"
島鉄雄さんはTwitterを使っています: 「「𩸽」(ほっけ)という漢字が UTF-8 だと 4 byte になる知見を得た。 4 byte 文字も含めてちゃんと UTF-8 に対応しているか確認する時と、居酒屋で取り敢えずツマミを頼む時にほっけが使える。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「全角スペースが紛れてsyntax error、というツイートをちらほらみかけるんだけど言語仕様でUnicode許すならカテゴリZsを空白扱いにすればいいのに」 / Twitter
Tsukasa #01 [要出典]さんはTwitterを使っています 「Unicode 13.0 がもうすぐ公開か。……このバージョンで、久しぶりに新しい面が使われる。そう、漢字のために第2面、6.5万字強を割り当てたにも関わらずほぼ使い果たし、またもや漢字専用に割り当てられた第3面が今回正式デビューすることになるのだ。」 / Twitter
ドッグさんはTwitterを使っています 「unicode-org 公式の i18n ライブラリ ICU4X が ICU4C や ICU4J での経験を生かして新たに実装されてる.実装は Rust .ECMA-402 互換の API を提供し,(多分 C ABI を通じて)複数のプラットフォームや言語で使えるようにするらしい | 'unicode-org/icu4x' https://t.co/GiILG5jWFv」 / Twitter
unicode-org/icu4x: Solving i18n for client-side and resource-constrained environments.
ドッグさんはTwitterを使っています 「今のところ,対応予定のプラットフォームはブラウザ, iOS, Android, WearOS, WatchOS, Flutter, Fuchsia で,対応予定の言語は Rust, JavaScript, Objective-C, Java, Dart, C++.ブラウザ対応は Wasm を使うのか」 / Twitter

UTF-8(Windows)

Hideyuki Tanakaさんのツイート: "BOMってバイトオーダー示すためのものなのになんでバイトストリームであるUTF-8にBOMをつけてもいいような仕様にしたのか、Unicodeコンソーシアムの考えることはホンマわからん。(´・_・`)"
なかのん&マジックさんのツイート: "charsetをHTTPヘッダとかで指定できないローカルファイル向けじゃないのかなぁ。昔、HTMLエディタを自作してたけど、一番困ったのは、読み込んだファイルがASCII文字しかない場合に、どのエンコーディングを前提とするかって事。新しく非ASCII文字を入力して保存する場合、さて、どうする?ってなる。"
なかのん&マジックさんのツイート: "正直、なんで、UTF-8のBOMがそんなにうざがられてるのか理解できないんだよな。一部のアプリが適切にそれを無視できていないなら、悪いのはそのアプリの方なんで。"
なかのん&マジックさんのツイート: "テキストエディタがCRLFか、LFのみにしか対応してなかったら、そのテキストエディタは使えないって思うでしょ?"
なかのん&マジックさんのツイート: "逆に言えば、なんで未だにローカルファイルに文字コード情報がファイルシステムとかで記録・提供されないのよって思う。"
なかのん&マジックさんのツイート: "そもそも、U+FEFFは"ZERO WIDTH NO-BREAK SPACE"なので、これをBOMとか呼んでるのがそもそもどうなのって感じもする。昔、ブラウザの文字化け回避に、HTMLに<!-- あ -->とか入れてたハックみたいなもんよね、あれ。(「あ」だったかどうかちょっと自信無いけど)"
なかのん&マジックさんのツイート: "なので、あれを入れてる時点でASCIIなファイルではないので、これをUTF-8非対応のアプリに読み込ませるのは人の愚行なわけで。"
なかのん&マジックさんのツイート: "今どき、まともなテキストエディタならBOMを標準で入れたりしないだろうし、大抵のUTF-8 awareなアプリならそれを無視するだろうしで、どういうシナリオで問題になるのかよく分からない。"
KIMATA RobertHisasiさんのツイート: "Windows 標準及びごく少数の許可されたソフトウェアのみで作業する必要があり、しかも、BOMなしUTF8が必要だったため、メモ帳でJScriptファイル書いて、ADODBオブジェクトでBOM付きUTF8ファイルとして保存した上でバイナリとして読みだしてBOM分を飛ばしてから保存と言う作業をしたことがあり(笑)… https://t.co/mHP1FbgI78"
一ノ瀬 いろはさんのツイート: "notepad.exe が意図的に入れようとしなくても勝手に入れるぐらい。… "
一ノ瀬 いろはさんのツイート: "シェルスクリプトなどで使われる shebang の扱いと PHP ぐらいかな?… "
一ノ瀬 いろはさんのツイート: "どっちも書くのはツラいですね。 しかしnotepad.exeしか与えられない環境というのは意外と多く。… "
なかのん&マジックさんのツイート: "メモリ4GBを基本的人権とか言う前に、もっと大切なことがある気がしてきますな……"
なかのん&マジックさんのツイート: "とりあえず、みんな使っていないであろうメモ帳に変更があったからといって、なんでみんな反応したりするのかよく分からん。"
Piro/Linuxコマンド操作漫画連載中さんのツイート: "法人サポートではこのファイルをこれこれこのように編集して下さいと案内する事がありますが、そこでBOMを強制的に付与する物が標準的に使われてしまうと、恐らく要らぬトラブルが増える事が予想されます。… "
村上真雄 MURAKAMI Shinyuさんのツイート: "Windows 10 のコントロールパネルの地域の設定で「ベータ: ワールドワイド言語サポートで Unicode UTF-8 を使用」にチェックを入れると、今までデフォルトでShift JISだったもの(メモ帳をはじめ…)がUTF-8(BOM無し)になってくれてありがたいです。(それで不具合出る古い日本語アプリは捨てよう)… https://t.co/flgTiuKVCN"
村上真雄 MURAKAMI Shinyuさんのツイート: "この設定をすると「メモ帳」の「名前を付けて保存」で「文字コード: ANSI」(デフォルト)だとBOM無しのUTF-8、「文字コード: UTF-8」だとBOM付きのUTF-8のファイルになります。"
村上真雄 MURAKAMI Shinyuさんのツイート: "Windows用語の「ANSI」は、ANSI(米国国家規格協会)の標準規格じゃないのに、誤った名前で使われ続けているらしい: https://t.co/RvWOzy3rZa そのあたりの謎なWindows用語も直してほしいものです。"
Windows code page - Wikipedia
なかのん&マジックさんのツイート: "あの設定を変更すると、壊れるアプリは多々ありそう……古いアプリというより、古くからあるアプリの互換性が心配。特にインストーラとか、メンテがそこまで活発じゃなさそうな部分。"
uNagiさんのツイート: "マルチバイト文字セットでビルドされているアプリの末路・・・… "
なかのん&マジックさんのツイート: "あー、Unicodeアプリ以外全滅ですか。さすがに使えないですね……単純に古い開発環境で作ってるだけの新しいアプリも全滅しちゃいますね。… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「WinNT系カーネルもそうで、W系WinAPIは全てUTF-16(昔はUCS-2のLE表現)。 UTF8系WinAPIを用意すべきなのに、A系APIをOSコードページ指定(システムグローバル)を65001にすることで、UTF-8利用可にするという頭の悪い方向で頭が痛い… https://t.co/EZyfCcKfgj」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「1903からアプリ毎のUTF-8設定できるのね。知らなかった。 ただ、WIN32_FIND_DATAA など cFileName が MAX_PATH byte しか無いため、非ASCIIで87文字以上の長いファイル名が格納できないという、MBCS版(SJIS129文字まで)より、さらに制限のキツいアプリしか作れない。 https://t.co/1AnPmGpEfB」 / Twitter
K.TakataさんはTwitterを使っています: 「manifestでアプリ単位でUTF-8に切り替えできるようになったので十分じゃないのかな。 https://t.co/V0T47xXIgI UTF-8なAPIだけを用意してもCRTが使えないのであまり意味がないし https://t.co/kqfXMGhXRx」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「それと、IPMsg で実際に W系APIを UTF-8 API的なラッパーを用意して、UTF-8で動くコードを書いてる経験からすると、CRTは(UTF-8明示対応が理想だけど)実はmbcs系を明示的に使わず、strXXXみたいなASCII用関数を使う限り、ほぼ問題ない。(UTF-8はASCII系との互換性が高い) https://t.co/lvFt3kI1iA」 / Twitter
ipmsg/tapi32u8.h at 733f2515b34f7a5f84342448540b1a61d9f1dd0b · shirouzu/ipmsg
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まずいのは mbsstr とか MBCS版CString のような MBCS前提に書かれたライブラリ。たとえば、VC6 の CString Find に UTF-8を食わせると破綻した経験。 (なお、VS2005のCStringだと leadbyte 終端時の \0飛び越しは無くなっていた) https://t.co/bCkJtweS6V」 / Twitter
私的メモ(2004年01月版)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば「アプリ毎コードページ設定化は無理?」と思っていたのだけど、意外と大丈夫だったのね。 コモンダイアログ等のDLLはMSさんがUTF-8対応したのだろうけど、それ以外で未対応DLLを食うパターンが無いかの確認はアプリ側でやれよ、ということかな。 https://t.co/fvAxXRJEcQ」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお、アプリ毎の ANSI API の MBCS/UTF8解釈切り替えは、DLLの存在を考えると、たぶん無理。」 / Twitter

Julia

ChuuiさんはTwitterを使っています 「@uchan_nos Julia言語は、REPL環境に「 \lambda タブ」と押すと、λ が入力できる機能が標準で備わっている。 Julia公式 unicode入力: https://t.co/SGQkkNb6UH 各エディタの場合は拡張機能で。 次のブログ、興味深い記事でした。 &gt; Unicodeプログラミングのすゝめ https://t.co/PRwjmS2h9n」 / Twitter
Unicode Input · The Julia Language
Unicodeプログラミングのすゝめ - りんごがでている

@rockridge07

Rockridgeさんのツイート: "Fx42:Unicode v8.0をサポート。参照:https://t.co/hR5TaueMuf / “1183209 – update Unicode character data to version 8” https://t.co/3lbspBIwRe"
Rockridgeさんのツイート: "Fx53:Unicode v9.0をサポート。参照:https://t.co/5eJdHuOEmL / “1281448 – update Unicode character data to version 9.0” https://t.co/QtHgUt197u"
Rockridgeさんのツイート: "Fx56:Unicode v10.0をサポート。参照:https://t.co/XCqHzGprAP / “1376834 - Update Unicode data to release 10.0” https://t.co/SyxYcNNjNa"

@d_toybox

なかのん&マジックさんのツイート: "これ、Unicodeが悪いかのような書き方してるけど、欧米の言語で考えればUnicodeのアプローチ正しいでしょ? 欧米の言語ごとに同じアルファベット定義させる気? lang属性はそういう意味で必要なのよ。 / 1000speakers Speach by Songmu ~何故htmlにはlang属性が必須なのか? https://t.co/8eoYzLWlr0"
1000speakers Speach by Songmu ~何故htmlにはlang属性が必須なのか? (1)
なかのん&マジックさんのツイート: "あと、ページ全体のlang属性もきちんと指定しておかないと、例えば英語の設定しかしてないブラウザで漢字交じりのUTF-8なページを表示した時に、日中韓どのフォントで表示すれば適当なのかはヒントが他に無いのよね。実際にこういうトラブルで定期的にバグとしてFirefox側に報告来てたりするのよ。"
なかのん&マジックさんのツイート: "Firefox的にはユーザ自身が設定の言語の所に、自分の使えるCJKの言語を追加して優先順位を適切にしておくと、それを優先するよって形にはなってるんだけど、まあ、英語版のNightly使ってる中国系の人からの報告が常にやってくる。"
なかのん&マジックさんのツイート: "ちなみにGeckoは歴史の長いエンジンなので、過去からの互換性のために最後までヒントが無かったときのフォールバックで日本語が最初に来るので日本人は中々見かけない問題ではある。他のエンジンはどうしてるのか知らない。"
なかのん&マジックさんのツイート: "ブラウザの実装やってる側からするとこの記事とか本当にアホかって思う。検索エンジンの方だけ向いて、ユーザの方を向かずにWeb作ってるからこう判断しちゃうんだろうな。 / Google「言語指定にlangは使うな」/公式発言 https://t.co/xFuK2b8j6L"
Google「言語指定にlangは使うな」/公式発言
なかのん&マジックさんのツイート: "Unicodeのコードテーブルで#(U+FF03)の定義を確認したけど、FULLWIDTH NUMBER SIGNと、<wide># だけだし、# (U+0023)の方もNUMBER SIGN、pound sign、hash、crosshatch、octothorpeだけで、music sharpはU+266Fと案内してるよなぁ。"
なかのん&マジックさんのツイート: "UTF-16とかBOMは間違ってないと思うけどなぁ。少なくとも、処理する上でUTF-8は無いわーって思う。伝送にはUTF-8以外に無いわーだけど。"
なかのん&マジックさんのツイート: "'EXCLAMATION QUESTION MARK' (U+2049) / 「!」「?」の名前は有名 では「!?」と並べたときの呼び方は? - ねとらぼ https://t.co/R9KQ6G3cul"
「!」「?」の名前は有名 では「!?」と並べたときの呼び方は? - ねとらぼ
Yuzuru Suzukiさんのツイート: "「々」が漢字ではなく記号扱いだからバリデーション通らない超基本のやつだ。… "
Atsushi Sasakiさんのツイート: "【悲報】ゆうちょPayでは「佐々木」という姓が名前として入力できない。なんだこれ日本に佐々木姓が何人いると思ってんだ……… "

@makoto_kato

Makoto Kato ︎︎さんのツイート: "emojiはUTF-32は解決できるかもしれないけど、IVSは解決できないし、クラスタは解決できないので、あのruiさんのエントリになるほどと思ってる人はunicodeのスペック読み直せ"
Makoto Kato ︎︎さんのツイート: "個人的にはJPって絵文字並べると日本の国旗ができるスペック、あれどうなのよだし、そのタイミングで文句言えなかったのは自分の守備範囲のせいかも"
Makoto Kato ︎︎さんのツイート: "元号が増えるとICUのアップデートが必要"
Makoto Kato ︎︎さんのツイート: "なので、ICUを使ってるコードはすべてアップデートしないといけないんですが、誰が調査するんですかねー。(そもそもそのアプリで日本の元号表示したりするのかは置いておいて)"
Makoto Kato ︎︎さんのツイート: "NEX久々に乗ったけどまだdouble byte言ってる。そもそもIDNとかあるのに何言ってるんだろ。作ったNTT Com?の人がおそらく40代以上なんだろうな… "
Makoto Kato ︎︎さんのツイート: "triple bytesならいいのかといつも突っ込みたくなるやつ"

@kazuho

Kazuho Okuさんのツイート: "今までマルチバイト対応が少なかったのを欧米圏の人たちの他文化への理解の欠如のせいにするツイートが散見されるけど、彼らからしてみれば、対応しようにも漢字読めないから正しい表示にできているのか判断しようがなかったんですよ。絵文字が流行るまでは。"
Kazuho Okuさんのツイート: "アラビア語の表示が正しくできてるかデバッグしたことのある人だけが、英語圏のプログラマに斧を投げなさいって感じ"
Kazuho Okuさんのツイート: "いっタイなんて書いてあるのか、わかりませんからねぇ https://t.co/Iexqryl8Xi"
Kazuho Okuさんのツイート: "実際、ASCII+EUC/ShiftJIS自体に発生した様々な問題をユニコード(UCS2)で解決しようというのはアメリカ主導の提案だったわけだし、彼らにとっては、文化的無理解からやりたくなかったのではなく商業的理由でやりたかった話"
Kazuho OkuさんはTwitterを使っています 「utf-8でBOM使うのがおかしいというのはunicodeの世界しか見ていない話で、文字コードの推定やる場合には便利だし、実際application/javascriptの場合は推奨されている推定手法です。ベストな解は、もちろんcharsetを指定することだけど。 https://t.co/AToDQAGcw9」 / Twitter
RFC 4329 - Scripting Media Types

@rui314

絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama|note
Rui Ueyamaさんのツイート: "欧米の人たちはマルチバイト文字圏の苦労がわかってないし、わかっていても意図的に無視してきた、みたいなこと、いわないほうがいいと思いますよ。実際に払われてきた苦労をわかってないのはそういう人たちのほうで、しかも僕も含めた開発者を人種差別的な意味まで含みながら侮辱しているだけなので。"
Rui Ueyamaさんのツイート: "UTF-8の認識が15年前くらいからアップデートされていないひとがわりといるのかも? Unicodeは2^32とかではなく最大でも1,114,112文字に制限されているので最長でも4バイトだし、冗長なエンコーディングは禁止されているのでそういうのは単に不正なバイト列。"
Rui Ueyamaさんのツイート: "@anohana @tenpoku1000 @mkamimura そうですね。それと、ほとんどのデータや文章は最初から順番に読んでいかないと意味がわからないので(HTMLや自然言語の文を途中から読んでパーズしたりできない)、n文字目にO(1)でシークできるというのは実際はほとんどメリットないと思います。"

@a4lg

Tsukasa #01 [要出典]さんのツイート: "ある資料の収録字を調べる → Unicode 中には無い → IDS で検索 → 中国国家図書館が、各地方志の電子化を行う過程で 4000 字以上の漢字を IRG に提出し、――その多くが今も未収録なことを発見する (IRG N1199 等)。"
Tsukasa #01 [要出典]さんのツイート: "奇妙な字がたくさん。まだ Unicode に登録されていない漢字が多いという事実に圧倒される。 https://t.co/m5KhzR53GP (提案[この時点では正式な proposal ではない]) https://t.co/2fUdm0vutW (グリフ一覧)… https://t.co/xGe2XEzdey"
Tsukasa #01 [要出典]さんのツイート: "念のため強調しておくと、Unicode 登録準備が進められているものを含めると、9万以上の漢字が Unicode (と、おそらく 2 年以内にそこに収録されるワーキングセット) に収録されているのだ。そこに漏れているものがまだまだ多いということは、………いやぁ、おそろしいねぇ。"
Tsukasa #01 [要出典]さんのツイート: "@wtnelson @sarasvati635 Yes, I agree that. The only (and the biggest) problem is, this ideograph got too famous (about its stroke count) to reject. It feels more li… https://t.co/J8pJeS9nog"
William T.さんのツイート: "@sarasvati635 @a4lg I am angry about UK-02960 「⿱䨺龘」 UK “additional evidence” is 和製漢字の辞典 that says: 存在未確認 UK says that UCS "does not encode idiosyncratic, pers… https://t.co/x0Mc38nVJ9"
Tsukasa #01 [要出典]さんのツイート: "@ZawemonK "単なるデマ" として潰すタイミングを逸した感 (デマだったとしても、それを前提として載せてしまっているものも笹原氏の本含めてありますし……)。"
Tsukasa #01 [要出典]さんのツイート: "oO( というわけで、それこそ 龍*n とか 雷*n の自称古文とかは広がらないうちに潰………れてるのかな。まぁ今はあまり広がってないが、流石にこれをエンコードしようっていうのなら強く反対。 )"
Tsukasa #01 [要出典]さんのツイート: "@ZawemonK これ単独ではないでしょうが、間違いなくひとつ挙げられるのは、今昔文字鏡等の宣伝があるかと。"ちくわ" "慶應" とかもその類ですし。"

@tanakh

Hideyuki Tanakaさんのツイート: "⿸ こんな文字とかあったんすね(´・_・`)"
Hideyuki Tanakaさんのツイート: "漢字構成記述文字なんてものが定義されてたのか(´・_・`)"

@ohashimasaki

Masaki Ohashiさんのツイート: "結局のところ、入力チェックを設けるよりも、所定の文字に関してだけ自動的に置換をするようにしといたほうがはるかに簡単だしスムーズだよね。どうせ0-9A-Za-zとカタカナと一部の記号だけなんだから…「全角」とか「半角」とかで決めるから意味が分からなくなる。"
Masaki Ohashiさんのツイート: "もし「全角」「半角」をチェックしたいなら、自分または顧客が「全角」「半角」と考える文字の範囲をあらかじめ決めておかないとチェックしようがないけど、そもそも意味あるのかw たいていは顧客の社内文書のスタイルに起因するものなんだろうけど。とくに「全角」限定は悩ましい。"

@anohana

Shiro Kawaiさんのツイート: "論文のアルゴリズム実装してみる時は、最近ではギリシャ文字とかあまり抵抗無く使うなあ。 上付き下付き文字を ^+ とか _1 とか書くのがいまいち、と思ってたんだけど、考えてみたらUnicodeにあるから使えばいいのか。U+2070 ~ U+209Cあたり。… https://t.co/W8RwPhGeG1"
Shiro Kawaiさんのツイート: "SchemeはUnicodeの一般カテゴリで識別子を定義してて、全角数字はNdなので最初の文字としては使えない(2文字目以降は可)。が、Gaucheは今のところ「数字として解釈できないシンボルっぽいやつはシンボルでいいや」という昔のLispのユルさを引きずってる。 gosh> (define 1 2) |1| gosh> (+ 1 1) 4… https://t.co/UdfDqGRZHG"
Shiro Kawaiさんのツイート: "これはやっぱりあんまりなのでそのうち変えるかも。"

decodeunicode.org
📙 Emojipedia — 😃 Home of Emoji Meanings 💁👌🎍😍
文字コードDB
FileFormat.Info · The Digital Rosetta Stone
Unicode Standard
History of Unicode Release and Publication Dates

GUI

Wayland

blog

Rust製GUIスタック「Kazari」
Life of a Pixel - Google スライド
Introduction - The Wayland Protocol
weston/terminal.c at master · wayland-project/weston
Appendix A. Wayland Protocol Specification
Introduction - The Wayland Protocol
wayland/wayland.xml at master · wayland-project/wayland

Wayland
wayland / wayland · GitLab
MirServer/wlcs: Wayland Conformance Test Suite
第652回 キミはMirを憶えているか:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
2017年9月5日 Waylandでもリモートデスクトップ! Red Hat開発者がGNOMEにAPIを追加:Linux Daily Topics|gihyo.jp … 技術評論社
Wayland | OSDN Magazine
Wayland - Wikipedia
Wayland (display server protocol) - Wikipedia
Wayland - ArchWiki
Wayland - ArchWiki
Wayland ‐ 通信用語の基礎知識
Wayland | Linux技術者認定 LinuC | LPI-Japan
Waylandとは? - Qiita
Wayland/jp - RawPedia
Waylandのウィンドウのx、y座標を設定するにはどうすればよいですか?
Wayland - 接続と切断
Waylandについて - 雑記
bitWalk's: Wayland と X Window System
GNOMEでWaylandを使う | 普段使いのArch Linux
Firefox 75がLinux向けディスプレイサーバーのWaylandをサポート - GIGAZINE
Ubuntu 19.04 その11 - Waylandセッションのデフォルト化はUbuntu 20.10まで見送りか? - kledgeb
【Ubuntu 17.10】WaylandからXorgに切り替えるべき7つの理由 | LFI
Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
第666回 Waypipeを用いてWayland環境で「X転送 over SSH」っぽいことをしてみる:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
managarm/managarm: Pragmatic microkernel-based OS with fully asynchronous I/O
FadisさんはTwitterを使っています 「glfwがsurfaceを作れない!→waylandをenableしたglfwはX上でsurfaceを作れない→何でwaylandがenableになったの?→次にglfwのバージョンが上がる時にはNVIDIA+wayland事情が改善してると信じてGentooのUSEフラグをバージョン付きで-waylandしてた、を3回繰り返してglfwを常に-waylandするようにした」 / Twitter

MS

Windows App SDK(WinUI 3, Project Reunion)

ASCII.jp:UWPからデスクトップアプリに回帰すべく、MSが送り出した「Project REUNION」 (1/2)
Project Reunionを使用して、MicrosoftはWin32とUWP APIの統合を試みる
Microsoft、Win32とUWPの2つのAPIを再統合する「Project Reunion」 ~WinUI 3に統合され、開発者は新しいアプリケーションを開発可能。EdgeやTeamsも機能強化 - PC Watch
microsoft/ProjectReunion: Project Reunion is an evolution of the Windows developer platform that will make it more compatible, agile, modern and open.
UWPアプリの洗練されたUIをWin32アプリでも ~Microsoft、「WinUI 3 Preview 1」を発表 - 窓の杜
Introducing WinUI 3 Preview 1 - Windows Developer Blog
WinUI 3 Preview 2 (July 2020) | Microsoft Docs
デスクトップ アプリ用の WinUI 3 の概要 | Microsoft Docs
Windows 10 21H2以降で恩恵を受けられそうなWinUI 3 - 阿久津良和のWindows Weekly Report | マイナビニュース
Microsoft、「WinUI 2.5」を公開 ~プログレスリングやBootstrap風の情報バーを追加 - 窓の杜
Microsoft、「Windows UI Library」を公開 ~OSバージョンに縛られずに新機能を導入可能 - 窓の杜
Microsoft、「Project Reunion 0.5」を発表 ~Win32とUWP/XAMLに二分されたWindowsアプリ開発を再結合 - 窓の杜
「Uno Platform 3.6」が発表 ~「Project Reunion 0.5」の「WinUI 3」に即日対応 - 窓の杜
ASCII.jp:UWPとデスクトップアプリの統合を試みる「Project Reunion」のプレビュー版が登場する (1/2)
ASCII.jp:あらためて「.NET」について整理する (1/2)
MicrosoftがProject Reunion 0.5のプレビュー版をリリース
ReactとWinUI 3を使ってWindowsネイティブアプリを開発する
Microsoft、「Project Reunion 0.8」を発表 ~Win32とUWP/XAMLに二分されたWindowsアプリ開発を再結合 - 窓の杜
WinUI 2.6 Release Notes - Windows apps | Microsoft Docs
「Project Reunion」の正式名称は「Windows App SDK」に ~v0.8が一般公開 - 窓の杜

Windows Community Toolkit

ARM64アプリの開発をサポート ~Microsoft、「Windows Community Toolkit」v6.0を発表 - 窓の杜
トースト通知がたった数行で。新しいMVVMライブラリも ~「Windows Community Toolkit 7.0が公開 - 窓の杜

Uno Platform

「Uno Platform 2.0」が正式公開 ~C#/XAMLのUWPアプリをiOS/Android/WebAssemblyへ移植 - 窓の杜
「Uno Platform」が「Visual Studio Code」にプレビュー対応、WebAssemblyアプリが開発可能に - 窓の杜
Windows 10の「電卓」アプリがオープンソース化 - 窓の杜
Windows 10の電卓アプリがiOS/Android/WebAssemblyで動作 ~「Uno Calculator」が公開 - 窓の杜
Unoプラットフォーム3.1がリリース

MAUI

Microsoft、.NETのUIを統一する「.NET Multi-platform App UI」(.NET MAUI)を発表 - 窓の杜
マイクロソフト、マルチプラットフォームUIを実現する「.NET Multi-platform App UI」(MAUI)を実際にデモ。単一コードからWebとWindowsアプリを生成 - Publickey
Microsoft、「.NET MAUI」Preview 4を発表 ~マルチプラットフォーム対応アプリUIフレームワーク - 窓の杜
.NET MAUI Preview 4はこちら

WebView2

新しい「Edge」をアプリに組み込める ~Win32 C/C++向けの「WebView2」が一般公開 - 窓の杜
MicrosoftがChromiumベースのWebView2でハイブリッドWindows Webアプリをサポート
Microsoft、.NET向け「WebView2」を一般公開 ~ランタイムバージョンの固定にも対応 - 窓の杜
Microsoft Edge WebView2が一般公開
マイクロソフト、Chromiumベースの「Microsoft Edge WebView2」.NET正式対応版リリース。バージョンを固定できる「Fixed Version distribution mode」も - Publickey
高梨陣平さんはTwitterを使っています 「MS Teams 2.0が大胆な変更。Electronを止めてEdge Webview2に。Angular を止めてreactjsに。apollo graphqlを採用。Win11からで、商業は後。 Electronはメモリを食い過ぎた。Edge Webview2はMS製のWeb技術をネイティブアプリに突っ込むもの。」 / Twitter
Hacker NewsさんはTwitterを使っています 「Microsoft Teams 2.0 will use half the memory, drop Electron: https://t.co/naMPGiW40I Comments: https://t.co/tGhJSOwi1g」 / Twitter
Microsoft Teams 2.0 will use half the memory, dropping Electron for Edge Webview2 – Tom Talks
Microsoft Teams 2 will use half the memory, dropping Electron for Edge Webview2 | Hacker News

Windows Runtime

C++/WinRT

C++ - C++/WinRT の紹介
Standard C++ and the Windows Runtime (C++/WinRT) - Windows Developer BlogWindows Developer Blog
C++/WinRT
C++WinRTではじめるUWP
C++/WinRT | Modern C++ for the Windows Runtime
Microsoft/cppwinrt: C++/WinRT is a standard C++ language projection for the Windows Runtime.
MS、オープンソースで公開のC++/WinRTの処理高速性をアピール | マイナビニュース

Windows Template Studio

Windows Template Studio - Visual Studio Marketplace
Microsoft、UWPアプリの雛形を手軽に作成できる「Windows Template Studio」v1.3 - 窓の杜
「Windows Template Studio」v1.5が公開 ~UWPの雛形を作成するVisual Studio拡張機能 - 窓の杜
アプリ雛形を作成するVS拡張「Windows Template Studio」v1.6、画像ギャラリーに対応 - 窓の杜
Visual Basicをサポートした「Windows Template Studio」v1.7が公開 ~Prismにも対応 - 窓の杜
アプリの雛形を作成するVisual Studio拡張「Windows Template Studio」がv2.0に - 窓の杜
「Windows Template Studio」がv2.2に ~UWPアプリの雛形を作成するVisual Studio拡張 - 窓の杜

Windowsランタイム - Wikipedia
Windows Runtime - Wikipedia
Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
Windows Runtime 8.x APIs for desktop apps (Windows)
Windows と C++ - Windows ランタイムにおける洗練された型
RoGetActivationFactory function (Windows)
パッケージ デスクトップ アプリで利用可能な UWP API (デスクトップ ブリッジ) - UWP app developer | Microsoft Docs
ToastNotification Class (Windows.UI.Notifications) - UWP app developer | Microsoft Docs
遥佐保の技術メモ:[C++][WRL]デスクトップアプリからトースト通知 - livedoor Blog(ブログ)
DesktopからToast Notificationsへ通知する | Software Development | Just another WordPress site
トースト通知 - かずきのBlog@hatena
デスクトップアプリからWinRT APIを使用する - 酢ろぐ!
特集:デスクトップでもWinRT活用:開発者が知っておくべき、ライブラリとしてのWindowsランタイム (1/5) - @IT
WinRT APIを使ってみる - イグトランスの頭の中
WinRTとC++イテレータ - イグトランスの頭の中
WinRTのref classでの演算子多重定義 - イグトランスの頭の中
C++コンポーネント拡張:新しいCOM
COM 再入門 (1) - モノトーンの伝説日記
Windows Runtime/WinRTとプログラミング言語 - WisdomSoft
Windows 8時代のアプリ開発とWinRT(1/4) - @IT
WinRT:Win32のオブジェクト指向による代替
Windows 8時代のアプリ開発
Rockridgeさんのツイート: "Fx64:Windows 10ネイティブのトースト方式通知をサポート。通知はアクションセンターに登録される。今のところNightlyチャンネルでのみ有効化されている。 / “1155505 - Implement ToastNo…” https://t.co/0wEyVnh7NH"
ゆたかさんのツイート: "UWP最高!!全部API置き換えるもん!!!!みたいな熱量からだんだんやっぱWin32捨てれねぇわ…感を漂わせて、バージョンごとに増えていく許可されたWin32 APIがちょっとおもしろい"

CLI

Standard ECMA-335
Standard ECMA-335-archive
ECMA-335翻訳ドキュメント
ECMA C# and Common Language Infrastructure Standards
Reference Source
共通言語ランタイム (CLR)
coreclr/dotnet-standards.md at master · dotnet/coreclr
マイクロソフト、C#やCLIのオープンソースによる実装を認める。Monoプロジェクトに弾みがつくか? - Publickey
JIS X 3016共通言語基盤の改正について | IPSJ/ITSCJ
共通言語基盤 - Wikipedia
Common Language Infrastructure - Wikipedia
Microsoft Open Specification Promise - Wikipedia
Microsoft Open Specification Promise - Wikipedia
WPF/WinFormsをオープンソース化 ~Microsoft、「.NET Core 3.0」Preview 1を発表 - 窓の杜
[速報].NET Coreがデスクトップアプリケーション対応。Windows Forms/WPF/UI XAML Libraryもオープンソース化。Microsoft Connect(); 2018 - Publickey
NOKUBI Takatsugu野首貴嗣さんのツイート: "Windows Forms / WPF のクロスプラットフォーム化対応のコントリビューションは受け付けない予定らしい https://t.co/i43JoAEyif - marchrockのコメント / はてなブックマーク - https://t.co/OF08FdpIeW"
wpf/contributing.md at master · dotnet/wpf
Windows Forms / WPF のクロスプラットフォーム化対応のコントリビューションは受け付けない予定らしい https://github.com/dotnet/wpf/blob/master/Documentation/contributing.md - marchrockのコメント / はてなブックマーク
.NET Core 3.0の概観:C# 8、WPF、Windows Formなど
C#機能: ラムダ属性
CoreCLRのソースをVisual Studio 2017で読む - fujieda's tech blog
[速報]オープンソースの「.NET 5」がすべての.NETを引き継ぐ。.NET Frameworkと.NET CoreとXamarinは「.NET 5」に。Microsoft Build 2019 - Publickey
[速報]マイクロソフト、新UIフレームワーク「.NET Multi-platform App UI」(.NET MAUI)発表。単一コードでマルチプラットフォーム対応。Microsoft Build 2020 - Publickey

DWM

WDDM, DWM: pros and cons - NyaRuRuが地球にいたころ
Futuremark Updates and Vista DWM - NyaRuRuが地球にいたころ
DWM による描画の現場を押さえる - NyaRuRuが地球にいたころ
Desktop Window Manager (DWM) の動作解説図 - NyaRuRuが地球にいたころ
Perforator による Desktop Window Manager (DWM) のプロファイリング (1) - NyaRuRuが地球にいたころ
Perforator による Desktop Window Manager (DWM) のプロファイリング (2) - NyaRuRuが地球にいたころ

GDI

GDI アクセラレーションについて整理する - NyaRuRuが地球にいたころ
Windows 7 と GDI/GDI+ の GPU アクセラレーションの可能性 - NyaRuRuが地球にいたころ
「Windows Vista での GDI/GDI+ 描画」についてのお詫び - NyaRuRuが地球にいたころ
Windows Vista での GDI/GDI+ 描画 - NyaRuRuが地球にいたころ

NyaRuRuが地球にいたころ

WDDM によるタイムアウトの検出と GPU の回復 - NyaRuRuが地球にいたころ
進化しすぎた GPU の災禍 - NyaRuRuが地球にいたころ
GPU を利用したテキストレンダリング - NyaRuRuが地球にいたころ
デスクトップの暗黒面 - NyaRuRuが地球にいたころ
デスクトップの裏側 - NyaRuRuが地球にいたころ
デスクトップの裏側 (2) - NyaRuRuが地球にいたころ
デスクトップコンポジションの無効化 - NyaRuRuが地球にいたころ
Windows Vista (x86) SP1 ではデスクトップヒープのデフォルト値が増やされてる - NyaRuRuが地球にいたころ
ウィンドウコンポジション (1) - NyaRuRuが地球にいたころ
Windows 7 のグラフィックスの変更点を整理する - NyaRuRuが地球にいたころ
Guidelines for Graphics in Windows 7 - NyaRuRuが地球にいたころ
Windows 7 Developer Guide とグラフィックスの改良点 - NyaRuRuが地球にいたころ
Windows Vista と CreateWindow 限界 - NyaRuRuが地球にいたころ
いまさら聞けない Windows Vista の基礎知識 グラフィックス編 解答 - NyaRuRuが地球にいたころ
いまさら聞けない Windows Vista の基礎知識 グラフィックス編 - NyaRuRuが地球にいたころ
New Magnification API - NyaRuRuが地球にいたころ
New Magnification API (2) - NyaRuRuが地球にいたころ

圧倒的な説得力! プレゼン資料より「プロトタイプ」:日経ビジネス電子版
ASCII.jp:2画面タブレット向けのWindows 10Xをエミュレーターで動かす (1/2)
ASCII.jp:Windows 10のスタートメニューのタイルに表示されるWin32アプリのアイコンを作成する (1/2)
ロボ太さんはTwitterを使っています 「そういえばWindowsの「砂時計カーソル」を最近見なくなったなぁ、と思ったら、今はWait Cursorと呼ばれていて、砂時計(Hourglass)カーソルと呼ばれてたのはVistaまでだったそうな。そうか、Vistaまでか。おっちゃん年よりだからさ、Vistaは「最近」な感覚なんだよ。 https://t.co/nlNq9nJ9mc」 / Twitter
Windows wait cursor - Wikipedia
ASCII.jp:キーボードのキー入れ替えにおける、仮想キーコードとキーボードスキャンコード (1/2)
ASCII.jp:Windowsのディスプレイとモニター いまだ96DPIが基準
Windows Forms 5.0の新機能
Xamarin Forms 5.0は、新しいグラフィック機能とインタラクティブ機能を安定化
新「Edge」ベースのPWAパッケージングを生成 ~「PWABuilder」に新しいプレビュー機能 - 窓の杜
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 単に掴むという意味だと、本当のウィンドウは(表示領域より)右/左/下にもう少し広がっていて、透過な影描画エリアなので、その透過部分は枠同様に掴めたりします。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このため、Windowsで座標0,0にウィンドウを置くと、表示的にはピッタリ左上とならず、透明部分だけ内側にズレて表示されてしまう。」 / Twitter
tn-mai/DX12Tutorial: DirectX 12の学習用コードとか資料とか
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win10永続説の頃、Win8系タイリングが今後も続くと思ってヤレヤレ感あった。 で、Win11が出ると聞いてプチ期待したが、枠の角が僅かに丸くなる以外は、やっぱりタイリング系なのね。 視認性はXPあたりが一番良かった気がするのだけど。 (多少は立体的+マウスオーバーでボタン色変化)。」 / Twitter
ナマケモノさんはTwitterを使っています 「MS製DirectX 12上のDX9互換レイヤがオープンソースに。まじかよ、MS、神だな。 Open Sourcing Direct3D 9 on 12 and the Release of the DXBC Signer NuGet Package https://t.co/NHdMaLq58e」 / Twitter
Open Sourcing Direct3D 9 on 12 and the Release of the DXBC Signer NuGet Package | DirectX Developer Blog

レンダリング

その他

その他

借り初めのひみつきち

ビットマップクラス統合 - 借り初めのひみつきち
3種のビットマップ - 借り初めのひみつきち
MYOS のウィンドウのつくりかた - 借り初めのひみつきち

株式会社ロジカルビート

【Shadertoy】レイマーチング基礎 – 株式会社ロジカルビート
【Unity】【描画処理】16ビットカラーの中身 – 株式会社ロジカルビート
【描画処理】【数学】16ビットカラーの中身(補足編) – 株式会社ロジカルビート

Flutter

Inside Flutter - Flutter
Flutter の Widget ツリーの裏側で起こっていること. Widget・State・Element・RenderObject… | by mono  | Flutter 🇯🇵 | Medium
Flutter はじめの一歩. はじめに自動的に作られるカウンターアプリを丁寧に解説 | by mono  | Flutter 🇯🇵 | Medium
【Flutter】必要最低限の構造からFlutterの基礎を学ぶ - はなちるのマイノート
社内でFlutterのハンズオンを行ったので、資料を公開します - ペパボテックブログ
Flutter入門のためのDart入門 - Qiita
Flutter:Widget一覧 - Qiita
Flutterの実践導入で用いるBLoC Patternの全体像と押さえておくポイント|yamarkz - Kazuki Yamaguchi|note
Flutter Webの現状調査 - ntaoo blog
最高のクロスプラットフォームを自称するGoogleのUIツールキットFlutter 2.2

革命の日々! Windows VistaのIE7で文字サイズ変更が記憶されない。
MozillaはQuantumプロジェクトで過去と訣別し、未来に賭ける - Mozilla Flux
いまどきのデスクトップ処理系 - Backnumbers: Steps to Phantasien
動画上にコメントを表示する"弾幕"の仕様 - ASnoKaze blog
#html_modules_study アウトラインメモ | Web Scratch
The WHATWG Blog — The state of fieldset interoperability
Proposal for promotable IFRAME - WICG
縦書きWeb普及委員会
FAQ | たてよこWebアワード
カクヨムでの縦組み表示の実装と、縦書きWebの将来に向けて (builderscon tokyo 2018) - Hatena Developer Blog
WEB+DB PRESS の連載はなんとか打ち切りにならず続行中 - Backnumbers: Steps to Phantasien
Blog Title - 第二回部会 - Part 1 (概要)
John Resig - Selectors that People Actually Use
🐛よくハマったFlexboxのバグまとめ|たかもそ|note
NetBSD と Adobe Flash Player の思い出:tsutsuiの作業記録置き場 - ブロマガ
カスタムなSF SymbolsをSVGから自動生成する - クックパッド開発者ブログ
特定の端末のみで起こる WebView プチフリーズを Tracing を利用して追った話 - SmartNews Engineering Blog
Analyze runtime performance - Chrome Developers
実行時のパフォーマンスの分析  |  Chrome DevTools  |  Google Developers
グラフ(ネットワーク)を奇麗に描画するアルゴリズム - mfumiの日記
JavaScript - Fruchterman-Reingoldというグラフを描画するアルゴリズムを実装してみたが、すべてのノードが描画領域の右下に集まってしまう|teratail
CiteSeerX — Graph Drawing by Force-directed Placement
Hugo で <datalist> を活用したタグの選択補完機能を実装する | Coelacanth's Dream
CNNを用いた単一画像からの描画モードへの分解と合成 | Preferred Networks Research & Development
Let's build a browser engine! Part 1: Getting started
What You Need to Know About React 18 | by Sheeraz Shaikh | Jun, 2021 | JavaScript in Plain English
N回目のWebComponents元年: Lit 2.0 - Google スライド

won't fix

won't fix: Adobeが行っている各ブラウザへのコントリビューション
won't fix: Twitterの仕様の認識間違いに対してのMozillaの反論
won't fix: safe-area-insets が本当に使われているとは思えない
won't fix: WebKitとBlinkのスタンスの違い

blog.jxck.io

Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io
ブラウザで何が起こっているのかを知る Reporting API と ReportingObserver | blog.jxck.io
img の srcset 指定時に選択される画像 | blog.jxck.io
Scroll To Text Fragment と :~:text | blog.jxck.io
Font Display プロパティを用いた FOIT/FOUT 最適化 | blog.jxck.io
CSS Rhythmic Sizing で Vertical Rhythm | blog.jxck.io

nhiroki's weblog

crossorigin 属性の仕様を読み解く
リソースの読み込みを助けるウェブブラウザ API の世界
ウェブの進化とウェブブラウザ開発の最前線
environment settings object の origin の仕様を追う

mizchi's blog

この DOM がすごい2018: worker-dom - mizchi's blog
worker-dom-code-reading.md
SPA が、ウェブ開発のベストプラクティスになる時代 - mizchi's blog
実践: React Hooks - mizchi's blog
WebComponents: ReactNative.View のような CSS の既定値を持つだけの x-view を作ってみる - mizchi's blog
React Hooks をどう使っていくか - mizchi's blog
「この〜を導入すると、なんとこうなりました!どうです?わかりやすいと思えませんか?」 - mizchi's blog
WEB+DB PRESS Vol.106 で仮想DOMアルゴリズムについて書かせていただきました - mizchi's blog
GUI環境でWeb の UIを構築する開発ツールを作りたい - mizchi's blog

水底の血

メモ:CSS Basic User Interface Module Level 3 (CSS3 UI)は勧告案へ - 水底の血
メモ:`scrollbar-*-color`プロパティが標準化への一歩 - 水底の血
CSS Snapshot 2017が発行されました - 水底の血
CSSワーキンググループの示す2015年時点のCSS仕様群の姿 - 水底の血
(メモ)CSS1、CSS 2.0がSuperseded Recommendationへ - 水底の血
`appearance`プロパティはブラウザーでサポートされません - 水底の血
HTML文書は文字エンコーディングUTF-8でなければなりません - 水底の血

Shiki’s Weblog

Shiki’s Weblog: ESウェブブラウザ通信 - HTTPリクエストの並行処理
Shiki’s Weblog: ESウェブブラウザ通信 - CSS 2.1 Test Suite #13

レンダラーの提案

React Native

React Nativeとネイティブアプリでの開発の違いとは | TechAcademyマガジン
React Nativeを用いた初めてのiOSアプリ開発 : 選んだ理由と、開発で学んだこと | プログラミング | POSTD
React Native開発のつらい点まとめ – MMiyauchi Blog
React Nativeとは何なのか - Qiita

やはりHTML/DOMは再発明されるべきじゃないか - mizchi's blog
なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita
Performance Calendar » React’s diff algorithm
Reconciliation - React
Virtual DOMのアルゴリズムが知りたくてvirtual-domのコードを読んだ話 - saneyuki_s log
Facebook の決断:MVCはスケールしない。ならば Flux だ。
Fluxアーキテクチャの覚え書きを書いた - saneyuki_s log

Adwaysエンジニアブログ

React NativeのレイアウトエンジンYogaの仕組み [前編] - Adwaysエンジニアブログ
React NativeのレイアウトエンジンYogaの仕組み [後編] - Adwaysエンジニアブログ
React NativeのレイアウトエンジンYogaの仕組み [続編] - Adwaysエンジニアブログ
CSS Flexible Box Layout Module Level 1
CSS Flexible Box Layout Module Level 1

ゆっくりと…

ブラウザ動作の理解-レンダリングツリーの構築と描画のタイミング | ゆっくりと…
ブラウザ動作の理解-リフローとリペイント及びその最適化 | ゆっくりと…
ブラウザ動作の理解-レンダリングの負荷を測る | ゆっくりと…

フロントエンドBlog

BackstopJSを使ったCSSのリファクタリング | フロントエンドBlog | ミツエーリンクス
webpack 4とmini-css-extract-pluginを使ってCSSを別ファイルに書き出す方法 | フロントエンドBlog | ミツエーリンクス
BabelとPostCSS、ESLintとstylelintの設定をpackage.jsonに詰め込んでみる | フロントエンドBlog | ミツエーリンクス
Shadow DOM と CSS Containment によって実現されたCSSのスコープの概念 | フロントエンドBlog | ミツエーリンクス
新たなCSS設計思想 MOCSS の登場 | フロントエンドBlog | ミツエーリンクス
IE9サポート終了・CSS Flexible Box Layout Moduleの利用拡大 | フロントエンドBlog | ミツエーリンクス
「Can I use...」にCSSのtext-orientationプロパティが掲載されるようになりました | フロントエンドBlog | ミツエーリンクス
CSS Template Layout Moduleの面影を追う | フロントエンドBlog | ミツエーリンクス
Google Chrome 61で追加されたscroll-behaviorを考える | フロントエンドBlog | ミツエーリンクス
scroll-behavior - CSS | MDN
3ステップでCSS設計のプロセスを振り返る | フロントエンドBlog | ミツエーリンクス
CSS Paint APIの使いどころ | フロントエンドBlog | ミツエーリンクス
clip-pathを使ってWebページの表現方法を増やそう! | フロントエンドBlog | ミツエーリンクス
CSSが効かない!?fieldset要素でも簡単にテーブルレイアウトを実現できるdisplay: contents; | フロントエンドBlog | ミツエーリンクス
記述次第でAutoprefixerいらず?!CSS Grid LayoutのIE11対応方法と未サポートブラウザのフォールバック例 | フロントエンドBlog | ミツエーリンクス
CSS Painting APIが勧告候補になりました。 | フロントエンドBlog | ミツエーリンクス
サイトにCSSだけで魔法陣を散りばめて新しい表現を模索してみる(前編) | フロントエンドBlog | ミツエーリンクス
第10回MLCマークアップ部お題のスクープ型ボックスをCSSマスクで再現した話 | フロントエンドBlog | ミツエーリンクス
第10回MLCマークアップ部お題のスクープ型ボックスをCSSマスクで再現した話の余談 | フロントエンドBlog | ミツエーリンクス
CSS Working Group の Editor's Drafts に見るCSSの未来 | フロントエンドBlog | ミツエーリンクス
CSSとJavaScriptで円の中に文字を収める | フロントエンドBlog | ミツエーリンクス
JavaScriptで操作するCSS TransitionとCSSOMの関係 | フロントエンドBlog | ミツエーリンクス
VS CodeとMJMLでレスポンシブなHTMLメールを作成する | フロントエンドBlog | ミツエーリンクス
HTMLメールにカウントダウンを組み込む | フロントエンドBlog | ミツエーリンクス

HTML5Experts.jp

モバイルWebのUIを速くする基本テクニックがわかる──Google I/O 2016 High Performance Web UI | HTML5Experts.jp
「Web Componentsが来る!CSS設計はどうなる?」―CSSのエキスパートに聞いてみた! | HTML5Experts.jp
これからのCSSはmargin禁止!?CSSグリッドレイアウトやコンポーネント指向なCSSについて、矢倉さんに聞いてきた! | HTML5Experts.jp
CSSでバーティカルリズムを実現しよう!line-height-stepを使ってみる | HTML5Experts.jp

本の虫

本の虫: ベンダープレフィクスはクソミソのゲロゲロ
本の虫: ブラウザは須く一部のCSS3 rubyを実装すべし
本の虫: CSS3のプロパティ、text-combine

技術評論社

第586回 waifu2xで画像をきれいに拡大する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
BootstrapでレスポンシブなWebサイト制作:連載|gihyo.jp … 技術評論社

Publickey

W3CとIDPFが正式統合。Web技術と出版技術を融合する将来に向け、ロードマップ作成に着手 - Publickey
Webで縦書きなどを実現する「CSS Writing Modes Level 3」、ついにW3Cの「勧告」に - Publickey
Angular 9正式版リリース。高速かつ軽量なレンダリングエンジン「Ivy」がデフォルトに - Publickey
Flutter 2.2正式リリース。Null安全がデフォルトに、Windows、macOS、Linux対応をシングルコードで。Google I/O 2021 - Publickey

ブラウザのしくみ: 最新ウェブブラウザの内部構造 - HTML5 Rocks
Layout、Paintingとは何か?レンダリングから学ぶWebサイトのパフォーマンス | Dress Cording
[フロントエンド] ブラウザレンダリングの仕組みを理解して、ブラウザに優しいJavaScriptを書こう - YoheiM .NET
Webエンジニアが知っておくべきブラウザレンダリングの仕組み | 学生エンジニアのプログラミング
2017-09-26のJS: Chrome 62 Beta、Safari 11.0、モダンブラウザのレンダリングパイプライン - JSer.info
A Short Walkthrough of WebRender 2 — Hacking With Caffeine
A Quick Overview of Chrome's Rendering Path — Hacking With Caffeine
Mus and Compositing
Notes from FOSDEM 2017 · Anjana Sofia Vakil
LayoutNG - Google ドキュメント
Building a faster browser: Behind the scenes improvements in Microsoft Edge | Microsoft Edge Web Summit 2017 | Channel 9
LibDOM | DOM Library
Cacheability of render critical resources - Analysis - Discuss - HTTP Archive
How JavaScript works: the rendering engine and tips to optimize its performance
ブラウザの作り方 - Speaker Deck
ちいさな Web ブラウザを作ってみよう

HTML

DTD

Document Type Definition - Wikipedia
Document type definition - Wikipedia
SGML実体 - Wikipedia
SGML entity - Wikipedia
HTMLのDTDを読んでみよう
SGML,XML,HTML
HTMLの基本構造 - 仕様書に見るHTML(1)
HTML 4 Document Type Definition
DTDを読む
DTDの読み方
IBM Knowledge Center - DTD を読む
ごくごく簡単なDTDの説明
Designing document type definition (DTD) in SGML/XML
5分でわかる!XML超入門 第01回 何はともあれXMLって何? | サイバーテック

RFC 2854

RFC 2854 - The 'text/html' Media Type
RFC 2854

HTML 2.x

HTML 2.x ‐ 通信用語の基礎知識
https://tools.ietf.org/rfc/rfc2070.txt
rfc2070J.html
jbpe.tripod.com/rfcj/rfc2070.j.sjis.txt
RFC 2070
HTML 2.x
jbpe.tripod.com/rfcj/rfc2070.je.sjis.txt

HTML 2.0

クライアントサイドイメージマップ

https://tools.ietf.org/rfc/rfc1980.txt
[RFC1980] HTML 拡張提案: クライアントサイドイメージマップ
RFC 1980

HTML Tables

https://tools.ietf.org/rfc/rfc1942.txt
RFC 1942

Form-based File Upload

https://tools.ietf.org/rfc/rfc1867.txt
jbpe.tripod.com/rfcj/rfc1867.je.sjis.txt
RFC 1867

HTML 2.0 ‐ 通信用語の基礎知識
https://tools.ietf.org/rfc/rfc1866.txt
Hypertext Markup Language - 2.0−目次
RFC 1866 - The 'text/html' Media Type
RFC 1866
www.age.ne.jp/x/sf/HT/HTML/RFC1866J-1_0.TXT

HTML のクワイン

ドッグさんはTwitterを使っています 「HTML のクワインだと… | 'This page is a truly naked, brutalist html quine.' https://t.co/a45MiEWwGm」 / Twitter
This page is a truly naked, brutalist html quine.
ドッグさんはTwitterを使っています 「もちろん JavaScript は使ってない.なるほど,CSS の content を&lt;del&gt;悪用&lt;/del&gt;利用するのか.思いつかなかったなぁ」 / Twitter

HyperText Markup Language - Wikipedia
HTML - Wikipedia
文字参照 - Wikipedia
GoogleがHTML5構文解析ライブラリGumboをオープンソース化
google/gumbo-parser
kovidgoyal/html5-parser: Fast C based HTML 5 parsing for python
www.asahi-net.or.jp/~jy3K-sm/i_net/books-good.txt
のけぞる本・一般編 - 文法の部
特殊記号のキャラクタ エンティティとBIDIテキスト
HyperText Markup Language - Wikipedia
あやしい本
Another HTML-lint 5
zserge/webview: Tiny cross-platform webview library for C/C++/Golang
HTMLの過去・現在・未来 -- ごく簡単なHTMLの説明
新しいHTMLタグportal、Portals機能で変わるWebの遷移体験! CDS2019で紹介されたヤフーの実装例 #UIUX - Yahoo! JAPAN Tech Blog
BlinkとWebKitの違い(大雑把) - saneyuki_s log
低レイヤの知識の重要性は今後も変わらない - 小崎資広に聞くLinuxカーネル開発の裏側 - エンジニアHub|若手Webエンジニアのキャリアを考える!
電子情報学特論:Chromiumのアーキテクチャを解き明かす - Google スライド
本の虫: 続pre要素の改行
普通のHTMLの書き方
HTMLの歴史
Semantic HTML - Google 検索
まずはここから!HTMLの書き方【初心者向け】 | TechAcademyマガジン
Server Side Renderingについて知るべきこと。Server Side Renderingとは何か? それによって何が改善されるのか?(前編) ng-japan 2017 - Publickey
どうしてHTML5が廃止されたのか | フューチャー技術ブログ

CSS

その他

CSS | MDN
CSSの基本-HTMLクイックリファレンス
クリック・タッチを無効化するCSS「pointer-events: none;」がお手軽で便利 - Yahoo! JAPAN Tech Blog
その CSS の word-break: break-all は必要ですか - yanok.net
文字詰めできるCSSのfont-feature-settingsが凄い! 日本語フォントこそ指定したい自動カーニング - ICS MEDIA
-ms-high-contrast を CSS ハックに使ってはいけない、ただひとつの理由 / JeffreyFrancesco.org
5年ぶりのメジャーアップデートとなる「Bootstrap 4」リリース | OSDN Magazine
CSSで縦書きのサイトを表彰、「たてよこWebアワード 2017」の受賞作発表 - INTERNET Watch
CSS3 で縦書き+四分空け組 - にせねこメモ
私のゴールは世界中の言語でCSSを使えるようにすること EPUB3で縦書きを実現した、fantasai(エリカ・エテマッド)に聞く
S.F. Blog:Cascading Style Sheetの記法はなぜあのような形になったのか。
S.F. Blog:Cascading Style Sheetの記法はなぜあのような形になったのか。(2)
CSS フレームワークを使いたくない - ジンジャー研究室
DITA_Festa_2017_DSSSLprint.pdf
君は真に理解しているか?z-indexとスタッキングコンテキストの関係 - ICS MEDIA
IonicがShadow Partsでカスタマイズを改善
CSS Layout API で Masonry Layout | blog.jxck.io
Hugo で SCSS から Inline CSS に変換する | Coelacanth's Dream
won't fix: CSS疑似クラスの:read-onlyと:read-writeが仕様通りに実装されることになった
ページを高速に表示するには「CSS in JS」と普通のCSSのどちらを使うべきなのか? - GIGAZINE

Acid1

Acid1 - Wikipedia
display/box/float/clear test
CSS1 Test Suite: 5.5.26 clear
sec5526c.gif (531×501)
Shiki’s Weblog: ESウェブブラウザ通信 - Acid1テスト
CSS1 Test Suite
CSS1 テストスイート

Twitter

if

Takeshi Kano 鹿野 壮さんはTwitterを使っています 「いま、CSSでif文の議論がされている。 Sassではなく、CSS。 アツい✨ W3C csswg-drafts https://t.co/anqUMZ8mwC 解説 https://t.co/oS31VQ7qDt #CSS https://t.co/xKaMcHsONy」 / Twitter
[css-variables?] Higher level custom properties that control multiple declarations · Issue #5624 · w3c/csswg-drafts
The future of CSS: Higher Level Custom Properties to control multiple declarations – Bram.us

渋川よしきさんのツイート: "CSS難しいなぁっていつも思うんだけど、例えば、特定の要素を右寄せにするときに、その親側にも手を加える必要がある、というのに気づくのに時間がかかったり、やりたいことの実現のための影響範囲とかのイメージが直感的につかないのが原因だろうな、というのは想像がついている。"
shinichiro hamajiさんのツイート: "グラフのマッチ/変換を行なう、スクリプト言語の正規表現に毛が生えたくらいの気持ちで、お手軽に色々試せる、なにかが欲しい。GraphQLはなんか冗長な感がありマッチングだけで、LLVMのバックエンドに使ってる.tdは、うーんあれ意味不明、て印象なんだけど、あのへんが良いスタート地点なのかな"
shinichiro hamajiさんのツイート: "グラフというかDAGでよくて、そういう意味ではCSS selectorが、木に対する awk の左かわ、みたいな感じでスーパーよくできてると思っている。木とDAGの差分考える方が近道なのかな"
shinichiro hamajiさんのツイート: "世の中には structured grep なんてのもあるし、ああいうやつとか、PerlとかRubyの状態を持ってる if 文とか、現代的なやつだと monod shell とか… UNIX の誰かが言ってた、成功した抽象化は UNIX の行指向テキストファイルである、みたいなのを噛み締める"
shinichiro hamajiさんのツイート: "あ、ソフトウェアで成功した "唯一の" 抽象化は、ね"
ドッグさんのツイート: "Mozilla が Firefox の CSS プロパティ適用部分を Rust で書き直して分かったことの要約.実際のセキュリティバグなどの実例付きで分かりやすい | 'Implications of Rewriting a Browser Component in Rust' https://t.co/lstcxb5nI2"
Implications of Rewriting a Browser Component in Rust - Mozilla Hacks - the Web developer blog
ドッグさんのツイート: "Rust の静的なメモリ安全性のチェックや整数オーバーフロー,未初期化変数チェック,標準で提供されるより良いデータ構造などで(by design で)セキュリティリスクは減るのは間違いないけど,やはりロジックによるリグレッションバグは入ってしまうという話で,まあそれはそうだろうなぁ"
ドッグさんのツイート: "データ競合とか並列処理周りのバグがどうだったのかは気になるけど,Mozilla は以前 CSS プロパティ適用の C++ コードを並列にしようとして失敗してるので,そこは C++ との比較はできないのかな"
Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「Inactive CSS、「なぜその指定が反映されないのか」を教えてくれるWeb Inspectorの新機能。これにかかると自分がいかにてきとうに「とりあえず全部書いとけ」でプロパティを書き連ねてるかがバレてしまう……」 / Twitter
Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「Webのレイアウトの歴史、HTMLべた書きからtableを経てCSS float、その先のflexboxまで来たけど、いずれも「そこに置かれる物」が基準のレイアウト手法だった。CSS gridは「入れ物」基準でレイアウトを決める。なるほど、そう考えると理解しやすくなる気がする。」 / Twitter
Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「グリッドレイアウトのためだけにdivにphysicalな名前を付けなくてもよくなるの、福音だ……べつにできることは変わらなくても、自分がああいう汚いコード書かなくてよくなるのは嬉しい」 / Twitter
ICS にしはら🦞@z-index完全に理解したさんはTwitterを使っています 「予期せぬ横スクロールが発生した時は、 * { outline: 2px solid red; } のCSSがオススメ。 どの要素がはみ出ているか、視覚的に分かりやすくなります。 #CSS https://t.co/7tmefEDCvx」 / Twitter
ICS にしはら🦞@z-index完全に理解したさんはTwitterを使っています 「補足として、わざわざCSSに記述して更新しなくても、デベロッパーツールでCSSを追記すればその場で分かります。」 / Twitter
ドッグさんはTwitterを使っています 「HTML 内の要素に意図したスタイルがついてるかをある程度静的にチェックする方法無いのかな.JS に対する TS みたいにスタイルの制約を書きたい」 / Twitter
渋川よしきさんはTwitterを使っています 「Tailwind CSSの使い所、よくわからんなー、と思っていたけど、デザイナーが絵のみを作る、HTMLとCSSはプログラマー、という役割分担だと便利と聞いてなるほど、と思った。CSSまでやってくれるならCSS in JSが便利と。」 / Twitter
渋川よしきさんはTwitterを使っています 「Figma to Reactとかも出てきたし、ZeplinとかもCSS出してくれるし、DCCツール直結な世界が数年後の世界な気はするが。」 / Twitter

Cascading Style Sheets, level 1
カスケーディングスタイルシート第1水準
Cascading Style Sheets, level 1
CSS1 Table of Contents
全文翻訳 Cascading Style Sheets, level 1
REC-CSS1 邦訳
REC-CSS1 邦訳
Cascading Style Sheets, level 1(jp)
LibCSS | CSS Library
Katana-parser by hackers-painters
hackers-painters/katana-parser: A CSS parsing library in pure C99
Shiki’s Weblog: ESウェブブラウザ通信 - escort バージョン 0.3.1 公開
Shiki’s Weblog: ESウェブブラウザ通信 - CSSの実装のバグを見つけてから直すまでの手順
CSSパーサを作ってみた(簡易版) - jsdo.it - Share JavaScript, HTML5 and CSS
CSS文法の基礎 | CSS入門編
少し高度なCSS文法: 子孫セレクタ | CSS中級編
構文 - CSS | MDN
@charset - CSS | MDN
W3C CSS 検証サービス
CSS Injection (+ Recursive Import) の原理と攻撃手法およびその実装について - Szarny.io
Multiple-column Layout and column-span in Firefox 71 - Mozilla Hacks - the Web developer blog
Microsoft、折りたたみ式・2画面デバイス向けの新しいJavaScript/CSS機能を発表 - 窓の杜

CSS Houdini

CSS Paint API

Houdini Paint API | blog.jxck.io
CSS Paint APIでJavaScriptからCSS用のグラフィックを動的に生成する
どんな背景でも自由に描ける! CSS Paint APIの使い方 - ICS MEDIA

CSS Layout API

なかのん&マジックさんのツイート: "え、DOMでaccsessibleにしちゃうの? / CSS Layout API Level 1 https://t.co/qnN6yFn8IA"
CSS Layout API Level 1

スライド

CSSの嫌なところを解決できる(かも)。そう、CSS Houdiniならね 20170825 we are_javascripters@1…
Webと出版と、CSSの未来の話
Houdini: Abracadabra CSS // Speaker Deck
HoudiniによるCSS錬金術 - Speaker Deck

blog

CSS Houdiniを味見する | Kabuku Developers Blog
CSS Houdini をつかってキミだけの最強レイアウトを組み立てよう! - めろたんのアレ
CSS Houdini / CSS Working Groupミーティングに参加しました
未来のCSSを先取るHoudiniとは?それは魔法である! - Mercari Engineering Blog
Houdini、それはCSSの進化を促すプロジェクト - The future starts today
Houdini – CSS の秘密を解き明かすもの  |  Web  |  Google Developers

GitHub

Home · w3c/css-houdini-drafts Wiki
w3c/css-houdini-drafts: Mirror of https://hg.css-houdini.org/drafts

Twitter

Rockridgeさんのツイート: "Houdiniタスクフォースで検討中のCSS関係の仕様について。Worklets/CSS Painting API/CSS Layout API/CSS Typed OM/CSS Properties and Valuesなど。 https://t.co/iAfHIEU9cW"
DasSur.ma – New ways to make your web app jank with Houdini – An introduction

CSS/Houdini - MozillaWiki
CSS-TAG Houdini Editor Drafts
Houdini Spellbook
CSSのHoudiniとは何者か - Qiita

事前レンダリング

事前レンダリングでウェブページの表示時間を高速化 | 海外SEO情報ブログ
事前レンダリングでページ遷移した時の表示速度を爆速にする | TechMemo
ワードプレスに prerender を設定して事前レンダリングで高速化 | q-Az
ウェブサイトで事前レンダリングする方法: 小粋空間
事前レンダリング
Web サイトの事前レンダリング
キャッシュと事前レンダリングの比較
IBM Knowledge Center

高速化

Mozilla

Project Fission

なかのん&マジックさんのツイート: "FirefoxもFissionが入ると「コア数が正義」になるので、今、価格を理由にコア数を諦めるのはおすすめできないですね。デモによるとCNNのトップページのロードでcontent processが14個も作られていた。どんだけ今のWebは汚れているんだ……"
なかのん&マジックさんのツイート: "もちろんドメインごとにcontent processが分けられるという話なので、ニュースサイトを開く度にそれだけのプロセスが生成されるわけではないですよ。"
なかのん&マジックさんのツイート: "あと、それぞれがフル稼働するわけでもないです。例えば広告の<iframe>とか。ただ、メモリはどうしても消費量爆上がりでしょうね。content process一個あたりの基本使用量は割とがんばって半減してるとはいえ。"
なかのん&マジックさんのツイート: "詳しくはこの辺にリストアップされてるbugを参照。 https://t.co/0CHir4KNki"
Project Fission - MozillaWiki

Quantum - MozillaWiki
ドキュメント翻訳 | Mozilla Developer Street (modest)
Mozilla Flux
Servo parallelism
三世代のFirefox ESRを比較する - Mozilla Flux
Gecko:DisplayListBasedInvalidation - MozillaWiki
Windows版Firefox 53でQuantumプロジェクトの成果が初披露 - Mozilla Flux
Mozilla、「Firefox」向け次世代Webエンジン“Quantum”を発表。2017年中にリリース - 窓の杜
「Firefox 53」が安定版に ~Project Quantumの成果を初導入、コンパクトテーマを追加 - 窓の杜
「Firefox 53」がリリース、次世代ブラウザエンジンQuantumの成果を導入 | OSDN Magazine
Firefox 55/56では極端に多くのタブを開いた状態でも高速な起動が可能に | スラド IT
たった15秒で1600以上のタブを起動可能でメモリ使用も劇的に改善、Firefoxの弱点を解消する「Quantum Flow」の効果が明らかに - GIGAZINE
Rockridgeさんのツイート: "Mozillaの研究によれば、Webページを表示する際の体感パフォーマンスを改善するためには、DOMContentLoadedにフォーカスするのがよい。 / “Test Pilot graduation report: Puls…” https://t.co/iMa4ogTWGw"
Rockridgeさんのツイート: "Firefox Nightly 58にRetained Display Listsがデフォルト無効で投入される予定。再計算の対象をディスプレイリスト全体ではなく変更された部分に限定して、描画処理を高速化する。参照:… https://t.co/BdKAvlB2wL"
Mozilla、「Firefox 58」を正式公開 ~OMTPとJSBCの導入でパフォーマンス向上を図る - 窓の杜
間もなくリリースの「Firefox 58」はますます高速化--Mozillaのエンジニアが説明 - CNET Japan
Makoto Kato ︎︎さんのツイート: "Quantum Renderまだ入ってないんだけど、何言ってるのかな?。OMTPは別のお話 https://t.co/10Cdj1AwbL"
Rockridgeさんのツイート: "さすがに間違いが多すぎる。OMTPは「画像処理の改善」ではないし、Quantum Renderがリリース版で有効化されたことはない。ブックマーク機能の改善はフォルダの管理機能を追加したことなのに、そこに言及がない。 / “「Fi…” https://t.co/TQnvCbS8av"
Mozilla、「Firefox 58」を正式公開 ~OMTPとJSBCの導入でパフォーマンス向上を図る - 窓の杜
「Firefox 58」公開、WebAssemblyやGecko強化によりさらに高速に | OSDN Magazine
Firefox QuantumのOff Main Thread Painting(OMTP)とRetained Display Listsについて - Mozilla Flux
「Firefox」v58.0.2が公開 ~クラッシュ問題などを修正したメンテナンスリリース - 窓の杜
Rockridgeさんのツイート: "Fx59:MacOS版でもOMTPが有効化された。 / “1422392 - Implement the first round of OMTP for tiled painted layers” https://t.co/ZJCfjnpP4Z"
Rockridgeさんのツイート: "Fx59:小さなディスプレイリストの構築処理を最適化。 / “1344971 - Optimize various small display list building tasks” https://t.co/wO7DplGV4b"
Rockridgeさんのツイート: "Fx59:Off Main Thread Painting(OMTP)が有効の際、Painting処理を並列的に行う仕組みが実装された。 / “1425056 - Implement parallel painting with…” https://t.co/w0R8BkajXS"
Firefox 61でRetained Display Listsが段階的に有効化 - Mozilla Flux
「Firefox 61」正式版リリース、タブウォーミングの導入によりタブ切り替え後の応答速度が高速化 - GIGAZINE

Google

Google Developers Japan: Chrome のレンダリング パイプラインにおけるパフォーマンス向上について
Google、「Google Chrome」のレンダリングを改善 ~その手法をブログで解説 - 窓の杜

Apple

Overview of WebKit’s CSS JIT Compiler | WebKit
Gave a Talk About CSS JIT - Constellation Scorpius
CSS JIT: Just-in-Time Compiled CSS Selectors in WebKit // Speaker Deck
WebKit CSS JIT Internals - Constellation Scorpius
CSS JIT: Optimizing CSS Selector Matching with Just-in-Time Compilation // Speaker Deck
melancholic afternoon

x86/x64最適化勉強会7 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
この1年、Webのパフォーマンスで変わったことは?──HTML5 Conference 2016 | HTML5Experts.jp
MIT研究者ら、Webページ読み込み時間を34%削減するアルゴリズム発表 | マイナビニュース
CSSセレクターマッチングのコスト - Unreviewed
ブラウザエンジン先端観測会 アウトラインメモ | Web Scratch
眼力 玉壱號さんのツイート: "@anatoo #lisp で言う所の intern かな。同一の文字列は実体を1個に縮約すると… #browser_gazer"

パフォーマンスの最適化 | Web Fundamentals - Google Developers

クリティカル レンダリング パス

クリティカル レンダリング パス | Web Fundamentals - Google Developers
オブジェクト モデルの構築  |  Web  |  Google Developers
レンダリング ツリーの構築、レイアウト、ペイント  |  Web  |  Google Developers
レンダリング ブロック CSS  |  Web  |  Google Developers
JavaScript を使用してインタラクティブにする  |  Web  |  Google Developers
クリティカル レンダリング パスの測定  |  Web  |  Google Developers
クリティカル レンダリング パスのパフォーマンスを分析する  |  Web  |  Google Developers
クリティカル レンダリング パスの最適化  |  Web  |  Google Developers
PageSpeed ルールおよび推奨事項  |  Web  |  Google Developers

レンダリング パフォーマンス

レンダリング パフォーマンス  |  Web  |  Google Developers
JavaScript 実行の最適化  |  Web  |  Google Developers
スタイル計算のスコープと複雑さの軽減  |  Web  |  Google Developers
大きく複雑なレイアウトとレイアウト スラッシングの回避  |  Web  |  Google Developers
ペイントの複雑さの簡略化とペイントエリアの縮小  |  Web  |  Google Developers
コンポジタ専用プロパティの優先使用、およびレイヤー数の管理  |  Web  |  Google Developers
入力ハンドラのデバウンス  |  Web  |  Google Developers

Chrome

chromium/src - Git at Google
For Developers - The Chromium Projects
Issue Tracking - The Chromium Projects
Site Engagement
Chrome URLs
Chromeの閲覧履歴を取得する。 - mirandora.commirandora.com
原健太朗のページ : Chromium
(99+)blink-dev - Google グループ
(99+)platform-architecture-dev - Google グループ
(99+)Chromium-dev - Google グループ
Chrome Releases
64.0.3282.100 - chromium/src - Git at Google
LUCI
Chromium のソースコードの歩き方
Googleが「GmailなどのAndroidアプリがクラッシュした問題」の反省からWebViewに「セーフモード」を導入 - GIGAZINE

2D

Web

AVIF

AV1 Still Image File Format (AVIF)
AOMediaCodec/av1-avif: AV1 Still Image File Format Specification - proposed ISO-BMFF/HEIF derivative
fg118942さんのツイート: "あとAVIFを試していて気づいたこと libaomは画像が大きいとメモリの消費量が4、5GBくらいいくこともあるので辛い rav1eはlibaomよりメモリの消費量が少なくて、多いときでも150MBくらいしかいかないが画質はlibaomより少しだけ落ちてBPGと同程度"
fg118942さんのツイート: "libaomは縦横が2の倍数ならどんな画像も変換できるっぽいけどrav1eは正常にデコード出来ないファイルを出力することがある(一般的ではない解像度に対応してない?) あとはやっぱり変換速度が遅くて画像1枚に1分くらいかかったりするのでハードウェアとかで高速に変換できないと厳しい"
Addy OsmaniさんはTwitterを使っています 「AVIF is an image format that compresses to a smaller size than WebP or JPEG https://t.co/MDDdL8tw8S It's in Chrome 85, behind a flag in Firefox &amp; can be a progressive enhancement! https://t.co/jqADQK6jTd」 / Twitter
How to Use AVIF: The New Next-Gen Image Compression Format — Lightspeed

JPEG

ISO

Exif

Exchangeable image file format - Wikipedia
Exif - Wikipedia
JEITA / AV電子機器部門
CIPA、「Exif 2.3」「DCF 2.0」を公開 - デジカメ Watch Watch
ディジタルスチルカメラ用
DC-010-2017_E.pdf
The libexif C EXIF library
libexif-0.6.21
ブラウザーと画像のEXIFのお話 - Pastalablog in はてな
Google Developers Japan: ExifInterface Support Library が登場
EXIF仕様 解説
DSAS開発者の部屋:Exif データにアクセスするコードを自作してみる
けんしのページ - Exifファイルフォーマット -
Exif 2.3 タグ - Vieas Web
EXIFの読み方 - cagylogic
Exifについて
Exifの回転情報をピクセル情報に反映する - Qiita
<img>で貼った画像がブラウザによって90度回転して表示される? - Qiita
目次
マルチピクチャフォーマット
Microsoft Word - DC-006_J_T1.doc
第553回 Ubuntuで写真のメタデータを扱う方法:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
画像認識システムの落とし穴となる「ExifのOrientation属性」とは? - GIGAZINE

libjpeg

libjpeg - Wikipedia
libjpeg - Wikipedia, the free encyclopedia
Independent JPEG Group
libjpeg-8d
libjpeg-turbo | Main / libjpeg-turbo
libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
libjpeg-turbo download | SourceForge.net
libjpeg-turbo-1.4.2
NASM-2.12.01

Guetzli

Google、より高画質で小サイズを実現するJPEGエンコーダをオープンソースで公開 - PC Watch
google/guetzli: Perceptual JPEG encoder
JPEGを「libjpeg」よりも20~30%小さく ~Google、新エンコーダー「Guetzli」を発表 - 窓の杜
Google、JPEGを35%縮小する新エンコーダ「Guetzli」発表。画質は同じでファイルサイズ削減 - Engadget 日本版
JPEG エンコーダ Guetzli 使用上の注意 (前編) - Qiita
Google、ファイルサイズを35%削減できるという新JPEGエンコーダー「Guetzli」を公開 | OSDN Magazine
GoogleがJPEGエンコーダー「Guetzli」をオープンソースで公開 - GIGAZINE

Lepton

DropboxがJPEG画像をロスレス圧縮できるツールを公開、平均22%サイズを縮小できると主張 | スラド オープンソース
米Dropbox、JPEGファイルをロスレス圧縮できる画像圧縮アルゴリズム「Lepton」をオープンソースで公開 | OSDN Magazine
dropbox/lepton: Lepton is a tool and file format for losslessly compressing JPEGs by an average of 22%.

Twitter

渋川よしきさんのツイート: "libjpeg-turbo氏〜 実際ベンチマーク取ってみると、画像の読み込みはPNGよりもJPEGの方が圧倒的に早いんだよな。 https://t.co/SgEIKuevyu"
渋川よしきさんのツイート: "不可逆ではあるけど、品質100にしたJPEGのほうが、PNGとかよりも読み込み早くてサイズ小さい。"
渋川よしきさんのツイート: "libjpeg-turboのハフマン符号量子化部分だけ取り出せば、SSE最適化された復元コードが利用できるのでは。"
Kazuho Okuさんのツイート: "JPEGファイルを可逆圧縮!モデルをうまく作るようにすればこんなに縮むのか / “Lepton image compression: saving 22% losslessly from images at 15MB/s | D…” https://t.co/OtNsJNUpSE"
Lepton image compression: saving 22% losslessly from images at 15MB/s | Dropbox Tech Blog
Kazuho Okuさんのツイート: ".@methane はい。leptonは可逆な画像圧縮アルゴリズムで、JPEGデータに適用した場合、22%ほど小さくなる、と書いてありますね"
Kazuho Okuさんのツイート: "JPEGのDCT以降みて、計算コストかけていいならもっと高度な圧縮できそうだなって思った人は多いと思う(僕もその一人)けど、22%も縮むと予測してた人は少なそうだと思ってる"
七誌さんのツイート: "球面から切り出した平面に球面調和関数を適用すると離散コサイン変換になるんじゃないかと思ったら、そのものズバリの講義資料があった!良い。 【PDF】 https://t.co/OQFCxePwhE"
Rockridgeさんのツイート: "Fx50:PNG/JPEG画像のデコーダもStreamingLexerベースのものに切り替えられた。参照:https://t.co/3TYhswQ4q1 / “1282566 – Use StreamingLexer in th…” https://t.co/s32hrO6lJF"
七誌さんのツイート: "メタデータだけいじって回転させたJPEG画像は、HTMLにimg srcで埋め込まれていてもブラウザが回転して表示してくれないっぽい。画像単独だと回転して表示される。"
dynamis (でゅなみす@もじら)さんのツイート: "JPEGのデコードをまるっとGPU側に投げることでGPU I/Oを70%削減、CPUデコード処理時間を30%削減させた新しいJPEGデコーダ実装 https://t.co/F7zbShPN1O とそのLinux Confでの講演 https://t.co/b4ZePbvqRS"
Fadisさんのツイート: "Chromeさん、 V4L2から使えるハードウェアjpegデコーダがある場合はWebページに表示するjpeg画像をハードウェアでデコードするのか…"
Fadisさんのツイート: "で、今回の変更でjpegのエンコードもハードウェアで出来るようになりました、と https://t.co/axF3BdLNUU"
Chrome Working On JPEG Encode Accelerator With VA-API/V4L2 Support - Phoronix

JPEGのプライバシーを守る新規格、その狙いは? ~専門家に聞いてきた~ | コラム | マイナビニュース
JPEGのプライバシーを守る新規格、その狙いは? ~専門家に聞いてきた~ (11) JPEG新規格の策定、企業の参加は? | マイナビニュース
【連載】JPEGはなぜここまで普及したのか? ~専門家に聞いてきた~ | マイナビニュース
高速なJPEG圧縮ライブラリ「Libjpeg-Turbo 1.5」リリース | OSDN Magazine
mozilla/mozjpeg: Improved JPEG encoder.
週刊 JPEGデコーダをつくる #2 デジタル画像の基礎 - Qiita
画像圧縮でSEO「容量7割減で画質そのまま」 ページスピード向上を実現する「SmartJPEG」とは? - INTERNET Watch
OPTPiX Cloud SmartJPEG (スマートジェイペグ) | ウェブテクノロジ
GuetzliとMozjpegは、どっちが高性能か。 - Qiita
プログレッシブJPEGとHTTP Rangeリクエストで遅延ロードを改善する
JPEG画像の「中身」は一体どうなっているのか? - GIGAZINE

PNG

APNG

Animated Portable Network Graphics - Wikipedia
APNG - Wikipedia
「アニメーションPNG(APNG)」がGoogle ChromeのベースであるChromiumでサポート開始 - GIGAZINE
ChromiumでAPNG(アニメーションPNG)の表示をサポート -INTERNET Watch
「Google Chrome 59」が正式版に 〜ヘッドレスモード、APNG、フルページ撮影に対応 - 窓の杜
Twitterが動画ファイル形式「APNG」のサポートを停止、てんかん患者の発作を引き起こすため - GIGAZINE

libpng - Wikipedia
libpng - Wikipedia, the free encyclopedia
libpng Home Page
libpng-1.6.21
Rockridgeさんのツイート: "Fx51:搭載しているlibpngのSSE2命令最適化を有効にし、PNG画像の処理を高速化した。 / “1276127 – Enable SSE optimization in the in-tree libpng” https://t.co/VuueMHhifr"
OS作れないマンさんのツイート: "Windows 10 のフォトっていう機能がデフォルトの画像ビューアになってるわけだけど、背景色が黒な所為でモノクロで透過背景のPNGが全く見えなくなる。使い悪すぎでは?"
OS作れないマンさんのツイート: "透過PNGははてなブログでも使い勝手が悪い(画像アップロード後の画像一覧のサムネイル画面で背景が黒くなってしまう)ので、白背景に戻そう。なんか負けた気分。"
Rockridgeさんのツイート: "Fx55:PNG形式のファイルについて幅チェックを行い、膨大なメモリを確保しようとする問題が起きないようにした。限度に抵触する画像は表示されないようだ。 / “1368407 - Small PNG image hangs br…” https://t.co/IbfU8aSSY2"

GIF

Graphics Interchange Format - Wikipedia
GIF - Wikipedia, the free encyclopedia
GIFアニメーション - Wikipedia
giflibのインストール: マルチメディアファイルフォーマット
Introduction to GIFLIB
The GIFLIB project
GIFLIB download | SourceForge.net
giflib-5.1.4
Rockridgeさんのツイート: "Fx50:GIF画像のデコーダがStreamingLexerベースのものにリファクタリングされた。 / “1204392 – Use StreamingLexer in the GIF decoder” https://t.co/Yy1OD9jBZK"
Rockridgeさんのツイート: "Fx51:Windows版でアニメーションGIFを対象にコンテキストメニューから「画像をコピー」すると、アニメーション状態を保ったままクリップボードにコピーできるようになった。 / “664717 – "copy image" …” https://t.co/m875T7b64u"

WebP

Twitter

Intent To Shipさんのツイート: "Gecko: Intent to implement and ship: WebP image support https://t.co/0xnMDKiirW"
なかのん&マジックさんのツイート: "web-compatでの実装とのことだけど、実際問題、Jpegに比べてなにかうまみはあるんだろうか……"
Rockridgeさんのツイート: "Fx65:WebP画像フォーマットの表示をサポート。デフォルト無効。 / “1294490 – (WebP) Implement experimental WebP image support” https://t.co/RDRQkbp0J0"
Makoto Kato ︎︎さんのツイート: "WebPをサポートしないとWebCompat的な問題が発生してるのは、https://t.co/3E3OedCr68 の See Alsoのところに貼られているhttps://t.co/Kw9PJXX0TT の issueリンク集を見ればわかる。H264と一緒でどうにもならないことは多々ある"
1294490 - (WebP) Implement WebP image support
なかのん&マジックさんのツイート: "「Chromeで動けば良いんでしょ?」の実例だ。ってか、Safariすら捨ててるのか? / "WebP 画像しか配信せず正しく表示されないサイトの数が増え続けていることから、Firefox の開発者は態度を変えざるを得ませんでした" https://t.co/yZNj0whV3s"
WebP 画像対応が追加されました | Firefox サイト互換性情報
なかのん&マジックさんのツイート: "WebPのサポート表明のメール投稿に対しては、やっぱり、早々に「セキュリティ大丈夫なん?」ってリプライ付いてたなー。"
エヌユルさんのツイート: "WebPは実際可逆方式においてPNGよりは効率が良いので普及するのは喜ばしいことだとは思う / “webp-image-support-has-been-added” https://t.co/0i5VERUgyz"
なかのん&マジックさんのツイート: "昨今のWebアプリ事情を考えると個人的には好ましいと思う。でも、それはメンテしていないから言えることかもしれない(実際、よく知らない)。"
Rockridgeさんのツイート: "Fx65:WebP画像フォーマットの表示がデフォルト有効化。 / “1503653 - Enable WebP image support by default” https://t.co/CpAxnK1muw"
FadisさんはTwitterを使っています 「Googleが同社の公開gitリポジトリにlibwebp2なるライブラリを上げているという話。置かれた説明によると、WebP2はWebPの後継となる新しい画像フォーマットで、よりロスの少ない圧縮と、HDR10のサポート、アニメーションのサポート等が実験中の新機能として挙げられている https://t.co/Z2N9brff1U」 / Twitter
Google Is Already Experimenting With WebP2 As Successor To WebP Image Format - Phoronix
Masaki HaraさんはTwitterを使っています 「WebPには既にアニメーション機能ありますが……」 / Twitter
Masaki HaraさんはTwitterを使っています 「原文見るとproperly supportとあるから、2ではもっとちゃんとサポートするぞということなのか」 / Twitter

WebP - Wikipedia
WebP - Wikipedia
本の虫: Dark_Shikari、WebPについて語る
はじめてのにき(2017-06-19)
WebP – Webを速くするためにGoogleがやっていること Make the Web Faster 01 – | HTML5Experts.jp
Googleが画像フォーマット「WebP」向けライブラリ「libwebp 1.0.0」をリリース | OSDN Magazine
A new image format for the Web  |  WebP  |  Google Developers
webmproject/libwebp: Mirror only. Please do not send pull requests.
「Windows 10 RS5」で“WebP”がサポート、「Microsoft Edge」などで表示可能に - 窓の杜
WindowsでWebP画像を作る - まだ中学生のブログ
WindowsでアニメーションWebPを作成する - まだ中学生のブログ
ffmpeg で アニメーションWebP(Animated WebP)を作る | ニコラボ
WebP Lossless はちゃんと Lossless してます - Qiita

SVG

Twitter

Rockridgeさんのツイート: "Fx49:display:noneが設定された要素でSVGアニメーションの処理が行われ、CPUリソースを消費する問題が解消された。Kickstarter閲覧時のパフォーマンスなどに影響するという。 / “1209405 – Hi…” https://t.co/hpISOE5lZx"
Rockridgeさんのツイート: "Fx54:SVGのimage要素内の画像につきデコード処理の同期化を避けることで、Googleスライドのパフォーマンスが改善された。 / “1341881 - Slow synchronous image decoding in…” https://t.co/zE5hAEBzPD"
Rockridgeさんのツイート: "Fx55:SVG要素のtransform-boxプロパティがデフォルト有効化された。 / “1208550 - Ship support for the 'transform-box' property” https://t.co/ONto407jkh"
Rockridgeさんのツイート: "Fx55:ツールバーアイコンのSVG形式への移行が完了。アドオンの互換性に少なからず影響が出そうだ。 / “1347543 - Change Toolbar Icons from PNG to SVG” https://t.co/zPb1TJm06B"
Rockridgeさんのツイート: "Firefoxのツールバーアイコンは全面的にPNG形式からSVG形式に移行する見込み。 / “1347543 - Change Toolbar Icons from PNG to SVG” https://t.co/IBqRTIplCn"
渋川よしきさんのツイート: "Angularで特定の画像だけSVG Iconでうまく表示されないな、と思っていろいろ画像ファイルを見ていたのだけど、def/useを使っている画像ファイルはダメだということがわかったので、泣きながら手でpathを展開している。"
渋川よしきさんのツイート: "今ウェブのコードを書いているのだけど、SVG画像がファイルによってサイズが違っていて、<g transform>で変換をかけていたのだけど、行列による座標変換とか行列の掛け算とか、勉強しててよかったなって思いました。"
ドッグさんはTwitterを使っています 「SVG を一旦 SVG のサブセット MicroSVG に変換してから描画することで,描画バックエンドが実装しやすいようになってるのか | 'RazrFalcon/resvg: An SVG rendering library.' https://t.co/e4aB7Zxsxx」 / Twitter
RazrFalcon/resvg: An SVG rendering library.

memononen/nanosvg
Scalable Vector Graphics - Wikipedia
Scalable Vector Graphics - Wikipedia, the free encyclopedia
ブラウザに圧縮SVG (.svgz) を表示する | Inkscape@JP
SVG 1.1 仕様 (第2版) 日本語訳
Filter Effects Module Level 1(日本語訳)
Changes from SVG 1.1 — SVG 2 (日本語訳)
ECMAScript 言語束縛 – SVG 1.1 (第2版)
user-scalable=noとかSVGのアクセシビリティーとか - 水底の血
本の虫: XNGという新しいアニメーション画像フォーマット
svg要素の基本的な使い方まとめ
神奈川工科大学 情報メディア学科のSVG教材に無限にツッコミが入れられそうな件 - 水底の血
SVGを使用して鮮明なロゴへ変身 | フロントエンドBlog | ミツエーリンクス
アクセシビリティーサポート — SVG 2(日本語訳)
Firefox 51・Chrome 56リリース、Safari 10.1発表、Windows 10 Creator’s UpdateのEdge、WebKitほか──2017年1月のブラウザ関連ニュース | HTML5Experts.jp
本の虫: SVGの起源
2015年のSVGについてと、来年2016年のSVGについて - 週刊SVG
SVGをcss/jsで操作するときに知っておきたいこと - Qiita
Inkscape でレイヤーを読み込める SVG をイラレから書き出す - にせねこメモ
SVGでフレームアニメーション? - にせねこメモ
SVGでフレームアニメーション w/ Javascript - にせねこメモ
SVG ファイルを GUI ツールで最適化する - EagleLand
W3C Strategic Highlights: Strengthening the Core of the Web (SVG) | W3C Blog
svg要素の基本的な使い方まとめ
SVG に JavaScript を埋め込む方法 - Qiita
Inkscapeを使ってSVGからOGPイメージを半自動生成する | κeenのHappy Hacκing Blog
Inkscapeで生成するOGP画像の禁則処理をちょっとだけ頑張る | κeenのHappy Hacκing Blog
絵文字をファビコンとして表示する簡単な方法

Canvas

canvas要素 - Wikipedia
Canvas element - Wikipedia, the free encyclopedia
NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita
NanoVG を CPU で描画する - Qiita
NanoVG のソースコードを読んでみた - lriki’s blog
memononen/nanovg
HTML5 CanvasとWebGLの高解像度対応はどこまで行うべきか - ICS MEDIA
canvas要素の基本的な使い方まとめ
Fadisさんのツイート: "Chrome66がリリースされた。Chrome66で追加されるtransferFromImageBitmapはcanvasの内容を指定したImageBitmapで置き換える。この時画像はcopyではなくmoveされ、不必要なコピーが回避される。他にもClipboardの非同期読み書きのサポート等が追加される https://t.co/l141gC5QDB"
Googleドキュメントのレンダリング方式が変更へ、どんな影響があるのか? - GIGAZINE
Kazuho OkuさんはTwitterを使っています 「WYSIWYGな文書作成ツールという点ではCanvasで問題ないと思うけど、他社の検索エンジンにどうやって文書を示すんだろう? そこをやらないと独禁法で刺されそう」 / Twitter
高梨陣平さんはTwitterを使っています 「GoogleがDocsのレンダリングをHTMLからCanvasへ移行すると発表。異プラットフォーム間の互換性向上を目的に。 これってHTML5の敗北では?HTML依存の機能拡張が動かなくなるから注意だそうだけど、他にもっと問題がないかな」 / Twitter
SlashdotさんはTwitterを使っています 「Google Says Docs Will Now Use Canvas Based Rendering, Warns Impact on Some Chrome Extensions https://t.co/5QUW8MJMeg」 / Twitter
Kazuho OkuさんはTwitterを使っています 「機械可読性含むアクセシビリティの話だな」 / Twitter
なかざん𝄇さんはTwitterを使っています 「React Native for WebにはReact製SPAであろうとする力学がある程度働くので、どうやってもDOMベースになっちゃうのが痛いところなんだよな。 DOM互換を無視してReact Native for Canvasみたいなやつができると幅が広がりそう。」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@kazuho FlutterがCanvasでの描画とDOMでの描画両方をサポートしているそうなので、検索エンジン向けにはDOMを出力すれば問題ないのではないかと」 / Twitter

Favicon

アイコン

hiyohiyoさんはTwitterを使っています: 「通知領域用のアイコンを HiDPI 対応に変更したのですが、48x48 フルカラーアイコンが優先的に選択されるようで、16x16 とか 32x32 のアイコンが選択されず、48x48 を縮小表示されることが判明・・・。 DPI 設定に応じて適切なサイズのアイコンが選定されるというのは思い込みでした。」 / Twitter
hiyohiyoさんはTwitterを使っています: 「となると、1種類の画像しか入っていないアイコンを作ってソフト側から DPI 設定に応じて設定するのが最適なんだなぁ。 昨日の作業は、ほとんど無意味!! 事前確認重要!」 / Twitter
hiyohiyoさんはTwitterを使っています: 「LoadImageを使えば複数のサイズが入った .ico から指定サイズのアイコンハンドルを取得できることがわかりました。 LoadImageW(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_TEMP_00), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); 上の16の部分を32とか、48にすればOK」 / Twitter
hiyohiyoさんはTwitterを使っています: 「ただ、動的なDPI変更やDPI設定の異なるディスプレイが複数接続された環境ではどうすることもできない・・・。 現実的には、48x48の高解像度アイコンをOS側で縮小表示してもらうのが良さそう。縮小アルゴリズムがもうちょっといい感じだったらなぁ・・・。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんのツイート: "Vista以降のアイコン(複数サイズ同梱)は、256pxだけはpng格納、というハイブリッド形式を必要とするのだが、今だにVisualStudioで作成・編集できない様子。(表示のみ可能)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "2019年にもなって、バージョン定義とリソース分離に手間取ったり。 (1ヵ所のバージョン定義で、ソースコード用バージョンとexeリソース情報の両方に反映する形)"

Favicon - Wikipedia
Favicon - Wikipedia
ICO (ファイルフォーマット) - Wikipedia
ICO (file format) - Wikipedia
Rockridgeさんのツイート: "Fx55:ファビコンがfavicons.sqliteという独立したデータベースに保存されるようになった。履歴・ブックマーク絡みのファイルI/Oについて、パフォーマンスが改善されるようだ。 / “977177 - move fav…” https://t.co/ExBWeX7Kmv"
Rockridgeさんのツイート: "Fx56:Firefox 43以降512x512のサイズのファビコンが表示されなくなっていた後退バグを修正し、さらに768x768のような大きなファビコンもサポート。参照:https://t.co/5hbDBYV5s2 / “1…” https://t.co/3CnrOkx9K8"
Rockridgeさんのツイート: "Fx60:一部のWebサイトで高DPIファビコンを取得できない問題を修正。 / “1449523 - ContentLinkHandler only picks perfectly sized icons” https://t.co/lor9oON67U"
Rockridgeさんのツイート: "Fx60:ファビコンデータベースのVACUUM処理を漸進的に行うようにした。 / “1346554 - Use PRAGMA incremental_vacuum on favicons.sqlite” https://t.co/m8eAD78dDI"
【レビュー】“Microsoft Azure”などで利用されているシンボルやアイコンを集めたイメージセット - 窓の杜
Oracle、クラウドのシステム環境図作成などに役立つアイコン素材を無償提供 - 窓の杜
Rockridgeさんのツイート: "Fx63:ファビコンをchromeプロセスではなくcontentプロセスに読み込むことで、読み込みが二重になるのを防ぐことができるという。参照:https://t.co/uLapuzu4MH / “Favicons are no…” https://t.co/UVl4JwfpTI"
Rockridgeさんのツイート: "Fx63:ファビコンの最大サイズを256pxから192pxに変更した。データベースの容量が圧縮される。 / “1475500 - Reduce maximum favicon size from 256 to 192px” https://t.co/WwBF3gperx"
Rockridgeさんのツイート: "Fx62:履歴消去後もファビコン情報が残ってしまう後退バグを修正。 / “1468968 - Firefox retains favicons with their respective urls after supposedl…” https://t.co/spJPfL8cMc"
ブラウザのタブにある「Favicon(ファビコン)」にウェブカメラの映像を映す - GIGAZINE
SVGやアイコンフォントが揃ってる!太っ腹なライセンスで無料利用できる高品質なアイコン素材 -Themify Icons | コリス
全2,000+種類のアイコン素材、AI, PSD, Sketch, SVGが揃い、商用利用も無料の太っ腹! -Thousands Icons | コリス
IcoMoonを使ってSVGからアイコンフォントを作る方法 | mediba Creator × Engineer Blog
2852 free SVG and PNG icons for your games or apps | Game-icons.net
最新の手法でブラウザのタブに表示される「Favicon(ファビコン)」を作成するとこうなる - GIGAZINE

画像最適化戦略 PNG/JPEG 編 | blog.jxck.io
画像最適化戦略 Picture 編 | blog.jxck.io
画像最適化戦略 WebP 編 | blog.jxck.io
アニメーション画像の歴史 APNG-WebP戦争 | 味わい尽くせ!
画像最適化戦略 Lazy Loading 編 | blog.jxck.io

BMP

Windows bitmap - Wikipedia
BMP file format - Wikipedia
なかのん&マジックさんのツイート: "Win + Shift + SをHiDPI環境で使って、メールとかに貼り付けるとでかい画像が貼り付いてしまうの、ちょっと考え物だけど、誰がどうすべき問題なのか全く想像つかん。"
vyv03354さんのツイート: "すべてのアプリがBMPヘッダーのbiXPelsPerMeterとbiYPelsPerMeterをちゃんと見ていればよかった(完全に手遅れ)… "
なかのん&マジックさんのツイート: "あー、そんな情報あるんですね。クリップボードからの貼り付けでGeckoに来てるか調べてみないとですね。… "

Motion JPEG

Motion JPEG - Wikipedia
Motion JPEG - Wikipedia

JPEG 2000

ISO

OpenJPEG

OpenJPEG
uclouvain/openjpeg: Official repository of the OpenJPEG project
OpenJPEG - Wikipedia

JPEG 2000 - Wikipedia
JPEG 2000 - Wikipedia

JPEG XR

JPEG XR - Wikipedia
JPEG XR - Wikipedia

JPEG XS

JPEG XSコーデックメモ - Qiita

BPG

Better Portable Graphics - Wikipedia
Better Portable Graphics - Wikipedia
BPG Image format | Hacker News

HEIF

High Efficiency Image File Format - Wikipedia
HEIF Technical Information - High Efficiency Image File Format
HEIF Comparison - High Efficiency Image File Format
HEIF - High Efficiency Image File Format
Appleが新OSで初めてサポートするHEIF、FLAC、Opusなど | スラド アップル
【解説】iPhoneのAV機能は「iOS 11」でこう変わる (1/3) - PHILE WEB
“RS4”の最新プレビュー、画像形式“HEIF”をサポート ~Build 17123が公開 - 窓の杜
Masaru Iritaniさんのツイート: "#WindowsInsiders に向けフォト アプリに HEIF 形式対応が追加されました。寡聞にして知らず「へいふ」と読んでしまったのですが、どうやら「ひーふ」と読むようで、iOS や macOS で使われる画像形式のようですね。Skip Ahead ビルド 17623 も HEIF 形式に対応しています。 https://t.co/QyhupCbXU9… https://t.co/WOt0AyOW9F"
Windows 10が「HEIF」フォーマットの画像表示に対応 - PC Watch

DNG

Digital Negative - Wikipedia
Digital Negative - Wikipedia

RAW

RAW現像に対応するオープンソースの写真管理ツール「Darktable 2.6」リリース | OSDN Magazine
「digiKam 6.0」リリース、動画ファイルのサポートを強化 | OSDN Magazine
ゼロから作るRAW現像 - まとめページ - Moiz's journal

ImageMagick

渋川よしきさんのツイート: "Goで大量の画像の変換とかサムネイルとか。速度とメモリ厳しくない?"
さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
「さようなら ImageMagick」の考察 - Qiita
malaさんのツイート: "https://t.co/oE46g9nsQO コメントした。Pillowは必要に応じて外部コマンドを呼び出すのでフォーマット制限しないとImageMagickと大差ない。Pillow使ってるscipyも影響あり。GS脆弱性が厄介なのは利用ライブラリ側で脆弱性として認知されていない点 https://t.co/9LGa6WR0tn https://t.co/pmny41NJVR"
Search · check_call OR popen path:src
usaさんのツイート: "ぼくはポジショントークとして「ImageMagickやめた方が楽だよ?」とは言いますけど、お前らが「あ、これ○○でできるじゃん!」って思って作ったものはだいたいできてない、ということは本音として言っておきます。"

blog

画像の価値は上がったのに、技術は10年前から変わっていない ─ ImageFluxで描く画像変換の世界(前編) - pixiv inside
5年後には画像フォーマットなんて誰も気にしなくなる ─ ImageFluxで描く画像変換の世界(後編) - pixiv inside

News

iOS 10ではRAW撮影が可能に | スラド モバイル
最も劣化が少なくファイルサイズを小さくできる画像形式が判明 - GIGAZINE
第474回 UbuntuとdarktableではじめるRAW現像入門:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
JPEGも型番の時代に突入!?JPEG XTやXRに加え、新規格JPEG XSやJPEG PLENOが標準化に - PC Watch
圧縮効率60%向上を目指す新規格「JPEG-XL」策定にむけ技術公募へ - PC Watch
reg-cli - 二つの画像で異なる部分を抽出 MOONGIFT
データ圧縮のパイオニアであるジェイコブ・ジヴ氏の功績とその半生とは? - GIGAZINE

POSTD

500バイトの画像:Haikuのベクターアイコン形式 – 前編 | コンピュータサイエンス | POSTD
500バイトの画像:Haikuのベクターアイコン形式 – 後編 | コンピュータサイエンス | POSTD
一から学ぶベジェ曲線 | プログラミング | POSTD

Wikipedia

Digital Negative - Wikipedia
FFTPACK - Wikipedia
ハイダイナミックレンジイメージ - Wikipedia
ハイダイナミックレンジ合成 - Wikipedia
OpenEXR - Wikipedia
フロイド-スタインバーグ・ディザリング - Wikipedia

GitHub

anypixel.js
googlecreativelab/anypixel: A web-friendly way for anyone to build unusual displays
SolidStateGroup/rio: An open source library allowing you to create an internet connected LED wall
LC's Finder
lc-soft/LC-Finder: A simple pciture resource manager, support tag search and thumbnail preview.
RecursiveBF by ufoym
ufoym/RecursiveBF: A lightweight C++ library for recursive bilateral filtering.
VipsWiki
jcupitt/libvips: A fast image processing library with low memory needs.
miloyip/line: 2D Line Drawing Samples in C

Qiita

RGB値の合計が一定の画像変換 - Qiita
グレースケールで消える画像に変換 - Qiita
機械学習のためのOpenCV入門 - Qiita
グレースケール画像のうんちく - Qiita
RGB ビット深度のうんちく (前編) 〜 前提知識 - Qiita
RGB ビット深度のうんちく (中編) 〜 実数型と整数型の変換 - Qiita
Kazuho Okuさんのツイート: "HTML で #ccc と等しいのは #c0c0c0 か、それとも #cccccc か、というのはいい問題なのかも… "
Takuo Kihiraさんのツイート: "RGBビット深度、HTMLの世界だとカラーコード→浮動小数点の処理で気になることが多いですね。#C8F0E3みたいな奴を、0xC8/256とか雑に書いてあるコード、結構ありますよね。"

Twitter

Rockridgeさんのツイート: "Fx57:Firefox ScreenshotsでWebページ全体または表示領域全体を撮影した場合、画像の保存形式はPNGではなくJPEGになる。PNGだとサイトによっては画像サイズが大きくなりすぎるのだという。 / “1402…” https://t.co/2dI2Damohp"
一ノ瀬 いろはさんのツイート: "Firefox screenshots , HTML要素単位での選択が出来るのかー。気づかなかった。"
渋川よしきさんのツイート: "複数のイメージを.icoに書き込めるようにPR出した #golang #windows https://t.co/LVUWVp8JcO"
技術書典4 け-51 x86-64-128さんのツイート: "Illustratorのアセットの書き出しを使うと,1枚のページに書いた図を複数に分割して個々の画像ファイルとして書き出せるので捗る.PDFとしても書き出せるからTeXと相性が良い."
いもすさんのツイート: "超解像技術が理想の形になりつつある。waifu2xは、Photoshopで手で高解像度化したときに輪郭が丸くなる現象からあまり逃れられていなかったけど、A.I.Gigapixelは理想の超解像ができている。写真も二次元絵も問題なく超解像できているあたり汎用的な超解像が可能であることを示していて期待が高まる。… https://t.co/elzWpAVcNq"
mr-csce(llp_qlv)さんのツイート: "エイリアシング、なんで折り返すとかいうのって思ってたけど、周波数領域で考えたらほんとにまんま、まるで折り返したみたいになってて、めっちゃ直球な表現だったんだなって思った。"
FadisさんはTwitterを使っています: 「CPUで展開しなければならない画像フォーマットは貴重なCPUを浪費する上にCPU-GPU間をでかいデータが流れる事になるから、大量のテクスチャを読まなければならないなら圧縮率はイマイチでもASTCをそのまま保存しておくのがオススメ」 / Twitter
Tsukasa #01 [要出典]さんはTwitterを使っています: 「へー、JPEG-XL、JPEG のデータをロスレスどころか byte-to-byte で保ちながら圧縮率を上げる、今でいう Lepton 的な立ち位置の圧縮もできるのか。 https://t.co/Lu2reSpG6f」 / Twitter
https://google.github.io/brunsli/
Tsukasa #01 [要出典]さんはTwitterを使っています: 「普通の JPEG に比べて 22% 圧縮、というのも実際 Lepton に近い数値。」 / Twitter
nikqさんはTwitterを使っています 「つーか今まで、画像codecでまっとうなコードに出会ったことがないんだが、どうしてなんだ?? libtiffはexploit大杉、libjpegは関数ポインタ好きすぎ、libpngはifdef多すぎ、JPEGXRは逆ポーランドすぎ、JPEGXLはGoogle帝国すぎ…」 / Twitter
nikqさんはTwitterを使っています 「Google帝国の人は、世界には名もなきプラットフォームとか#ifdefで分割しきれない謎のコンフィギュレーションのCPUとかがあるってことをもっと知ってください!」 / Twitter
ノナプルナイン@デジゲー博未払い落ちさんはTwitterを使っています 「そう。ツイートしようと思って忘れてた。 pngからjpgを保存するときの容量、なんとGIMPの90%よりもフォトショの75%のほうが重いんですよ。 フォトショ使いのほうが画質にうるさいから、フォトショのほうが見かけの数字よりも圧縮率が低いということ? それとも、jpgの圧縮にも技術の差とかあるの?」 / Twitter
yohさんはTwitterを使っています 「codec != encoder implementation なんだけど そう理解されるのはレアなんだよねぇ そもそもquality(Q)なんてのも メジャー実装では似たような値を用意してるってだけで どこにも(normativeには)規程されないというか」 / Twitter
島鉄雄さんはTwitterを使っています 「ベジェとかスプラインの親玉のNURBSには、ノットベクトル(ウェイト)が有るから、正確な円(球)が書けるんだよね。 逆に言うとノットベクトルが無いと、円は近似にしかならない。」 / Twitter

The FreeImage Project
YCbCr ‐ 通信用語の基礎知識
Digital Negative(DNG)、Adobe DNG Converter | Adobe Photoshop CC
FFTPACK
Graphviz | Graphviz - Graph Visualization Software
画像のノイズを落としたり容量を小さくしたりするにはどのようなコードを書く必要があるのか? - GIGAZINE
Compressing and enhancing hand-written notes
第873回:bokeh とは - ケータイ Watch

フォント

その他

TypeDrawers

Relationship between left side bearing and contour coordinates (TTX/FontTools) — TypeDrawers
Problem in Chrome? — TypeDrawers
Typeface that lets you try different sets — TypeDrawers
Fontlab 5: How to 'Update [kern] feature' in all open fonts? — TypeDrawers
Usefulness for the below type of fancy fonts and hybrid glyphs — TypeDrawers
A rationale for this replacement of /gamma? — TypeDrawers
How do you test your locl features? — TypeDrawers
New: DTL OTMaster 7.9 — TypeDrawers
Any good auto kerning tools? — TypeDrawers
Understanding the 'name' table. — TypeDrawers
What determines the character range displayed in Windows' Character Map utility? — TypeDrawers
Making Windows Fonts Do Something They Shouldn't — TypeDrawers

窓の杜

大日本印刷、明治からの歴史がある「秀英体」ライセンスをMonotypeへ提供 - ニュース ―MdN Design Interactive edition― - 窓の杜
モリサワ、「TypeSquare Desktop Manager」による「BIZ UD」フォントの提供を終了へ - 窓の杜
任意の文字列で日本語フリーフォントを比較できるWebサービス「ためしがき」が縦書き表示に対応 - ニュース ―MdN Design Interactive edition― - 窓の杜
漢字のスタイルが自由自在? “zi2zi”でニューラルネットワークのスゴさを再認識 - やじうまの杜 - 窓の杜
スタートメニューのプロセスが独立、信頼性向上へ ~「Windows 10 19H1」Build 18317 - 窓の杜
「April 2018 Update」の縦書きフォント問題を回避するパッチ、「一太郎2019」向けに公開 - 窓の杜
Windowsの標準フォントってどこまで“タダ”なの? ~最新の状況をまとめたブログ記事が人気 - やじうまの杜 - 窓の杜
アドビ、新元号“令和”の合字を“Adobe Font”へ追加 ~4月中に完了予定 - 窓の杜
Adobe、新元号“令和”の合字を追加した「源ノ角ゴシック」v2.001をリリース - 窓の杜
情報処理推進機構、新元号“令和”の合字に対応した「IPAexフォント」v004.01を公開 - 窓の杜
楷書体の“令”を新元号発表時の墨書と同じ字形に ~モトヤが無料フォントを提供 - 窓の杜
新元号“令和”の合字に対応した無料の明朝体フォント「IPAmj明朝フォント」v006.01 - 窓の杜
Microsoft、ターミナル・コードエディター向けの新フォント「Cascadia Code」を発表 - 窓の杜
IPAが無償で提供している文字の検索システムがなかなかイケていると話題に - やじうまの杜 - 窓の杜
「Unicode 14.0」のリリースは6カ月延期 ~新型コロナウイルスの影響がボランティアを直撃 - 窓の杜

にせねこメモ

フォントのアウトラインを法線方向に太らせたり細らせたりしてみる - にせねこメモ
UbuntuでFontforgeをコンパイル - にせねこメモ
CygwinでFontforgeをコンパイル - にせねこメモ
さくらのサーバに置いたWebフォントをはてなブログから使う - にせねこメモ
適当に書いてフォントを作る - にせねこメモ
フォントいじり用ソフトウェア・技術情報 - にせねこメモ
漢索フォント - にせねこメモ
フォントでTUT-Code - にせねこメモ
Appleカラーフォントのビットマップの表示位置 - にせねこメモ
TTXでAppleカラーフォントを作る - にせねこメモ
FontForge の Python bindings を使えるようにする - にせねこメモ
サブセットWebフォントを作成する(Font Squirrel Webfont Generator) - にせねこメモ
Linux版AFDKOのダウンロード - にせねこメモ

借り初めのひみつきち

自作フォントエディタの話 - 借り初めのひみつきち
Rust 自作 OS 日記/Part 4 フォントのはなし - 借り初めのひみつきち
Rust 自作 OS 日記/Part 4.1 おまけ - 借り初めのひみつきち

書体関係 Wiki - unixuser200403-2
書体関係 Wiki - freefont
世界最速のフォントレンダラ、font-rsの内部に迫る | プログラミング | POSTD
フリーのフォントエディタ「FontForge October 2016」リリース、Unicode 9.0に対応 | OSDN Magazine
zi2zi: Master Chinese Calligraphy with Conditional Adversarial Networks
kaonashi-tyc/zi2zi: Learning Chinese Character style with conditional GAN
ドバイ政府とMicrosoftが提携して開発したフォント「Dubai Font」 | スラド IT
Windows版Firefox 57で既定の日本語フォントをメイリオに変更 - Mozilla Flux
Windows 10プレビュー版にウェイトを自由に変更できるVariable Font実装 - PC Watch
Windowsで最高のターミナルを構築する方法 - 純粋関数空間
デスクトップ・カスタマイズ:フォントリンクの方法
「大漢和辞典」ついに!デジタル化 「フォントない」問題克服の秘密とは | 共同通信 - This kiji is
やがてsyuu1228になるさんのツイート: "ClearTypeのパテントは無償でおっけーになったのか:Fedora Enables ClearType Subpixel Font Rendering Thanks To Microsoft https://t.co/B2ypyBwVYL via @phoronix"
Fedora Enables ClearType Subpixel Font Rendering Thanks To Microsoft - Phoronix
「Qt 3D Studio 2.3」公開、新フォントレンダリングエンジンが導入される | OSDN Magazine
Font Edit '95
フォントエディタ作った。 - 借り初めのひみつきち
neri/fedit95: Bitmap Font Editor
Noto Sans Hinted と font-feature-settings: 'palt' | blog.jxck.io
HarfBuzz

FreeType

The FreeType Project - バグ: Browse Items [Savannah]
hp.vector.co.jp/authors/VA028002/ft_height20061029.c
hp.vector.co.jp/authors/VA028002/winfreetype20061029.c
20212 FreeType の CFF ドライバの処理に任意のコードを実行されるなど複数の問題 - SIDfm
FreeType - Wikipedia
FreeType - Wikipedia, the free encyclopedia
側転幼女おるみんちゃんさんのツイート: "FreeType2 が 2.7 になって ClearType のようなサブピクセルヒンティングが有効になたみたい.Infinalityパッチのとはちょっと違うようだけども >> The FreeType Project https://t.co/JKu8weHERT"
FadisさんはTwitterを使っています: 「GTK+等の文字のレンダリングを担っているPangoがフォントのロードをFreetypeからHurfbuzzに切り替えたところ、ビットマップフォントが読めなくなり、ビットマップフォントとかいまどき使わないと主張する開発者とビットマップフォント愛好家達が揉めてる https://t.co/trTPv9ryyg」 / Twitter
Pango Dropping Support For Bitmap Fonts Is Frustrating Some Linux Desktop Users - Phoronix
svg woff 変換 - Google 検索
woff freetype - Google 検索
FreeType 2.10.2 Released With Support For WOFF 2 Fonts - Phoronix
FadisさんはTwitterを使っています 「FreeTypeにPNGの埋め込みビットマップの取り扱いでヒープバッファオーバーフローを起こす脆弱性が見つかり、修正版2.10.4が出た。この脆弱性の詳細や影響はまだ表に出ていないが、2.6以降のでFT_CONFIG_OPTION_USE_PNGオプションを使用している場合に影響を受けるらしい https://t.co/ULpo4PPiJm」 / Twitter
FreeType 2.10.4 Rushed Out As Emergency Security Release - Phoronix
freetypeを使用して文字を描画すると間延びする

Adobe

Adobe、日中韓の漢字を網羅したオープンソースのフォント「Source Han Sans」を公開 - 窓の杜
Source Han Sans - Wikipedia
米Adobeがフォント開発ツールのAFDKOをオープンソースに | SourceForge.JP Magazine
ASCII.jp:「源ノ角ゴシック」を実現させたアドビ西塚氏の勘と感覚 (1/5)
インタビュー&トーク - 15年越しに叶った夢、日中韓対応のフォント開発:ITpro
日本語表示も考慮されたコーディング向けのフォント「Source Han Code JP」が公開 - 窓の杜
Adobe Type Tools
源ノ明朝 | Typekit
Adobe、日中韓をサポートしたSerifフォント「源ノ明朝」をオープンソースで公開 ~Googleと共同開発、6万5千文字以上を収録 - PC Watch
貂明朝の漢字6469字の内訳 | yasuokaの日記 | スラド
“Adobe Typekit”が“Adobe Fonts”へ、複雑な利用制限をすべて撤廃してシンプルに - 窓の杜
Adobe Fonts on VF at Adobe Max 2018 — TypeDrawers
【Adobe MAX】無償でも6,000フォントまで利用可能となったAdobe Fonts - PC Watch
A Spectre Haunts Photoshop: Adobe Fontphoria — TypeDrawers
アドビ、可愛く妖しい無料フォント「貂明朝」のv2を公開 ~干支のカラー絵文字を追加 - 窓の杜
Adobe Fontsに日本一画数の多い漢字。貂明朝の新フォントも ~Photoshop for iPadなど新アプリのQ&Aセッションも - PC Watch
Adobe、プログラミング向け無料フォント「Source Han Mono(源ノ等幅)」をリリース - 窓の杜
Adobeの「源ノ角ゴシック」がバリアブルフォントに - PC Watch
「Source Han Sans/源ノ角ゴシック」がバリアブルフォントに ~サイズは1/10以下、可能性は無限大 - 窓の杜
Adobe Fontsの日本語フォントが大幅増 ~191フォントが追加され、計436フォントに - 窓の杜
画力・博士号さんはTwitterを使っています 「「てかCompact Font Formatやめね?笑」になってきた,地球外の文明と接触したときに(えっ,君らの文明ではこんな間抜けな規格が最も普及してんの? 草)と笑われる規格として5本の指には入ると思う.」 / Twitter
Compact Font Format - Google 検索
米Adobeがフォント開発ツールのAFDKOをオープンソースに | OSDN Magazine

Google

Google、オープンソースフォント「Noto」がUnicode標準をフルサポートしたことを明らかに - 窓の杜
Noto - Wikipedia
Noto fonts - Wikipedia
Google Noto Fonts
Google Developers Japan: 誰でも使えるオープンソース フォント システム
Google Developers Blog: An open source font system for everyone
Google Internationalization
googlei18n/noto-fonts: Noto fonts, except for CJK and emoji
noto-fonts/FAQ.md at master · googlei18n/noto-fonts
Noto Sans の Web Font 対応とサブセットによる最適化 | blog.jxck.io
Google Developers Japan: オープンソースの美しい Noto フォントファミリーに日本語、中国語、韓国語が加わりました。
Google、日本語・中国語・韓国語をカバーしたオープンソースフォント「Noto Sans CJK」 - 窓の杜
オープンソースの明朝体フォント、Googleとアドビが無償公開、7ウェイトを用意したセリフ書体「Noto Serif CJK(源ノ明朝)」 -INTERNET Watch
Noto Color Emoji – Google Noto Fonts
日中韓に対応したグーグルの新フォント「Noto Serif CJK」は、なぜ生まれたか|WIRED.jp
Google、フォントラスタライザ向けセキュリティチェックツール「BrokenType」を公開 | OSDN Magazine
Noto JP/KR versus Noto — TypeDrawers
Google Fontsが日本語WEBフォントを正式サポート – Dream Seed

MS

米Microsoft、開発環境向けの等幅フォント「Cascadia Code」をオープンソース化 | OSDN Magazine
7594591200220899443さんはTwitterを使っています: 「いや、ターミナルでこの手のprogramming ligaturesを有効にするのは絶対駄目。問題が起きる。 https://t.co/E5qrZxw5DI」 / Twitter
7594591200220899443さんはTwitterを使っています: 「問題が起きる例 https://t.co/KJA07cZl0N」 / Twitter
Deligaturizing "=<" · Issue #751 · tonsky/FiraCode
7594591200220899443さんはTwitterを使っています: 「要は=&lt;というのはシェルの中ではless than or equal toのtokenではないのだ。そこでtokenizeしてはならぬ。」 / Twitter
7594591200220899443さんはTwitterを使っています: 「VS Codeでprogramming ligaturesがおおむねうまく行くのはVS Codeの場合はLanguage serverと通信してプログラミング言語ごとに正確なtokenizationができているからなのであって、ターミナルとかでそういう期待をしてはならない。」 / Twitter
Cascadia Code 1910.04 | Windows Command Line
Makoto Kato ︎︎さんはTwitterを使っています 「Yu GothicはDirect Wirteのパラメーターいじると綺麗にレンダリングされる気がするが。昔Johnさんがいじって、各フォントをFirefoxでバランスよくなるようにしてた」 / Twitter
Microsoft EdgeでClearTypeフォントが読みやすくなる改善 - PC Watch

フォント情報処理用語

Terms Used in Font Information Processing

TrueType

アウトラインがぶれるフォント - にせねこメモ
TrueType命令でビット演算 - にせねこメモ
TrueType命令で擬似乱数: 線形合同法 - にせねこメモ
フォントサイズに合わせて回転するフォントを作る(2) - にせねこメモ
TrueType命令で三角関数(sin, cos)を計算する - にせねこメモ
PPEM・ポイントサイズを表示するフォント - にせねこメモ
フォントサイズに合わせて回転するフォントを作る(1) - にせねこメモ
初めてのTrueType命令: Windowsでは見えないフォントをつくる - にせねこメモ
逆引きTrueType instruction set - にせねこメモ

OpenType

Variable Fonts

ウェブ最大の「フォント問題」を巡ってアップル、グーグル、MS、アドビが団結|WIRED.jp
Variable Fontについて - console.blog(self);
Introducing OpenType Variable Fonts – John Hudson – Medium
Rockridgeさんのツイート: "時期未定だがGeckoでもOpenType Variation Fontsをサポートする予定。参照:https://t.co/xNstDMA0W6 / “Intent to implement: OpenType Variati…” https://t.co/Fi9rUDshGc"
Rockridgeさんのツイート: "Firefox 62では「ひとつのファイルでありながら複数のフォントのように動作する」Variable Fontが使えるようになっている。次のFirefox 63ではウェブ開発ツールのフォントエディタでVariable Fontの… https://t.co/9fPWTzsud8"
Variable fonts for Adobe After Effects — TypeDrawers

にせねこメモ

OpenTypeフォントで万年カレンダーをつくる - にせねこメモ
GPOSのCursive Attachment Positioningについて - にせねこメモ
フォントの気持ちになる - にせねこメモ
OpenTypeフォントで分数 - にせねこメモ
OpenTypeフォントでFizzBuzz(その2) - にせねこメモ
単語の最初のみ(最後のみ)に置換を行うOpenType Feature Fileの書き方 - にせねこメモ
OpenTypeフォントでFizzBuzz - にせねこメモ
「、」「。」を「,」「.」で表示するフォントをつくる - にせねこメモ
OpenType/CFFのフォントを読んでみる - にせねこメモ

OpenTypeカラーフォントと関連技術の動向
Creating and supporting OpenType fonts for the Universal Shaping Engine
OpenType の仕様策定の議論をのぞくには - しろもじメモランダム
Microsoft Typography - Typography | Microsoft Docs
OpenType specification - Typography | Microsoft Docs
OpenType font file - Typography | Microsoft Docs
OpenType - Wikipedia
OpenType - Wikipedia
CID (文字コード) - Wikipedia
PostScript fonts - Wikipedia
OpenType Feature File Specification
true type fonts - Microsoft OpenType specification for cmap - Stack Overflow
Jolg42/OpenType-Specification: OpenType Specification from Microsoft https://www.microsoft.com/typography/otspec/ & Apple https://developer.apple.com/fonts/TrueType-Reference-Manual/
adobe-type-tools/aots: Annotated OpenType Specification
OpenType フォントのカーニング情報をぶっこぬく - Qiita
Rockridgeさんのツイート: "Fx53:OpenTypeフォントのCMAPテーブル(文字コードからグリフインデックスへのマッピングを定義するテーブル)で、フォーマット13をサポート。参照:https://t.co/hn8hfp37WR / “1320665 …” https://t.co/bsONE8ETOn"
Archive of OpenType versions - Typography | Microsoft Docs
OpenType specification change log - Typography | Microsoft Docs
Script tags - Typography | Microsoft Docs

OpenType Variation Font

Rockridgeさんのツイート: "Firefox 61でOpenType Variation Fontsがデフォルト有効化される見通し。 / “Intent to ship: OpenType Variation Font support” https://t.co/SoxLue673P"
Rockridgeさんのツイート: "Fx62:Variable Fontがデフォルト有効化。 / “show_bug.cgi?id=1457266” https://t.co/3dEpnhCfI7"
Ubuntu 16.04でgooglei18n/fontviewをビルド - にせねこメモ
googlei18n/fontview: Demo app that displays fonts with a free/libre/open-source text rendering stack: FreeType, HarfBuzz and Raqm
macOSのダークテーマ、可変フォントなどをサポートするMozilla Firefox 62

OpenType Sanitizer

khaledhosny/ots: Sanitizer for OpenType
一部のウェブフォントがより厳格なバリデーションのため表示されなくなる場合があります (影響あり) | Firefox サイト互換性情報
12月のマイクロソフトセキュリティ更新を確認する - INTERNET Watch Watch
縦書きにしたときにWebフォントの部分だけ表示されない - Google プロダクト フォーラム

WOFF

WOFF 2.0, the inside scoop | W3C Blog
WOFF File Format 2.0
フォントファイルから使いたい文字を抜き出してコマンドラインでWebフォント化するfontminが便利だった - Qiita
WOFF (Web Open Font Format) - ウェブデベロッパーガイド | MDN
フォント素人のWebエンジニアが、「フォントおじさん」に聞いてみた!Webフォントの最近の事情とか | HTML5Experts.jp
WebFont の WOFF2 対応によるサイズ最適化 | blog.jxck.io
Makoto Kato ︎︎さんのツイート: "font-display 使えばいいのに https://t.co/UENeh3Mhse"
ウェブフォントのエモい話 // Speaker Deck
Rockridgeさんのツイート: "MDN Web Docsでは、Webフォントの利用を見直しつつある。Open Sansを廃してFont Awesomeの使用も止め、Zillaフォントは英語文字に限って利用するようにした。ダウンロードサイズが減ってレンダリング時間… https://t.co/SLbO4rwN0g"
Web Fonts Working Group Charter
W3C Strategic Highlights: Strengthening the Core of the Web (Fonts) | W3C Blog
Puppeteer で静的サイトの Font Subsetting | blog.jxck.io
Web Font のメトリクス上書きによる CLS の改善 | blog.jxck.io

フォント

絵文字

won't fix: emoji hell
won't fix: この文字はカラー絵文字をつかうべきか、モノクロの絵文字をつかうべきか
ゆきまさかずよしさんのツイート: "GoogleのチーズバーガーのEMOJIにおけるチーズの配置はあり得ないとか指摘があって、CEOが謝罪して訂正を約束したとか https://t.co/9RMQmsgLzk https://t.co/pl9hRjDKLm"
Makoto Kato ︎︎さんのツイート: "色々あって一年放置したemojiのバグ直そうとしてるけど、本当フォントシステム辛い。ついでにこれ実装しちゃうとCSS Font4のfont-family: emojiも実装可能なんだけど、あれどうしようかな"
カラー絵文字パッチ制作の経緯 — KaoriYa
Googleがチーズバーガーの絵文字を修正、ほかにビールやチーズも - GIGAZINE
Makoto Kato ︎︎さんのツイート: "I have added new font preferences "https://t.co/NO9M7sv5yr-list.emoji" to control emoji font on Firefox 59+"
Makoto Kato ︎︎さんのツイート: "昔どっかの会社とFirefox OSのデバイス作ってた時に、この設定作らないとと思ってたやつなんだけど、今更入れた"
【やじうまPC Watch】Apple、70を超える絵文字を追加 - PC Watch

ビットマップ

GNU Unifont Glyphs
Unicode encoded Shinonome font for i18n xterm
渡邊フォント問題、非商用限定の無償利用可で解決へ | スラド
「渡邊フォント」がパクリと発覚 | スラド
k14 14-pixel japanese font for xterm
Various Software written by S. Kono
Hanazono fonts

窓の杜

【レビュー】合字(リガチャ)をうまく活用したソースコード向けの等幅フォント「FiraCode」 - 窓の杜
【レビュー】「源ノ明朝」フォントを読めるギリギリにまで“破壊”した「源界明朝」 - 窓の杜
【レビュー】「Unicode 10.0」に追加された“変体仮名”を表示できる「Unicode変体仮名フォント」 - 窓の杜
モリサワ、スタンダード版「BIZ UDゴシック」「BIZ UD明朝」の無償提供を再開 - 窓の杜
Microsoft、数式フォント「MT Extra」をダウンロードセンターで無償公開 - 窓の杜
無償のホラーフォント8作品が一挙公開 ~「怨霊」フォントの暗黒工房が8年ぶりの更新 - 窓の杜
55種類の日本語フリーフォントをまとめて試せるWebサービス“ためしがき”がリリース - 窓の杜
え、ふぉんと? モリサワの“あの”フォントが「Windows 10 October 2018 Update」に標準搭載 - やじうまの杜 - 窓の杜
フォントワークス、8書体を“Google Fonts”で無償提供 ~GitHubにも公開 - 窓の杜
Unicodeコンソーシアムが提供する“最後の手段”フォント「Last Resort Font」【レビュー】 - 窓の杜
Releases · unicode-org/last-resort-font
Microsoft、コーディング向けフォント「Cascadia Code」にイタリック体を追加 - 窓の杜
【レビュー】165カ国170万人から集めた筆跡の平均をもとにしたフォント「Universal Typeface」 - 窓の杜

GIGAZINE

古式ゆかしい「変体仮名」が商用・エンベッド含め自由に使えるフォント「Unicode変体仮名フォント」 - GIGAZINE
無料&商用利用可能で幾何学的ながら明るく都会的なデザインのフォント「ROLAchan(ローラちゃん)」 - GIGAZINE

INTERNET Watch

江戸時代のくずし字1521文字種・8万6176件の字形データセット無償公開、ディープラーニングを用いた文字認識のサンプルプログラムも~NIIと国文研 -INTERNET Watch
「源ノ明朝」、デジタル向けだが「手の軌跡から生まれる骨格を探し出した」デザイン -INTERNET Watch

プログラミングフォント Myrica / Estable | Myrica (ミリカ)は、フリーなプログラミング用 TrueType フォントです。
明治時代の活字の味わいたっぷり!無料日本語フォント「Oradano明朝フォント」がステキ – Japaaan 日本文化と今をつなぐ
KHドットフォントシリーズ | 自家製フォント工房
Oradano Mincho : non JIS X 0213 public domain TrueType font
FSP95 comments
ASCII.jp:西麻布のバーでNTT Comの宮川エバに聞いたテッキーなお話 (1/4)
ターミナルでアイコンフォントを使う理由 | IIJ Engineers Blog
日本語の既定フォントが変更されました | Firefox サイト互換性情報
モリサワ「Windows 10 Fall Creators Update」での「UDデジタル教科書体」正式採用を発表 | ニュース&プレスリリース | 企業情報 | 株式会社モリサワ
プログラミング用フォント Ricty
IPA、あらゆる人名の文字化けがない「IPAmj明朝フォント」 ~約6万漢字を国際標準文字コードに対応 - PC Watch
MORISAWA BIZ+ | 株式会社モリサワ
ワープロ専用機の拡大処理を再現したフォント「ワープロ明朝」
irori/wapuro-mincho: "ワープロ明朝" - 80's Japanese word processor like font
モリサワ OpenTypeフォントの共同開発で株式会社写研と合意 | ニュース&プレスリリース | 企業情報 | 株式会社モリサワ
沈黙の巨人、「写研」が動いた “愛のあるユニークで豊かな書体”がわれらの手に届くまでの100年を考える (1/3) - ITmedia NEWS
IBMのオープンソースフォント「Plex」が日本語対応 - PC Watch

Android

池田 泰延さんのツイート: "先程のXperia (Android 7)のフォントの話をトゥギャりました。 HTML/CSSを書く人にとっては役立つ話かと思います。 /Xperia(Android 7)のフォントがウェブ制作者にとって残念 https://t.co/RG3ShObydP"
Makoto Kato ︎︎さんのツイート: "XPEDIAにはNoto Sans CJKは入ってるけど、skiaのせい。というか標準フォント変更機能が存在しててXMLファイルでいろいろ入れ替えられる。そのせいだよ。その機能入れたのSHARPだから、SHARPのせいということで"
Makoto Kato ︎︎さんのツイート: "Noto Sans CJK使いたかったらAndroid版のFirefoxを使えばでるんじゃないですかねー。(細かい調整入れた張本人としての発言)"
Makoto Kato ︎︎さんのツイート: "昔ICSの頃にGoogleとのミーティングあるからなんかお願いしたいことある?って言われた時、今のAndroidのデザインだとフォント列挙(フォントファイル単位)の方法が存在しなくて、フォントファイルのパスさえもとれないから、ホント困るって話をお願いしてもらったんだけどね。。。"
Makoto Kato ︎︎さんのツイート: "ブラウザ側からしてみれば、skia経由でしかフォントに触れないのでskiaがフォント選択の仕組みをそのままブラウザ側に実装しないと全くもってブラウザがやりたいこと実装できないんですよねー。skiaやってるのもGoogleなんでGoogleのせいですよ、SONYじゃない"
Makoto Kato ︎︎さんのツイート: "OEMベンダがカスタムしてるフォント名のアリアスとかもXMLファイルなんで、FirefoxもそのXMLファイルを解析してフォント選択に加えないといけないんですが、個人的には優先度低い。でもChromeとの互換性言われたらやらざるを得ないけど"
Makoto Kato ︎︎さんのツイート: "全端末が/system/fontsだけにあればよかったんですがねー。しかもフォント名のアリアスなしで"
Makoto Kato ︎︎さんのツイート: "なお、どの会社もskiaをカスタムしてなければいいですが、自社でコードいじってるとXMLファイルの件も保証できないです。Apacheライセンスだったはずだから、変更した場合でも変更点は闇のなかですねー。GPLとかだったら変更点を出してくれますが"
Makoto Kato ︎︎さんのツイート: "Android版Chromeで中華フォントが!!って話が昔よくフォーラムにあったんだけど、Androidのフォントを知れば知るほど、ホワイトリストしかない気がするって思うんだよね。Chrome Teamの範疇だと難しいよな、かわいそうにって思う"
Makoto Kato ︎︎さんのツイート: "(その面倒なところの架け橋をしたって、おそらく社内的にまったく評価されないだろうから、誰もやるはずがないという意味です)"

ものかの

デジタルフォントの風説 “仮想ボディ” – ものかの
日本語の活字はどうして全角なのか – ものかの
源ノ明朝/角ゴシック-1 フォントを整理しよう – ものかの
源ノ明朝/角ゴシック-2 サブセットとフルセット – ものかの
源ノ明朝/角ゴシック-3 デジタルの文字 – ものかの
源ノ明朝/角ゴシック-4 Unicodeの漢字統合 – ものかの
源ノ明朝/角ゴシック-5 フルセット版 – ものかの

Wikipedia

Linux Libertine - Wikipedia
Linux Libertine - Wikipedia
Junicode - Wikipedia
Junicode - Wikipedia
DejaVuフォント - Wikipedia
DejaVu fonts - Wikipedia

Twitter

macOS

みーた / UXエンジニアさんはTwitterを使っています: 「macOS Catalinaでヒラギノ角ゴPro/ProNが消えたらしい。 弊社サイトとかでも使ってるのでフォント崩れが起きている。 困る。大迷惑だ。 https://t.co/U6VTP3qSUc」 / Twitter
みーた / UXエンジニアさんはTwitterを使っています: 「私はアップデートしてないのでソースはこちら。 https://t.co/6rDoWnM7js」 / Twitter
macOS Catalinaでヒラギノ角ゴPro/ProNが消える - kyoto.nagoya Blog
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「フォントに依存するようなサイト云々ってのもあるけど、generic font-familyを指定してるけど、そのハンドリングが甘いブラウザがあるって感じ?」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「あー、Geckoもそのままではフォールバックしなさそうだな。 https://t.co/z1rtoiBdoo」 / Twitter
all.js - mozsearch
池田 泰延さんはTwitterを使っています: 「macOS CatalinaのChrome 77のフォント問題。 勘違いしている人が多いので説明。 Chromeのデフォルトだった「ヒラギノ角ゴシック ProN」がCatalinaで未バンドルになる ↓ 該当するフォントがなくなったため、Sans Serifが明朝体で表示される ↓ フォント指定の甘いサイトは全部明朝体に! https://t.co/Cil92P8PGO」 / Twitter
macOS Catalinaでヒラギノ角ゴPro/ProNがなくなって困ってるfont-familyの設定を考える。|榊原昌彦|note

四九六々(縦書き用)さんはTwitterを使っています: "フォントのGPUレンダリングの記事読んでた。これいいね。GPUの知識に乏しいので2週間くらいかけて勉強しながら実装してみたい。https://t.co/tgm1tNpGe9"
Resolution independent GPU text rendering demo
Rockridgeさんのツイート: "Mozillaの新ロゴに使われているZilla SlabフォントがGoogle Fontsに掲載されている。 / “Google Fonts” https://t.co/YCupNw3Xlj"
Zilla Slab - Google Fonts
なかのんクエストさんのツイート: "@azu_re リリース版では57からメイリオですが、当然、インストールされていない環境も考慮して、メイリオ → 游ゴシック → MS Pゴシックとフォールバックするようにしています。 https://t.co/plxRj8pPWE-list.sans-serif.ja 参照。"
池田 泰延さんのツイート: "ブラウザのフォントをユーザーが独自に変更している場合に、アイコンフォントが表示されなくなる。 これは盲点でした... #cssnite https://t.co/SAHptJF2o3"
Rockridgeさんのツイート: "Fx63:Skiaのフォントキャッシュサイズを10MBから5MBに減らした。Mac版やLinux版で消費メモリが減少する。 / “show_bug.cgi?id=1258781” https://t.co/RROLJbRguT"
Rockridgeさんのツイート: "Fx63:Android版の使用フォントにNoto Serif CJKを追加。Android 9 Pieでは中国語、日本語、韓国語のセリフ体フォントはNoto Serif CJKがデフォルトなんだとか。 / “1481031 -…” https://t.co/YkgoZDkwnt"
なかのん&マジックさんのツイート: "昔、ちょっとだけGeckoのgfxかじった身からすると実装面でその気持ちは分かる……"
OE Waku 𛄊𛀬さんのツイート: "げ、これマジだ。ひどい・・・・ > Safari 12ではユーザがインストールしたフォントをfont-familyに指定できない https://t.co/8NVPQgfNFU"
Safari 12ではユーザがインストールしたフォントをfont-familyに指定できない - Qiita
なかのん&マジックさんのツイート: "こういう時に、ブラウザエンジンを選択できないプラットフォーム、デバイスってのは困るよなぁ。特にこうやって、ブラウザの違いによって転送容量が大きく変わるってのは、事実上、従量制な回線を使ってると実害あるよね。"
ドッグさんのツイート: "Linux のフォント描画がどうダメなのか具体的に説明してくれてる | 'The sad state of font rendering on Linux | Infosec scribbles' https://t.co/kKTZMIe7Br"
The sad state of font rendering on Linux | Infosec scribbles
vyv03354さんのツイート: "㋿を表示するためだけのフォント https://t.co/jS45Zrl1Yb しかしFirefox以外はフォントを明示的に指定しないと表示できないようだ。"
グループ:emk_令和明朝 - GlyphWiki
FadisさんはTwitterを使っています: 「中国語の文字が多すぎてフォント作りが辛すぎて凝ったデザインのフォントが足りない問題、CNNでスタイル転送してフォントを生成することでほぼ克服されてて凄い」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VisualStudio2019の標準フォントは、昔ながらの「MSゴシック」ということに今頃気付いた。 プログラミング用フォントは、Anti-Alias / ClearType が効かない方が視認性が良くて好き。 (これらが効くフォントは、同じ文字が場所によって、微妙に異なる表示になったりする)」 / Twitter

Google Fonts
Google Fonts の日本語フォント - Qiita
Fonts (日本語) - ArchWiki

PDF

その他

Online ASCII85 encoder - Online tools
paperai/pdfanno: Linguistic Annotation Tool for PDF Documents
Hack Patch!: PDF特殊機能(FormCalc編)
Hack Patch!: PDF特殊機能(リダイレクト編)
UsefullCode.net: 2016年04月 記事一覧
UsefullCode.net: 2016年07月 記事一覧
PowerPoint for Macが吐くPDFが重いんです - Qiita
タグ付きPDFとはどんなもの | アンテナハウス PDF資料室
Arch Linuxで日本語pdfを閲覧したり、辞書を表示する | 3log
「LibreOffice 6.3」リリース、UI、性能などにフォーカス | OSDN Magazine
PDFファイルを開くだけで暗号化された内容が流出する脆弱性「PDFex」が発見される - GIGAZINE
Windows上でもPDFファイルのパスワードを総当たりで解析できるフリーソフト「PDFCrack」 - GIGAZINE
iPhoneでJPEG画像やPDFファイルを開くだけでハッキングされる可能性 - GIGAZINE
PDFから「使える」テキストを取り出す(第1回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第2回) - golden-luckyの日記
CC0ライセンスの空白PDFファイル - Qiita
PDFから「使える」テキストを取り出す(第3回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第4回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第5回) - golden-luckyの日記
PDFから「使える」テキストを取り出す(第6回) - golden-luckyの日記
Takashi KawasakiさんはTwitterを使っています: 「Unicode→GIDを逆引きして文字コード取得すると、メイリオみたいなフォントだと、杮(こけら)と柿(柿)が区別できなかったりする。つまり同じグリフなのね。 PDFから「使える」テキストを取り出す(第5回) - golden-luckyの日記 https://t.co/bNEVURablY」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「ああ、僕のレビューは確かに良くないかも。日本語のPDFの本の解説本って割と少ないので過度な期待をしちゃっただけなんですよ。 https://t.co/lJsLRPz6Zl」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています: 「今日のブログ書くのにamazonでこの本を見たら、求めるものを勘違いしている方によるレビューばかりでかわいそうになった。ふつうに良い本だと思います "John Whitington『PDF構造解説』 https://t.co/jURHqtACSt」 / Twitter
2020年 年賀状 - golden-luckyの日記
PDFが読めるようになるお話 | 感情的プログラミング伝記 | タウン情報誌 AIR函館 - 北海道函館市の食・呑・遊をご紹介!
プログラマーから見たPDFファイル | アンテナハウス PDF資料室
PDFが世界中で広く使われるようになった理由とは? - GIGAZINE

Adobe

注目の脆弱性:Adobe Acrobat Reader DC ドキュメント ID に起因する、リモートでコードが実行される脆弱性
TALOS-2017-0505 - Cisco Talos
PDF 2.0 でドキュメントを次世代のステージへ - Adobe Blog
ISO 32000-2:2017(en), Document management — Portable document format — Part 2: PDF 2.0
ISO 32000に準拠するPDFってどんなもの? | アンテナハウス PDF資料室
ISO 32000-2:2017 文書管理-ポータブル文書フォーマット-第2部:PDF 2.0 | 日本規格協会 JSA Group Webdesk

OCR

tesstrain.sh で Tesseract-OCR の言語データをカスタマイズする - Qiita
Ubuntuにtesseract-ocrをインストール - Qiita
スキャンしたpdfファイルにOCR処理を行い,テキスト埋め込みpdfを作成する - Qiita
日本語OCRライブラリNHocrを利用してみる - Qiita
Nami Ogawaさんのツイート: "古めの論文でそのままPDF落とすと文字も読みづらくて本文検索もできないようなとき、google検索でキャッシュリクエストすればOCR済みのHTMLバージョン返ってきてめっちゃ便利っての今気づいた https://t.co/2yBG3Cymsr"

長期署名

PAdES - Wikipedia
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第1回) - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第2回) PDF署名とは - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第3回) PAdES仕様の構成 - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第4回) PAdES Basic - livedoor Blog(ブログ)
自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第5回) PAdES Basicと署名ポリシ - livedoor Blog(ブログ)
自堕落な技術者の日記 : 追悼 Adobe CDS - livedoor Blog(ブログ)

PDF.js

PDF.js - Wikipedia, the free encyclopedia
PDF.js
mozilla/pdf.js: PDF Reader in JavaScript
PDF.jsを設置する - Qiita
MozillaのPDF.Jsを利用してJavaScriptでPDFレンダリングをカスタマイズ - WPJ
PDF.js の導入方法と苦労した話 (フェンリル | デベロッパーズブログ)
pdf.jsを使いブラウザで見られるPDFスライド表示ツールを作った | Web Scratch
[pdf.js] テキスト選択出来るスライド表示ライブラリを書いた | Web Scratch
PDF.jsを使ってみる | Tips Note by TAM
PDF.js で遊んでみた (ページの描画,テキスト・注釈の表示など) - きちぽよ〜
mozilla/pdf.js: PDF Reader in JavaScript
チュートリアル:Aurelia.jsとPDF.jsで実装するPDFビューワーの作り方 - WPJ
core-jsがメンテされていない理由 - Qiita

libHaru

LibHaru - Wikipedia, the free encyclopedia
libHaru
libharu/libharu
libHaruの部屋
PHP::Haruで基本的なPDFを作成する (1/3):CodeZine(コードジン)

PDFium

Google Chrome PDFエンジンがオープンソース化
米Google、ChromeのPDFレンダリングエンジン「PDFium」をオープンソース化 | OSDN Magazine
Issues - pdfium - PDFium - Monorail
pdfium Git repositories - Git at Google
SDK Docs - Foxit Developer Portal | PDF SDK technology
にっき♪: PDFium
pvginkel/PdfiumViewer: PDF viewer based on Google's PDFium.

PDFtk

PDFtk - Wikipedia
PDFをコマンドラインから編集できるPDFtk使い方メモ - c-bata web
PDFtk - The PDF Toolkit

SumatraPDF reader

Free PDF Reader - Sumatra PDF
sumatrapdfreader/sumatrapdf: SumatraPDF reader

pdfseparate

Poppler:Pdfseparate の使い方 | PDF
Ubuntu Manpage: pdfseparate - Portable Document Format (PDF) page extractor
PDFを各ページに分割(切出)するコマンド pdfseparate - それマグで!
kmutoさんのツイート: "gs由来のpdfseparateでもboxは全部飛んじゃうんだな"
Poppler:pdfunite の使い方 | PDF
Linux とかで PDF を結合とか n-up とかするコマンドたち - polamjaggy
Ubuntu Manpage: pdfunite - Portable Document Format (PDF) page merger
wgetコマンドで外部からPDFを取り出してpdftkでPDFを結合しよう - Qiita

yomu

yomu
ta2gch/yomu: 英和辞書付きPDF閲覧ソフト

Google

Google Chromeに脆弱性か、ユーザー追跡の不審なPDF発見 - ITmedia エンタープライズ
Chrome PDFビューワーの情報漏えいの脆弱性についてまとめてみた - piyolog
ゆかたゆさんのツイート: "Android版のChromeさんはpdfファイルを落とす前に確認して欲しいのです💢 (これ出来るんですか?私が無知だったらごめんなさいなのです)"
tkr@合格0,不合格6,発表待ち1さんのツイート: "てかpdfのフォーマット知らないんだけどページごとのストリーミングみたいなことできないのあれ 数十ページあるやつ全部落とすの通信量やばい"
なぎせ ゆうきさんのツイート: "ページ単位のタグがあったと思うけど、表示に必要な情報が後ろにあったりしたような(うろ覚え… "
あんどうあんど🔞休職→求職中さんのツイート: "最後のほうに、属性情報とか索引とかある。… "

MS

「Edge」のPDF閲覧機能が強化、新しいセキュリティ機能も ~Insider Preview - 窓の杜

PDF/UA

PDF/UA - Wikipedia
Tomaz's dev blog: Accessibility checker and support for PDF/UA specs
PDF/UA-1(ISO 14289-1)について | アンテナハウス PDF資料室

PDF/X

PDF/X - Wikipedia
PDF/Xについて (1) PDF/X-1a
PDF/Xについて (2) PDF/X-3
PDF/Xについて (3) PDF/X-2

PDF/A

PDF/A - Wikipedia
PDF/Aとはなにか | アンテナハウス PDF資料室
PDFAOutline.pdf
PDF/A 概要
LuaLaTeX で pdfx パッケージを使い PDF/A に準拠した PDF を作る - Qiita
timelerさんはTwitterを使っています 「文書PDFは基本的にPDF/A以外は信用してはならない。」 / Twitter
tkrさんはTwitterを使っています 「wordでインターネットからDLしたdocxファイルを開くと「保護ビューのままにしておくことを推奨」みたいな警告出てこれはマクロとかあるから分かるんだけど、pdfでも同じ表示出るやん?pdfってそういう悪いこと可能なの?」 / Twitter
timelerさんはTwitterを使っています 「PDF/Aは大雑把に、フォントとメタデータ以外の埋め込みが禁止されているので安心。 どの環境でも読めることが保証されるのでさらに安心。」 / Twitter

Wikipedia

Category:Mozilla Firefox - Wikipedia
Category:FLOSS関連のスタブ項目 - Wikipedia
Portable Document Format - Wikipedia
Ascii85 - Wikipedia
Extensible Metadata Platform - Wikipedia

Twitter

ToUnicode, OpenType

keiichiro shikano λ♪さんはTwitterを使っています 「今日の学び:PDFの/ToUnicodeは、OpenTypeフォントの中のcmapから得られる情報と食い違う場合がある!(信用できるのはOpenTypeフォントの中の情報)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「しかしOpenTypeのcmapを読むのはパターンが多すぎてめんどくさいなあ」 / Twitter
画力・博士号さんはTwitterを使っています 「OpenTypeの cmap テーブルは一般には単射ではないのでPDF中での逆変換に相当する /ToUnicode CMap で正確に復元できるとは限らないんですよね(どうしてこんな仕様に……)」 / Twitter
TrueRoadさんはTwitterを使っています 「AJ1フォントなら逆に無い方が都合が良い場合が多いので、原ノ味フォント用にToUnicode CMap削除ツールなんてものを作りました。 https://t.co/Da7Punx9h3」 / Twitter
trueroad/pdf-rm-tuc: Remove ToUnicode CMap from PDF
keiichiro shikano λ♪さんはTwitterを使っています 「確かに、フォントが埋め込まれてる場合にはいっそいらないよねこれ…」 / Twitter
TrueRoadさんはTwitterを使っています 「@golden_lucky 源ノとかAI0フォントの場合はToUnicode CMapが無いとテキスト抽出できなくなってしまいます。PDFにフォントが埋め込まれていても、確かcmapテーブルは入ってなかったと思います。」 / Twitter

tagged PDF

keiichiro shikano λ♪さんはTwitterを使っています 「タグ付きPDFを「きちんと」出力できて、書籍の組版できるソフトウェア、現状だと何があるだろう。InDesignには「TCreate Tagged PDF」のオプションはあるっぽいが、これはどこまで使いものになるのかにゃあ。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「Chromeがタグ付きPDFがデフォルトなのでVivliostyleはできるのかな。AHFormatterはできそうだけど、これも実際のところはどんな感じなんだろう。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「pdfTeXは「きちんと」はいまだにできてないが、ConTeXtはできるらしい。」 / Twitter
ひだるま@技術書典9新刊有さんはTwitterを使っています 「タグ付PDF、1.7と2.0でちょこちょこ違うし私用のマシンだと十分な検証環境ないんだよな」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「PDF 2.0、ぜんぜんしらないなー」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「父さんEPUBは捨ててtagged PDFにベットしようと思うんだ」 / Twitter
Tokushige KobayashiさんはTwitterを使っています 「AH Formatterのタグ付きPDFを使っているのは海外ユーザーだけだと思います。逆に、OSDCはタグ付きPDF出力できないですが、海外から今どき非常識だと叱られたことがあります。非構造化文書からのタグ付きPDF出力は仕様を満たすための無意味なタグ付け~Pタグとspanタグ羅列のような~になるだけですが。」 / Twitter
村上真雄 MURAKAMI ShinyuさんはTwitterを使っています 「@golden_lucky AH Formatterはもちろんタグ付きPDF出来ます。 https://t.co/fLS6som2nR だいぶ昔ですが、私がその実装に携わっています。」 / Twitter
AH Formatter V7.0 - PDF出力
村上真雄 MURAKAMI ShinyuさんはTwitterを使っています 「@golden_lucky Chromeのタグ付きPDF出力によりVivliostyleでも出来るようになるはずなのに、タグ付きにならない不具合に気付きました。どうもChromeのタグ付きPDF出力が特定の条件(JSでコンテンツが生成されてる、CSSでページサイズ指定ある)で無効になるChromeのバグのよう。さらに調べてChromeにバグ報告します。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「@MurakamiShinyu なるほど、ブラウザでDOMを作る前にHTMLの構造が手に入っている場合にのみ生成できる、とかだとつらそうですね…」 / Twitter

リーダーモード

keiichiro shikano λ♪さんはTwitterを使っています 「いまでも普通のPDFをリフローできるんですよ https://t.co/y4wzFrjk9J」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「まあ、これはリーダーに依存した不完全なもので数式とかルビとかページまたぎとかは全然ダメなんだけど、大筋は問題なく読めるし、どうしても読めなかったらふつうのページ表示に戻せば必ず読める。」 / Twitter
mhidaka@技術書典さんはTwitterを使っています 「@golden_lucky えっ。なにこれ。やば?どうなってるの?とか思ったんですがこれすごいすね」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「@mhidaka ご利用のスマホのAcrobatアプリで「リーダーモード」を選べば誰にでも未来が待っているんですよ!(実はデスクトップのAcrobatですでに十年位前にはあった機能)」 / Twitter
mhidaka@技術書典さんはTwitterを使っています 「@golden_lucky やべー技術力じゃん…」 / Twitter

サブセット?

keiichiro shikano λ♪さんはTwitterを使っています 「PDFとPostScript、ページ記述に使っているモデルこそ同じだが事実上は別ものなんだけど、Wikipediaの「PDFはPostScriptのサブセット」という説明はどこ由来なんだろう https://t.co/y9OQ9SSlSp」 / Twitter
僕「PDFとは何か知りたい」 - Qiita
keiichiro shikano λ♪さんはTwitterを使っています 「「ErlangはPrologのサブセット」みたいな違和感がある(わかりにくい)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「CDはDVDのサブセット」とかのほうがわかりやすい?(わかりにくい)」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「Haskellには圏論のサブセットが含まれている」に違和感があるのといちばん近い気がしてきた。Haskellを知りたくて圏論について調べたら迷子になるように、PDFを知りたくてPSについて調べたら迷子になります。」 / Twitter
keiichiro shikano λ♪さんはTwitterを使っています 「「Haskellには圏論のサブセットが含まれている」も「PDFにはPSのサブセットが含まれる」も、それ自体は偽とは言えないけど「あえて」主張されると「せやな」という気持ちになるという意味で、「偶数全体の集合は素数全体の集合の空でないサブセットを含む」は実に膝を打つたとえ。」 / Twitter
nishio hirokazuさんはTwitterを使っています 「「空でないサブセットって言えばいいのかな?」「偶数全体の集合は素数全体の集合の空でないサブセットを含みます!」」 / Twitter

Mozilla

RockridgeさんはTwitterを使っています: "PDF.jsは「Canvasとテキスト、アノテーションの3つのレイヤーを使って描画しています」。「Canvasの描画の上に透明なdivにテキストを流しこんだり、クリック出来るようにリンクを置いたりしています」。 / “[pdf.…” https://t.co/QNrf99J3SA"
vyv03354さんはTwitterを使っています: "pdf.jsがフォントを埋め込んでいない日本語PDFで文字化けする問題ようやく修正した。自分で本体に投入したTextDecoderが早速役に立った。やはり自分でhackしないと誰も直してくれないことを再確認。#もずでぶ"
vyv03354さんはTwitterを使っています: "それにしてもフォントを埋め込まないでIdentity CMapを使うのは禁止されているはずなのに https://t.co/91wpwzRd 違反している日本語PDF多すぎ。"
vyv03354さんのツイート: "pdf.jsで縦書きに対応。本体のwriting-modeサポートに依存しているような気がしていたが別にそんなことはなかったぜ! #もずでぶ"
vyv03354さんのツイート: "https://t.co/1vtC7zUP2m 現時点の制限事項: フォントが埋め込まれていないと、縦書き用字形は使われず句読点や括弧なども横書き用のままです。"
vyv03354さんのツイート: "@teramako https://t.co/F1f8jRve と同じ問題ですね。この問題があるのでフォントを埋め込んでいない日本語PDFは高確率で化けます。"
vyv03354さんのツイート: "pdf.jsは日本語の数学論文がほとんど全滅で、issueも投げたけど無視されてる。https://t.co/F1f8jRve やっぱりハックしてpull requestを送らないとダメか"
Rockridgeさんのツイート: "Fx48:PDF.jsやGoogleドキュメントなどで、ヘッダ/フッタを印刷すると本文領域を上書きしてしまう場合、ヘッダ/フッタを印刷しないようにした。 / “1250674 – Don't print header/foote…” https://t.co/USoaeYbKB4"
Rockridgeさんのツイート: "Fx55:MortarプロジェクトのPDFビューワを有効化するための設定が追加された。pdfium.enabledがそれだが、今のところtrueにしても現行ビューワの代わりになるわけではない。 / “1338476 - [jsp…” https://t.co/k0c4dhwqRG"

@espresso3389

Takashi KawasakiさんはTwitterを使っています: 「PDFの仕様が曖昧過ぎて話にならないのは事実としても、普通は、PDFを作成する側のプログラムにもメジャーなものがいくつかあって、そいつらの癖とかバグを一通り対応すると、まぁ、世の中の99%ぐらいのファイルは処理できちゃんだけども、残りの1%はどこかの誰かさんが作ったであろう、名も知れ(文字数」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「面白いのは、当然ながら、Acrobatでは開けるからこそ流通するわけなんだけど、要はAcrobatのデコーダも相当謎で一体、どんな実装してんだっていうのはある。逆に最近のバージョンで開けなくなったPDFというのも少なからずある。」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「テキストの並びを順序通りに切り出す処理、GUIアプリだとユーザーが暗黙のうちに正しい方向に選択してくれるというヒューリスティクスというか人間を使った手法があったりする。というか、僕の書いたアプリではそれを使ってたりする。まぁ、全然完璧じゃないんだけどね。 https://t.co/HJC7lQYqsT」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「Microsoft Print to PDFっていうクソ仮想プリンタが、仕様違反とは言えないまでも、Page contentの q Q の外に CTM いじるような命令ぶっこんで来るせいで、content 追記するととんでもないところに描画されちゃって困ってる。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「PDFをある程度理解できるようになるとわかることは、クソエンコーダが多すぎて、個別のPDFの事情なんてさっぱり分かりません。諦めてくださいってことになるってことです。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Adobeの実装すら、・・・・ってなることが多いのに、それを他のソフトで再編集でもしようものなら、もうゴミになることは火を見るよりも明らか。 にもかかわらず、Adobeすら再編集機能を持っていたりするので、憎悪しか感じない。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「PDFは一度作ったら編集なんてやるべきじゃない。もっというとデータとしての活用もやるべきじゃない。人間による閲覧用途、印刷用途、あとはクリティカルじゃない検索程度にとどめるべき。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「あと、仮想プリンタ。あいつらも諸悪の根源。基本、印刷側ソフトウェアは、文字コードの羅列から、印刷のためのグリフの配列を生成して、それをプリンタに送信している。そのグリフ配列から、元の文字コードに戻せるか?って言われると、原理的には必ずしも元には戻らない。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「仮想プリンタは無理を承知で頑張ってはいるけど、無理なものは無理。メイリオとか、かなり多くの文字が同じグリフを参照してたりするんだよ。杮と柿とか。あとね、アラビア系の文字に関しては、実のところ並び順すら怪しい。頑張って解析するけどさ。リガチャとか元に戻るわけねーだろっていう。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「この辺は、ドライバ書くのに、各言語に対するかなりの知識が必要になるわけです。僕日本人なので、頑張っても日本語、英語、あと・・・、ドイツ語は怪しい。ポーランド語とか知るわけねーだろみたいな範囲で頑張ってヒューリスティクス含めて実装するのね。」 / Twitter

Tsukasa #01 [要出典]さんのツイート: "oO( 残念ながら、pdf.js はほぼ使い物にならないという評価をせざるを得ない。 )"
勝(まさる)さんのツイート: "PDFはPostScript派生なんだけど、後ろに続くテキストを圧縮してエンコードしてとかできるんで、ファイルを生で開いても読めないことが多いですね。"
aminophenさんはTwitterを使っています: 「&gt; TeX界隈だと、DVIPS経由で生成されたPDFではType 3フォントが使われることになっているので、この理由で文字が取れないPDFファイルはわりと目にします。 ここで耳寄り情報を1つ:最近,dvips の作者が「Type 3 フォントを使った PDF から文字を取り出す実験」をしている。 https://t.co/khjhSuDwWY https://t.co/BL8MLE0wUn」 / Twitter
rokicki/type3search: Working on making Type 3 bitmap fonts used in dvips-generated Postscript generate searchable PDF files.
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Acrobatのルート証明書からもチェインしたデジタルID/証明書で、LetsEncrypt的なの出ると良いなぁ。 (AdobeはPDF用ルート証明書を独自にして、家元商売している印象が…) https://t.co/xhoeHR28MP」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「これ1個で済むという PDF viewer が見つからない. 1. 白黒反転できる(夜まぶしいから) 2. メモがつけられる(PDF 書き換えでなく) 3. 1ファイルに複数ウィンドウ(別の場所見たい) 4. 大きな PDF でも負けない強い子 てか,PDF ほびろん!」 / Twitter
R. ShioyaさんはTwitterを使っています 「パワポやエクセルで作った図をクリップボード経由で PDF に変換できるツールを作りました.MetafileToEPS を使ってた事がある人にはわかると思いますが,要はあれの PDF 版です.Windows 上で TeX で論文を書いている人には便利かもしれません. https://t.co/mq9F7tCsc7 https://t.co/Xb6EOv2j2T」 / Twitter
shioyadan/kuroko: Kuroko is a simple command line tool to convert EMF to PDF. You can download a pre-compiled binary from https://github.com/shioyadan/kuroko/releases.
R. ShioyaさんはTwitterを使っています 「@KuniSuzaki 私も、スライドのサイズを図のサイズぴったりにしたパワポを作って PDF に印刷して… みたいな事をしていて毎回あまりに面倒なのでこれを作りました。今のところ API の制限で半透明なオブジェクトが崩れてしまうのですが、それ以外は多分きれいに PDF になってくれると思います。」 / Twitter
R. ShioyaさんはTwitterを使っています 「たまにある PDF でコピペすると文字が化けるやつ,どうも PDF ではフォントを埋め込むと文字コードが各フォント内固有の ID(グリフID)に変換されて格納される仕様で,その上で処理系がさぼってグリフID→元コードへの逆変換表を一緒に埋め込まなかった場合は復元不能で化ける・・・ ということらしい」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PDFは表示・印刷用フォーマットなので、元情報が欠落しないはず、という仮定・期待に無理があるような、、、 (再加工用には別フォーマットで)」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@a4lg えええ…もしかして単純に同一グリフの複数コードのうち小さいのを返しちゃうんですか…それは邪悪な…」 / Twitter
Tsukasa #01さんはTwitterを使っています 「@tetsutalow 私が実際に遭遇したケースでは間に PDF が挟まったことがきっかけ……というのが大部分ですね (同一グリフ [字形] を康熙部首と CJK 統合漢字とで共有しているフォントの場合、PDF ネイティブのグリフ ID から文字列に戻す場合に混乱するのではないかと)。」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@shirouzu 正論はそうでも事実としてPDF内のテキストはそれなりに検索性があることが求められているわけで、そこでグリフに引っ張られてコードが変わっちゃうのはやっぱり邪悪だと思っちゃいますね。特にこんな、それで検索することまずないでしょってコードに置き換えちゃうのは特に悪い挙動。」 / Twitter
画力・博士号さんはTwitterを使っています 「PDFについて「仕様全てを把握してる人類少なすぎる」のも「仕様自体も割と終わってる」のも正しいと思うけれども全てを把握している必要はあんまりないです(composite fontのfont dictionaryを把握すれば大体全部理解したようなもの.)」 / Twitter

Takashi KawasakiさんはTwitterを使っています 「話は変わるが、TIFF、PostScript、PDFという、アドビ(or その前身)という会社が生み出したそびえ立つ糞の山シリーズ、こいつらを処理するライブラリ群のセキュリティはマジでヤバい。libtiff/GhostScriptは一言で言うと使ってはならない。PDFならpdfium以外は使うな。」 / Twitter

SWF

LWF by GREE
gree/lwf: LWF - Lightweight SWF
untitled - swf-file-format-spec-v10.pdf

Audio

その他

大語彙連続音声認識エンジン Julius
GNU Compact Disc Input and Control Library (libcdio)
本の虫: PulseAudioの問題
ネットワークオーディオと「OpenHome」 | 言の葉の穴
ハイレゾ対応の音楽再生ソフト「TuneBrowser」v4、“OpenHome”に対応 ほか - ダイジェストニュース - 窓の杜
アップル、iOS 11でFLAC形式のオーディオ再生をサポート。ほかにOpusや3Dサウンドにも対応へ - Engadget 日本版
ドルビーラボラトリーズ - Wikipedia
Dolby Laboratories - Wikipedia
「ハイレゾCD」登場、MQA×UHQCDでユニバーサルから100タイトル - AV Watch
Google Developers Japan: Resonance Audio がオープンソースに
オブジェクトベースオーディオのためのE-AC-3拡張の規格書を読む - .mjtの日記復帰計画
12-13 mp4sa - Qiita
3kbpsという低いビットレートでも高音質を実現するコーデック「Lyra」をGoogleが開発 - GIGAZINE
Microsoft SatinオーディオコーデックはAIを使用してSkype Silkよりも優れたパフォーマンスを得た
WFH で Audio Worklets の使用率が増えている話

Web

WAV

WAV - Wikipedia
WAV - Wikipedia
Resource Interchange File Format - Wikipedia
Resource Interchange File Format - Wikipedia
Wave File Specifications
WAVファイルフォーマットの読み込み | NecoTech
wav ファイルフォーマット
Waveフォーマット・PCM・サンプリング周波数・ビット数・チャンネル数とは、SoundEngine・RadioLineを例にわかりやすく解説 | 豆知識
RIFF/WAVE形式
AVI RIFF ファイルのリファレンス
ビット毎秒 - Wikipedia
パルス符号変調 - Wikipedia

Vorbis

Vorbis - Wikipedia
Vorbis - Wikipedia
Ogg - Wikipedia
Ogg - Wikipedia
Xiph.org: Downloads
Xiph.org - vorbis.git/summary
libvorbis-1.3.5
Xiph.org - ogg.git/summary
libogg-1.3.2

Opus

Opus (音声圧縮) - Wikipedia
Opus (audio format) - Wikipedia, the free encyclopedia
Opus Codec
Development – Opus Codec
Opus-1.1.2
無料で5ミリ秒という超低遅延を実現する非可逆音声圧縮コーデック「Opus」、何がすごいのかまとめ - GIGAZINE
フリーのオーディオフォーマット「Opus」がIETF標準に、初の正式版実装もリリースされる | OSDN Magazine
ロイヤリティーフリーのオーディオコーデック「Opus 1.2」リリース | OSDN Magazine
Rockridgeさんのツイート: "Fx64:Opus 1.3のリリース候補版をサポート。 / “1487049 - Update opus to revision v1.3-rc-15-g38fca4a2” https://t.co/wuJ4GWNiKA"

FLAC

FLAC - Wikipedia
FLAC - Wikipedia
FLAC - download
Xiph.org - flac.git/summary
FLAC-1.3.2
音質劣化のない可逆エンコーダ「FLAC」で音楽を楽しもう | OSDN Magazine
可逆圧縮オーディオコーデック「FLAC 1.3」リリース | OSDN Magazine
日記 (2016 年 7 月上旬)

MP3

MP3 - Wikipedia
MP3 - Wikipedia
[日本工業規格(JIS)] |書誌詳細|国立国会図書館サーチ
Mpeg Audio規格日本語版(JIS X 4323): みやじぃの徒然レコーディング(でないことがほとんど?)日記
MP3のライセンス問題はその後どうなったのか : Timesteps
【藤本健のDigital Audio Laboratory】第553回:iTunesのVBRとCBR、どちらの音が良い? - AV Watch
CBR,VBR,ABRの違いについて - 目的にあったエンコードモードを選ぶ - 道すがら講堂
MP3の特許を持つTechnicolorの特許権が消滅 - GIGAZINE
Fedora、MP3をフルサポートへ | スラド Linux
2017年5月9日 Fedora,まもなくMP3をフルサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社
「MP3が死んだ」という報道の本当の意味とは? - GIGAZINE
とみながたけひろさんのツイート: "このツイートをするために久々に"takehiro.c"でぐぐったんですが、衝撃の事実が。LAMEがllvmのテストスートに含まれている関係で、世界中のgitレポジトリにtakehiro.cが含まれている…オープンソースは勝手に増殖するのを実感した。こええwww https://t.co/ScmjG3L19T"
MP3ファイルを覗いてみる(基本型)
mp3ファイルの構造
MP3 ファイルのタグについての解説 (id3v1, id3v2, MPEG フレームヘッダ, XING ヘッダ) - Y-Lab. Electronics
ID3v2 仕様書日本語訳 | takaaki.info
デジタルオーディオの仕組み - 音声圧縮の原理 MP3, AAC, ATRAC, etc. - white croquis
MP3の仕様
technosaurus/PDMP3: Public domain mp3 decoder
lieff/minimp3: Minimalistic MP3 decoder single header library

libsndfile

libsndfile-1.0.28
The libsndfile API
雑メモ: libsndfile を使ってみた | anobota
[vDSP][信号処理]オーディオ・音声分析への道3 Libsndfile - Qiita

HD Audio

HD Audioとは|Intel HD Audio|High Definition Audio - 意味/解説/説明/定義 : IT用語辞典
High Definition Audio - Wikipedia
Intel High Definition Audio - Wikipedia, the free encyclopedia
Intel High Definition Audio - OSDev Wiki
PC Speaker - OSDev Wiki
High Definition Audio Specification
Customizing HD Audio Driver Volume Settings (Windows Drivers)
藤本健のDigital Audio Laboratory
https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt
Advanced Linux Sound Architecture - ArchWiki
Advanced Linux Sound Architecture/トラブルシューティング - ArchWiki
Windows-driver-samples/audio/sysvad at master · Microsoft/Windows-driver-samples
藤本健のDigital Audio Laboratory
Intel、次世代PCオーディオ規格「High Definition Audio」
コグノスケ
藤本健のDigital Audio Laboratory
OSDev.org • View topic - Intel High Definition Audio problem. [SOLVED]
OSDev.org • View topic - Intel HD Audio - DMA buffers not working

Audio Codec 97

Audio Codec 97 - Wikipedia
AC'97 - Wikipedia

Audible

Audible - Wikipedia

AIFF

AIFF - Wikipedia
Audio Interchange File Format - Wikipedia

Hi-Fi

Apple Lossless

Apple、iPodなどで採用されている音声可逆圧縮コーデック「Apple Lossless」をApache Licenseで公開 | OSDN Magazine
Apple Lossless - Wikipedia
Apple Lossless - Wikipedia
macosforge/alac: The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices.
Apple Lossless Audio Codec

Apple Musicがより高音質なHi-Fiをサポートする可能性 - GIGAZINE
Spotify HiFiについて知っておくべき5つのこと - Spotify Japan — For the Record
ドルビーアトモス
ドルビーオーディオ
ロスレスとは - コトバンク

AAC

Via Licensing、High-Efficeincy AACのライセンス料を決定
Advanced Audio Coding (AAC) - Via Corp
License Fees - Via Corp
AAC License Fees – Standard Rate and Alternative Rate Structures - Via Corp
FAQ - the Alternative Rate Structure - Via Corp
AAC - Wikipedia
Advanced Audio Coding - Wikipedia
HE-AAC - Wikipedia
High-Efficiency Advanced Audio Coding - Wikipedia

MPEG-4 SP

MPEG-4 - Wikipedia
MPEG-4 - Wikipedia

AMR-WB+

AMR-WB+ - Wikipedia
Extended Adaptive Multi-Rate – Wideband - Wikipedia

AMR-WB

AMR-WB - Wikipedia
Adaptive Multi-Rate Wideband - Wikipedia

AMR

Adaptive Multi-Rate - Wikipedia
Adaptive Multi-Rate audio codec - Wikipedia

OpenAL

OpenAL: Cross Platform 3D Audio
OpenAL - Wikipedia
OpenAL - Wikipedia
openAL入門 - 1.音を鳴らそう! - すこしふしぎ.
NPE.blog: OpenAL

ドルビーデジタル(AC-3)

ドルビーデジタル - Wikipedia
ついにドルビーデジタル(AC-3)の特許権が消滅 - GIGAZINE
AC-3(ドルビーデジタル)の特許が失効 | スラド YRO

OSDN

オープンソースのDAWソフトウェア「Ardour 5.9」リリース | OSDN Magazine
KDEの新プロジェクト「Elisa Music Player」が早期版をリリース | OSDN Magazine

POSTD

オーディオアプリ開発でありがちな4つの間違い | プログラミング | POSTD

GitHub

C* Music Player
cmus/cmus: Small, fast and powerful console music player for Unix-like operating systems.
pytorch/audio: simple audio I/O for pytorch
Command-line cloud music player for Linux.
tizonia/tizonia-openmax-il: Command-line music player for Linux with Spotify, Google Play Music, YouTube, SoundCloud, Dirble and Deezer support.
zevv/bucklespring: Nostalgia bucklespring keyboard sound
keijiro/Lasp: Low-latency Audio Signal Processing plugin for Unity
みむみむ.net - Software
mimura1133/mm_STEP_M: STEP (タグエディタ) の派生版

Twitter

椚座 くにゅくにゅ/// 淳介さんのツイート: "G.729(VoIPなどで使われている音声圧縮アルゴリズム)に関して,関連していた特許のほとんどが存続期間満了となったことにより,2017年1月からロイアリティフリーになったと,パテントプールからの発表が https://t.co/Boly0QfWAL"
SiproLAB Telecom - patent pool creation and management for standardized telecommunication technologies
Rockridgeさんのツイート: "Fx54:デスクトップ版でサラウンド音声の再生をサポート。参照:https://t.co/tNwp96No0Z https://t.co/wV46pjQgkU / “1321502 – Support audio 5.1 on …” https://t.co/Qe9p0Z24fa"

七誌さんはTwitterを使っています 「高次元では3次元のような回転軸の概念は使えないので、どうしようか考えていた。 擬ベクトルとして表された部分空間を取り出せば次元を1つ落とせるので、n次元は入れ子になったn-2本の擬ベクトルが回転軸になるような気がする。(マトリョーシカというか、ジンバルのようなイメージ)」 / Twitter

Video

その他

ASCII.jp:まずは動画の構造について教えるぜ!【コーデック編】 (1/4)|エンコードテクニック虎の巻
Stagefright入門
VISIO-OpenMAX.vsd
Intel Quick Sync Video(QSV)を使ってみる ( その他趣味 ) - 音響・映像・電気設備が好き - Yahoo!ブログ
日本初となるUltra HD Blu-ray市販ソフトは夜景 | スラド
ASCII.jp:【動画比較】AMDのFluid Motionならアニメが60fpsでヌルヌル動く!! (1/2)|画面が滑らかになる! AMDの最新技術はココがスゴイ
動画の「テレシネ」「逆テレシネ」の意味と違い
IDTのフレーム速度変換ICは動き検出・補正・フレーム補間のアルゴリズムがカギ - セミコンポータル
Apple Safari、YouTubeの4K動画再生非対応に。YouTube、4K VP9エンコードのみに切り替え - PRONEWS
第700回:タイムラプス とは - ケータイ Watch Watch
オープンソースのマルチメディアフレームワーク「GStreamer 1.12」が公開 | OSDN Magazine
Windows 10プレビュー版、HDR映像のキャリブレーション機能を搭載 - PC Watch
Windows 10 RS5、屋外など非常に明るい場所で動画の明るさを自動調整 - PC Watch
デジタルでなくフィルムで撮影される『スター・ウォーズ』、その理由とは|WIRED.jp
動画エンコーダ屋さんと会話して少しわかった画質の話(PSNR / RD曲線 / BD-rate) - Qiita
Cinavia - Wikipedia
Cinavia - Wikipedia
WebCodecs と WebTransport でビデオチャット | blog.jxck.io
Intent to Implement WebCodecs - Google グループ
H.Sup18 : Signalling, backward compatibility and display adaptation for HDR/WCG video coding
H.Sup19 : Usage of video signal type code points
デジタル著作権管理の存在がネックとなりインディーウェブブラウザは新規参入の余地がないという指摘 - GIGAZINE
高品質な動画のスムーズな配信を実現する技術とは? - GIGAZINE
AppleがDRM関連の技術特許を侵害しているとして約340億円の支払いを命じられる - GIGAZINE
FacebookのQUICを活用したライブ動画用プロトコルRUSHについて - ASnoKaze blog

VA-API

ffmpeg

今日は遊ぶかーと思って, ffmpeg とか, VAAPI とか H264 とか MPEG2 とか見てた. slices, macroblocks,…
HWAccelIntro – FFmpeg
lu-zero/mfx_dispatch: Intel media sdk dispatcher
qsv 対応の ffmpeg をつくる | ニコラボ
俺の日記帳 第二冊目
LinuxでIntel QSVを使ったH.264ハードウェアエンコード(CentOS7+ffmpeg) | Kung Noi Blog
how to run ffmpeg qsv decoder?
謎のC言語ブログ: FFMPEG/libavcodec のインストール
謎のC言語ブログ: libavcodec による動画のサムネイル作成
ubuntuでessentiaを使う - Qiita
こたつつきみかん » libavcodec / libavformat を使ってみる 1
www.lifeaether.com/overtaker/blog/wp-content/uploads/2010/04/main.c
FFmpeg
FFmpeg ライブラリーを使った動画のデコード(C++ソースコード) | RVF/RC45 blog
ffmpegの使い方:tech.ckme.co.jp
FFmpeg APIで、さまざまな動画を操る - 前編 (1/5):CodeZine(コードジン)
FFmpeg APIで、さまざまな動画を操る - 後編 (1/5):CodeZine(コードジン)
FFmpeg: VA API Decoding
FFmpeg: libavcodec/api-example.c Source File
FFmpeg: doc/examples/decoding_encoding.c
Fedora23 : Intel 構成での VDPAU/VA-API による動画再生支援とか なんとか ネット。

libva

Source Code | 01.org
VA (Video Acceleration) API
[Libva] H.264 decoder simple example
The Libva Archives
gallium3d-xds2007.pdf
01org/libyami: Yet Another Media Infrastructure. it is core part of media codec with hardware acceleration, it is yummy to your video experience on Linux like platform.
gbeauchesne/hwdecode-demos: Test programs to address various HW video decoding APIs like Broadcom Crystal HD, VA-API, VDPAU and XvBA
libva-1.3.1
MesaLib-10.2.7
mesa3d/mesa: Mesa 3D graphics library (mirror; no pull requests here please)

Mesa

SCons

SCons 2.3.6
https://raw.githubusercontent.com/shive/scons-test/master/test001-forwin/Makefile
Python Extension Packages for Windows - Christoph Gohlke
SCons - Wikipedia
SCons - Wikipedia, the free encyclopedia

TGSI

TGSI — Gallium 0.4 documentation
A Very Early Gallium3D TGSI Back-End For LLVM - Phoronix
Gallium3D: TGSI
Gallium3D: gallium/auxiliary/tgsi/tgsi_parse.h File Reference
Gallium3D: gallium/auxiliary/tgsi/tgsi_parse.h Source File
tgsi-specification.pdf

The Mesa 3D Graphics Library
Mesa FAQ
第51回 X,MesaそしてLLVM[その2]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
Compiling and Installing
Mesa 3D - Wikipedia
Mesa (computer graphics) - Wikipedia, the free encyclopedia
Off-screen Rendering
Intel Is Making A High-Performance Software Rasterizer For Mesa - Phoronix
FadisさんはTwitterを使っています: "Intel、Mesaに新しいソフトウェアラスタライザOpenSWRを実装。GPUの無い環境でCPUを使ってOpenGLを動かすための物で、従来からあったLLVMpipeより格段に速いとのこと https://t.co/JFW2Ldte8j"
OpenGL 3.1 APIを実装した「Mesa 9.2」リリース | OSDN Magazine
Mesa3D のレンダラーの切り替え
Fadisさんのツイート: "Mesaからi915(2004年頃のIntel GPU)とr300g(RADEON9800とか)を外そうぜ、という議論がなされている模様。これらの為に今日ほぼ確実に備わっているGPUの機能の有無を調べて分岐が必要になっているのが理由 https://t.co/Nh4c3yArSI"
Mesa Developers Discuss Branching Off Old Drivers, Including R300g & i915 - Phoronix

libva drivers
libdrm-2.4.91
Index of /libdrm
DRM
すらりん日記 » Blog Archive » DRM/KMS についてメモ|No:4291|すらりん日記
Xorg Libraries
Fontconfig-2.13.0
libxcb-1.13
libXau-1.0.8
xorgproto-2018.4
util-macros-1.19.2
xcb-proto-1.13
Introduction to Xorg-7

Wikipedia

Graphics address remapping table - Wikipedia, the free encyclopedia
Video Acceleration API - Wikipedia, the free encyclopedia
Intel Quick Sync Video - Wikipedia, the free encyclopedia
Intel HD and Iris Graphics - Wikipedia, the free encyclopedia
ebuild - Wikipedia
Direct Rendering Infrastructure - Wikipedia
Direct Rendering Manager - Wikipedia
Free and open-source graphics device driver - Wikipedia
Mode setting - Wikipedia
VDPAU - Wikipedia
Nvidia PureVideo - Wikipedia
Nvidia NVENC - Wikipedia
Video Coding Engine - Wikipedia
Unified Video Decoder - Wikipedia

BSD

FreeBSD port overview
Intel_GPU - FreeBSD Wiki
Graphics - FreeBSD Wiki
Use linuxkpi in DRM - FreeBSD Wiki
freebsd/freebsd-base-graphics at drm-next-3.9
「NetBSD 7.0」リリース、Luaカーネルスクリプティングをサポート | OSDN Magazine
drm(7)
Linux KPI-Based DRM Modules Now Working On FreeBSD 11 - Phoronix
freedesktop/mesa-drm: Direct Rendering Manager headers and kernel modules
Graphics drivers and the BSDs [LWN.net]
FreeBSD kernel DRM device code: Main Page
drm(4) - NetBSD Manual Pages
DragonFly On-Line Manual Pages : drm(4)
FreeBSD DRI FAQ
XFree86-4 Direct Rendering on FreeBSD
Tips: FreeBSD DRI

LinuxでGPUの動画再生支援を用いる(主にDebian/Ubuntu向け) - kakurasan
VA-API - ArchWiki
vaapi
Index of /software/vaapi
media-libs/intel-hybrid-driver/intel-hybrid-driver-1.0.1.ebuild - chromiumos/overlays/chromiumos-overlay - Git at Google
hiro99ma blog: [rpi]画面に何か出してみよう (1)
第7章 Linuxカーネル仕様
ubuntuデスクトップ環境設定
Libva API Guide (master branch): Video Acceleration (VA) API
B-2.pdf
util_vaapi.c - chromiumos/platform/avtest_label_detect - Git at Google
【AviUtl】QSVを使用してハードウェアエンコードする方法【QSVEnc】
rigayaの日記兼メモ帳 実験: QSVでデコードしてみると?
「X.Org Server 1.17」リリース、Glamorの強化や汎用ドライバの統合などが行われる | OSDN Magazine
Nouveau - ArchWiki
VA-API - Phoronix
intel/media-driver
gnif/LookingGlass: An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough.

Web

Theora

Theora.org :: downloads - Theora, video for everyone
Xiph.org - theora.git/summary
Theora - Wikipedia
Theora - Wikipedia
libtheora-1.1.1

WebM

Matroska

EBML

EBML ‐ 通信用語の基礎知識
Extensible Binary Meta Language - Wikipedia
libEBML by the Matroska team
EBML RFC (Draft) | Matroska

Matroska - Wikipedia
Matroska - Wikipedia, the free encyclopedia
Matroska形式ファイルを作成するためのツールセット「MKVToolNix 9.0」リリース | OSDN Magazine
VさんはTwitterを使っています: "vi/mkvparse: Simple Python matroska (mkv) reading library, also mkv2xml and xml2mkv https://t.co/qLgG57Hr1X MKV を XML にするのこれ便利"
klaxa/mkvserver_mk2: The streaming solution to end all streaming problems
「MKVToolNix v13.0.0」リリース | OSDN Magazine

The WebM Project | Welcome to the WebM Project
The WebM Project | Developer Overview
webmproject/libvpx
WebM - Wikipedia
WebM - Wikipedia, the free encyclopedia
Rockridgeさんのツイート: "Fx48:Cues要素がサポートされていない(規格外の)WebM形式動画でシークができない問題を修正。 / “657791 – Seeking in WebM files with no Cues element is not …” https://t.co/vHRfj2ztx5"
libvpx - Wikipedia
libvpx-1.5.0
yasm-1.3.0
Which-2.21 and Alternatives
Rockridgeさんのツイート: "Fx53:アルファチャンネル付きWebM動画をサポート。参照:https://t.co/eVMoQbwb6C / “944117 – Implement support for WebM Alpha” https://t.co/NFYvRKd3tM"
Windows 10の「Google Chrome」でHDRビデオの再生がサポートされるように - 窓の杜
Android P DP1: WiFi-RTT、カットアウト、複数のカメラ、アニメーションGIF、NNAPI 1.1

VP8

VP8 - Wikipedia
VP8 - Wikipedia

VP9

Vさんのツイート: ""リアルタイムVP9エンコーディング用のハードウェアプラットフォームとしてFPGAを選択" https://t.co/6Wb1QF2Vqt まじか Twitch 攻めてるな ... 。AWS FPGA サーバとか使ってるんだろうか。"
How VP9 delivers value for Twitch’s esports live streaming
fg118942さんのツイート: "VP9のリアルタイム1080p60エンコードとか出来るのか しかもx264より画質良いとか 将来的にはAV1でも出来るようになるのかな"
fg118942さんのツイート: "NGCodec VP9 Encoder - V01 https://t.co/Kr9JfxliOe これかな?"
Vさんのツイート: "多分それです。AWS F1 インスタンスにチュートリアルはそれを使うらしいです。… "
VP9 - Wikipedia
VP9 - Wikipedia
Microsoft、ブラウザEdgeでGoogleのWebMをサポート ~VP9とOpusの動画/音声コーデックを利用可能に - PC Watch
Announcing VP9 support coming to Microsoft Edge - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog

AV1

特許問題

yohさんのツイート: "https://t.co/l3XIGMF2VK https://t.co/n0M2IljRxi "AV1 License Terms" ファー"
Sisvel | We protect ideas - Sisvel announces the launch of its Video Coding Licensing Platform
Sisvel | We protect ideas - Wi-Fi - Introduction
yohさんのツイート: "少なくとも名乗りを上げてきた JVCKENWOOD, NTT, Orange, Philips, Toshiba IPR Solutions についてはAV1 AOM側との戦いが始まりそうだな... (VP9はGoogle単独だから割とどうでも良い)AOM側のライセンス条件に従うと同企業系からはAV1搭載絶望かもしらんな..."
Vさんのツイート: ""confirming there will be no content royalties but not ruling out royalties on software-based encoding." ソフトウェアエンコーダーからのロイヤリティ回収が目的ってことかな。"
yohさんのツイート: "字義通り解釈すると、正直もう少し事態は悪い気がしていて https://t.co/n0M2IljRxi コンシューマデバイス=デコード能力機器を対象とするようですね WebRTCのようなEnc/Decを要する通信ではなく、一方向動画配信先のWebブラウザも対象に含まれますね… https://t.co/roq8paoPcp"
Sisvel | We protect ideas - Wi-Fi - Introduction
yohさんのツイート: "SISVEL側から公開されているAV1 Licence Termをよむ限りAOM陣営との全面衝突不可避にしか見えないんだけど これまじで正面衝突するつもりなのか..."
yohさんのツイート: "AOM側の(どっかの)資料には「特許係争を戦っていくだけのカネは積んである」とあったので期待はできると思いますが 正直なところ技術的停滞は避けられない予感がします あとは政治力とか市場要因とかいろいろと...… "
Vさんのツイート: "そうだ Patent Retaliation (特許報復) だ。まだ訴えられてはいないから関係ないのかな。"
yohさんのツイート: "https://t.co/URfxPiRuob この時と変わってなければ(そしてたぶん変わってない) AV1利用者の誰かが訴えられた時点で、訴訟側への利用許諾解除を発動することになっていますね。問題があるとすれば、訴訟側が"実際には使っていない"場合はこの枠組みではさほど効力がないということでしょうね。… https://t.co/SUC60Kii1d"
AOM AV1コーデックと特許管理 - Qiita
yohさんのツイート: "と思います。戦争までの最短シナリオは「SISVEL側がAV1コーデック利用者の誰かを訴える」→「AOM側がSISVEL側(にいるパテント行使企業)への契約解除かつ対抗訴訟開始」→AOM陣営企業 vs SISVEL陣営企業 なのかなと...… "
dynamis (でゅなみす)さんのツイート: "Googleが特許ライセンスフリーだと主張してきたVP9とそれをベースにしたAV1について遂に特許プール作ったからみんなランセンス料払えよって言い始めた。 特許フリーでないことを認めるか、該当特許を全て回避するなり買い取るなり無効を訴えるなりの戦いが始まるね https://t.co/T3MqXLMaMR"
ビデオ符号化特許ライセンスプラットフォームを開始:時事ドットコム
dynamis (でゅなみす)さんのツイート: "2009年にGoogleがOn2買収してVP7の後継を無償提供する宣言してから10年、H264などより高品質コーデックとして共同開発したAV1の仕様が固まりハードウェア実装も始まったタイミング。 10年間黙ってたけど実はその技術の一部は俺達5社が特許持ってるから使うなら金払えって言い出したところですね。"
dynamis (でゅなみす)さんのツイート: "10年間黙ってて金になりそうなタイミングを見計らっていた5社はJVC KENWOOD, Philips, NTT, Orange, Toshiba IPR Solutionsと三社が日本企業。因みに日本からもSOCIONEXTなどはAoMに加盟して特許フリー動画コーデック支援側に回っており日本の特許保有者は皆同じというわけではない。"
dynamis (でゅなみす)さんのツイート: "VP7からVP9はあくまでもGoogleが一社で勝手に作ってるコーデック状態だったしハードウェアサポート等も少なく特許あるよって言えば回避する実装に変更された。 AV1ではIntel, Nvidiaなどハード実装側も加わり仕様確定させて変更しにくくなったタイミングを狙ってきたのは明らかなのよね。"
dynamis (でゅなみす)さんのツイート: "日本企業が多いのは単に旧来のマルチメディア企業と最近のネット企業という異なる時代の対立の構図になると日本が技術開発に強かった時代があったからとか、Googleなどと争う意志を持てる企業だからとか、主要ビジネスの成長が見込めず既存知財は何としても有効活用したいとかそんなところ?"
dynamis (でゅなみす)さんのツイート: "一番男前な対応はIntelなどSoCベンダー側がハードにかかる部分は全負担、ソフト側はH264でCiscoがやったようにGoogleなどがダウンロード可能なバイナリーを全CPUとOS向け(多分iOS以外)に配布して肩代わり。 一番乱暴なのは特許無効訴訟で全面戦争しつつ実装側の変更を進めて実質無効化で黙殺。"
Makoto Kato ︎︎さんのツイート: "ソフトウェア特許は好きではないけど。 AV1の件で脊髄反射のように叩いてる人は、自由だと(提供会社が)言っているものがホントに問題ないと信じてるのかなぁと。個人的には裁判にならないと実際の真実なんてわからないとしか言えないでしょ。お互いに言い分あるだろうし"
Makoto Kato ︎︎さんのツイート: "言い換えれば、めんどくさいから検索会社がすべての特許買えばいいんじゃないの?お金あるでしょと思ってる"
動画圧縮技術「AV1」、知財管理のシズベルが特許リスト公開--オープンな方針に逆行 - CNET Japan

Qiita

AV1 specification を読む - Qiita
AOM AV1コーデックと特許管理 - Qiita
AV1コーデックメモ - Qiita

Wikipedia

Alliance for Open Media - Wikipedia, the free encyclopedia
AOMedia Video 1 - Wikipedia
AOMedia Video 1 - Wikipedia

@rockridge07

RockridgeさんはTwitterを使っています: "GoogleのVP9、CiscoのThor、MozillaのDaalaの各技術は、Alliance for Open Media(AOM)が開発するAV1コーデックに統合される。今後MozillaはAV1の開発に力を入れていくが、… https://t.co/16124oJfSr"
Rockridgeさんのツイート: "Mozillaが開発に参加するAV1コーデックは、VP9をベースに他のコーデックの技術を取り入れて改良を重ねたもの。解析ツール(AV1 Bitstream Analyzer)をEmscriptenにより変換して、Webブラウザ上で… https://t.co/etyrceHnDd"
Rockridgeさんのツイート: "AV1コーデックの解析ツール(AV1 Bitstream Analyzer)は、C言語からJavaScriptに変換されることでパフォーマンスの低下が生じる。だが、WebAssemblyに変換されれば問題はかなり解消されそうだ。 https://t.co/LGNXzzJfZn"
Rockridgeさんのツイート: "Fx55:AOMedia Video 1(AV1)形式の動画再生をサポート。 / “1314147 - (AV1) Support the AOMedia Video 1 (AV1) codec format” https://t.co/e8t9yVybrn"
1314147 - (AV1) Support the AOMedia Video 1 (AV1) codec format
Rockridgeさんのツイート: "Alliance for Open Media(AOM)に参加するMozillaとBitmovinが、AV1形式の動画とプレイヤーのデモを公開。Firefox Nightlyで閲覧可能。AV1はVP9やH.265/HEVCより25… https://t.co/KXxTpyGlHk"
AOM Analyzer
Vさんのツイート: "AV1 ビルドして、変換してみたけど恐ろしく遅い。全然コード読めてないのでなんともだが、リアルタイム向けの仕様とかあるんだろうか。"
Vさんのツイート: "今のところ AV1 は CPU 変換は現実的ではないというところまで把握した。"
Vさんのツイート: "WebRTC にのっていくのは早く行けるだろうけど、バッチで変換したりする場合はちょっと考える必要がある。"
Vさんのツイート: "あと Chrome が AV1 をいつ実装するのか、というのも追いかけられてないな。Firefox は何故か頑張ってる。"
Rockridgeさんのツイート: "AppleがAlliance for Open Mediaに加入。SafariがAV1をサポートする可能性が高まってきた。 / “Apple joins alliance to shrink your online videos…” https://t.co/QvTG9zNl9X"
Rockridgeさんのツイート: "AppleがAV1フォーマットをサポートすれば、ロイヤリティフリーな動画コーデックが広く普及することになる。Mozillaは約11年前から特許による負担のないメディアを勝ち取るべく闘ってきており、AV1の普及は勝利を意味する。 https://t.co/G7Gi42rUy3"
Rockridgeさんのツイート: "AV1は動画だけでなく静止画にも使え、同一サイズであればJPEGよりもかなり高画質となる。JPEGに取って代わるのは無理でも、WebPの後継フォーマットにはなれるかもしれない。 / “Photo format from Goog…” https://t.co/73dkRja6y0"
Rockridgeさんのツイート: "ISO/IECのワーキンググループであるMPEG、その議長であるLeonardo Chiariglione氏が、このまま手を拱いているとHEVCがAV1に負けてビジネスモデルが崩壊すると危機感をあらわにしている。 / “A cr…” https://t.co/8GITGNF9e7"
Rockridgeさんのツイート: "FacebookがAV1形式の動画をサポートすると発表。ただし2018年4月24日現在、Chrome Canaryでフラグを有効化しなければならず、Firefox Nightlyも未対応。参照:… https://t.co/Dl2IyXnz31"
Rockridgeさんのツイート: "AV1動画フォーマットでは、Chroma from Luma(CfL)と呼ばれる技法を導入し、キーフレームの圧縮に成功したという。 / “next generation video: Introducing AV1” https://t.co/NBKVcWHcGK"
Rockridgeさんのツイート: "AV1動画フォーマットでは、Constrained Directional Enhancement Filterと呼ばれる技法を導入して、ブロックノイズの低減に成功したという。 / “AV1: next generation v…” https://t.co/WCaZVg4Qxj"
Rockridgeさんのツイート: "MozillaがAV1動画フォーマットを推す理由は2つ。1つはロイヤリティフリーであること、もう1つは競合より約30%も圧縮率が高いことである。 / “Modern codecs like AV1 can bring bette…” https://t.co/MpAeOVLEQa"
Rockridgeさんのツイート: "Fx63:AV1コーデックのバージョン1.0.0を実装した。media.av1.enabledの設定をtrueにすると有効化される。 / “1445683 - Update aom” https://t.co/zIxTOiStZf"
Rockridgeさんのツイート: "AV1動画フォーマットの特徴を解説したスライド(PDF)。参照:https://t.co/zAXPAoKuqo / “Into the Depths: The Technical Details Behind AV1” https://t.co/BIcZnD7QKP"
Into the Depths: The Technical Details Behind AV1 - Mozilla Hacks - the Web developer blog
1_02_Egge.pdf
Rockridgeさんのツイート: "Fx65:Windows版で、AV1形式の動画再生がデフォルト有効化。 / “1452146 - Flip AV1 pref (media.av1.enabled) for Windows to true” https://t.co/boBODEvo7e"

@fg118942

fg118942さんのツイート: "これ注目されてるから速度も書いとく Ryzen 2400Gでhttps://t.co/OXfUoKhqhT のChimera-AV1-8bit-1920x1080-6736kbps.ivfのデコードで131fps出る libaomは66fpsなので倍近く早い… https://t.co/QsWUpPWIpo"
S3 Bucket Listing Generator
fg118942さんのツイート: "dav1dにAVX2の最適化がいくつか入ったらあっという間にlibaomよりデコード速度が速くなった。 シングルスレッドでもマルチスレッドでも。"
fg118942さんのツイート: "Video kodek AV1 nahradí nová nekompatibilní verze AV1.1.0 - https://t.co/jJnLNjQPSS https://t.co/V2XzRFPUrz AV1また仕様変わるのか グダグダやな"
fg118942さんのツイート: "6月に仕様が決まったあとに改善点が指摘されてたけど既に企業が運用を開始してるから変更を受け入れられないと突っぱねてたのに今になって改善を取り入れる感じか?"
OpenVisualCloud/SVT-AV1: Welcome to the GitHub repo for the SVT-AV1 encoder! To see a list of feature request and view what is planned for the SVT-AV1 encoder, visit our Trello page: http://bit.ly/SVT-AV1 Help us grow the community by subscribing to our SVT-AV1 mailing list! http://bit.ly/svt-av1-mailing
Vさんのツイート: "H.264 vs H.265 vs VP8 vs VP9 vs AV1 – Chienomi https://t.co/JnENcRU9OG 2018 年 8 月の記事 VP9/AV1 が酷評されてた。結局設定次第なんだろうな、自分の印象だと実時間エンコードで VP9 はとてもキレイという印象だし。"
H.264 vs H.265 vs VP8 vs VP9 vs AV1 – Chienomi
fg118942さんのツイート: "VP9はマルチスレッドでCPUあんまり使ってくれないから個人ユーザーには使い勝手が悪いなとは確かに思う YouTubeは動画を細かく分割して並列でエンコードしてるみたいだから問題ないんだろうけど https://t.co/MBYkP3KJ9w"
fg118942さんのツイート: "あとVP9にしろAV1にしろ心理的画質の調整はx264やx265ほど熱心にされてない印象だからベンチマークのスコアでは上回っていても目視だと負けることもあるかもしれないなあ"
fg118942さんのツイート: "自分は視力あんまり良くないし真面目に画質確認すると疲れるので最近はVMAFに頼りっきりですが"
fg118942さんのツイート: "AV1の特許で揉めてる問題、英語力がないので結局の所どういうことなのかよくわからない。"

Alliance for Open Media
Amazon、Netflix、Google、Microsoft、Mozillaなど大手7社が次世代のビデオフォーマットでオープンソース連盟を結成 | TechCrunch Japan
aomedia Git repositories - Git at Google
AOM-AV1-Video-Tech-meet-up.pdf
DASH playback of AV1 video in Firefox – Mozilla Hacks – the Web developer blog
Apple の AOM 加盟と AV1 への期待 | blog.jxck.io
GoogleやNetflixが主導するビデオコーデック「AV1」が正式リリース、4Kストリーミングの普及に期待 - GIGAZINE
The Alliance for Open Media Kickstarts Video Innovation Era with “AV1” Release – Alliance for Open Media
Get Started – Alliance for Open Media
HEVC/H.265対抗の動画コーデック「AV1」が正式リリース ~ロイヤリティフリーで利用可能、HEIF対抗も登場か - PC Watch
株式会社ソシオネクストさんのツイート: "【プレスリリース】クラウド上のFPGAを利⽤するAV1エンコーダーを実装 https://t.co/oqWIG8AUR3… "
sn_pr20180606_01j
yohさんのツイート: "10秒でわかるAV1エンコード:フレーム全体をばーっと再帰分割してIntra/Inter混合予測画像との差分値を量子化でざくざく切り捨てて複数シンボル算術符号化でぎゅぎゅーっと縮めて次フレーム予測のためにノイズ除去&エッジ復元して取っておくサイクルを繰り返します。"
Chromium Blog: Chrome 69 Beta: AV1 video decoder, CSS tricks, and more
FFmpeg 4.1 Brings AV1 Parser & Support For AV1 In MP4 - Phoronix
Microsoft、H.265より高画質な「AV1」コーデックのベータ提供開始 - PC Watch
dynamis (でゅなみす)さんのツイート: "気付いたらFirefoxのAV1対応がデフォルト音に切り替わってた。何故Chromeより有効化が遅くなったのかは知らないけど、2015年にAoMedia立ち上げたときからの取り組みだから4年越しの取り組みが適った感じですね https://t.co/SUnTVkPz7r"
Better web video with AV1 codec — Martian Chronicles, Evil Martians’ team blog
Firefox 67には次世代コーデック「AV1」の世界最速デコーダーが採用されている - GIGAZINE
Netflixが高性能&ロイヤリティフリーなコーデック「AV1」をAndroid向けアプリに採用 - GIGAZINE
Makoto Kato ︎︎さんはTwitterを使っています 「AV1のハードウェアデコードはこのバグを見ると、Chromiumの話やLinuxのVAAPIの話も含めて詳しい https://t.co/rmDC3ulEsO」 / Twitter
1652945 - Add AV1 hardware decoding support
Google Chrome 90安定版リリース、AV1エンコーダー搭載で細い回線でのビデオ会議の品質が向上 - GIGAZINE

AV2

AV1 Roadmap - Alliance for Open Media
AOMedia Research Symposium 2019 - Alliance for Open Media
AOMedia looks ahead to AV2 as AV1 picks up momentum - Rethink
AV2 - YoyaWiki Plus!

テスト用にHLSライブストリーミング配信データおいときます|suo-takefumi|note

H.264

H.264の秘密 | コンピュータサイエンス | POSTD
Cisco の H.264 コーデックにより Web 上でのビデオの相互運用性が向上 | Mozilla Japan ブログ
MPEG LA、H.264の共同ライセンス体系を発表
US NEWSの裏を読む - ライセンス料を巡って揺れる次世代の動画標準「MPEG-4」:ITpro
CODECのライセンス料について - プロセッサ(DSP / ARM / MCU) - Japanese E2E (日本語コミュニティ) - TI E2E Community
本の虫: H.264の特許利用料、緩和さる
OpenH264
幅広く利用される動画圧縮コーデック「H.264/MPEG-4 AVC」はどうやって巨大なサイズのムービーを劇的に圧縮するのか? - GIGAZINE

HEVC

H.265 - Wikipedia
High Efficiency Video Coding - Wikipedia
ストリーミングやTV放送で動画圧縮技術「HEVC」の特許使用料が廃止 - PC Watch
Rockridgeさんのツイート: "「HEVC Advanceの特許ライセンス対象から『サブスクリプション』と『タイトルごと』のコンテンツ配信を除外することにより、HEVCの普及を更に加速」させるとの発表。AV1のプレッシャーが効いている。 / “HEVC Adv…” https://t.co/mKQxi5AWaf"
ハイフレームレート4Kライブ伝送を実現するHEVCコーデック。NTTが開発 - AV Watch
VさんはTwitterを使っています 「H.265 対応のハードウェアとそれを利用するソフトウェアの両方提供している NVIDIA に確認したら「ロイヤリティーは含まれていないので自分で解決してください」という回答だった。」 / Twitter
H.265/HEVC特許暗黒時代 - Qiita
10bit 精度で 1bit のズレも発生しないテストパターン動画(H.265)を作成する - toruのブログ

VVC

Versatile Video Coding (VVC) | JVET
FadisさんはTwitterを使っています 「H.265/HEVCの後継となる動画圧縮標準規格、H.266/VVCの規格が完成したらしい。H.266はH.265と比較して顕著な品質低下を伴わずにビットレートを半分に抑える事ができるとされている。また8Kの映像やHDR、全方位映像等をサポートする」 / Twitter
FadisさんはTwitterを使っています 「https://t.co/6Fab8kFoN0」 / Twitter
H.266/VVC Standard Finalized With ~50% Lower Size Compared To H.265 - Phoronix
「H.265/HEVC」と同じ画質でファイルサイズを50%削減できる次世代動画圧縮規格「H.266/VVC」が登場 - GIGAZINE
新ビデオコーディング標準H.266、H.265に対して50パーセントの効率向上を可能に
Catching Up with VVC - Streaming Learning Center
https://jvet-experts.org/doc_end_user/current_document.php?id=10541

Widevine

デジタル著作権管理の存在がネックとなりインディーウェブブラウザは新規参入の余地がないという指摘 - GIGAZINE
Googleがオープンソースブラウザ「Metastream」でのDRMコンポーネント利用を拒否 - GIGAZINE
Googleはデジタル著作権管理を用いてどのようにオープンソースのブラウザ開発を独占的な管理下に置いているのか? - GIGAZINE
Google Chromeのデジタルコンテンツ保護機能に「保護されたコンテンツ」を保存可能なバグ - GIGAZINE
「Firefox 47」正式版がリリース、Widevine CDMやVP9コーデックをサポート - GIGAZINE
Disney+の映像はLinux搭載PCでは再生できない可能性がある - GIGAZINE
MicrosoftのEdgeは4大ブラウザの中で唯一Netflixを1080pで再生できることが判明 - GIGAZINE

ProRes RAW

Final Cut Pro Xがアップデート、ProRes RAWと高度なクローズドキャプションが可能に - Apple (日本)
アップル、新フォーマット「ProRes RAW」採用のFinal Cut Pro X 10.4.1提供 - AV Watch
米アップル、ProRes RAWの搭載とクローズドキャプション機能を強化したFinal Cut Pro Xをアップデート - PRONEWS
Final Cut Pro X、新ビデオ形式「ProRes RAW」、高度な字幕ツールも | マイナビニュース
DJI ZENMUSE X7がApple ProRes RAWに対応|DJI JAPAN株式会社のプレスリリース
DJIのSuper35mm空撮カメラ「X7」がProRes RAWや14bit CinemaDNG対応。exFATも - AV Watch
DJI、Zenmuse X7のApple ProRes RAW対応を発表 - DRONE | ドローン専門メディア
ATOMOS、ProRes RAWに対応するSHOGUN INFERNOやSUMO 19のアップデートを発表 - PRONEWS

CinemaDNG

CinemaDNG - Wikipedia
CinemaDNG File Format
アドビ、高画質RAWビデオ規格「CinemaDNG」のベータ版を公開 - CNET Japan
アドビ,高画質RAWビデオ規格「CinemaDNG」のベータ版を公開 | 日経 xTECH(クロステック)
AtomosがCinemaDNG RAW記録を無償アップデート | cinema5D
Vol.081 開花の時を迎えたCinemaDNG | VIDEOJOURnAL on the web|ビデオジャーナル
DJI、高性能飛行モードを備える空撮用ドローン - CinemaDNG撮影も可能 | マイナビニュース
ユーザーはBMCCをどう評価しているか | Blackmagic Cinema Camera | Shuffle by COMMERCIAL PHOTO
Inspire 2 License Key —DJI

SRT

SRT Alliance - Open-source SRT - Secure Reliable Transport
Haivision/srt: Secure, Reliable, Transport
ffmpeg 4.0 に入った新しい映像伝送プロトコルSRTを試す - Qiita
緻密u 💮さんのツイート: "UDPを拡張したUDTを採用。ほう。UDPを通せれば通過できるんかな / “SRT Secure Reliable Transport とは何か? – meteor – Medium” https://t.co/B1RZmVlEXP"
SRT Secure Reliable Transport とは何か? – meteor – Medium

FFmpeg

FFmpeg
FFmpeg/FFmpeg: mirror of git://source.ffmpeg.org/ffmpeg.git
mabeijianxi/small-video-record: 利用FFmpeg视频录制微信小视频与其压缩处理
「FFmpeg 4.0」が公開 ~Windows XPのサポートは終了 - 窓の杜
「FFmpeg 4.0(Wu)」リリース | OSDN Magazine
「FFmpeg 4.1」が公開 ~“AV1”のパーサー、“ATRAC9”・“AVS2”デコーダーを追加 - 窓の杜
FFAStransというトランスコードソフトについて
FFmpeg API の使い方(1): デコードしてみる - Fixstars Tech Blog /proc/cpuinfo
FFmpeg APIの使い方(2): シークやAVFrameなど - Fixstars Tech Blog /proc/cpuinfo
FFmpeg APIの使い方(3): エンコードしてみる - Fixstars Tech Blog /proc/cpuinfo
FFmpeg APIの使い方(4): エンコード他 - Fixstars Tech Blog /proc/cpuinfo

HandBrake

HandBrake: Open Source Video Transcoder
HandBrake/HandBrake: HandBrake's main development repository
【やじうまPC Watch】エンコードツール「Handbrake」公式サイトでマルウェアと置換される 〜2日から6日にかけダウンロードしたユーザーに対して開発者が注意喚起 - PC Watch
動画トランスコーダー「HandBrake 1.1」リリース | OSDN Magazine

VLC

Sending Patches VLC - VideoLAN Wiki
videolan/vlc: VLC media player - All pull requests are ignored, please follow https://wiki.videolan.org/Sending_Patches_VLC/

mpv

mpv.io
mpv-player/mpv: 🎥 Video player based on MPlayer/mplayer2

MPC-HC

Media Player Classic - Home Cinema
Home · MPC-HC
mpc-hc/mpc-hc: MPC-HC's main repository. For support use our Trac: https://trac.mpc-hc.org/
定番プレーヤー「Media Player Classic Home Cinema(MPC-HC)」がついにv1.7.13で更新終了の見込み、原因は開発者不足 - GIGAZINE
MPC-BE download | SourceForge.net

DVD・Bluray

libbluray - VideoLAN
libdvdnav - VideoLAN
DVD Resources for Open Source Development

字幕

libass/libass: libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format.
xbmc/libass: libass for XBMC (win32 special)
SSA/ASS Subtitles | Matroska
SubStation Alpha - Wikipedia
ASS/SSA - 字幕制作
ASS 仕組みと書き方
SSA字幕作成リファレンス - faireal.net
a3r (ASS_Help3r) – ASS字幕タイミング・タイプセッティング支援
テキスト字幕ファイル(SRT, SSA, ASS)の利用方法 - 動画投稿Tips - アットウィキ

SmoothVideo Project

SmoothVideo Project (SVP) - motion estimated frame interpolation with any video player and frame doubling in real-time
GPU Compatibility - SmoothVideo Project (SVP) - frame doubling interpolation
SVP3:User manual - SmoothVideo Project (SVP) - frame doubling interpolation
【GPU】 Fluid MotionとSVP : ニッチなPCゲーマーの環境構築
便利ツール:SVP4(SmoothVideo Project):さんさんのブロマガ - ブロマガ
是々録画: SVP (SmoothVideo Project) で60fpsなヌルヌル体験
動画再生用にSVP4を導入。 - WebLog
動画がヌルヌルに!! 60fpsの倍速補完で滑らか再生してくれるフリーソフト 『Smooth Video Project』 | PCあれこれ探索
YouTubeも60fpsでヌルヌル動画視聴できるSVPの次期Verが来る! - 週刊アスキー
これがヲタクの生きる道! 動画のフレームレート補完
手持ちの動画を全部見返したくなるヌルヌル高画質化無料ソフトがヤバイ! - 週刊アスキー
備忘録:ソフトウェアで倍速補完ヌルヌル動画再生:気が向いたら何か書くtetのブロマガ - ブロマガ

Vulkan

FadisさんはTwitterを使っています 「Vulkan 1.2.175で動画拡張が取り込まれた話。GPUはしばしば動画のエンコードやデコードを行うハードウェアを備えているが、この拡張に対応している場合そうしたハードウェアを使ってVkBufferに入った動画の断片をVkImageの列にデコードしたり、逆にエンコードしたりできる https://t.co/WYxlnjeh0T」 / Twitter
Vulkan Video Arrives For New Industry-Standard Video Encode/Decode - Phoronix
FadisさんはTwitterを使っています 「動画のデコードは変換の状態を持つVkVideoSessionKHRを作り、バッファを用意して、動画に対応したキューに対してvkCmdDecodeVideoKHRを積むことによって行われる。Vulkanの他のコマンド同様処理は非同期で行われる」 / Twitter
FadisさんはTwitterを使っています 「対応する動画の形式は形式毎に拡張が定義され、さしあたってはh264によるデコード、エンコードとh265によるデコードが定義されている。h265エンコードは準備中で、将来的にAV1、VP9のための拡張も用意するつもりらしい」 / Twitter
FadisさんはTwitterを使っています 「エンコーダを本当にプロセッサと独立したハードウェアとして積んでいる場合は動画専用キューが生えて、GPUでソフトウェアで動画をエンコード、デコードしてる場合はグラフィックのキューと同じやつに動画対応フラグが立つ感じになるのかな」 / Twitter

GitHub

Bilibili/ijkplayer: Android/iOS video player based on FFmpeg n3.2, with MediaCodec, VideoToolbox support.
My View - MantisBT
jp9000/obs-studio: OBS - Free and open source software for live streaming and screen recording
rexbu/VisioninSDK: 类似faceu的移动端视频美颜、视频滤镜、人脸实时关键点追踪、实时整形(瘦脸大眼睛等)、动态贴纸
xl-player-developers/xl_player: A high performance Android media player, base on ffmpeg and MediaCodec, support VR video.
begeekmyfriend/yasea: RTMP live streaming client for Android
PipeWire
PipeWire/pipewire: Multimedia processing graphs
gopro/cineform-sdk: The CineForm video codec SDK.
tophf/parsemkv: Matroska .mkv file parser in PowerShell, doesn't require external tools, produces a hierarchical object tree, optionally pretty-prints to console
digital_video_introduction/README-ja.md at master · leandromoreira/digital_video_introduction

Twitter

vyv03354さんのツイート: "@d_toybox OpenH264はvideo要素で使うには機能不足らしく、WebRTCでしか使いません。AdobeのDRMプラグインを非DRM動画でも使おうという案もありましたが、Facebookで問題が起きて頓挫したようです。"
「Firefox 33」リリース、OpenH264をサポート | OSDN Magazine
Rockridgeさんのツイート: "動画コーデックのDaalaは改良が続けられており、過去18か月の間に、同一品質の動画のファイルサイズが50%減少した(2016年5月時点)。 / “Revisiting Daala Technology Demos” https://t.co/sWjpsN0dw1"
Rockridgeさんのツイート: "Fx49:動画再生時にSSSE3命令セットを使用してパフォーマンスを向上。SSSE3はIntel Core 2以降のCPUでサポートされているようだ。 / “1266491 – Use an ssse3 scaler for v…” https://t.co/WxN116hQBb"
Rockridgeさんのツイート: "Fx51:MP4メディアコンテナにVP9コーデックを格納した新規格をサポート。Netflixが提案し、Vimeoも関心を示している規格だとか。 / “1240412 – (vp9-in-mp4) Add VP9-in-MP4 s…” https://t.co/jev55QQrDY"
Kentaro Ebisawaさんのツイート: "コンシューマ機器と自動車に搭載するH.264の要件の違い。H.264は標準規約だが、共通する標準実装があるわけじゃないよ、と。 ... why supporting H.264 isn’t enough for automotive https://t.co/Qx5xkaGHGK"
videantis » 10 reasons why supporting H.264 isn’t enough for automotive Ethernet
Shirouzu Hiroaki(白水啓章)さんのツイート: "はい。私もデジタル信号処理の専門家ではないですが。 離散コサイン変換すると、元データが復元可能な全ての全周波数成分が得られるので、低周波成分だけ取り出すと低解像度用に使い回せます。 (まあ使い回さずとも、画素数が1/4なら負荷は25%ですが)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "「全ての全周波数」って、、、どうも「馬から落ちて落馬して」的な文章に気付かずに送ってしまうことが多い。… "
yohさんのツイート: "マルチメディア処理の{En,De,Trans}coderのソースコードがカオスで汚ったないのは それが現実世界を反映しているからです 100%仕様準拠したデータなんてお花畑だし 対向装置も100%どこか間違ってるし その一方で動作性能要望と互換性サポート要望は無限にくるんですよ"
Rockridgeさんのツイート: "特許で保護されたコーデックが私企業に独占された場合の危険性を訴えるSFというか寓話。独占が起きる前に声を上げ、行動を起こすべきだとする。MozillaはVR/ARを中心にWeb上で動画の役割が大きくなると見ているのだろう。 https://t.co/m6mZdF6y1i"
くいなちゃんさんのツイート: "Radar(レーダー) って略語だったのですね。 RAdio Detection And Ranging だそうです。 Codec(コーデック) も COder/DECoder の略語ですし、略語と知らずに使っている単語は結構ありそうですね。"
ゆきさんのツイート: "CORB shouldn't block application/dash+xml videos. https://t.co/5AZp6ox1m6"
2dae0c6dd178d1b0255a87164300a5d90f1bc033 - chromium/src - Git at Google

GPU

NVIDIA

Fadisさんのツイート: "GPUは複数のスレッドを束ねたSM単位で動いている為、Draw時にメッシュは1つのSMで処理できる塊(Meshlet)に分割してから空いているSMに割り当てられる。プリミティブが増減しない限りMeshletを毎回求めるのは無駄なので、静的に分割したMeshletをGPUに与えて性能向上を図ろう、というアイデアが出てくる"
Fadisさんのツイート: "NVIDIAが提案するメッシュシェーダは、任意のデータを読んで処理するMeshletを決定するタスクシェーダと任意のデータを読んでMeshlet毎にプリミティブを生成するメッシュシェーダの2つのシェーダからなり、頂点、テセレーション、ジオメトリシェーダと固定機能の頂点フェッチとカリングを置き換える"
Fadisさんのツイート: "NVIDIAによるメッシュシェーダの解説 https://t.co/c1su8LOMF3"
Introduction to Turing Mesh Shaders | NVIDIA Developer Blog
Fadisさんのツイート: "割といつもの事だけど、NVIDIAさんカジュアルに巨大な変更を拡張で突っ込んでくるなぁ"
Fadisさんのツイート: "NVIDIAさんの拡張が豪快すぎる事例としては、グラフィックパイプラインとは別に新しいパイプラインを追加してキューとメモリとシェーダのフォーマットだけVulkanと共有した物をVulkanの拡張と言い切ったレイトレーシング拡張なんてのもある https://t.co/jkWFTL0IMO"
VK_NV_ray_tracing(3)

GPUはいつ描画するのか? | ひにけにGD
OpenGLでの描画のタイミング 【OKWave】
OpenGLで描いて画像ファイル出力 【OKWave】
第三回_プレゼン資料(なるほど3Dグラフィック描画の仕組み).pdf
DrawCall (ドローコール) って何? 描画パフォーマンスを考える一つの指標を見る - Tech Inside Drecom
Fadisさんのツイート: "モバイルでなくても「プロセッサよりメモリが辛いからでっかいテクスチャを貼るな生成しろ」はイマドキのGPUだとよく言われるな"
Fadisさんのツイート: "とはいえ、デザインするマンにシェーダの知識がない体制で開発する場合、丹精込めて人間が描いた絵を貼るしかなくて、結果驚きのもっさりゲーム誕生する"
本の虫: ブラウザーのCanvas/WebGLのブラックリスト
本の虫: OpenGLドライバー品質の実情
本の虫: DolphinエミュレーターとOpenGLドライバー、栄光と恥
KaiGai Kohei 🌻さんのツイート: "write combined modeでGPU device memoryをマップしたら、memcpy()によるRAM2GPU転送でもソコソコの転送速度が出るという学びを得た。"
KaiGai Kohei 🌻さんのツイート: "しかも仮想アドレスを持っているという事は、NVME READコマンドをセットアップするのにScatter Gather Listを使えるという事になるのかな。 (今までは PRP List を使っていた)"
GPUドライバのテストフレームワーク「GraphicsFuzz 1.2」リリース | OSDN Magazine
CUDAでカーネル関数がスキップされる(ように見えた) - in neuro
Fadisさんのツイート: "PS4をエミュレートする猛者現る。OrbitalはCPUにx86の仮想化支援を使い、GPUに対する操作を全てVulkanの操作に変換してホストのGPUで実行するPS4エミュレータ。この為にAMD GPUのネイティブバイナリを入力としてSPIR-Vを出力するコンパイラを実装してしまったらしい https://t.co/K4eIs2r9CK"
Orbital: A PlayStation 4 Emulator That Is Emulating The PS4's AMD GPU Using Vulkan - Phoronix
島鉄雄さんのツイート: "ゲームはフレームバッファがトリプルで GPU のコマンドバッファもダブルバッファだから、入力した結果を見てるのは最低でも3~4フレームずれてる。 テレビ側は速い物でも遅延は1フレーム程度あるから、ゲーム機で遊んでても入力から4~5フレームの遅延がある。 ネットで数フレーム遅れても気にならない… https://t.co/LB2SEP3BPQ"
島鉄雄さんのツイート: "ちなみに、GPU のコマンドバッファをダブルにするのは CPU → プレイヤーの入力に応じて描画コマンド作成 GPU → 前のフレームの描画コマンドを実行 とする事で、CPU と GPU をフレームの頭から同時にスタート出来るから。"
島鉄雄さんのツイート: "ただ OpenGL ES 使うとコマンドバッファという概念がないから、みんな CPU で処理中に残り時間が無い所で Draw コールして処理落ちしまくってるかもしれない そうならないように、自前でコマンドバッファを作成して、フレームの頭から高速に Draw コールに変換して、CPU の処理は別スレッドでやるべし"
はじめてのにき(2019-04-10)
Intel HD Graphics - OSDev Wiki
Web High Level Shading Language | WebKit
「WSL 2」に「DirectX」が追加 ~将来的にはLinux GUIアプリへの対応も - 窓の杜

スライド

Next Gen Rendering Engine (BlinkOn 8) - Google スライド
今、我々は、 GUI の設計について 何を考えるべきか // Speaker Deck
Servo parallelism
Kentaro Haraさんのツイート: "「Blinkレンダリングエンジンって何やってるの?」という話をとてもわかりやすく解説したスライドがこちら(https://t.co/QFrSQLvgG0)。HTMLが届いてからそれがピクセルとして描画されるまでに舞台裏で何が起きてるのかがよくわかる。Blinkのレンダリングパイプラインはよくできてると思うのです。"
Life of a Pixel 2018 - Google スライド
Rockridgeさんのツイート: "WebRenderの特徴、長所と短所、従来のグラフィックスパイプラインとの違い、Pathfinderとの関係などについて述べたスライド。 / “201808-webrender” https://t.co/V5K6PkSyDv"
pcwalton.github.io/slides/201808-webrender/
ベジエ曲線のなめらかさの話 / Bézier Smoothness - Speaker Deck
グラフィックデザイナーやディレクターがhtmlコーディングの指示に関して注意すべきこと / Shiro Kuro Inc. // Speaker Deck
ふんいきがわかるCSSレイアウトの知識 | Money Forward Engineers' Blog
ふんいきがわかるCSSレイアウトのちしき // Speaker Deck
HTML6 でも CSS4 でもない Web 技術のゆくえ // Speaker Deck

外国語-1

Wikipedia

Keyboard layout - Wikipedia
AltGr key - Wikipedia
QWERTZ配列 - Wikipedia
Technical standards in Hong Kong - Wikipedia
British and American keyboards - Wikipedia
アラビア語キー配列 - Wikipedia
Arabic keyboard - Wikipedia
Dzongkha keyboard layout - Wikipedia
Hebrew keyboard - Wikipedia
InScript keyboard - Wikipedia
Urdu keyboard - Wikipedia
デッドキー - Wikipedia
Dead key - Wikipedia

Twitter

Mantarohさんのツイート: "1590円で改善。 やはり、英語圏(特にUS圏)に合わせた仕様が多いなとキーボード変えてから気が付く…… "
Urabe, Shyouheiさんのツイート: "英語キーボードの人気が根強いという言い方には違和感しかない。日本みたいな縮小する市場で独自規格を使い続けてる方が「根強い人気」という表現でしかるべきだろう。長期的にはJISキーボードが淘汰されていく流れは不可避だよ。製造コストが回収できなくなる日が来るもん。 https://t.co/nEbt598Is6"
「英語キーボード」の根強い人気が続く理由 - ITmedia NEWS
Urabe, Shyouheiさんのツイート: "日本の市場が縮小するのはつまるところ日本の人口が減るからなのであってこればかりは今から急に仕込んでも何十年単位でどうにもならん。キーボードなんてどんなマニアでも100枚200枚買うようなものでもない。人が減りゃそれだけ市場が縮むというだけの話だ。"
なかのん&マジックさんのツイート: "そーいや昔、USのAmazonでブラジルのポルトガル語キーボードって書いてるのを発見したんで取り寄せたら、ポルトガルのポルトガル語キーボード届きやがったことが。半分返すから勘弁して的なメールで折れたけど。面倒だったんで。"
なかのん&マジックさんのツイート: "ABNTじゃないキーボードなんて表面の刻印の問題だけで価値ねーよ……"
なかのん&マジックさんのツイート: "ちなみに、商品画像は超低解像度で見にくかったけど、左Shiftの横にABNT固有のキーがあるのは分かってたんで単純にその業者が悪い。"
なかのん&マジックさんのツイート: "Macに純正じゃないキーボード接続した時に左Shiftキーの横のキーを押ささせれるのはそういう訳です。"
なかのん&マジックさんのツイート: "左Shiftと右Shiftの横にABNTかJISの拡張キーが存在してるので、あの判定方法考えたヤツは頭良い。"
KIMATA RobertHisasiさんのツイート: "数字の種類、ラテン文字やキリル文字などと共に使われるアラビア数字とは別にアラビア文字と共にで使われるインド数字があり、さらにアラビア文字で数を表すアラビア文字記数法があるので素で混乱する"
なかのん&マジックさんのツイート: "アラビア語のキーボード見た時に最初に違和感あったのは、アラビア数字じゃないってことでした……"
なかのん&マジックさんのツイート: "タイ語レイアウトなんかもそうだけど、ASCIIの数字が常に入力されるとは限らないので、i18nなキー処理では入力される文字を見ておけば処理できるわけでもなく。"
なかのん&マジックさんのツイート: "FirefoxのCtrl+1とかは物理的に数字キーなので別条件も追加確認してユーザの意思をくみ取ろうとしてたりします。まだバグあるけど。"
なかのん&マジックさんのツイート: "あとはスペースキーですな、物理的にスペースキーかどうかを特別に確認してるのは。どのスペース文字か忘れたけど、ちょいちょいとASCIIの空白以外がデフォルトなレイアウトあります。"

外国語キーボード(ドイツ/スペイン/イギリス/イタリア/フランス/中国/韓国等) | 海外ハードウェアの購入なら「ユニポス」
Happy Hacking Keyboard | 特定の製品に関わらない問合せ | PFU
「chinese USB simplify」に該当する海外通販 - セカイモン
「chinese USB Traditional」に該当する海外通販 - セカイモン
「Inscript USB」に該当する海外通販 - セカイモン
「Urdu USB」に該当する海外通販 - セカイモン
「Arabic USB」に該当する海外通販 - セカイモン
「Persian USB」に該当する海外通販 - セカイモン

外国語-2

Wikipedia

列強 - Wikipedia
ネイティブスピーカーの数が多い言語の一覧 - Wikipedia
List of languages by number of native speakers - Wikipedia
InScript - Wikipedia
Help:特殊文字 - Wikipedia

中国語

中国語入力方法 - Wikipedia
Chinese input methods for computers - Wikipedia
簡体字 - Wikipedia
繁体字 - Wikipedia

英語 - Wikipedia
Help:多言語対応 (インド系文字) - Wikipedia

ヒンディー語

ヒンディー語 - Wikipedia
Hindi - Wikipedia
デーヴァナーガリー - Wikipedia
Devanagari - Wikipedia
Help:多言語対応 (インド系文字) - Wikipedia

スペイン語 - Wikipedia

アラビア語

アラビア語 - Wikipedia
Arabic - Wikipedia
アラビア文字 - Wikipedia
Arabic alphabet - Wikipedia
アラビア文字化 - Wikipedia

ポルトガル語 - Wikipedia

ロシア語

ロシア語 - Wikipedia
Russian language - Wikipedia
キリル文字 - Wikipedia
Cyrillic script - Wikipedia

ドイツ語 - Wikipedia
フランス語 - Wikipedia

韓国語

朝鮮語 - Wikipedia
Korean language - Wikipedia
ハングル - Wikipedia
Hangul - Wikipedia
Korean language and computers - Wikipedia

ペルシア語

ペルシア語 - Wikipedia
Persian language - Wikipedia
ペルシア文字 - Wikipedia
Persian alphabet - Wikipedia
ペルシア語のラテン文字表記法 - Wikipedia
Romanization of Persian - Wikipedia

ウルドゥー語

ウルドゥー語 - Wikipedia
Urdu - Wikipedia
ウルドゥー文字 - Wikipedia
Urdu alphabet - Wikipedia

イタリア語 - Wikipedia

中国語

Nakamura Masatoさんのツイート: "https://t.co/YjcO62WMny 中国語のセパレーター教えてもらった。こういうの聞けてよかった"
fxsjy/jieba: 结巴中文分词
kayaさんのツイート: "ITfReadingInformationUIElementって中国語のIMEで使われているReading Windowの為にあるっぽい。 https://t.co/uC7w9MwtGf https://t.co/12xcs2Wugv"
なかのんクエストさんのツイート: "最近、Reading windowを使う中国語のIME減りましたね。インライン表示の方がモダンなもの、という流れがあるのかな?と。候補ウインドウ(candidate window)はどうしようもないのでそのままだけど。"
パソコンで中国語を入力する方法 | どんと来い、中国語
中国語入力は「GOキーボード」が便利 - ケータイ Watch
中国語キーボードはどうやって漢字を打つのか 日本語なら「平仮名で入力 → 漢字変換」だけど……? - ねとらぼ
Qin★确认过眼神,都是干货★さんのツイート: "最近中国では、単語の漢字のあとにピンインを入れるのが流行ってる、これは決して発音がわからない人用ではなく、建前と本音を同時に表現する書き方で、よくsnsで使われる。例えば「不(gu)小(yi)心(de)」、建前は不小心(わざとじゃない)だけど,本音は故意的(わざと)。"
Qin★确认过眼神,都是干货★さんのツイート: "中国の入力アプリもキャッチアップが速くて、 太贵了(たかすぎ)と入力したら、建前提案してくれた。 用(tai)不(gui)惯(le) (使い慣れないなあ) といかにも1万元もするダブルsimのiphoneが買えるかもしれない口調で。wwww https://t.co/NfLivycZkp… https://t.co/zsw7wCD99n"
Qin★确认过眼神,都是干货★さんのツイート: "たしかにこの本音&建前、日本語でめっちゃ使えるじゃん。 例えば: 退(じ)勤(ゆう)時間 仕(かん)事(きん)中 とかかなあ ٩(๑❛ᴗ❛๑)۶ #本音と建前同時表示を使ってみよう"
Qin★确认过眼神,都是干货★さんのツイート: "多くの方々から、これは日本でもあるルビ遊びだと教えてくださって、 日本のルビもめっちゃ面白いじゃないですか。 キラキラネームもこちらの類に入りますかね。 なんか、SNSでの日中共通のなにかを発見した。^^"
Qin★确认过眼神,都是干货★さんのツイート: "日本語でも、ルビ遊びを提案してくれるような入力アプリとかないかなあ🤔"
ランダムな文字列っぽい「ji32k7au4a83」というパスワードが大量のユーザーに使われていた理由とは? - GIGAZINE

ドイツ語キーボードの設定と配列(Windows7) | ドイツ便利帳
ドイツ語のウムラウトやエスツェットを入力する方法 | ドイツ便利帳
海外「あれ?日本人や中国人はどうやってキーボードで文字入力してるんだ…?」  【海外の反応】 : 海外の万国反応記
Mac で ハングルを入力する方法 | Mac | 情報航海術 - Office-TAKU.com -
韓国語IME操作法 - かじりたてのハングル
ヒンディー語入力の方法
東外大言語モジュール
世界の国々で「2番目に最も使われている言語」は何なのか? - GIGAZINE
ハングル入力からの漢字入力の方法(Mac OS X) : みかんたろうのなまけたろ
なかのん&マジックさんのツイート: "SinharaのキーボードレイアウトはWindowsに標準で入ってるのに、バグ報告して来た人は、keyboard-driver (と言ってたけど実体はTIPだった)を入れないと、Sinharaは入力できないんだよって言ってて、混乱してる。"
なかのん&マジックさんのツイート: "Sinhalaだったか。"
なかのん&マジックさんのツイート: "インドもそうだったし、南アジアの文字入力周り、日中ほどのややこしさはなんだけど、とにかくサードパーティーの入力ソフト(IMEとかキーメッセージをフックしてどうこうしてたり)のデキが悪い感じ。"
UniversalDependencies/UD_English-EWT: English data
なかのん&マジックさんのツイート: "韓国語キーボードのスペースの両側にある特殊キーがかるけど、日本でハングルキーボードを入手するのが難しくてあきらめてる人も多いかもしれない。でもあのキーはMac JISキーボードの英数とかなキーと同じキーなのでMac用のキーボード買えば幸せになる人も居るのでは。 https://t.co/QLu2lPPXAo"
なかのん&マジックさんのツイート: "あと、ハングルのIMEの豆知識として、未確定文字列がある状態で矢印キーやEnter、スペースを押すと、未確定文字列の確定と押されたキー本来の処理と両方が必要になる。特にmacOSでテキストエディタ作ってるとハマりやすい。"
なかのん&マジックさんのツイート: "日本語IMEは基本的には確定だけ発生して、何も起きないとき多いからね。例えばEnterで確定するけど改行は入らない。"
なかのん&マジックさんのツイート: "Sinhala、Gujarati、VietnameseあたりもWindowsでIME使うのね。"

Per monitor DPI Aware

MS

アプリの高DPI(High DPI)対応について 第1回 ~ 高DPIとは ~ – 田中達彦のブログ
アプリの高DPI(High DPI)対応について 第2回 ~ アプリケーションの高DPIへの対応レベル ~ – 田中達彦のブログ
アプリの高DPI(High DPI)対応について 第3回 ~ マニフェストでアプリのDPI対応レベルを変更する ~ – 田中達彦のブログ
DPI に関連する API およびレジストリ設定
High DPI Desktop Application Development on Windows (Windows)
High DPI Scaling Improvements for Desktop Applications and “Mixed Mode” DPI Scaling in the Windows 10 Anniversary Update - Building Apps for WindowsBuilding Apps for Windows
SetProcessDpiAwareness function (Windows)
SetProcessDPIAware function (Windows)
High DPI Desktop Application Development on Windows (Windows)
DPI_AWARENESS enumeration (Windows)
DPI_AWARENESS_CONTEXT handle (Windows)
High DPI Reference (Windows)
DPI_AWARENESS_CONTEXT handle (Windows)
DPI_AWARENESS enumeration (Windows)
高 DPI ディスプレイでアプリケーションが正しく表示されるようにする方法 (Windows)

Adobe

HiDPI/Retina ディスプレイへのアドビ製品の対応状況
Hi DPI/Retina ディスプレイのサポートについて(Acrobat/Adobe Reader)
Windows 用 HiDPI サポート

ASCII.jp

ASCII.jp:Windowsと高DPIディスプレイ【その2】 8.1では異なるDPIを設定可 (1/2)|Windows Info
ASCII.jp:Windowsと高DPIディスプレイ【その1】 8までのDPIスケーリング (1/2)|Windows Info
ASCII.jp:Windowsと高DPIディスプレイ【その2】 8.1では異なるDPIを設定可 (1/2)|Windows Info
ASCII.jp:Windows 10+高解像度ディスプレイでのアプリのボケはRS2で解消される|Windows Info

Twitter

Rockridgeさんのツイート: "「Chomeはダメだが、FirefoxはPer Monitor DPI Awareで動作している」。Fx47で対応した。参照:https://t.co/iRImEajgkm / “【4K修行僧】Anniversary Updat…” https://t.co/K7QAEvo62O"
Rockridgeさんのツイート: "Fx55:Windows 10 Creators Update以降の環境ではPer-monitor v2を使用するようになった。参照:https://t.co/G95AH5RfFJ / “1354020 - Use per-mo…” https://t.co/yoP6qGItDI"
ぬるぽへさんのツイート: "windowsのフォントレンダリング、hiDPIなら気にならないみたいな論調あるけど1.5倍表示の4Kでも普通にかすんでるところがあるような"
なかのん&マジックさんのツイート: "Per-monitor DPI環境になると、ウインドウのリサイズが遅いアプリって本当に使いにくくなるな。"

Windows 8.1 で加わった Per-Monitor DPI と WPF での対応方法 | grabacr.nét
WPFにおけるPer-Monitor DPI対応の実装
Per-Monitor DPIに備える
WPFのPer-Monitor DPIサポート(その4)
高解像度厨が Windows 8.1 のスケーリングについてのお話を書いてみる。(3) ~ WPF で無理やりスケーリング対応する - モノトーンの伝説日記
Windows8/8.1時代のWin32プログラミング #sapporocpp
Windowsの画面スケーリングを きちんと理解しよう
Windows 8は、Win32 APIを置き換える
「秀丸エディタ」v8.69が正式公開、HD/4K混在マルチモニター環境での使い勝手が向上 - 窓の杜
【4K修行僧】Windowsの4Kスケーリング環境を検証する ~文字表示は美麗。ただし、非対応アプリも多数存在 - PC Watch
【4K修行僧】Anniversary Updateで4Kに優しくなったWindows 10 ~デスクトップアプリのダイナミックスケーリングにメス - PC Watch
Windowsの表示サイズ変更設定(HiDPI表示) | EIZO株式会社
本の虫: 高PPIディスプレイへの対応の難しさについて
Coding for High-DPI Displays in Windows | Dr Dobb's
GUI総合 - ソフトウェアエンジニアリング - Torutk
Creators Updateの不具合: T.Ishiiのソフト開発記
Tungsten開発者ブログ: Tungsten 2.04 リリース
kondoumh のブログ
Visual StudioでWindowsアプリケーションマニフェストのdpiAwareプロパティを「モニタごと」に設定するにはどうすればよいですか? [visual-studio-2013] | CODE Q&A [日本語]
高DPIのサポート
高 DPI のサポート - Windows Forms | Microsoft Docs
構成要素の追加 Windows フォーム | Microsoft Docs
.Net Framework 4.6 の高DPI対応でPer MonitorとPer Monitor V2を同時に設定する:るなおーびっと! - ブロマガ
AC01_PDF_TS18 - AC01_PDF_TS18.pdf
Per-Monitor DPI
Application manifest for Per Monitor V2
WPFのPer-Monitor DPIサポート(その4)
デスクトップアプリの高DPI対応 #2 – アプリ側の高DPI対応の概要 – nishy software (ja)

Direct2D

COM

C

C による COM オブジェクトへのアクセス
マクロによる DirectX COM メソッドの呼び出し
C 言語で IUnknown を実装します。
インターフェイスを使用したコードでコンパイルエラーがでる-VC++-水無瀬の部屋
MyComputer
ショートカットファイルの情報を読みとる
D3D9プロキシDLLの作り方 · GitHub

[連載! とことん VC++] 第 1 回 COM 再入門 ~ COM オブジェクトの基本的利用 (COM クライアントの実装) ~ 言語: C++
[連載! とことん VC++] 第 2 回 COM 再入門 ~ COM オブジェクトの基本的実装 ~ 言語: C++
[連載! とことん VC++] 第 10 回 ネイティブ VC++ におけるグラフィックス オーバービュー、および Direct2D の基本的な利用方法 言語: C++
COM(Component Object Model)についてふわっと学習していく その1 導入編 - Qiita
COM(Component Object Model)についてふわっと学習していく その2 本当に言語非依存なのか? - Qiita
COM プログラミング入門 - Web/DB プログラミング徹底解説
COM総合研究所 - COM研究室
C++ の仮想関数と VTable について - Qiita
仮想関数テーブル - Wikipedia
Component Object Model - Wikipedia
Component Object Model - Wikipedia
IUnknown - Wikipedia
IUnknown - Wikipedia

blog

UWP等

【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う): biac の それさえもおそらくは幸せな日々@nifty
WPFデスクトップアプリでDirect2Dを使う - Qiita
チーズバーガー中毒: SlimDXでDirect2DのWPF連携
Bitmap for WinForms
Shinichi Aoyagiさんのツイート: "こんなん見つけました。C++/CX+Direct2DをC#から呼び出してるみたい http://t.co/JlWz67mX RT @LeonAkasaka @ch3cooh 原因わかりました。C++/CX コンポーネント側で d2d1.lib にリンクしていると失敗します。"

Direct2D のDIP とやらがイマイチ判らない件 – Na___'s Diary?
Direct3DとDirect2D/DirectWriteの連携 | shobomalog
Direct2D/Direct2D とは - WisdomSoft
ぶびびんぶろぐ: Direct2Dの初期化と単純な描画コード
Direct2DでPDFを描画するAPIを使ってみた - イグトランスの頭の中
Direct2Dで線の描画を行う - わびさびサンプルソース
ホイール欲しい ハンドル欲しい » Direct2D と Direct3D10.1 の下位互換
Direct2Dのお話。 古いブログ - ぐうたらずのーと (コンピュータ編)
DirectX - Windows10でDirect2Dのサンプルを動作させるには(39165)|teratail
Direct2D と Direct3D 11 の共有方法 | Mitsunagi Studio
Direct2DとWindows Imaging Component(WIC)で透過PNGを表示 - Gobble up pudding
[ 194_線の端点形状の変更と Direct2D ] - Mr.XRAY
Direct2Dが有効化されているWindowsでのフィルター
DirectX Graphics に関するメモ (Direct3D,Direct2D,DXGI ほか)
S.F. Blog:Direct2Dの紹介
Direct2DとGDIとDX10。 – ひねもす庵
JWWのDirect2DのON・OFF | なまあず日記style
デザイン至上主義プログラマー: Direct2Dを使った実用的アプリケーションサンプル
やはり、Direct2Dを使う: T.Ishiiのソフト開発記
LOHACO by ASKUL - 個人向け通販
本の虫: Direct2DがVistaにきたらしい
Direct2D 最強伝説!! | Crystal Dew Blog
Direct2DでPDFを描画するAPIを使ってみた - イグトランスの頭の中

Direct2D API の概要 (Windows)
Direct2D (Windows)
Direct2D について (Windows)
Direct2D - Wikipedia
Direct2D - Wikipedia
ASCII.jp:Windowsの画面表示を変えるDirect2DとDirectWrite (1/3)|あなたの知らないWindows
2次元汎用CADソフト「Jw_cad」が約3年ぶりのアップデート - 窓の杜
Wine 1.8公開 - Direct2D/DirectWriteをサポート | マイナビニュース
[C++] MFC アプリケーションのビューの中で、Direct2D を使用する 言語: C++
チュートリアル: MFC プロジェクトへの D2D オブジェクトの追加
Windows-universal-samples/Samples/D2DPhotoAdjustment at master · Microsoft/Windows-universal-samples
Direct2D キャンバスの使用 - RAD Studio
Source Tree: /Core/Direct2D/ (master) - FooEditEngine (git) - FooEditEngine - OSDN
Direct2DとDirectWriteハードウェアアクセラレーションを有効にしてFirefoxのグラフィックパフォーマンスを向上させてみよう | ライフハッカー[日本版]

DirectWrite

MacType

【DirectWrite】MacType v1.2016.830.0リリースと検証 - Segmentation fault
【DirectWrite】MacTypeまとめ(2016/11/17更新)【Window10】 - Segmentation fault
MacType非公式パッチ (MacType Unofficial Patch) - しらいとブログ
MacTypeが3年越しのアップデート – DirectWriteフック機能追加など – ミルログ
MacType非公式パッチが公開され、DirectWriteの設定変更が可能に - AndroPlus
DirectWrite のフォント レンダリングを改善する MacTypePatch | caretの日記 | スラド

Mozilla

WindowsのFirefoxのフォントレンダリングをきれいにする - Qiita
Makoto Kato ︎︎さんのツイート: "https://t.co/z90KTFvPe5 そもそもFirefoxのDirectWriteバックエンドはデフォルトの濃さで表示してないよ。これはJohnさんがMozillaにいたときにいろいろ拘って実装いれたやつだし"
グーグル、「Chrome 69」安定版に不鮮明なフォントの問題--原因を調査中 - CNET Japan

Google

「Google Chrome」DirectWriteを無効にする
DirectWrite Font Cache (obsolete) - The Chromium Projects
DirectWriteに対応しフォントレンダリングを強化した「Google Chrome 37」安定版がリリース - GIGAZINE
Windows版ChromeでDirectWriteを有効にしたところ日本語の文字が崩れた話 - 酢ろぐ!

エディタ

無償テキストエディター「Mery」v2.4.0のβ版、DirectWriteやPer-Monitor DPIに対応 - 窓の杜
Mery が DirectWrite に対応した - MoonNote
秀まるおのホームページ(サイトー企画)-秀丸エディタ Ver8.10 新機能の紹介(DirectWrite対応)
Sakura Editor / PatchUnicode / #482 DirectWrite
VimのDirectWriteの設定方法 — KaoriYa
DirectWriteで描画したい · Issue #262 · vim-jp/issues

DirectWrite の概要 (Windows)
DirectWrite (Windows)
DirectWrite のレンダリング (Windows)
DirectWrite の "Hello World" サンプル (Windows)
DirectWrite - Wikipedia
DirectWrite - Wikipedia
第113話:DirectWriteとフォントの固定化 - #モリトーク - 窓の杜
何故WindowsのフォントレンダリングがGDIからDirectWriteになろうとしているのか - Wicachi~Windows好きなmicachiの日記~
【私的】Windows フォントのテストだYO!【DirectWrite】 - CSSめも@Palm84
ぶびびんぶろぐ: 大まかな概念:DirectWriteを使った文字列描画
[要望] DirectWriteが有効な状態でのカスタムフォントの利用
ディオルティスタ: 【C++】 DirectX11 - Direct2D,DirectWriteによるテキストの描画
iceiv+putty
「WinFont+」開発記録 Part 6 - しらいとブログ
「WinFont+」開発記録 Part 7 - しらいとブログ

Vue.js

Vue.jsの仮想DOMと差分レンダリングの仕組み① - Adwaysエンジニアブログ
Vue.jsの仮想DOMと差分レンダリングの仕組み② - Adwaysエンジニアブログ
Vue.jsの仮想DOMと差分レンダリングの仕組み③ - Adwaysエンジニアブログ
Vonageにおけるマイクロフロントエンド - Yoav Yanovski氏のVue.JS Amsterdamでの講演より

GIGAZINE

ブラウザはどのようにコンテンツをレンダリングしているのか? - GIGAZINE
オンラインゲームはレイテンシを感じさせないゲームプレイをどのように実現しているのか? - GIGAZINE
Google ChromeにPCのバッテリー駆動時間を3割増やす「バッテリー節約機能」が実装される予定 - GIGAZINE
スマートフォンのバッテリーをより急速に消費させるのはどのようなウェブサイトなのか - GIGAZINE
macOS版Firefox 70は6割以上も電力消費量を削減することに成功している - GIGAZINE
GPUの脆弱性を利用すればブラウザ上に表示されたウェブページの内容を丸ごと盗むことが可能 - GIGAZINE
Google Chrome 78安定版リリース、CSS変数へのフォールバック機能や新たな実験の仕組みなどを搭載 - GIGAZINE
「Bootstrap 5」のアルファ版がリリース、脱jQueryやCSSカスタムプロパティの強化など - GIGAZINE

infoQ

Facebook、入力イベント処理を高速化するIsInputHandling APIを新たに提案
WorkerDOMはJavaScriptプログラミングにDOM並行処理を加える
Google ChromeのNever-Slow Mode
GitKraken開発者のHamid Shojaee氏に、Git GUI開発時の経験について聞く
CSS Grid Level 2, Subgridを採用
CSS ContainmentがWeb標準に
FacebookのCSS-in-JSアプローチ - Frank Yan氏のReact Conf 2019での講演より
なぜ私たちはCSSフレームワークを使わないのか - Scott Tolinksi氏、Reactive Conf
CSS Writing Modesが公式のWeb標準に
Recoil - Reactの新しい状態管理ライブラリ
Vue 3 Reactivity Internals - Vue.JS AmsterdamでのSarah Drasner氏の講演より
より速く、より小さなVue3が間もなく登場 - State of the Vuenion 2020でのEvan You氏の講演より
JotaiはReactの新しい小粒な状態管理ライブラリ
Cypress 5.xがテストの再試行とシャドウDOMサポートを追加
JAMstackの紹介
AirbnbがVisxをリリース:Reactを使ったインタラクティブな視覚化のための低レベルでプリミティブなコンポーネントの集合
Haskell Web Framework IHPは、型安全と簡易なWeb開発を目指す
single-spa によるマイクロフロントエンド
Qt 6がQMLを改善し、C++17を採用
Angular v12がリリースされ、Ivyレンダリングエンジンに移行
GitHubのWeb標準とWeb Componentsジャーニー
Compat2021でブラウザベンダが互換性問題解決に手を結ぶ
Quarkus 1.11の開発モードに新機能 "State Preserving Reload” が追加
ピュアCSSチャートライブラリのCharts.CSS

Zenn

Makoto Kato ︎︎さんはTwitterを使っています 「細かいところ、ツッコミどころ満載なんだけど、こういうのでみんな理解しちゃうのかなぁ https://t.co/etvpxAnzm8」 / Twitter
ブラウザレンダリングの仕組み
Makoto Kato ︎︎さんはTwitterを使っています 「馬鹿な。そんなエンジンあるの? "avaScriptの場合、ASTはJavaScriptオブジェクト ( JSON ) として表現されます。"」 / Twitter

POSTD

恐竜に教える現代のCSS – Part 1 | POSTD
CSS Grid: One Layout, Multiple Ways | CSS-Tricks
恐竜に教える現代のCSS – Part 2 | POSTD
恐竜に教える現代のCSS – Part 3 | POSTD
私がscriptタグについて知っていること全て : 知られていない属性や実行順序など | プログラミング | POSTD

Qiita

yobata / ピクポン pickupon CEOさんはTwitterを使っています: 「宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita現代のGUI開発において、必須となった宣言的UIというパラダイムシフトがあります。宣言的UIは、Facebook社が開発したReactに… https://t.co/PjuXBcC8FH https://t.co/i6DOEjSUTL」 / Twitter
宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita
めくるめく粗挽きWebブラウザエンジンの世界 - Qiita
CSSセレクタの優先順位の計算方法 - Qiita
パフォーマンス計測に困らない!tracing活用術100 - Qiita
Chrome の隠し機能 chrome://tracing (about:tracing) の使い方

Twitter

リフロー

リフロー レンダリング - Google 検索
小説 リフロー - Google 検索
Takashi KawasakiさんはTwitterを使っています 「小説すらリフローできるのに、ソースコードなんて言う論理の塊であるはずのものがリフローできないのは冷静に考えておかしい。ソースコードの管理に行番号なんていう昔ながらの方法しかないのが問題な気はするが・・・。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「コードの特定の部位を参照するのにxpath的な文法で・・・難しすぎて誰もついてこなさそう。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「内部的には、AST的なものがあればいいわけで、表向きには、IDE/エディタ上で、特定のソースの位置をクリックすると、そこに対応するASTの位置が提示されて、それをコピペして、場所を共有するみたいな・・・。」 / Twitter

間違い

Makoto Kato ︎︎さんはTwitterを使っています 「細かいところをいろいろ突っ込みたくなるような内容だなぁ。微妙になんか間違ってることとか、触れなくてもいい話ふまれていることもある。なんかびみょー https://t.co/NJrPddYnzK」 / Twitter
Webページがブラウザに表示されるまでに何が起こるのか?
Makoto Kato ︎︎さんはTwitterを使っています 「hostsファイルのparserなんてWebブラウザが確実に行っているか?って話をまず言いたい。実際DoHのためにparserを持ってはいるが、hostsを見てってのは必ず言える話でもないと思うが。Optionalな話を書くのはどうかなぁと思う」 / Twitter

histric-1

mattnさんはTwitterを使っています: 「Electron の省リソースな代替。Chromium を使わない Ultralight というクロスプラットフォーム WebKit を使うことで軽く高速なデスクトップアプリケーションを作れるらしい。 / “GitHub - ImVexed/muon: GPU based Electron on a diet” https://t.co/ClsxXfNiEU」 / Twitter
ImVexed/muon: GPU based Electron on a diet
ryoheyさんはTwitterを使っています: 「SPA作るの好きだけど、ブラウザの再発明じゃんっていうのめちゃごもっともだし、かなり頑張って作らないとリクエスト多すぎてずっとグルグルしててつらいやつになるから、もっとブラウザでよしなにできればなぁ」 / Twitter
The Firefox UI is now built with Web Components - Brian Grinstead
seya ʕ•ᴥ•ʔさんはTwitterを使っています: 「ついにデザインにもlintな時代か https://t.co/oEtMzjRcDR」 / Twitter
Design Lint – Figma
なかのん&マジックさんのツイート: "Geckoはパフォーマンスに直結する、グラフィックのレンダリング部分とUIに関する部分はプラットフォーム依存なものの、レンダリングエンジンそのものにはほとんどifdefが入ってないので、プラットフォーム変わってもレイアウトは基本、変化しない。"
Fadisさんのツイート: "ゲームのプレイヤーが直接動かせる物が60fpsで応答していないとゲーマーさんはもっさりとした感触にすぐ気づいてしまうんだけど、背景でモクモクしてる煙とかが15fpsくらいで描かれてても案外バレないから、今時のゲームは画面内の物によってバラバラな頻度で描画を行うことがよくある"
Fadisさんのツイート: "問題は、低い頻度で描画されている物に高い頻度で描画されている物がぶつかってしまって、高い頻度で描画しなければならないものに格上げされる事がある点で、ある程度衝突を予測して格上げをしておかないとぶつかった瞬間からの数フレームの応答が悪くなる"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ブラウザの逐次レンダリングで、タップ押下位置のDOM要素が変化してから0.5秒くらいは、タップを無視する機能をつけてほしい。」 / Twitter
ドッグさんはTwitterを使っています 「SkRasterPipeline の最適化が Skia の描画の速さの理由らしい https://t.co/rwmNeGXdke」 / Twitter
skia/SkRasterPipeline_opts.h at master · google/skia
uint256_tさんはTwitterを使っています 「TeXのコンパイルが遅いのって、何が理由なのですか」 / Twitter
画力・博士号さんはTwitterを使っています 「@uint256_t プロファイリングして調べたわけではないですが,組版処理アルゴリズム上段落を組み上げるときに行を分ける箇所を選択する処理で少なくとも O(n²) 以上の計算量を要し,典型的なケースでも線型ほどには良くならないので,そこがボトルネックになりそうには思います」 / Twitter
uint256_tさんはTwitterを使っています 「@bd_gfngfn なるほど. (そういえばブラウザを作っていたときに同じようなことで悩んでいた気がします)」 / Twitter
ヨコヤマ(横山哲也)さんはTwitterを使っています 「むかしのモニターが黒背景なのは、ベクタースキャンの名残。でも、VT-100の時点で白背景も設定できた。ウィンドウが白背景なのはPARCの人たちが「紙は白い」と主張したから。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「黒背景白文字 vs. 白背景黒文字、歴史的背景が気になるというか。 昔のモニタが黒背景なのは、滲み等考えるとそのほうが読みやすいから? ウィンドウ環境で白背景黒文字へ移行したのには、PCの場合(DTP前提の)WYSIWYGもあるだろうけど、Mac以前からあるワークステーションもそういう理由だったの?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「1964年に System/360 とともに発表されたビデオターミナルを見ると、2250 はベクタースキャンで 2260 はラスタースキャンだったのか。後者は音響遅延回路(管?)を使って描画内容を記憶していたと https://t.co/8Q5ZhnYHRP」 / Twitter
IBM 2260 - Wikipedia
ShigeyaさんはTwitterを使っています 「@n_soda @yume_piece1010 @kazuho black on white は Xerox Alto (1973)とかあの筋のものとP ERQ(1980年頃)とか、Symoblics(これも1980年頃)ぐらいしかなかったと思います。Altoが圧倒的に先 https://t.co/AqZT1SLhkS」 / Twitter
PERQ - Wikipedia
sumimさんはTwitterを使っています 「@shigeyas @n_soda @yume_piece1010 @kazuho Altoも1968年のNLSの模倣なので、これが今のblack-on-whiteの元ですね。NLSでは通常のwhite-on-blackの画面をビデオカメラで撮影し、それを反転出力していました(参考→https://t.co/6PdauZLfIr ) 切り替え可でblack-on-whiteの方が好まれたらしいですが肝心の何故そうしたかは分かりませんでした^^;」 / Twitter
The Mother of All Demos, presented by Douglas Engelbart (1968) - YouTube

7594591200220899443さんはTwitterを使っています 「WDR is a format to separate the website's information and design そう、それこそがまさに古代、Websiteと呼ばれていた概念…セマンティックウェブ…XSLT… https://t.co/6PHEBNA09M」 / Twitter
WDR
7594591200220899443さんはTwitterを使っています 「昔の人の失敗したアイディアを少しは研究してからじゃないと結局失敗するアイディアを再発見してもしゃあないで。」 / Twitter
7594591200220899443さんはTwitterを使っています 「「自分はデザインが苦手だからデザインの事は他人に押し付けたいです」っていうソリューションは結局うまくいかない。ユーザーが求めているのはむしろデザインの方なのであって情報なんてさして必要とされていない。分離すれば苦しむのはデザインできない奴の方。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Electronって、まぁメモリ食いまくるとかいろいろ問題もあるけど、Windows GDIでどうやっても解決できなかったウィンドウのスケーリングの問題とかをビルトインの仕組みで解決できてるとか、プレゼン時に好きなズーム率を簡単に設定出来るとか、その辺は極めて優秀なんだよなぁ。」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「KOBA789さん:Immediate mode GUI: ・ステートレスで、毎フレーム全部描き直す →ビットマップを差分で使いまわしたりしない ・ゲームエンジンなどと相性のいいGUIアーキテクチャ ・今回のCADでもこれを採用 #kernelvm #kernelvm_tw」 / Twitter
FadisさんはTwitterを使っています 「GPUの計算は速い が GPUへのコマンドの発行は遅い ので GPUへのDrawコールの頻度を減らす。やってることがゲーム屋の定番の最適化話になってきた #kernelvm」 / Twitter
ドッグさんはTwitterを使っています 「DOM の変更にブレークポイント張れるの知らなかった.めっちゃ便利そうだ…」 / Twitter
Minko GechevさんはTwitterを使っています 「DOM breakpoints allow you to find what code modifies your page 🤯 In @ChromeDevTools: ‣ Right click on an element ‣ Break on ‣ Select: subtree/attribute modification, or node deletion ⚡️ https://t.co/1BU42eS141」 / Twitter
Nao_uさんはTwitterを使っています 「80〜90年代の日本のいろんなゲーム会社で使われたドット絵エディタや描画手法の資料。それぞれ個性があって面白い。すごい分量 https://t.co/lwx2AavhUc」 / Twitter
VGDensetsu: Designing 2D graphics in the Japanese industry
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「お絵描きのマーカー処理。 ・マスク(画素とマーカー色をAND処理) ・半透過(画素とマーカー色をαブレンド) とあり、WindowsのSnipping Toolは前者、他のお絵描きソフトでは後者もある。 で白背景なら前者が文字がクッキリ、後者はぼんやり(最上段参照)。 だが黒背景だと前者はダメダメに。 https://t.co/bltgzh2c52」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、IP Messenger のキャプチャ用お絵描き機能は、無駄に頑張っていて、どちらでも選べる(笑) https://t.co/6fmy9vV8ae」 / Twitter
なかざんさんはTwitterを使っています 「Reactを知らないでフロントエンドのプロジェクトに入ってきたおじさんと仕事をしたとき、侮りはせずに淡々とVDOMの差分管理の説明をしていたら、「あ、それMosaic時代に表示用と検証用のDOMツリーを生やして自作したことがある仕組みかも」と言われて、椅子から転げ落ちました」 / Twitter

nuklear

Desktop Engine

Arcan | IRC: #arcan @ chat.freenode.net
letoram/arcan: Arcan - [Display Server, Multimedia Framework, Game Engine] -> "Desktop Engine"
Home · letoram/arcan Wiki

vurtun/nuklear: A single-header ANSI C gui library
P/ECE研究室
P/ECE研究室さんのツイート: "P/ECEで、オープンソースのGUIライブラリ「Nuklear」を使ってみました。 https://t.co/mUz8lBmah9 Nuklearは、少しマイナーみたい(?)ですが、とても使いやすいと思います。気に入りました。 https://t.co/uf1L6thBjn https://t.co/Bm8yINtVRX"
SL-RU/MakiseGUI: Graphics and GUI library for embed systems.
LCUI - Build simple desktop apps with C, XML and CSS
lc-soft/LCUI: A simple GUI library, it is written in C, support XML and CSS.
xamarin/flex: Flex is a flexible box layout system written in C, designed to be easy to consume from other languages
LittlevGL - free embedded graphics library
littlevgl/lvgl: Embedded graphics library with transparency, animations and anti-aliasing with NO Double buffering.
andlabs/libui: Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
渋川よしきさんのツイート: "libuiが沈黙してしまったの悲しい"
渋川よしきさんのツイート: "libui、リスト対応の方針決めました!で時間が止まっているけど、ガリガリ使える感じなのか・・・"
OpenGL な UI を作るライブラリ一覧 - Qiita
OpenGLやDirectXなGUIにimguiが最強すぎる - Qiita
ocornut/imgui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
ocornut/imgui_club: Nice things to use along with dear imgui
本の虫: KMSCON
本の虫: KMSCONがだいぶ実用的になってきたようだ
りやさんさんのツイート: "Nuklear、本質的には内部のコンテキストから頂点、インデックスリストと、テキストの場合はアトラステクスチャのUVを吐き出すだけのシステムなので、めっちゃ取り回し良くて軽量。なんで日本で流行ってないんだ?"
OpenSiv3D+nuklearでGUIを実現する - Qiita
DXライブラリ+nuklearでGUIを実現する - Qiita
VisualStudioとC++だけでAndroidアプリをつくる - NuklearによるGUIの表示 - √g

ncurses

Wikipedia

ncurses - Wikipedia
ncurses - Wikipedia
curses - Wikipedia
curses (programming library) - Wikipedia
端末 - Wikipedia
Computer terminal - Wikipedia
Terminfo - Wikipedia
Terminfo - Wikipedia
Termcap - Wikipedia
Termcap - Wikipedia

ncurses関連manエントリ/関数一覧 - Qiita
ncurses 3x 非公式日本語訳
ncurses入門してみた – Linux Training X
ソフトウェアインストールメモ
curses
ncurses(3) manページ
ncurses(3)
ncurses(3) - Linux man page
Curses Programming with Python — Python 3.7.0 documentation
ncurses
Man page of curs_window
Ncurses programming guide
Linux Manpages Online - man.cx manual pages
NCURSESライブラリ - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
NCURSES雑多な自分メモ01 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN

Desktop Entry Specification

Desktop Entry Specification
本の虫: Desktop Entry Specification

HiDPI

HiDPI - ArchWiki
「Ubuntu 14.04 LTS」レビュー--高解像度化対応やLinuxカーネル3.13採用など - CNET Japan
ほげめも: Linux HDMI で WQHD まとめ
won't fix: Gnome 3.10 / GTK3.10 でのHiDPI
EIZOの27インチ4K液晶ディスプレイEV2785-BK購入後のレビュー USB Type Cケーブル1本で映像出力・給電に対応 | ITハンドブック
研究千年牛酪情報保管庫菩薩さんのツイート: "HidpiマルチモニタはWindowsでもおもしろ挙動するしそういうものなのかなという思いがある…"
まさみさんは語りたいさんのツイート: "マルチモニタ時のHidpiは2年以上前から苦しめられていて、常時2画面を諦めた主な理由だったりする。"
Takashi Kawasakiさんのツイート: "僕はWindowsで4K液晶とかを150%設定で使ってるけど、古いアプリのスケーリングは、「システム(拡張)」という謎テクノロジーで「割と」綺麗になるのであんまり困ってない。 というか、ほとんどの古いアプリは既に捨てた。… "
タスクマ ネージャーでアプリのDPI対応を確認可能 ~「Windows 10 19H1」Build 18252 - 窓の杜
次期Windows 10のタスクマネージャーでDPIスケーリング対応アプリが確認可能に - PC Watch
なかのん&マジックさんのツイート: "予想したけど、それ以上に200%表示はフォントがWindowsでも綺麗だ。これが標準的な環境になっていかなあかんな。"
なかのん&マジックさんのツイート: "これ、HiDPI対応のアプリで、200%表示だと、MS Pゴシック等々もベクターフォントとしてのレンダリングになるのか?"
なかのん&マジックさんのツイート: "そうか、200%表示のWindowsって見た目の印象がmacOSと変わらんのか。"
なかのん&マジックさんのツイート: "そういえば、Visual StudioってPer Monitor DPI対応してないのね……これってそんなにハードル高い実装なの?" (1)
なかのん&マジックさんのツイート: "そういえば、Visual StudioってPer Monitor DPI対応してないのね……これってそんなにハードル高い実装なの?"
Masaru Iritaniさんのツイート: "ビルド 18298 でポインターのサイズを最大にすると面白いぐらい大きくなりますね。これなら 4K ディスプレイでもすぐに見つけられます。スクリーンショットでお見せしたいところですが、どうやらポインターは映り込まない模様です。 #WindowsInsiders"
渋川よしきさんのツイート: "HiDPIがまともにサポートされていて(外部ディスプレイと内部ディスプレイで個別にDPI設定できる)、ピクセル単位スクロールができるタッチパネルがきちんと動くLinux機が出たらメイン機にしたいとは思っているけど、すこーしだけ足りない。"
Bug-org 1557587 When I open 2 or more windows in different DPI monitors, window size in non-primary monitors are not restored correctly - WebStudio

UI デザイン

水原滝さんのツイート: "「SwitchのUIにははい、いいえがない」っていうのは言われて初めて気づいたな。「はいかいいえかを判断するには文章を読まなければならない」から、「ボタンを読めば本文を読まなくてもいい」って発想なのか。 https://t.co/8RKAEJpAYi… https://t.co/DQwjFiop6d"
【CEDEC 2018】明快で軽快! Nintendo SwitchのUIを触るだけで楽しい理由 - GAME Watch
「OKボタンは右か左か」問題から始まったゲーム「Factorio」のGUIデザインの工夫 - GIGAZINE
メールアドレスの確認フィールドをなくすべき理由 | UX MILK
IIMURA Takujiさんのツイート: "例えばこんな感じ。 ・見えない物は気づかれないので使わない ・目的の機能へ1タップで行ける(機能が見えている)ようにする ・ファイルやフォルダの概念は理解されないので使わない ・動作を変更する設定等は解ってる奴しか弄らないので標準設定でも問題ないように ・ユーザID等の文字列を覚えさせない"
「Amazonのプライムビデオが難しい」というおかんの言い分を聴いてみた|Tsutomu Sogitani|note
スマホUI考(番外編) UIやUXを劇的に改善する、『ビッグオー駆動型開発』とは | fladdict
Manabu Uenoさんのツイート: "一般的なフォームで、名前や電話番号の入力欄の分割をやめるよう指摘すると、DBの都合でできないと言われることがある。なぜDBのフィールドを分けるのか聞くと、「できるだけ細かく情報を取った方がいい気がするから」という運営者の曖昧な管理欲しかなく、入力コストとのバランスが考慮されていない。… https://t.co/oJixrHiUi3"
Manabu Uenoさんのツイート: "例えば電話番号の入力操作について分割式と単一式を GOMS-KLM で試算すると、分割式は約70%も多く時間がかかることがわかる。また、入力欄を必要以上に分割することはUIの国際化でもよく問題になる。名前、電話番号、住所などは文化圏によって書式上の区切りの数や順序が異なるから。… https://t.co/FXaegHiByQ"
Manabu Uenoさんのツイート: "もちろん書式を分割することに正当性がある場合もあるだろう。しかし多くの場合、運営者が正当だと判断する根拠はユーザーが素朴に期待するサービス内容とは関係がない。もし本当に必要性があり、それがユーザーのメンタルモデルと乖離しているようなら、運営者はそれを真摯に伝えなければならない。"
Manabu Uenoさんのツイート: "運営者は、どんな入力もユーザーにとっては少なからぬコストでありリスクであると考える必要がある。例えユーザー自身がそれを認識していなかったとしても。特に個人情報とのトレードで無償サービスを提供する場合など、その「意味」をユーザーから隠すことはサービス倫理として看過できない。"
日本企業のアプリには「おもてなし」の心が足りない | 及川卓也のプロダクト視点 | ダイヤモンド・オンライン
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「サビタイジング(数えずに把握できる数)の上限が3である人が多いためと思う。 UI設計だと、アイテムを並べるとき、なるべく3つ以内、多くて4つという指針がある。 ---- 「線4本は何か嫌だな」という万国共通の心理 https://t.co/k7dln3DUR5」 / Twitter
漢字の「一」「二」「三」の次がいきなり「四」になるのはなぜなのか?【漫画版】 (3/3) - ねとらぼ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「サビタイジングは4が一般的だった。 むしろ、MIND HACKSに載っていた、密集度による分解把握力低下が主因かも。 https://t.co/KEr3syDoZ3」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ようやくバリア感が強かったフラットデザインが終わるか。抽象化すればするほど、記号が分かる人にしか使えないUIを作るものなのになんで流行ったのかよくわからんかった。 / OS標準アプリがカラフルアイコンへ回帰 ~「Windows 10」Build 19569が“Fast”リングに - 窓の杜 https://t.co/ItV72Gn9Dp」 / Twitter
OS標準アプリがカラフルアイコンへ回帰 ~「Windows 10」Build 19569が“Fast”リングに - 窓の杜
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「特にフラットな"ボタン"。なぜそこがクリックできると思えるのかと考えると、色々なデザインを見た経験に依存して分かった気になってるだけだよなと。」 / Twitter
棚旗 織さんはTwitterを使っています 「@d_toybox 広告やグラフィックデザインの潮流が PC や web に波及した結果だったと思っています。Helvetica Ultra Light を使うような、軽くて薄いデザインが10年くらい前から流行っていましたので。」 / Twitter

ミニアプリ

Eiji Kitamura / えーじさんはTwitterを使っています 「iOSのApp ClipsもOSレベルのミニアプリという見方をして比較すると面白い。」 / Twitter
西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「iOS14の新機能App Clipsって地味に見えるもののミニアプリ時代の到来を予感させるな、と。日本でいち早く対応した東京・麻布のTAILORED CAFEで実際に「ダウンロード不要のネイティブアプリ」を体験した様子を、海外のミニアプリ動向と合わせて紹介する記事を書きました↓ ☕ https://t.co/uiXC9K7XUu」 / Twitter
ミニアプリ時代が日本にも到来? 「App Clips」を東京のカフェで使ってみた | Coral Capital
西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「@agektmr App Clipsは、すごくInstant Apps的に見えます。でも当初、Instant Appsは決済非対応だったので、だいぶUX的には違う受け止められ方をしている気もします」 / Twitter
Eiji Kitamura / えーじさんはTwitterを使っています 「@knsmr インストール不要なアプリという点で結果的に似た立ち位置になりましたが、App Clipsの方が(意図していたかはともかく)ミニアプリに近い扱いですよね。さっきシェアした資料を見る限り、中国のミニアプリはウェブ標準どころか全部バラバラな仕様なので、今後広がっていくと開発者は大変そう…」 / Twitter
Eiji Kitamura / えーじさんはTwitterを使っています 「中国のミニアプリの技術仕様まとめ。超絶面白い。 // Learning from Mini Apps https://t.co/yxmkZwYyUA」 / Twitter
Learning from Mini Apps - Google スライド
成瀬さんはTwitterを使っています 「この「中国のミニアプリ」は古代からある”Web Wideget”ってやつだな」 / Twitter
大規模なiOSアプリの画面開発を効率化するために動作確認用ミニアプリを構築する - クックパッド開発者ブログ

Web-Spec

その他

ネット「兵器化」の恐れ、ソーシャル規制をWWW設計者が訴え
www.webapi.link
RFC8174「RFC 2119のキーワードにおける大文字と小文字の曖昧性」 - ASnoKaze blog
今すぐ知っておくべき!モダンな10のWeb技術 | ガジェット通信
連載 | WEB標準化動向 | HTML5Experts.jp
Web標準化という仕事、そしてWebの今後について、W3Cの中の人に聞いてきた | HTML5Experts.jp
Web 標準化のフィードバックサイクルを円滑にする Origin Trials について | blog.jxck.io
Webシステムにおけるオートファジー構想 - 人間とウェブの未来
Web Platform ... What is it ? (Webプラットフォームのつくり方) // Speaker Deck
won't fix: オープンソースな製品でどうセキュリティバグをハンドルするか?
Monthly Web の作り方 2018 年版 | blog.jxck.io
Webの健全性を守る主役は果たして誰なのか - WebStudio

IETF

IETF Documents
RFC INDEX
https://www.ietf.org/download/rfc-index.txt
https://www.ietf.org/rfc/std-index.txt

IANA

IANA — Protocol Registries
IANA — Status of IETF Internet Drafts

WHATWG

Developer Edition

WHATWG HTML Standard Developer Editionの話 - 水底の血
HTML Standard
HTML Standard 日本語訳

Web Hypertext Application Technology Working Group
Web Hypertext Application Technology Working Group Specifications
HTML Standard
The WHATWG Blog — Further working mode changes
WHATWG Working Mode Changes | W3C Blog
WHATWG の IPR Policy と Governance Structure | blog.jxck.io
Rockridgeさんのツイート: "WHATWGが「運営グループ」と称するいわば舵取りの機関を設置。Apple/Google/Microsoft/Mozillaから1名ずつ代表者が参加する。参照:https://t.co/TNOkM6NmRu / “The WHA…” https://t.co/uLzomrlWqK"
W3CからのWHATWGに関するアナウンスメントについてのメモ - 水底の血
The WHATWG Blog — Changing the copyright license for Living Standards
Makoto Kato ︎︎さんのツイート: "WHATWGのコントリビュータをどう増やすかみたいな議論になって、good first bugについての話になったらしい。そのgood first bugは仕様に明記られてないけど大概こんな動作だからそれをドキュメントに落とすだけらしいけど、ハードル高いよね"
DOM Standard

水底の血

Infra Living Standardという話 - 水底の血
W3C文書を読むときに気をつけたい7つのポイント(超簡易版) - 水底の血
Obsolete Recommendationという話 - 水底の血
ウェブ標準仕様の翻訳についてつらつらと書いてみた。 - 水底の血

HTML5日本コミュニティグループ

HTML5 Japanese Community Group
W3C User Account Management
public-html5jp@w3.org Mail Archives
public-html-ig-jp@w3.org Mail Archives
HTML5日本コミュニティグループ(HTML5 Japanese Community Group)について from Shinyu Murakami on 2015-01-19 (public-html5jp@w3.org from January 2015)
Re: HTML5日本コミュニティグループ(HTML5 Japanese Community Group)について from Shinyu Murakami on 2015-02-02 (public-html5jp@w3.org from February 2015)
「HTML5日本コミュニティグループ」をW3Cが設立。参加者募集中! - Publickey

Web Platform Incubator Community Group

Web Platform Incubator Community Group

Web Education Community Group

Web Education Community Group
Web標準カリキュラムがW3Cに移動 | Web標準Blog | ミツエーリンクス

Dataset Exchange Working Group

Dataset Exchange Working Group Is Making Progress | W3C Blog
Dataset Exchange WG Charter
Data Catalog Vocabulary (DCAT) - Version 2

PING

Privacy Anti-Patterns in Standards | W3C Blog
W3C Privacy Activity
w3cping/administrivia: repository to track meta-work. PING webpages are maintained at https://github.com/w3c/ping
DRAFT Privacy Interest Group Charter
w3c/ping: Privacy Interest Group webpages (only) - working docs are in https://github.com/w3cping

W3C

All Standards and Drafts - W3C
Celebrating the anniversary of the Web | W3C Blog
World Wide Web Consortium (W3C)
Web Publications
Packaged Web Publications
Web Annotation Extensions for Web Publications
World Wide Web Consortium Process Document
W3C Strategic Highlights: Strengthening the Core of the Web (Web Performance) | W3C Blog
Hadley Beemanさんのツイート: "We just finished discussing the evolution of #featurepolicy with @triblondon. Should it split into 3? • sandboxing behaviours within an iframe • imposing conditions on the document itself, and • dealing with permission-requiring features @w3ctag https://t.co/42z4jvgINJ"
Feature policy evolution · Issue #341 · w3ctag/design-reviews
W3C Technical Architecture Group
W3C and WHATWG to work together to advance the open Web platform | W3C Blog
W3C and the WHATWG signed an agreement to collaborate on a single version of HTML and DOM | W3C News
HTML標準仕様の策定についてW3CとWHATWGが合意発表。今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に - Publickey
W3CとWHATWGが共同でHTMLの仕様を策定するようです🤝🎉 | フロントエンドBlog | ミツエーリンクス
HTML標準仕様の策定についてW3CとWHATWGが合意 今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に - ITmedia NEWS

MDN Web Docs

開発者向けのWeb技術 | MDN
Web technology for developers | MDN
Rockridgeさんのツイート: "MozillaがMicrosoft/Google/W3C/Samsung Internetと合意し、Web開発者向けのドキュメントを将来的にMDN Web Docsに集約させることになった。 / “Mozilla brings …” https://t.co/uZJ6lLi65U"
Web開発に関するドキュメントがMDN Web Docsへ集約されることが発表になりました | フロントエンドBlog | ミツエーリンクス
Tracking documentation issues | MDN
Microsoft、Google、MozillaがWebドキュメントで提携へ
Rockridgeさんのツイート: "MDN Web Docsには毎月延べ780万人の訪問者がいて、この訪問者数は年率51%の成長を見せているという。 / “WeeklyUpdates/EmergingTechnology - MozillaWiki” https://t.co/TkrPigKuJj"
Google Developers Japan: ウェブ標準のドキュメント統合に向けて
Rockridgeさんのツイート: "MDN Web Docs内の記事に掲載されているブラウザ互換性テーブルのうち、Microsoft Edgeに関する部分は、現在、Microsoftのスタッフが直接確認して編集しているらしい。 / “Documenting the…” https://t.co/Lssjh6WrAx"
mdn/browser-compat-data: This repository contains compatibility data for Web technologies as displayed on MDN
Rockridgeさんのツイート: "MDN Web Docsで、特定の仕様やAPIのブラウザ実装状況を示す表(ブラウザ互換性テーブル)のデザインが、まもなく新しいものに変わる。 / “MDN Web Docsさんのツイート: "🎉 New compatibilit…” https://t.co/w04i0ceVLZ"
MDN Web Docsさんのツイート: "🎉 New compatibility tables are coming to MDN TOMORROW! 🎉 After several months of beta testing our new, clearer (more colorful) browser compat tables, we're pushing them live for all tomorrow! What do you think of them? https://t.co/7ES9kZ0fwE… https://t.co/Yf5njTa5cu"
Rockridgeさんのツイート: "2018年のMDN Web Docsでは、ブラウザ互換性テーブルのデータをJSONに移す作業を完成させ、インタラクティブなサンプルも対象と数を増やす。なお、互換性テーブルの編集にはMicrosoft/Google/Samsungの… https://t.co/XTW7px4Gpe"
Rockridgeさんのツイート: "2017年10月に実施されたMDN Web DocsのAWS移行に伴い、コンテンツ配信ネットワーク(CDN)サービスであるAmazon CloudFrontも利用するようになった。現在では大半のコンテンツがCloudFront経由… https://t.co/4FPDHDNDS2"
Rockridgeさんのツイート: "2017年11月、MDN Web DocsのAWS移行時にいったん失われたgzip圧縮が復活し、ページの読込時間が6%短縮されたという。 / “Kuma Report, November 2017 · Mozilla Marke…” https://t.co/ZEQiipC4mf"
Rockridgeさんのツイート: "MDN Web Docsのブラウザ互換性テーブルの基になっているデータは、npmパッケージの形式でも公開されるため、ユーザーが再利用・加工することが可能だ。参照:https://t.co/oDcsJTEevj / “MDN br…” https://t.co/I60YNPvfmY"
MDN Web Docs日本語版と英語版の日付を比較するブックマークレット - 水底の血
<blink>: 点滅文字列要素 (廃止) - HTML | MDN
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「MDNはWikiの開発やメンテが全く追いついてなかったけど、DevRelチームもいなくなり関係者の縮小を受けてどうするのかと思っていたら、Wiki止めてGithubでコンテンツ管理する方向に変わるらしい。 世界最大規模のWikiが無くなる。 https://t.co/Zj2HVyspqs」 / Twitter
MDN Web Docs: Editorial strategy and community participation - Mozilla Hacks - the Web developer blog
dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「翻訳周りの環境には(翻訳サポートの為の機能が詰め込まれていたので)かなり影響がありそうな気がするけどどうなるんだろう。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「MDNの新しいサーバーってこのコードか https://t.co/hGFS5WJ3TK」 / Twitter
mdn/yari: Next-gen MDN platform

Mozilla

Twitter

なかのん&マジックさんのツイート: "結局、仕様として汚くてもブラウザ間でうまく動くものが良いってのをブラウザ開発者はみんな、肌で感じてるからであって。たとえば、DOM Event周りだとChrome/Blinkに多々文句言いたいことはあるんだけど、世のWeb開発者はそれを望んでいないというつらすぎる現実。"
なかのん&マジックさんのツイート: "対抗ブラウザの開発者として「つらい」のではなく、仕様書に多少なりとも関わってる人間として「つらい」現実。はっきり言うと罵倒するような言葉になるので控えておく。"
なかのん&マジックさんのツイート: "Webの仕様って結局、ある一定の母数のダメな開発者が勘違いしてたことを仕様としてどうにかまとめてしまうなりなんなりしないといけないんだよな。悪貨が良貨を駆逐するを地でいってる世界。ただ、良貨をぶっ壊さないようにしなければいけないというオマケもついてる。"
なかのん&マジックさんのツイート: "とりあえず、忘れてたIssueをひとつ登録しておいた。予想はしてたけど、本当に救いがたいWeb開発者が世界には居てるわけで…… / Needs alternative WheelEvent.deltaMode, WheelEvent.delat(X|Y|Z) · Issue #181 · w3c/uievents https://t.co/UVBYf0M8Md"
なかのん&マジックさんのツイート: "普通は仕様書じゃなくてもhttps://t.co/YcIWwdP3JL(X|Y|Z)の値はWheelEvent.deltaModeの値によって意味が変わると書いてあるはずで、一切説明文を読まずにコード書かない限り、そしてそれをmacOSだけか、Firefox以外のみでテストしない限りはこれらの属性がピクセル値だなんて思うわけもないんだよなぁ"
なかのん&マジックさんのツイート: "記憶が曖昧だけど、ChromeもWindows版で、ページ単位でのスクロールに設定してると、WheelEvent.deltaModeがWheelEvent.DOM_DELTA_PAGEになるんだよ。"
なかのん&マジックさんのツイート: "とりあえず、このレベルの開発者にはさすがにWeb界隈から退場していただきたい……"
なかのん&マジックさんのツイート: "とりあえず、ヤバい臭いは実装時からしてたんで、あらかじめMDNで詳しいドキュメントを用意しててもこれなので、バカの先回りは不可能という結論。"
Andreas Bovensさんのツイート: "Starting with Firefox 61, touchstart and touchmove event listeners are passive by default, making touch scrolling faster on Firefox for Android. https://t.co/h8iYMK5bAV"
Touch event listeners are now passive by default, making scrolling faster on mobile | Firefox Site Compatibility
なかのん&マジックさんのツイート: "ん?マジで?そんなこと許されるのか?"
なかのん&マジックさんのツイート: "Event.preventDefault()を呼ばないのに、EventTarget.addEventListener()でpassiveにしてないWebアプリは多そう。 https://t.co/PSd80k3sCf"
EventTarget.addEventListener() - Web APIs | MDN
なかのん&マジックさんのツイート: "そう考えると、フレームワークはブラウザの動作速度の最適化は難しいな。どういう風に今の所やってんだろ。"
なかのん&マジックさんのツイート: "いやー、本当にまとめてくれててありがたい。 #もずでぶ https://t.co/HsoHIPFoOJ"
近いうちに非表示キーが keypress イベントを発生させなくなります (影響あり) | Firefox サイト互換性情報
なかのん&マジックさんのツイート: "non-printable keyを非表示キーと訳したのか。使ってて思うけど適当な訳語がなさ過ぎ。"
モバイル上のスクロールを高速化するため、タッチイベントリスナーが標準で passive となりました | Firefox サイト互換性情報

ウェブの知識をスマートオン! — Mozilla
ドキュメント | Firefox サイト互換性情報
トップレベルウィンドウ上のデータ URL 遷移はブロックされるようになります | Firefox サイト互換性情報
安全なサイトに埋め込まれたプラグイン内部での安全でないコンテンツの読み込みが廃止予定となりました | Firefox サイト互換性情報
mozilla-japan/translation: Mozilla 関連のドキュメント翻訳リクエストとステータス管理
バージョン別にドキュメントを参照 | Firefox サイト互換性情報
Rockridgeさんのツイート: "Mozillaが考えるWeb互換性問題の発生原因について。W3Cが仕様化したAPIすべてを実装したブラウザが存在しない中、Web開発者の平均経験年数は低下し、開発に使用するブラウザもChromeに偏っている。 / “Make t…” https://t.co/lTA1qIzoWO"
Make the Web Work For Everyone – Mozilla Hacks – the Web developer blog
Compatibility/Unshippables - MozillaWiki
ウェブページ内での FTP リソースの読み込みが許容されなくなりました | Firefox サイト互換性情報
近いうちに非表示キーが keypress イベントを発生させなくなります (影響あり) | Firefox サイト互換性情報
::selection 疑似要素の接頭辞が外れました | Firefox サイト互換性情報
今後 IME 変換中にも keydown、keyup イベントが発生するようになります | Firefox サイト互換性情報
Application Cache が安全でないサイトでは使用できなくなりました | Firefox サイト互換性情報
Firefox 60 ESR では Service Worker とプッシュ通知が無効化されます | Firefox サイト互換性情報
環境光・近接センサー API が無効化されました | Firefox サイト互換性情報
ほとんどの非標準 CSS display 値が廃止されました | Firefox サイト互換性情報
<meta http-equiv> による Cookie の設定が許可されなくなります | Firefox サイト互換性情報
Symantec、GeoTrust、RapidSSL、Thawte、Verisign 証明書への信頼が 2018 年 10 月にすべて失われます (影響あり) | Firefox サイト互換性情報
getComputedStyle() がスタイルを取得できない場合に null を返さないようになりました | Firefox サイト互換性情報
display:-moz-box と display:-moz-inline-box が廃止予定となりました | Firefox サイト互換性情報
navigator.platform が 64 ビット版 Firefox 上でも "Win32" を返すようになりました | Firefox サイト互換性情報
window.event が互換性のため追加されましたが、一部のブラウザー判別に影響があります (影響あり) | Firefox サイト互換性情報
window.open の noopener オプションが他のウィンドウ特性に影響しなくなりました | Firefox サイト互換性情報
window.event、Event.returnValue への対応が追加されました (影響あり) | Firefox サイト互換性情報
<table> のサイズと位置が <caption> を計算に入れるようになりました | Firefox サイト互換性情報
Fullscreen API の接頭辞が外れました | Firefox サイト互換性情報
window.open() がイベントごとに一度しか呼び出せなくなりました | Firefox サイト互換性情報
サードパーティトラッキング Cookie が初期設定でブロックされるようになりました (影響あり) | Firefox サイト互換性情報

和訳

ウェブ関連仕様 日本語訳
triple-underscore/triple-underscore.github.io: Japanese translations of various web spec.
RFC日本語版リスト
Web関連技術の仕様書邦訳
W3C仕様書などのまとめ【保存版】 | W3C仕様書関連の文書や日本語訳をまとめてみた。

Twitter

Jxckさんのツイート: "ようするに WICG ってのは W3C の敷居が高すぎるけど、 Web 標準に対して物申したい人は、ここ https://t.co/rT2sMRVIwM に雑に投げてくれれば、中の人がうまいことハンドリングしてくれるよっていうこと。 #w3ctagdevmeetup"
WICG
vyv03354さんのツイート: "@piro_or @momdo_ webkitMatchesSelectorに至ってはDOM Standardで規定されています。 https://t.co/GVLjPUccxO 今ではwebkitプレフィックス付き==非標準とは限りません。"
vyv03354さんのツイート: "@piro_or @momdo_ 経緯はこちらをご覧ください。 https://t.co/lMO8Pq4YJj DOM Specへの追加を推したのはbzですね。"
vyv03354さんのツイート: "@piro_or @momdo_ navaigator.appNameは固定文字列"Netscape"を返せとか。 https://t.co/D0cY5F5sgR 自分より年下の人に自虐的に老人とか自称されると何とも言えない複雑な気分になりますね。"
Rockridgeさんのツイート: "2017年11月、W3Cの"Improving Web Advertising Business Group"が結成された。オンライン広告のユーザー体験を改善し、有用性とプライバシー・安全性とのバランスを取る方法を模索していくとい… https://t.co/jVUW29c7VW"
vyv03354さんのツイート: "https://t.co/J7klkTDNAG たぶん @momdo_ 氏あたりには今さらの話だと思うけど、W3CとWHATWGの協調する気のなさほんとひどい"
もんどさんのツイート: "協調のなさが酷いというより、W3C/WHATWGでまだ一緒に作ってたころ(HTML 5.0 CR)に決まってたものを後からW3Cがひっくり返したという感じで、W3Cの挙動が解せないというのが個人的な印象ですね…… "
もんどさんのツイート: "まあその意味ではlongdescとかおそらくブラウザーではこれ以上実装されなさそうなものをひっくり返すみたいなのは、ちょっと理想に走りすぎでは、という気がしなくもなく。"
もんどさんのツイート: "ただその一方でmain要素はHixieのこだわってた(と個人的には思ってる)複数要素を許容みたいな話は葬り去られて、A11y寄りのSteve Faulknerの主張が通って統一できたのは、これはこれで歩みよりがあるのかなと。"
Rockridgeさんのツイート: "Googleが自社サービスをChromeに最適化し、それ以外のブラウザを事実上排除したうえ、高いシェアを背景に仕様標準化の際にもChromeの実装がそのまま通るように力を振るうとすれば、IE6の独占時代と何が違うのか。 / “C…” https://t.co/zHYKnESPnT"
なかのん&マジックさんのツイート: "ブラウザなんて、まさに、実装依存のWebアプリ達との闘いですな。Firefoxのシェアが下がったとはいえ、(Firefox側がバグってる場合を除けば)対応する価値は十分にある。実装依存な場所を洗い出してくれるから、他のブラウザの将来のバージョンとの互換性も高くなる。"
なかのん&マジックさんのツイート: "Firefox側で、仕様にない挙動を、互換問題からChromeの動作にあわせようとしていたら、Googleのエンジニアさんがたまたま同じタイミングで、Firefoxのシンプルな挙動にしようとしていた、という笑えない事が去年あって、止めた。タイミング違ってたら、Chrome依存なサイトがChromeでも壊れてた事案。"
Ryou Ezoeさんのツイート: "W3CがWHATWGのHTML DOM 4.1をforkして、forkであることも明記せず、コミュニティになんの説明もなく改変してリリースしようとしたので至るところからFormal Objectionが飛ばされている https://t.co/FFn7DCUxRF"
Microsoft, Google, Mozilla, and Apple Object to W3C Fork of DOM Spec | Hacker News
なかのん&マジックさんのツイート: "Chromeの動きが理にかなってたら互換性のために修正入れるのはそう難しくないんですよ(ソースコードのデザイン上大変なことはあっても)。でも、理にかなってない場合や単純にバグってるよなって場合にはそれが難しいんですよ。IE一強の時代と全く同じで。"
なかのん&マジックさんのツイート: "同じ設計じゃ無いのにバグをエミュレートするってのは難しいんですよ。何しろ意図して条件分岐した結果、動作が変わってるとかではないんで。"

HTML

Mozilla

その他

Firefoxに「パフォーマンス」関連設定が実装される予定 | スラド IT
本の虫: Firefox 23では、デフォルトでSSLページ内で非SSLコンテンツの読み込みをブロックする
Firefoxの先読み機能の無効化とその確認手順 - ククログ(2017-06-16)
MozillaがFirefoxの拡張機能で難読化コードの使用禁止を発表した2日後、全拡張機能が動作しなくなるトラブルが発生 | スラド デベロッパー
Makoto Kato ︎︎さんのツイート: "いつも思うんだけど、GeckoをServoに置換するなんて言ってないのに、みんな勘違いするのはなんなんだろう https://t.co/5PwG6uh0LS"
IT エンジニアのための 流し読み Windows 10 - 新しい Microsoft Edge - from Build 2019
won't fix: New Firefox Preview for Android

Firefox

Mozilla

Bugzilla

Home :: Bugzilla :: bugzilla.org
なかのん&マジックさんのツイート: "bugzillaのREOPENってもうFIXEDからは禁止で良いと思うんだけどな。パッチの投入があると、そのステータス管理にそのバグは使わないといけないから、REOPENされるとそれができなくなるんだよな。"
なかのん&マジックさんのツイート: "それか、REOPENはFIXEDにした人とAssigneeにのみ可能な特権にしても良いんでは。"

Extension Compatibility Tester

Rockridgeさんのツイート: "Mozillaが、Chromeの拡張機能ファイルをアップロードするとWebExtensionsとの互換性を診断してくれるツール「Extension Compatibility Tester」を公開した。別途コマンドラインツールも提… https://t.co/idngQYPFip"
Introducing the Extension Compatibility Tester ★ Mozilla Hacks – the Web developer blog
Extension Compatibility Tester

MDN

Mozilla Developer Network
Mozilla Developer Network
Mozilla のソースコードに貢献する - Mozilla | MDN
Working with Mozilla source code - Mozilla | MDN
WebExtensions - Mozilla | MDN
Google Chrome からの移行 - Mozilla | MDN

Mozilla Flux

Firefox Developer Editionは早期Beta版として存続 未署名のアドオンも引き続き利用可能 - Mozilla Flux
ワンクリックで以前のセッションを復元する(Firefox 56以降) - Mozilla Flux

WebDINO Japan

WebDINO Japan (旧・一般社団法人 Mozilla Japan)
Mozilla JapanはなぜWebDINOに?瀧田佐登子さんに聞くMozilla・オープンソースコミュニティ、そしてWebの未来 | HTML5Experts.jp
Mozilla Japanが組織名を“WebDINO Japan”へ変更 ~7月3日より活動を開始 - 窓の杜

SecureDrop

Rockridgeさんのツイート: "MozillaがSecureDropというオープンソースソフトウェアに対し過去最高の25万ドルを授与。匿名の内部通報者が安全にメディア組織と文書のやりとりなどができるシステムを構築するもの。参照:… https://t.co/fVe5XGpspY"
SecureDrop | The open-source whistleblower submission system managed by Freedom of the Press Foundation.
freedomofpress/securedrop: GitHub repository for the SecureDrop whistleblower platform. Do not submit tips here!
文書を安全に匿名の情報筋から得ることを可能にするオープンソースシステム「SecureDrop」 - GIGAZINE
SecureDrop - Wikipedia

窓の杜

Mozillaなどが支援するRust製新ブラウザー「Servo」にWindows向けナイトリー版が登場 - 窓の杜
【レビュー】簡単ファイル共有サービス“Firefox Send” ~リンクが24時間経過で自動消滅 - 窓の杜
1,691個のタブを開いたセッションをわずか8秒で復元 ~「Firefox 55」が正式版に - 窓の杜
「Firefox Quantum」が正式公開 ~6カ月前と比べて2倍以上に高速化、新UIも導入 - 窓の杜

Twitter

histric-1

Rockridgeさんのツイート: "Firefox NightlyのリリースノートがAtomフィードに対応する模様。参照:https://t.co/JVw2bIikP6 情報提供感謝:@koyoskeh / “1359037 - Provide some synd…” https://t.co/UDSr8RkXce"
Rockridgeさんのツイート: "Mozilla関連の商標はWebDINO JapanからMozilla Corp.に移管されたらしい。1月にエンジニアとそれ以外でオフィスを分けたのも、エンジニアはMozilla Corp.と直接雇用契約を結ぶことになるから? https://t.co/QWVfZrl6K4"
Rockridgeさんのツイート: "Test Pilotの実験にSend(オンライン上のファイル共有)、Voice Fill(音声による文字入力)、Notes(サイドバーの簡易メモ帳)の3つが追加された。 / “New Test Pilot Experiments…” https://t.co/nX5evt73Bn"
Rockridgeさんのツイート: "Sendは「大きなファイル (最大 1 GB) をアップロード、暗号化し、オンラインで共有でき」「生成したリンクは 1 回のダウンロードあるいは 24 時間後に期限切れとなり、Send サーバーに保存されたファイルは自動的に削除」。 https://t.co/G7YeRCET3f"
Rockridgeさんのツイート: "Mozilla Information Trust Initiative (MITI)はインターネットの信用性・健全性を損なうフェイクニュースの排除を目指す活動だ。調査・研究やリテラシー教育のほか、誤情報に対処する技術の開発にも取… https://t.co/6RdAcdJXRb"
The Mozilla Information Trust Initiative: Building a movement to fight misinformation online - The Mozilla Blog
Rockridgeさんのツイート: "Mozillaは将来的にWindows版FirefoxのビルドツールをMSVCからclang-clへと移行させるつもりらしい。現時点では多数の課題を抱えており、すぐにどうこうできる話ではないようだが。 / “Firefox an…” https://t.co/ArzhX4DczO"
Rockridgeさんのツイート: "Windows版Firefoxのビルドツールがclang-clに移行する場合、リンカはLLDになる模様。参照:https://t.co/cKO2SGhBMC / “1384434 - (linker-lld) [meta] Li…” https://t.co/HPNBmn88kC"
Rockridgeさんのツイート: "Firefoxアカウントのシステムが外部のセキュリティ監査を受けており、安全であることをアピールした記事。 / “A Security Audit of Firefox Accounts | Mozilla Security B…” https://t.co/SwshVq6XbQ"
A Security Audit of Firefox Accounts | Mozilla Security Blog
Rockridgeさんのツイート: "Mozillaは音声認識システムをオープン化することで、大手企業による囲い込みを防ぎ、イノベーションを促進させる考えだ。 / “How Could You Use a Speech Interface? - The Mozill…” https://t.co/1y3pQ3JK6l"
How Could You Use a Speech Interface? - The Mozilla Blog
Rockridgeさんのツイート: "about:mozillaの文章がすべて掲載されている。背景の解説つき。 / “The Book of Mozilla - Wikipedia” https://t.co/Wimu01x8iS"
The Book of Mozilla - Wikipedia
Rockridgeさんのツイート: "「Mozilla 製品の日本語を統一感のある高品位なものとするため、用語の対訳表などと合わせて日本語化のガイドラインを作成・公開しています。」 / “styleguides/l10nguideline.md at master …” https://t.co/38KaSc853N"
Rockridgeさんのツイート: "Mozillaはすべてのビルド・テスト環境をクラウドに移行するのかと思いきや、そうでもないらしい。クラウドに適さない部分は新設のデータセンターに残すという。 / “IT/WeeklyMinIT - MozillaWiki” https://t.co/r0wItU30Xx"
Rockridgeさんのツイート: "Mozillaは各種オープンソースプロジェクトに寄付を行っており、その総額は2017年4月以降に限っても53万9000ドルに達する。たとえばwebpackプロジェクトは12万5000ドルを受け取った。 / “Mozilla Aw…” https://t.co/VhTXxYejZC"
Rockridgeさんのツイート: "Mozilla Corp.のDenelle Dixon氏が米TechCrunchの取材に回答したところによれば、Mozilla側が契約上の権利を行使して、Yahoo!(の承継会社)との契約を終了させたそうだ。 / “Mozill…” https://t.co/7u61MKvcXT"
Rockridgeさんのツイート: "Bloombergの報道によれば、Yahoo!の承継会社とみられるVerizon傘下のOath社は、「Mozillaの決定に驚いている。契約条件に関し同社と協議中である。」という趣旨のコメントを出した。すんなり終われないかも。 https://t.co/lbHYZbqeeR"
Rockridgeさんのツイート: "Mozilla Corp.の従業員数が1000人余り(おそらくRead It Later,Inc.を除く数字)、Mozilla Foundationの従業員数が80人と記載されている。 / “The State of Mozil…” https://t.co/xfNINXHbkX"
Rockridgeさんのツイート: "Mozilla Foundation及びその子会社における2016年版監査済財務諸表。検索エンジンとの提携契約収入がロイヤリティの94%、債権残高の79%を占める(注8)一方、ロイヤリティ収入中のYahoo!依存率は75%程度に低… https://t.co/surxlnii5A"
Rockridgeさんのツイート: "ブラウザエンジンを維持し続けるには多大なコストを要するが、Mozillaのミッションがそれを正当化する、との議論。あえて今この話題を持ち出してきた理由が気になる。 / “Eyes Above The Waves: Maintai…” https://t.co/12qge95fUZ"
Rockridgeさんのツイート: "Firefoxアカウントの予備アドレスをメインアドレスに切り替える方法について(未訳)。情報提供感謝:https://t.co/UmSaGf51MO / “Change primary email address on Fire…” https://t.co/obz8qd8rmZ"
Rockridgeさんのツイート: "Mozilla IRC Networkのログが集積されている。 / “LogBot” https://t.co/relGYU650A"
LogBot

Rockridgeさんのツイート: "Mozillaの開発者とMicrosoftの(おそらくEdgeの)開発者が議論するための、プライベートなオンラインフォーラムが存在するようだ。 / “1423550 - A load with an assigned appli…” https://t.co/P8AdYk7KlA"
Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャであるLockboxは、まずiOS向けの独立したアプリという形で試験的に提供される。参照:https://t.co/mes2CPqjlC / “QA/Mobile/LockboxiOST…” https://t.co/goYYMWMwgH"
Rockridgeさんのツイート: "Firefoxアカウントが二段階認証をサポート。対象ユーザーは順次拡大される。TOTPの採用によりGoogle認証システムなどのアプリを用いた認証が可能。参照:https://t.co/94h4ILkyyC / “Two-ste…” https://t.co/nZ8NQVYGgw"
なかのん&マジックさんのツイート: "Googleアカウントは複数使い分けが困難なサイトの作りしてくれてるんで、コンテナ使い出してるけど、これ基本的には必須の機能って感じだけど、イマイチ使い勝手が……"
なかのん&マジックさんのツイート: "Firefoxのコンテナ、ブックマークとの相性が本当に悪い……"
なかのん&マジックさんのツイート: "ブックマークとコンテナの組み合わせを限定できないんでpin止めしたタブが増えてる気もする。"

Firefox Hardware Report
Mozilla
donate.mozilla.org | Mozilla への寄付をお願いします
利益ではなく、人々のためのインターネット — Mozilla
より優れた、高速でプライベートな最新ブラウザー | Firefox
Mozilla サポート
Servo Developer Preview Downloads
プレリリース版でブラウザーの新機能を試そう | Firefox
Mozilla Firefoxのバージョンの変遷 - Wikipedia
Mozilla Japan コミュニティポータル
Mozilla Japan コミュニティ(@mozillajp)さん | Twitter
mozilla-japan – Medium
MozillaZine.jp
オフィス管理や雑務に時間をとられず、本来の仕事にだけ集中して取り組める環境 | サーブコープブログ
What is “chrome://FirefoxAccounts (Firefox Accounts credentials)” under “Saved Logins” section in Firefox? Can I delete it? : firefox
Thunderbird — メールをもっと簡単に。 — Mozilla
最新 Thunderbird トピック - Mozilla Discourse
Windows ビルド環境の準備 - Mozilla | MDN

ウェブサイトのセキュリティを自動判定する「Observatory by Mozilla」 -INTERNET Watch
【翻訳】ZAP を用いた Web セキュリティのベースライン運用 - Mozilla Security Blog 日本語版
hashedhyphen/mozsec-jp: Mozilla Security Blog 日本語版 (http://mozsec-jp.hatenablog.jp)
Observatory by Mozilla
mozilla/http-observatory: HTTP Observatory
Security/Guidelines/Web Security - MozillaWiki
Security/Server Side TLS - MozillaWiki
インターネットの安全を守る上での Mozilla の役割: 皆さんのご協力も必要です | Mozilla Japan ブログ
Analysis of the Alexa Top 1M Sites | Mozilla Security Blog
Mozilla、“Firefox アカウント”のセキュリティ監査を実施 ~15の問題を悪用前に対策 - 窓の杜
Firefox Release Calendar - MozillaWiki
「Firefox」をもっと安全に! “Firefox アカウント”を2段階認証で武装してみる - やじうまの杜 - 窓の杜
もはやマイナーブラウザの域に? Firefoxのシェアがついに10%を切り一桁台に突入へ【やじうまWatch】 - INTERNET Watch
IdM実験室: [FIDO]Firefox 60の正式版がリリースされたのでWebAuthnを試してみる
IdM実験室: FirefoxにSAML Tracerが復活
Firefoxへのフィードバックの仕方:Windows編 - ククログ(2018-07-03)
一ノ瀬 いろはさんのツイート: "FIrefox 版β も作ってるみたいなんでどうでしょ。 https://t.co/pZlW0Uw5T3 基本的には BOOTH で売ってる英辞郎使うことを念頭に置いてます。… "
Chrome拡張の高速な英語辞書ツールをつくりました - Qiita
Firefox Monitor
モジラ、「Firefoxアカウント」のリカバリキー生成機能を公開 - CNET Japan
Reset your Firefox Account password with Recovery Keys | Mozilla Support
「Firefox 67」正式版リリース、マイニングスクリプトのブロックや追跡防止機能の強化、ページロードの高速化など - GIGAZINE

窓の杜

Mozilla、「Firefox 59」を正式公開 ~新しいキャッシュ技術でパフォーマンス向上 - 窓の杜
HTTPサイトに“Not Secure”ラベルを表示、「Google Chrome」に続き「Firefox」でも - やじうまの杜 - 窓の杜
Mozilla、「Firefox 61」を正式公開 - 窓の杜
Mozilla、情報漏洩の被害に遭ってないかをチェックする“Firefox Monitor”をリリース - 窓の杜

OSDN

性能強化を継続、プライベートモードでのプライバシー保護も改善した「Firefox 59」 | OSDN Magazine
Quantum CSSを強化した「Firefox 61」が公開 | OSDN Magazine
「Firefox 64」リリース、タブの強化や新しいタスクマネージャ表示を導入 | OSDN Magazine
「Firefox 66」リリース、自動再生の音声がデフォルトでオフに | OSDN Magazine
「Firefox 67.0」リリース、仮想通貨のマイニングやフィンガープリントによる追跡をブロックする機能が実装される | OSDN Magazine

Mozilla Flux

Firefoxのパスワードマネージャーを刷新するLockboxプロジェクトが本格始動中 - Mozilla Flux
マウスホイールでページをスクロールする際の小技(Firefox 58以降) - Mozilla Flux
タブのダブルクリックで現在表示させているタブを閉じる小技(Firefox 61以降) - Mozilla Flux
タブの切り替えをスムーズにするTab Warming機能について(Firefox 61以降) - Mozilla Flux
Firefox 63に複数タブの選択・操作機能が実装される見込み - Mozilla Flux
ブラウザの「更新の確認は行わない」設定をFirefox 63で削除 - Mozilla Flux

Mozilla Security Blog

dynamis (でゅなみす)さんのツイート: "Mozillaが遂にすべての新機能はSecure Contextに限って実装していくと宣言。 Service Workerみたいな粒度ではなくCSSプロパティレベルでもHTTP環境には新機能を原則提供しない方針でかなりアグレッシブ https://t.co/dlTJEPeM2D"
Secure Contexts Everywhere | Mozilla Security Blog
Rockridgeさんのツイート: "Android版Firefox Nightlyにおいて、Google検索とFacebookを対象に、UA文字列をモバイル版Chromeに偽装するシステムアドオンが実験的に有効化されている。参照:… https://t.co/XgazSmUMDA"
When does Firefox alert for breached sites? | Mozilla Security Blog

Firefox サイト互換性情報

今後予定されている変更 | Firefox サイト互換性情報
カテゴリ別にドキュメントを参照 | Firefox サイト互換性情報
HTML コンテキストメニュー対応が廃止されます | Firefox サイト互換性情報
Basic 認証情報が ISO-8859-1 から UTF-8 によるエンコードに変わりました (影響あり) | Firefox サイト互換性情報

4x

Rockridgeさんのツイート: "Fx42:Android版で日本の一部Webサイトにおいてユーザーエージェント文字列の偽装を行い、モバイル版が正しく提供されるようにした。Yahoo!関連、mixi、LOHACO、ユニクロ、楽天、NHKが対象。 / “11772…” https://t.co/Oo11q5gtrL"
Firefox 44 は type="password" が暗号化されていないページで使われていると警告を表示 | フロントエンドBlog | ミツエーリンクス
RockridgeさんはTwitterを使っています: "Fx47:JavaScriptによって追加されたHTMLの要素にリンクのプリフェッチの指定が含まれていた場合も、プリフェッチが行われるようになった。 / “580313 – prefetch links not followed…” https://t.co/hOUAhPBbYN"
Rockridgeさんのツイート: "Fx47:CRX形式のアーカイブからファイルを抽出する機能をサポート。 / “1260836 – Add support for CRX file extraction” https://t.co/E9YT5ZpRoq"
Rockridgeさんのツイート: "Fx49:トラッキング防止機能が有効な場合は、Do Not Track(DNT)の設定が無効でも、DNTシグナルを送信するようにした(コメント2)。 / “1258033 – Fix the DNT loophole for t…” https://t.co/NwhRLwZFcK"
Rockridgeさんのツイート: "Fx48:読み込みが許可されていないファイル(Webページ)を読み込んだ際にエラーページが表示されるようになった。 / “682294 – Opening a page which we can't read should di…” https://t.co/VXVdPcfMqk"
Rockridgeさんのツイート: "Fx49:HTML5のdetails要素とsummary要素がリリースチャンネルでもデフォルト有効化。 / “1226455 – (ship-details-summary) ship support for <details>…” https://t.co/gXJtEpBsnG"
Rockridgeさんのツイート: "Fx49:a要素のreferrerpolicy属性にno-referrer-when-downgradeとorigin-when-cross-originの値を指定できるようになった。 / “1178337 – Valid re…” https://t.co/aj8IEovDCH"
Rockridgeさんのツイート: "Firefox 49で起動時に未送信のクラッシュレポートの送信を促すようにした理由は、Firefoxのシャットダウン時のクラッシュが、まさにシャットダウン中であるがゆえにこれまで送信されてこなかったら。 / “Fwd: [des…” https://t.co/xnwwG3qk36"
details要素がサポート追加となったFirefox 49リリース、Safari 10リリースやベンチマークのMotionMarkなど──2016年9月のブラウザ関連ニュース | HTML5Experts.jp
Rockridgeさんのツイート: "Fx49:マルウェアなどのダウンロードを防止する機能について、対象となるファイル拡張子の種類が増えた。 / “1291472 – Add more application reputation extensions” https://t.co/hKXAqLifkb"
Rockridgeさんのツイート: "Fx49:HTTPで接続したWebサイトに関し保存したパスワードが、HTTPS接続した同一ドメインにおいても自動補完されるようになった。 / “667233 – HTTP passwords should be used on …” https://t.co/5mj1yuHjpC"
Rockridgeさんのツイート: "Firefoxの製品内部で、ブラックリスト・ホワイトリストの呼び方をやめて、ブロックリスト・許容リストに置き換える作業が進んでいる。 / “1149485 - Rename 'blacklist' to 'blocklist' …” https://t.co/iQIdtcIkUh"
Rockridgeさんのツイート: "Firefoxのチャンネルを問わず、インストールするたびに別プロファイルを作成・使用する機能が実現に向けて動き出した。ダウングレードからプロファイルを守る機能と併せてFirefox 66以降に実装される。 / “Coming i…” https://t.co/4aSf8Hzk5c"

5x

50

Rockridgeさんのツイート: "Fx50:起動時に読み込みを保留しているタブがある中で「すべてのタブをブックマーク」すると、保存されたブックマークの名前欄に空欄が生じる問題を修正。 / “754623 – Name field of bookmarks sav…” https://t.co/sGM6GGyMfh"
Rockridgeさんのツイート: "Fx50:履歴とブックマークのデータベースにおいて、URLの同一性を判定するためのインデックスとしてURLの複製ではなくそのハッシュ値を用いるようにした。データベースサイズを圧縮できる。 / “889561 – moz_plac…” https://t.co/1nsi7JbFBb"
Rockridgeさんのツイート: "Fx50:各種パーミッションに関する通知アイコンは、ロケーションバーの「i」アイコンと南京錠アイコンの間(アイデンティティブロック)に表示される。 / “1267617 – Move notification anchors t…” https://t.co/MGSQcNJ6Rc"
Rockridgeさんのツイート: "Fx50:PointerLock APIのパーミッション要求が不要となった。 / “1273351 – Get rid of permission requirement for PointerLock API” https://t.co/HYigR20hla"
Rockridgeさんのツイート: "Fx50:ローテーションセンサーを備えていないPC(タッチスクリーン機能付きデスクトップなど)でもスクリーンキーボードが表示されるようになった。 / “1226522 – On-screen keyboard not displ…” https://t.co/z2T2De5o3w"
Firefox 50でページ内検索結果の表示方法が変更 - Mozilla Flux
Rockridgeさんのツイート: "Fx50:認証が必要なネットワークを検出したときは自動的にログインページを開く仕組みが実装された。当面はNightlyチャンネルでのみ有効。参照:https://t.co/OXgTMzHwCK / “989193 – Open …” https://t.co/mtjEnUqwSw"
Rockridgeさんのツイート: "Fx50:何らかのパーミッションを許可しているサイトでは、ロケーションバーの「i」マーク右上に印が付く。 / “1206246 – Show indication when some permissions have been …” https://t.co/Ykrty1fuI5"

51

Rockridgeさんのツイート: "Fx51:特定のサイトでパスワードを記憶しないという情報は、パーミッションの一部として扱われる。 / “1058438 – Password manager should use the permission manager t…” https://t.co/r6wcftGceQ"
Rockridgeさんのツイート: "Fx51:Yahoo!オークションやYahoo!ニュース、mixiなどについて、ユーザーエージェント文字列の偽装を解除した。 / “1301619 – Update Firefox Android User Agent over…” https://t.co/VydIn8OCRa"
Rockridgeさんのツイート: "Fx51:本体起動時、認証が必要なネットワークを検出したときは自動的にログインページを開く。 / “1282611 – Captive portal not detected at Firefox startup” https://t.co/5lJ56oXyUR"
Rockridgeさんのツイート: "Fx51:ログイン情報の送信にJavaScriptを用いているWebページにおいても、パスワードの保存とオートフィルが行えるようになった。 / “1166947 – Run login capture code upon pag…” https://t.co/MNuJVRw223"

52

Rockridgeさんのツイート: "Fx52:<input type="time">が指定されている場合の入力UIが実装された。参照:https://t.co/W0aCu9JqFX / “1283384 – Implement UI for <input type…” https://t.co/L2zWUtBSo9"
Rockridgeさんのツイート: "Fx52:Yahoo!関連はYahoo!天気・災害を除きユーザーエージェント文字列の偽装を解除した。 / “1314214 – Remove User Agent override for Yahoo! Japan” https://t.co/uI0o8XxJit"
Rockridgeさんのツイート: "Fx52:開発ツールのレスポンシブデザインモードで、低速回線(2G/3Gなど)による接続をシミュレートする機能が実装された。参照:https://t.co/yOZB4sWi9E / “Simulate slow connecti…” https://t.co/Y64SEgEyby"
Rockridgeさんのツイート: "Fx52:Windows版NightlyでQuantum Compositor(旧GPUプロセス)が有効化。 / “1314133 – Enable the GPU process in nightly, on Windows” https://t.co/PpVSi5pEQM"
Rockridgeさんのツイート: "Fx52:リーダーモードにおいても、base要素で指定された基点URLの指定が反映されるようになった。 / “1173823 – Reader View ignores <base href="...">” https://t.co/wTH6BbCnTl"
Rockridgeさんのツイート: "Fx52:Webサイト側で取得できるユーザー側のシステムフォントが、ホワイトリストに掲載されたものに限定された。フィンガープリンティングを防止する。参照:https://t.co/8yVqP7dDVp / “Firefox 52…” https://t.co/OeOFRQ1yX7"
Rockridgeさんのツイート: "Fx52:悪意のあるサイトが認証画面を繰り返し表示してブラウザを操作できなくすることを防止する措置を講じた。 / “1312243 – Trap site uses repeated http auth prompts to k…” https://t.co/IqXucQDfXt"
Rockridgeさんのツイート: "Fx52:リーダーモードのNarrate(音声読み上げ機能)で、現在読み上げられている単語に下線が表示されるようになった。 / “1290173 – Introduce word (and sentence?) tracking…” https://t.co/4MGV5GbYlF"
Rockridgeさんのツイート: "Fx52:巨大なサイズの画像が正しく表示されない場合がある問題を修正。なお、問題となるサイズはDPI環境により変動する。 / “591822 – Images taller or wider than 32767 (signed…” https://t.co/Qc8PW6NV6X"
Rockridgeさんのツイート: "Fx52:Webページ中のパスワードのフィールドでも、自動補完のUIが表示されるようになった。ユーザー名のフィールドが存在しない場合でも自動補完が使える。参照:https://t.co/PoAIjHw4XQ / “1289913…” https://t.co/IY9939kSnF"
Snappy by google
google/snappy: A fast compressor/decompressor
andikleen/snappy-c: C port of the snappy compressor
Rockridgeさんのツイート: "SnappyはGoogleが開発する圧縮・解凍ライブラリ。圧縮率よりも圧縮・解凍の速度を重視しているという。 / “Snappy by google” https://t.co/KpXFudSTEr"
Rockridgeさんのツイート: "Fx52:搭載するSnappyライブラリを最新版にアップデート。IndexedDBやDOMキャッシュなどで用いられているが、更新はFirefox 12以来だとか。参照:https://t.co/GdaSPottr2 / “Hea…” https://t.co/J7LNj4KMYX"

53

Rockridgeさんのツイート: "Firefox 53でapplet要素のサポートを廃止予定。参照:https://t.co/gOKCU0nPe0 / “1279218 – Remove <applet> element” https://t.co/v8xrxhSTk4"
Rockridgeさんのツイート: "Firefox 53ではネットワークライブラリ(Necko)にセキュリティチェック機能を実装し、チェックを必須化する。従来はGeckoの各コンポーネントがリクエストの前にその都度セキュリティチェック処理を行っていた。 / “En…” https://t.co/GgLzOpIErc"
Rockridgeさんのツイート: "Fx53:ページタイトルがタブの幅に収まらない場合、末尾に省略記号を入れずに文字列が薄れて消えるようにした。タイトルが多く表示されたほうがよいだろうとの判断に基づく。 / “658467 – Fade out tab label…” https://t.co/PwRhmpjWZ2"
Rockridgeさんのツイート: "Fx53:Web互換性上の問題を修正するシステムアドオンを導入(Fx49時点では実体がなかったらしい)。特定のサイト向けにユーザーエージェント(UA)文字列を修正する。参照:https://t.co/HZJzqo5ZpF https://t.co/vO76fptP8E"
Rockridgeさんのツイート: "Fx53:リンクをドラッグした際、ページの端にかかると、ページがスクロールするようになった。 / “41708 – Should be able to scroll in the viewport while dragging” https://t.co/sr76LoQkLc"
Rockridgeさんのツイート: "Fx53:<input type="date">が指定されている場合の入力UIが実装された。デフォルト無効でありdom.forms.datetimeをtrueにすると有効化される。 / “1283385 – Implement …” https://t.co/LylhN1wmNK"
Rockridgeさんのツイート: "HTMLフォームで日付・時刻を入力するUIのFirefoxへの実装状況について説明したスライド。参照:https://t.co/CHK2leXhDa / “Date/Time Input Types by Jessica Jong” https://t.co/lZtm7fh2bH"
TPE DOM/Date time input types - MozillaWiki
Rockridgeさんのツイート: "Fx53:Webページのプリレンダリング機能の実装を開始。link要素のrel属性でprerenderの指定がされているURLが対象。browser.groupedhistory.enabledとdom.linkPrerender… https://t.co/tgSs1nsCrx"
Rockridgeさんのツイート: "Fx53:フォームのドロップダウンメニューに40を超える項目が含まれるときは、項目の絞り込み検索が可能になった。 / “1309935 – Add ability to find within select dropdown w…” https://t.co/RWRs2bCLKT"
Rockridgeさんのツイート: "Fx53:他のブラウザからブックマークをインポートする際、処理をまとめて行うことで大幅な高速化を実現した。 / “1344759 - Use insertTree API to import bookmarks from oth…” https://t.co/BUx6WTS9u6"
Rockridgeさんのツイート: "Fx53:同一サイトに複数のアカウントを保有し、それらがパスワードマネージャに登録されている場合、ユーザー名またはパスワードのフィールドにフォーカスが当たった時点で、自動補完候補が表示される。 / “376668 – Impro…” https://t.co/UD4z2vKCBT"

54

Rockridgeさんのツイート: "Firefox 54でHTML5のdialog要素がサポートされる見込み。参照:https://t.co/LstQ4paiuJ / “Intent to implement: HTML5 <dialog> element - G…” https://t.co/O7MlfBikgB"
Rockridgeさんのツイート: "Fx54:Firefox Sync動作時、あるクライアントのブックマークの項目に欠損があると判断したときは、他のクライアントに対し、該当する項目をアップロードするよう求める(そしてこれに応答する)仕組みが実装された。 / “13…” https://t.co/A5DMPOFQRg"
Rockridgeさんのツイート: "Fx54:Firefox Syncがブックマークの欠けた項目を補うのは、他に未処理の項目がない場合に限られる。 / “1345754 - Only validate when there are no pending chang…” https://t.co/3v4mUsRS5J"
Rockridgeさんのツイート: "Fx54:layers.gpu-process.allow-softwareをtrueに変更するとGPUプロセスがソフトウェアcompositorを使用するようになる。そのほうがパフォーマンスや安定性が改善する環境もあるようだ。 https://t.co/6bpXWGo1s0"

55

Rockridgeさんのツイート: "Fx55:<script nomodule>を実装した。参照:https://t.co/CoF7seXJye / “1330900 - Implement <script nomodule>” https://t.co/Yy9cMrG2Do"
Rockridgeさんのツイート: "Fx55:mimeTypes.rdfの内容をhandlers.jsonに移行させ、今後は後者を使用するようにした。 / “1287658 - Migrate from "mimeTypes.rdf" to "handlers.j…” https://t.co/fy5RjLOG8W"
Rockridgeさんのツイート: "Fx55:新しい設定画面では〔アップデート〕のカテゴリーにFirefoxのバージョンが表示され、最新版かどうかも確認できる。アップデート履歴を表示するボタンもある。 / “1356507 - The Updates pane s…” https://t.co/yuWRfFt3AL"
Rockridgeさんのツイート: "Fx55:image.mem.animated.discardableの設定をtrueに変更すると、アニメーションGIFなど動的に変更される画像について、アクティブでなくなったものはデコード済みのデータがメモリから追い出されるよう… https://t.co/55CoESgyrg"
Rockridgeさんのツイート: "Fx55:ヘッドレスブラウジングモードをサポート。GUIのない状態で動作し、自動化テストなどに向く。なお、Chrome 59も同様のモードをサポートする。参照:https://t.co/qNrbFSRZkA / “1338004…” https://t.co/zE2yyvMeFe"
Rockridgeさんのツイート: "Fx55:アニメーション画像が非アクティブの場合にデコード済みのデータをメモリから追い出す機能が、デフォルト有効化された。省メモリ化に効果がある。 / “686905 - Discard animated images to s…” https://t.co/60lN1DASra"
Rockridgeさんのツイート: "Fx55:キャッシュ上のデータを使うか、新たにデータを取得するかを決める新しいアルゴリズムが実装された。network.http.rcwn.enabledの設定をtrueに変更すると有効化される。 / “show_bug.cgi…” https://t.co/NtFSyzMlRI"
Rockridgeさんのツイート: "Fx55:新規タブ内のサムネイルの生成処理が高コストであることから、再計算は1分間以上空けてから行うようにした。 / “1350781 - gBrowserThumbnails._topSiteURLs is super ine…” https://t.co/EWv2g59IhX"
Rockridgeさんのツイート: "Fx55:toolkit.cosmeticAnimations.enabledの設定が追加された。これをfalseにすることでタブやフルスクリーンなど複数のアニメーションを一括してオフにできる。新しい設定画面にはこの設定を操作する… https://t.co/zfLuzF2Esh"
Rockridgeさんのツイート: "Fx55:クリップボードにコピーされた画像を、テキストエリアに貼り付けることができるようになった。 / “1317322 - Pasting image from clipboard fails in some cases” https://t.co/8l4grl9sLf"
Rockridgeさんのツイート: "Fx55:GPUプロセスがクラッシュし、またはキルされた場合も、3回まではプロセスが再起動するようになった。 / “1337131 - Enable restarting the GPU process when it dies” https://t.co/JEdhKtMffq"
Rockridgeさんのツイート: "Fx55:初期状態でスマートロケーションバーにサジェストされる対象を、Alexaのトップ20サイトにまで拡大。 / “1344276 - Make sample list of top 20 websites (of …” https://t.co/8WGrhkdk8Q"
Rockridgeさんのツイート: "Fx55:大量のタブを含むセッションを復元する際、UIが応答可能になるまでの時間を大幅に短縮した。たとえば、330タブの復元だと従来の11秒が1.5秒になるという(コメント11)。 / “1345090 - Modify Ses…” https://t.co/6HeS9UqW4T"
Rockridgeさんのツイート: "Fx55:ブックマークの作成日時も同期されるようになった。 / “676563 - Bookmarks sync does not sync bookmark timestamps” https://t.co/otLpLpgQeN"
Rockridgeさんのツイート: "Fx55:マルチプロセス機能(e10s)有効時、beforeunloadイベントの作動記録を保持することでタブを閉じる際に毎回イベントの有無を確認する必要をなくし、処理を高速化した。参照:… https://t.co/94cHP0qIOj"
Rockridgeさんのツイート: "Fx55:キャッシュサイズの上限値を5%上回った時点でキャッシュの追加を停止するようにした。キャッシュの排出処理が追いつかず、総サイズが増え続ける問題に対処するための措置。 / “1342722 - Firefox cache …” https://t.co/g1klaSwQ3P"
Rockridgeさんのツイート: "Fx55:リンクに対するmousedownイベントを検知した時点で、mouseupイベントの検知を待たずに投機的に接続処理を行うようにした。読み込みの開始が50 - 300ミリ秒早くなるという。 / “1348278 - Spe…” https://t.co/YrWRcEcJiU"
Rockridgeさんのツイート: "現在の計画では、Android版Firefox 55でCustom TabsとスタンドアロンモードのプログレッシブWebアプリを、56でWebExtensionsとブックマークフォルダの操作を、57で新UI(Photon)をそれぞ… https://t.co/2QOm0ICp55"
Rockridgeさんのツイート: "Fx55:サイトがHTTPからHTTPSへリダイレクトされる場合、スマートロケーションバーにはHTTPSのものが表示される。 / “1341350 - Visiting an insecure (http://) site th…” https://t.co/OBetdfKaT6"
Rockridgeさんのツイート: "Fx55:セッションに保存されるDOMストレージのデータを2Kに制限し、I/O処理の低減を図った。 / “1362058 - Further limit the amount of sessionStorage data we …” https://t.co/EG44tHDpeL"
Rockridgeさんのツイート: "Fx55:Display Listの構築処理を改善。Wikipediaの"JavaScript"の項目で、5.5ミリ秒が4.3ミリ秒に。 / “1342009 - A fast path for BuildDisplayList…” https://t.co/uUx7SyzukK"
Rockridgeさんのツイート: "Fx55:font-size: larger/smallerの指定がある際のフォントサイズ計算を、競合ブラウザの処理を参照しつつ単純化した。具体的には、1.2倍ずつ変化する形となる。 / “1361550 - Make font…” https://t.co/8mykLnB03l"
1361550 - Make font-size: larger/smaller a simple ratio
Rockridgeさんのツイート: "Fx55:Firefox Syncの同期処理中にブックマークに変更が加えられた場合、追加で同期処理を行うことでブックマーク間の不整合を低減させた。 / “1335891 - Immediately trigger another…” https://t.co/sD6dBiR6M7"
Rockridgeさんのツイート: "Fx55:Firefoxがデフォルトのブラウザに設定されているかどうかのチェックは、2回目の起動から行うようにした。インストールから初回起動までの流れをスムーズに進ませる措置の一環。 / “1367073 - Ship move…” https://t.co/IyHBdk2HWQ"
Rockridgeさんのツイート: "Fx55:Windows向け軽量インストーラが64bit版をインストールする際に2GB以上のメモリを搭載しているかチェックする。 / “1366860 - Add 64-bit minimum memory requiremen…” https://t.co/0LOGMKjLhz"
Rockridgeさんのツイート: "Fx55:本体起動時のメインスレッドI/Oを減らして起動を高速化。 / “1363398 - GetShellFolderPath is expensive during startup” https://t.co/pYvNqNQwxM"
1363398 - GetShellFolderPath is expensive during startup
Rockridgeさんのツイート: "Fx55:バックグラウンドで動作するトラッキング用スクリプトについては、処理を反復する間隔を強制的に10秒に延ばすということらしい。参照:https://t.co/dUoAeG0Bbr https://t.co/tEUs2wcUhO https://t.co/2zyZyd1hZ4"
Rockridgeさんのツイート: "Fx55:起動時に複数のスクリプトのデコードをまとめて非同期に処理することで、起動完了までの時間を短縮した。 / “1364974 - Allow off-thread decoding multiple scripts for…” https://t.co/iWdwiFQQdv"
Rockridgeさんのツイート: "Fx55:Nightlyチャンネルで、フォームにカレンダーから日付入力する機能が有効化された。参照:https://t.co/bttKiU6dWs / “1366188 - Enable dom.forms.datetime b…” https://t.co/OTMFEXS59a"
Rockridgeさんのツイート: "Fx55:input要素のtype属性がdateのときはカレンダーからの入力が可能である一方、同属性がtimeのときはそうしたUIが用意されない。この差は、時刻についてはキーボードで直接入力したほうが早いとの考慮によるという。 https://t.co/GlfgrqUdsj"
Rockridgeさんのツイート: "Fx55:Linux版でヘッドレスブラウジングモードがデフォルト有効化。ただしSlimerJSまたはMarionetteとの組み合わせが前提となる。参照:https://t.co/isO8OeR6tf / “Shipping H…” https://t.co/JNrBMBiUL0"
Rockridgeさんのツイート: "Fx55:Cookie用データベースを閉じる処理を非同期で行うようにした。 / “867798 - Cookie Service closes DB on main thread” https://t.co/Zde7cppxfF"
Rockridgeさんのツイート: "Fx55:Windows版で、システムフォントの探索結果をキャッシュして再利用するようにした。開発者いわく150ミリ秒以上の処理短縮になる。 / “1371157 - cache results of system font l…” https://t.co/NJNlJyUnar"
Rockridgeさんのツイート: "Firefox 55.0.1以降、再びNetwork Predictorのプリフェッチ機能が無効化されている。 / “1388160 - Disable predictor prefetch (again!)” https://t.co/Fqac8Xv8LE"
Rockridgeさんのツイート: "Fx55:Firefox Syncのネットワーク処理を完全非同期化。 / “1355677 - Make all Sync network requests promise/async based” https://t.co/QPIeHGkkwb"
Rockridgeさんのツイート: "Fx55:タブIDの割当て処理を非同期化。 / “1337064 - Make tab ID allocation asynchronous” https://t.co/GMuOX7Jawb"
Rockridgeさんのツイート: "Fx55:ユーザーがアドレスバーにhttp、httpsやftpなどの文字を入力したときは、検索サジェストを行わないようにした。 / “show_bug.cgi?id=1280441” https://t.co/aafBIuqjir"
Rockridgeさんのツイート: "Fx55:colSpan/rowSpanの取扱いを最新の仕様に合わせた。 / “1359822 - Match standard for colSpan/rowSpan” https://t.co/gtLQfYZeFJ"
Rockridgeさんのツイート: "Fx55:スクロールバーをドラッグする場合もスクロールが非同期化されるようになった。 / “1211610 - (async-scrollbar-drag) [Meta] Enable async scrolling via s…” https://t.co/8w2DbITfY8"
Rockridgeさんのツイート: "Fx55:Windows版で、ダウンロードパネルに表示されたファイルを開く際、EXE以外のファイル形式(JARなど)であっても、起動の確認が行われるようにした。 / “1369771 - Confirm launching ex…” https://t.co/02WwQoJ9Sg"

56

Rockridgeさんのツイート: "Fx56:設定の保存処理を非同期化した。 / “789945 - Save preferences asynchronously” https://t.co/8urOjUThma"
Rockridgeさんのツイート: "Fx56:rel=noopenerが付与されたリンクを開くときは、新しいプロセスを使うようにした。 / “1370971 - Open `noopener` links in a new process” https://t.co/pHzxYbiKwi"
Rockridgeさんのツイート: "Fx56:style要素のscoped属性のサポートが廃止される見通し。Fx21からデフォルト有効化されていたもの。Chromeは37で削除済みだという。参照:https://t.co/ICNZ85S7gM / “Intent …” https://t.co/FZkQMqEM7O"
Rockridgeさんのツイート: "Fx56:Windows版でもヘッドレスモードをサポート。 / “1355150 - Support headless mode on Windows” https://t.co/Q7x1TkqIbQ"
Rockridgeさんのツイート: "Fx56:ブックマークをJSON形式でバックアップする処理を非同期化した。 / “1095426 - Convert JSON backups code to the new Bookmarks.jsm API” https://t.co/36RZufIan9"
Rockridgeさんのツイート: "Fx56:SQLiteのストレージが使用するメモリについて、圧縮処理をできる限り非同期で行うようにした。 / “1166166 - Shrink Sqlite memory on the async thread when po…” https://t.co/agQaOsszCe"
Rockridgeさんのツイート: "Fx56:Mozillaは以前からHTML Importsをサポートしないと宣言していたが、ついに実装部分を削除するに至った。参照:https://t.co/rBj4JXZcpy / “1197401 - Remove our …” https://t.co/SHEAAve24l"
Rockridgeさんのツイート: "Fx56:フォームコントロールに用いられる要素についてlabelsプロパティをサポート。 / “556743 - Implement the labels attribute” https://t.co/mt2Jmd4Te5"
Rockridgeさんのツイート: "Fx56:スペルチェッカーの動作が文字列の処理速度を著しく低下させないように調整を加えた、ということらしい。 / “1370754 - Setting innerHTML to editor is slower than Chr…” https://t.co/Fr4iOddIZT"
Rockridgeさんのツイート: "Fx56:セッション情報を保存したファイルをLZ4形式で圧縮するようにした。 / “934967 - [Session Restore] Read/write data with lz4” https://t.co/t4BJneL4ru"
Rockridgeさんのツイート: "Fx56:Nightlyチャンネルで行われているトラッキング用スクリプトの動作抑制について、フォアグラウンドタブの処理が重いときはバックグラウンドタブの抑制を強化するといった、きめ細かな制御を行うらしい。 / “1362322 …” https://t.co/4mvEylQkk6"
Rockridgeさんのツイート: "Fx56:ICU(International Components for Unicode)ライブラリが59へとアップデートされた。参照:https://t.co/DvjSCGgiJD / “1353650 - Update o…” https://t.co/am39SqxIR7"
Rockridgeさんのツイート: "Fx56:link要素の"rel=preload"をサポート。参照:https://t.co/wQPIUWPpyR / “1222633 - Add support for <link rel=preload>” https://t.co/4iX9imSbzj"
Preload を用いたリソースプリローディングの最適化 | blog.jxck.io
Rockridgeさんのツイート: "Fx56:Windows版/Linux版NightlyにQuantum CSSがデフォルト無効で投入された。layout.css.servo.enabledをtrueにすると有効化される。参照:… https://t.co/pYPZWUHOpK"
<isindex> 対応が廃止されました | Firefox サイト互換性情報
<applet> 対応が廃止されました | Firefox サイト互換性情報
Rockridgeさんのツイート: "Fx56:フレームが子要素のリフローを複数回発生させる場合の処理を高速化した(コメント62)。AmazonやNew York Timesなど実環境のWebサイトでも効果があるらしい。 / “1308876 - Nested in…” https://t.co/H4hu4ecm12"
Rockridgeさんのツイート: "Fx56:バックグラウンドのタブにおけるHTMLのパースをアイドル時に行うようにし、プチフリを低減。 / “1355746 - Parser should use idle dispatch and not a timer fo…” https://t.co/yDEI7x5yVk"
Rockridgeさんのツイート: "米国のen-US版ユーザーに限定して、Firefox 56でForm Autofill機能が有効化されるかもしれない。クリスマス商戦に間に合わせるべくFx57では全面的な有効化を行う見通し。参照:… https://t.co/FVbaLa8q3k"
Rockridgeさんのツイート: "Firefox 56では、Windows/macOS/Linuxのどのプラットフォームにおいても、Node.jsのselenium-webdriverパッケージを使用することで、ヘッドレスモードを制御できる。 / “Headle…” https://t.co/fUiobSP3sZ"
Rockridgeさんのツイート: "Fx56:フォームにカレンダーから日付入力する際、一定の間隔を空けた日付のみ選択できるUIが実装された。また、現在日を強調表示するようにもなっている。参照:https://t.co/MuMB1KHS64 / “1363672 -…” https://t.co/6UcbOBujVO"
Rockridgeさんのツイート: "Fx56:セッション復元時、復元されるのを待っているタブにおいて投機的なコネクションを実行するようにした。複数のウィンドウを復元する際の待ち時間が減るとみられる。 / “874533 - Use speculative conn…” https://t.co/f2BOWCRRWu"
Rockridgeさんのツイート: "Fx56:「最近の履歴を消去」でIndexedDB、Service WorkerとDOMキャッシュのデータも削除するようにした。参照:https://t.co/97uwog6f8N / “1047098 - 'Clear Rec…” https://t.co/uIN4WyqV4W"
Rockridgeさんのツイート: "Fx56:window.showModalDialogが常時無効化(有効化できない)。Fx57ではこのAPIに関するコードも削除された。参照:https://t.co/CD0DKO3GCa / “981796 - Remove …” https://t.co/e594Nn5s2M"
Rockridgeさんのツイート: "Fx56:アップデータがLZMA形式のデータ圧縮をサポート。従来のbzip2形式と比較して、20%近くデータサイズを削減できた。 / “641212 - LZMA support for updater” https://t.co/uyYV1niBly"

57

Rockridgeさんのツイート: "Fx57:ページの読み込みが150ミリ秒以内に終わるときは、停止・再読込ボタンのアニメーションを行わないようにした。 / “1384180 - Don't animate the stop->reload if the page…” https://t.co/ReVNI1QiQL"
Rockridgeさんのツイート: "Fx57:タブを閉じる際、閉じる処理が終わる前に隣のタブのフォアグラウンド化を先行させることで、体感上の速度を向上させた。 / “1355426 - When closing tabs, select the next tab …” https://t.co/Sa2AR1Oey4"
Rockridgeさんのツイート: "Fx57:Placesデータベースの期限切れ処理について、5分間アイドル状態が続いた場合に大きな処理を行うようにすることで、パフォーマンスの低下を抑えた。 / “1376533 - Use idleDispatch for Pl…” https://t.co/7FPF5o21QS"
Rockridgeさんのツイート: "Fx57:Nightlyチャンネルで、オートスクロールにもAsync Pan/Zoom(APZ)が適用されるようになった。参照:https://t.co/sWDHJLVj0V / “APZ autoscrolling enabl…” https://t.co/HdXj2v28It"
Rockridgeさんのツイート: "Fx57:Lazy Frame Constructionを編集可能領域にも適用。Webメールの入力やブログ記事の編集などの場面でパフォーマンスが向上する。参照:https://t.co/pnk51XaKNm / “1348073…” https://t.co/cB2gw5C4Bb"
Rockridgeさんのツイート: "Fx57:バックグランドのタブへのマウスオーバーがあった時点でタブ切り替え後の処理の一部を投機的に開始しておくことにより、体感上の速度を向上させた。 / “1385453 - Make it possible for async…” https://t.co/yZJkSpDAov"
Rockridgeさんのツイート: "Fx57:browser.tabs.loadBookmarksInTabsの設定をtrueに変更することで、ブックマークを開く際、新しいタブにコンテンツが表示されるようになる。 / “658245 - Open bookmark…” https://t.co/vgoyLKH1fi"
Rockridgeさんのツイート: "ディスプレイのリフレッシュのタイミングに合わせてmousemoveイベントをまとめて処理する仕組みがFirefox Nightly 57に実装されるらしい。イベントの実行コストを削減することが目的。 / “Enable coal…” https://t.co/WEgb5BNc1G"
Rockridgeさんのツイート: "Fx57:browser.xulからスクリプトをロードする際、サブスクリプトローダーを使用することで、プリローダーキャッシュから別スレッドの単一のゾーンに読み込むなどの処理が可能となり、本体の起動が高速化された。 / “1384…” https://t.co/B753EwzC2n"
Rockridgeさんのツイート: "Fx57:アクセシビリティ機能が有効の場合(高DPI環境でディスプレイ設定が拡大表示のときを含む)、タブバー上にインジケータが表示されるようになった。accessibility.indicator.enabledをfalseにする… https://t.co/WJ1RddRVJa"
Rockridgeさんのツイート: "Fx57:タブのコンテキストメニューに「タブを複製」が追加された。 / “455722 - Add context menu item to duplicate (clone) tab” https://t.co/qskO1EL3GD"
Rockridgeさんのツイート: "Fx57:本体起動時に各種設定ファイルやシステムスタイルシートなどを別スレッドで非同期に読み込むようにし、パフォーマンスを向上させた。 / “1363482 - Pre-load files needed during star…” https://t.co/rnjiiJuUcX"
Rockridgeさんのツイート: "Fx57:新規タブのサムネイル生成処理はアイドル時に行うようにした。 / “1348280 - Thumbnail causes jank on sites with a requestAnimationFrame” https://t.co/fhaGFRH9C2"
Rockridgeさんのツイート: "すべてのXPConnect JSモジュールを単一のコンパートメントに読み込む仕組みは、Firefox Nightly 57にデフォルト無効で投入された。この仕組みが有効化された場合のパフォーマンス向上の度合いは大きいようだ。 https://t.co/zPw8mwlmhk"
Rockridgeさんのツイート: "Fx57:ヘッドレスモードのコマンドラインからスクリーンショットを撮影できるようになった。--screenshot=/path/to/fileというコマンドを使用する。 / “1378010 - Take a screensho…” https://t.co/GKweM0uzUW"
Rockridgeさんのツイート: "Firefox 57の起動速度はFirefox 55と比較して約50%も高速化したという。 / “Photon Engineering Newsletter #16 | Dolske's blog” https://t.co/x26ABPpaCW"
Rockridgeさんのツイート: "Fx57:Fluentをベースにした新しいローカライズ用フレームワークを導入。参照:https://t.co/wRK9Vxc6R5 https://t.co/v2sqxF4SSl / “1333980 - Land L10nRe…” https://t.co/DJ8xOstoX2"
Rockridgeさんのツイート: "Fx57:eTLD(effective TLD)のルックアップ機構を改良し、省メモリ化とパフォーマンス向上を同時に実現した。Chromeの技法を採り入れたという。 / “1380154 - Improve Effective T…” https://t.co/BrRY7DEuob"
Rockridgeさんのツイート: "Fx57:Async Iterationをデフォルト有効化。 / “1352312 - Update Async Iteration to follow the proposal change and let it ride t…” https://t.co/qfcsqSTqJS"
Rockridgeさんのツイート: "Fx57:入力イベントの処理の優先順位を高めることで、応答性を向上させたらしい。 / “1351148 - Add an event queue to nsThread for input events and annotate…” https://t.co/VkAm8javR3"
Rockridgeさんのツイート: "Fx57:戻るボタンで履歴を遡る際、新規タブページに戻ることができるようになった。 / “776167 - can't go back to the new tab page” https://t.co/xiwLGviB3B"
Rockridgeさんのツイート: "最小タブサイズを従来の半分にする新仕様に対しては賛同者が多く、Firefox 57にも投入されそうな雰囲気だ。 / “Changes to tab min-width” https://t.co/IfnDzXtZsz"
Rockridgeさんのツイート: "Fx57:ブックマークをHTMLからインポートした場合、Firefox Syncの処理としては新しいブックマーク項目の追加として扱うようにした。これまではリストアの扱いになっていた。 / “1353217 - importing…” https://t.co/FDzZCuVtR4"
Rockridgeさんのツイート: "Fx57:iframe内に読み込まれたデータURLはクロスオリジンとして扱われるようになった。クロスサイトスクリプティング(XSS)の危険を軽減するための措置。 / “Treating data URLs as unique o…” https://t.co/CIAosZzaxO"
Rockridgeさんのツイート: "Fx57:アドレスバーの検索サジェストの候補に、過去の検索履歴の項目が含まれるようになった。 / “1181644 - search suggestions in the awesome bar should include l…” https://t.co/YTT5oiMBWP"
Rockridgeさんのツイート: "Fx57:MS-IMEやGoogle日本語入力を使用しつつアドレスバーにフォーカスを当てると入力モードがオフになるというIME側の仕様に、対策を施した。 / “show_bug.cgi?id=1404206” https://t.co/2lX511vr3T"
Rockridgeさんのツイート: "タブの最小サイズを76にするのは最終決定のようだ。Firefox 57もこれでいく。参照:https://t.co/tsIVZifLOs / “Changes to tab min-width” https://t.co/hxCxWq71om"
Rockridgeさんのツイート: "Fx57:ツールバー上に「伸縮自在のスペース」を配置した場合、それによってできる空白領域をドラッグして、ウィンドウを移動させることができるようになった。 / “1387415 - Use flexible spaces (and…” https://t.co/rZtK0IqiuD"
Rockridgeさんのツイート: "Fx57:設定画面でフォントを列挙する処理を非同期化した。 / “1375978 - Enumerating fonts should not block about:preferences from being display…” https://t.co/B75IaWWwOJ"
Rockridgeさんのツイート: "Fx57:Web版Twitter上で既に多数のツイートを表示している場合などに、タイムラインにおける新規ツイートの表示に時間がかかる問題を修正。 / “1368852 - twitter's load "new results"…” https://t.co/coNg3CdeDr"
Rockridgeさんのツイート: "Fx57:日本語版に初期登録されるフィードリーダーがFeedly/Inoreader/AOL Readerの3つに決まった。Feed Watcherはフィード登録用のURLが存在しないため今回は採用が見送られた。 / “1383…” https://t.co/6oa5Hkp0XQ"
Rockridgeさんのツイート: "Feed Watcherの開発会社がフィード追加用URLを公開し、急遽Firefox 57にも追加されることが決まった。 / “1413155 - [ja] Add Feed Watcher as feed handler” https://t.co/Yk2l9M0YTs"
Rockridgeさんのツイート: "Fx57:フォームにカレンダーから日付入力する機能がデフォルト有効化された。 / “1399036 - Enable date/time input by default on all builds” https://t.co/gSVuvpDgKH"
Rockridgeさんのツイート: "Fx57:設定画面の〔プライバシーとセキュリティ〕にサイトデータのディスク使用量が表示され、ユーザーがサイトデータを個別に・まとめて削除できるようになった。 / “1399398 - Turn on the Storage Ma…” https://t.co/2UF2a7XLCh"
Rockridgeさんのツイート: "Fx57:ウェブ開発メニューのWebIDEで、シミュレーター機能が削除された。 / “1398061 - Remove simulators from WebIDE” https://t.co/EEAd8BPE3G"
Rockridgeさんのツイート: "Akamaiが大規模なデータを基に調査したところによると、Firefox 57はFirefox 52との比較でDOM Content Loadedの時間が24%改善したという。 / “measuring-performance-…” https://t.co/9jfkJeNknt"
Rockridgeさんのツイート: "Fx57:ホームタブ・新規タブのセクションごとに、「?」マークのアイコンを置き、設定画面へのショートカットが表示されるようにした。セクションをオフにする方法がわかりにくいという声に配慮したもの。 / “1404345 - Use…” https://t.co/Za2EigAEVs"
Rockridgeさんのツイート: "Fx57:仕様上、Firefox Screenshotsはプライベートブラウジングモードでは使用不可。 / “1403661 - Stop Screenshots from activating in private brows…” https://t.co/mlvaQpBby1"
Rockridgeさんのツイート: "Firefox 57で発生していた、スクリーンリーダー使用時に本体のパフォーマンスが低下する問題は、Firefox 58でおおむね解消されたとのこと。 / “NVDA and Firefox 58 - The team is r…” https://t.co/1uclU9zVpi"
Rockridgeさんのツイート: "Fx57:検索プラグインにeBayを追加。Fx50で外れていたが、eBayと再契約したことにより戻ってきた。 / “1406164 - Bring eBay back” https://t.co/DYoo3zIDrB"
Rockridgeさんのツイート: "Fx57:Windows版インストーラが使用する画像ファイルが高DPIに対応した。 / “1337856 - Installation assets in Windows are low dpi” https://t.co/DyuRIkoe82"

58

日本語版Firefox 58では初期登録のフィードリーダーが3つに - Mozilla Flux
Rockridgeさんのツイート: "リリース版でPointer Events(マウス・タッチ・ペン入力)がデフォルト有効化されるのは、Firefox 58になる見通し。 / “Firefox/Channels/Meetings/2017-07-06 - Mozil…” https://t.co/ttXU9hB2WU"
Rockridgeさんのツイート: "Fx58:一定の条件を満たす場合にgetComputedStyleがリスタイリングをスキップするようにして処理を高速化。参照:https://t.co/QsQ3FjtetY / “getComputedStyle now ski…” https://t.co/mMrL6L1DFg"
Rockridgeさんのツイート: "Fx58:Windows版Nightlyで、描画処理の非同期化(OMTP:Off Main Thread Painting)が有効になった。 / “1403935 - Enable OMTP by Default on Wind…” https://t.co/7oVJrPLJYk"
Rockridgeさんのツイート: "Fx58:browser.tabs.tabMinWidthの設定を復活させ、その初期設定値を100から50に下げた。Chromeのようにタブバー上に大量のタブが並ぶことになる。 / “1404465 - Add back `br…” https://t.co/TJd9x74IV4"
Rockridgeさんのツイート: "Firefox 58で<a ping>のサポートを検討中。リンクが押された際にリンク先とは別にログ用のURLにリクエストを投げることが可能になる。参照:https://t.co/eGE9yxM3MT … https://t.co/q8zvG775fA"
Rockridgeさんのツイート: "link要素の"rel=preload"はWeb互換性の問題が生じているため、Firefox 57でいったん無効化し、Firefox 58での再有効化を目指すという。 / “Intent to unship: rel=prelo…” https://t.co/NwBqqAD8kD"
Rockridgeさんのツイート: "Async Places TransactionsはFirefox 58でデフォルト有効化の見込み。 / “Firefox/Meeting/10-Oct-2017 - MozillaWiki” https://t.co/WuQJbntFRW"
Rockridgeさんのツイート: "複数のタブを選択する機能は、Firefox本体に実装の予定があるらしい。Firefox 58に入るかも。参照:https://t.co/yrd8Scdooj / “Firefox/Meeting/10-Oct-2017 - Mo…” https://t.co/JzKaLEVRCb"
Rockridgeさんのツイート: "Fx58:general.smoothScroll.msdPhysics.enabledをtrueにすると、スムーズスクロールの挙動が変更される。新しいアルゴリズムを採用したらしい。変更後の挙動のほうが加速が大きくなる印象だ。 https://t.co/Fp4qts3l2d"
Rockridgeさんのツイート: "Fx58:軽量インストーラがレジューム機能を備えた。ダウンロード中にネットワーク接続が途切れた場合、接続再開後はダウンロードの途中から復帰する。 / “798005 - Add resume support to the stu…” https://t.co/9bm9CnpE46"
Rockridgeさんのツイート: "Fx58:Shiftキー + ホイールの縦スクロールでコンテンツの横スクロールが可能に。16年前に登録されたバグの修正となる。参照:https://t.co/W9z5tNaCz1 / “Intent to ship: New d…” https://t.co/AtTWu05dEi"
Rockridgeさんのツイート: "Fx58:Pointer Events(マウス・タッチ・ペン入力)がデフォルト有効化へ。参照:https://t.co/PT8iVENNx4 / “Intent to ship: Pointer Events (Desktop)” https://t.co/0iJTd4ZGcb"
Rockridgeさんのツイート: "Fx58:パスワードやセキュリティ証明書を保存するデータベースが、SQLiteを用いた新しいファイルフォーマット(cert9+key4)に移行した。 / “783994 - switch Mozilla to use the c…” https://t.co/iunqpvVTvk"
Rockridgeさんのツイート: "Android版Firefox 58でWebアプリマニフェストをサポート。HTTPS接続したサイトが正統なマニフェストを持つ場合、ホームスクリーンに追加するとアプリ的に振る舞う。 / “Add Progressive Web A…” https://t.co/7yPKale3Rg"
Rockridgeさんのツイート: "Async Places TransactionsはFirefox 58リリース版に投入される見通し。 / “These Weeks in Firefox: Issue 26 – Firefox Nightly News” https://t.co/YcDbKagjZT"
Rockridgeさんのツイート: "Fx58:ポップアップブロックのアイコンが、アドレスバーの右端ではなく、左端の情報領域に置かれるようになった。 / “1331931 - Move the popup blocked icon into the identity…” https://t.co/KgxlTIkYGu"
Rockridgeさんのツイート: "Fx58:Android版Firefoxのビルド環境がGCCからClangに移行した。参照:https://t.co/jNmNvXnqrm / “Fennec now builds with clang instead of g…” https://t.co/guOap9dZxr"
Rockridgeさんのツイート: "Fx58:Android版FirefoxのビルドにGradle Build Toolが用いられるようになる。参照:https://t.co/BdAhqay5zS / “[ann] Default Fennec build con…” https://t.co/FK5aUptWTk"
Rockridgeさんのツイート: "Fx58:Webサイトがcanvas要素のImageDataを使用する際、ユーザーに許可を求めるようになった。ユーザーの識別に利用されるおそれがあるため。 / “Firefox 58 warns you if sites use…” https://t.co/KPOTyvt6YX"
Rockridgeさんのツイート: "Fx58:ユーザーが追加する検索エンジンのアイコンについて、サイズの上限が10KBから20KBに引き上げられた。アイコンが表示されない問題が起きにくくなる。 / “361923 - Can't use remote search…” https://t.co/QHTU72eXw7"
Rockridgeさんのツイート: "Fx58:バックアップしておいたブックマークを復元する際、エラーが出た項目をスキップして処理を行うようになった。一部が原因で全く復元できないという事態を避けられる。 / “1404631 - Firefox 56: "Unabl…” https://t.co/aCzwQknT2z"
Rockridgeさんのツイート: "Fx58:YouTubeのように複数のファビコンが設定されている場合、適切なものを取得してタブに表示するようにした。これまでは最後に記述されたファビコンを取得しているだけだった。 / “1403829 - YouTube ico…” https://t.co/yg8blFHbvP"
Rockridgeさんのツイート: "Fx58:Async Places Transactionsが有効の場合に、フォルダをまたいで大量のブックマークをコピー・移動する際のパフォーマンスが改善された。 / “1413843 - Cut/Copy/Move opera…” https://t.co/Vfi0G8A5Rf"
Rockridgeさんのツイート: "Firefox 58では、WebページがデータURLドキュメントを開くことやデータURLドキュメントに遷移することがブロックされるという。 / “Blocking Top-Level Navigations to data UR…” https://t.co/nRc41rjpEK"
Rockridgeさんのツイート: "Fx58:ページ内検索で、不可視のテキストまでヒットしてしまう後退バグを修正。 / “1302470 - Find in page should only find visible text” https://t.co/o5Qp14cE9m"
Rockridgeさんのツイート: "Firefox 58にデフォルト無効で実装された、Webサイトがcanvas要素のImageDataを使用する際にユーザーに許可を求める機能は、もう少しきめの細かい制御を可能にしつつ、サンドボックス化されたiframeで有効化する… https://t.co/hFoVooV2hn"
Rockridgeさんのツイート: "Fx58:マウスでスクロールバーを操作してスクロールする際、一部のページでバーのつまみ部分が追随しない後退バグを修正。 / “1402995 - Scroll thumb not synchronized with mouse” https://t.co/nem7u17IgR"
Rockridgeさんのツイート: "Fx58:about:profilesで、プロファイルの削除処理を非同期化し、サイズの大きなプロファイルを削除しても本体の応答性に支障が出ないようにした。 / “1406818 - Firefox hangs when dele…” https://t.co/Waj7LdxOJq"
Rockridgeさんのツイート: "Fx58:アドレスバーのメニューから〔リンクをコピー〕した際、「コピーしました」とのメッセージが表示される。 / “1408135 - Copy URL confirmation message should appear wh…” https://t.co/p2vVgWMlqW"
Rockridgeさんのツイート: "Fx58:大きなデータURIが開かれているタブの切り替えを高速化。 / “1408854 - Very slow tab-switching when a tab with a large data URI is open” https://t.co/3HPbCce4Dd"
Rockridgeさんのツイート: "Firefox 58の主な改良点について。Firefox Quantumの前では霞んでしまうが、通常であれば新機能が多数実装された、大きめのリリースと言えるだろう。 / “Firefox/Roadmap/Updates - Mo…” https://t.co/oVJkmx70Y1"
Rockridgeさんのツイート: "Fx58:ショートカットキーを用いてブックマークを登録する場合も、デフォルトのフォルダが「他のブックマーク」となり、挙動が統一された。 / “1120110 - Standardize default output folder…” https://t.co/3fU22oBPBo"
Rockridgeさんのツイート: "Fx58:常に適切なサイズのファビコンが取得されるよう調整を加えた。 / “1347532 - The page-icon protocol should default to the best size for most UI…” https://t.co/mVwLfuyYkm"
Rockridgeさんのツイート: "Fx58:Cookieデータベースの起動処理を非同期化した。 / “870460 - Lazy load of cookie service blocks main thread while cookie database lo…” https://t.co/bkrPRgpn9P"
Rockridgeさんのツイート: "Fx58:プライベートブラウジングモードにおいても、ブラウジングライブラリーで「このサイトの履歴を消去」が使えるようになった。 / “1394824 - "Forget About This Site" is missing i…” https://t.co/WOmj0B1LaK"
Rockridgeさんのツイート: "Fx58:トラブルシューティング情報(about:support)のページに「国際化とローカライズ」のセクションが加わり、ロケール関連の情報が表示されるようになった。 / “1414975 - Add locale inform…” https://t.co/9HzZircWJ9"
Rockridgeさんのツイート: "Fx58:Firefoxをリフレッシュした際、ブックマークツールバーにデフォルト以外のブックマークが4つ以上あるときは、ツールバーを隠さないようにした。 / “1415692 - New/Reset profiles shoul…” https://t.co/ncvaBujGCR"
Rockridgeさんのツイート: "Firefox 58のFirefox Screenshotsはプライベートブラウジングモードに対応しており、スクショのクラウド保存はできないがダウンロードは可能。モード終了時に削除される。参照:… https://t.co/xswmfdeMjW"
Rockridgeさんのツイート: "Firefox 58の紹介記事だが、CSS Font DisplayやPromiseの新機能にスペースを割くあたりがMozilla Hacksらしさか。 / “Firefox 58: The Quantum Era Contin…” https://t.co/cVFKD47t7o"

59

Rockridgeさんのツイート: "Fx59:textarea要素のautocomplete属性をサポート。参照:https://t.co/axCbzT9I7r https://t.co/EFTGGMOuXr / “Intent to Implement and …” https://t.co/JBhwK3kGI5"
Rockridgeさんのツイート: "Fx59:スリープ時におけるFirefox Syncの動作を抑えるべく、スリープ前に簡易同期を、スリープ復帰後に完全同期を行う。参照:https://t.co/ckTeDo2zD1 / “1416322 - Schedule a…” https://t.co/Am50jLUyM2"
Rockridgeさんのツイート: "Firefox Nightly 59でCustom Elementsがデフォルト有効化される見込み。 / “Intent to implement: Custom Elements” https://t.co/B4DkLHshgW"
Rockridgeさんのツイート: "Fx59:@-moz-documentルールがWebコンテンツから使用できなくなる。参照:https://t.co/hlLgfrJHdP / “Intent to unship: @-moz-document from cont…” https://t.co/XbWA54HUWY"
Rockridgeさんのツイート: "Fx59:ページのメタデータは変更があるときのみPlacesデータベースに書き込まれるようになった。無駄な書き込み処理が減ることに。 / “1420571 - Reduce I/O caused by storing page …” https://t.co/t08UABotdy"
Rockridgeさんのツイート: "Fx59:Race Cache With Network(RCWN)がデフォルト有効化。ディスクI/Oが遅い場合に、キャッシュされたコンテンツについてもネットワーク要求を送り、応答が早ければそちらを利用する。 / “139284…” https://t.co/NKFFK3xWoD"
Rockridgeさんのツイート: "Fx59:古く、標準化もされなかったpcast/feedプロトコルを削除。フィードの購読機能には影響しない。参照:https://t.co/fDsD8FYi5X / “Intent to remove pcast and fee…” https://t.co/4JJ0i6IFKB"
Rockridgeさんのツイート: "Fx59:オプション画面の「保存されたログイン情報」において、コンテキストメニューからURLをコピーしたり、タブに開いたりすることができるようになった。 / “1334663 - Allow users to copy save…” https://t.co/1AKnxeRATp"
Rockridgeさんのツイート: "Fx59:最近の履歴を削除するなどして、フォーム履歴をまとめて削除した場合、Firefox Syncの同期処理にそれが反映されるようになった。 / “1404427 - Sync mass Form History deleti…” https://t.co/8RzyvKuAij"
Rockridgeさんのツイート: "Fx59:Firefox Screenshotsに、スクリーンショットをクリップボードに追加する機能が実装された。 / “1419148 - Export Screenshots 25.0.0” https://t.co/p5KTIXXrky"
Rockridgeさんのツイート: "Fx59:ピン留めしたタブのコンテキストメニューにも、「右側のタブをすべて閉じる」「他のタブをすべて閉じる」の項目が出るようになった。ただし閉じられるのはピン留めされていないタブに限られる。 / “1419537 - Unabl…” https://t.co/pgriZiNVXX"
Rockridgeさんのツイート: "Fx59:文字列の選択時、アンダースコアを文字列の一部として扱うようにした。従来は文字列の区切りとして扱われていた。 / “196175 - underscore should be part of word, not punc…” https://t.co/gnVqfOedtJ"
Rockridgeさんのツイート: "Fx59:オプションの〔プライバシーとセキュリティ〕内の「許可設定」欄で、通知の許可設定のUIに、すべての通知を拒否する設定が追加された。 / “1368744 - Provide a way for users to deny…” https://t.co/NKtKw6MKQp"
Rockridgeさんのツイート: "Fx59:Activity Stream導入後のホームタブ・新規タブにおいて、トップサイトの項目をドラッグ&ドロップで並び替えられるようになった。 / “1402192 - Top Sites drag and drop” https://t.co/Fz9UukKKZA"
Rockridgeさんのツイート: "Fx59:JAR形式のファイルに対する読み書きが非同期化され、本体の起動が高速化された。 / “1373708 - Convert Jar channels to stop using main thread I/O” https://t.co/vqj2t1HpqT"
Rockridgeさんのツイート: "Fx59:Nightlyチャンネルで、Web Authenticationがデフォルト有効化。参照:https://t.co/wfLGpyeoKL / “1428918 - Web Authentication - Enable…” https://t.co/to6Sb30OBf"
Rockridgeさんのツイート: "2017年12月19日時点のFirefox Nightly 59に約8万6000項目のブックマークをインポートしたテスト結果。Async Places Transactionsが無効だと処理終了までに優に3時間以上を要するが、有効… https://t.co/V3bXMtG39D"
Rockridgeさんのツイート: "Fx59:Placesデータベースの破損を検知した場合、データベースを新規作成して、元のデータベースから可能な限りテーブルを移し、当該新データベースで置き換える処理が、自動的に実行される。 / “1411538 - Add a …” https://t.co/kLYg40TPRH"
Rockridgeさんのツイート: "Fx59:オプション画面の〔検索〕に、アドレスバーにおいて履歴からのサジェストよりも検索結果からのサジェストを優先する設定が追加された。 / “1426216 - Allow users to choose whether se…” https://t.co/wOVt0TmuWV"
Rockridgeさんのツイート: "Fx59:プライベートブラウジングモードでは、リファラーポリシーがデフォルトでstrict-origin-when-cross-originに設定されるようになった。参照:https://t.co/V0ucWrNl6v / “5…” https://t.co/72lIIfzNf4"
Rockridgeさんのツイート: "Fx59:Windows以外のプラットフォームでは、プロファイルのパスが正規のUTF-8でない場合、本体が起動しないようにした。 / “1423855 - Refuse to run on non-Windows platfor…” https://t.co/1RpOPtdKXS"
Rockridgeさんのツイート: "Fx59:ディスプレイリストに変更がない場合もRetained Display Listsが機能するようになった。 / “1419021 - Retain display list when there are no chang…” https://t.co/KLrCoR0XW2"
Rockridgeさんのツイート: "Fx59:ピン留めされたタブ上でCtrl(Command)+ Wキーを押した場合、ピン留めされていない最初のタブがアクティブになるようにした。 / “1420601 - Let Accel+W in a pinned tab s…” https://t.co/oa40Tb6TuX"
Rockridgeさんのツイート: "Fx59:ロケールのリストは、新たに設けられたintl.locale.requestedの設定内に記述されることになった。 / “1414390 - Introduce a pref to store BCP47 locale …” https://t.co/xw6xs76gzU"
Rockridgeさんのツイート: "Fx59:fileプロトコルのURIについては、同期対象から外されることになった。 / “664590 - History sync: ignore file:/// URIs” https://t.co/g9Wj0glJW0"
Rockridgeさんのツイート: "Fx59:table要素内でもposition: stickyが有効となった。 / “975644 - Make position: sticky work on table parts” https://t.co/FGGUilMpMH"
Rockridgeさんのツイート: "Fx59:dom.webcomponents.enabledの設定名をdom.webcomponents.shadowdom.enabledへと変更した。 / “1428685 - Consider renaming pref …” https://t.co/LDyy1rKxdl"
Rockridgeさんのツイート: "Fx59:tab warming機能が有効の場合、タブの閉じるボタンにカーソルをホバーさせた時点で、そのタブを閉じた際にアクティブになるタブのwarming処理が始まる。 / “1430292 - Warm up tab we'…” https://t.co/3UTy7j4YWX"

6x

60

Rockridgeさんのツイート: "Firefox 60リリース版において、USB接続されたFIDO U2Fデバイスがサポートされる見通し。その後もFIDO 2.0デバイスのサポートが拡充されていくという。 / “Intent to Ship: Web Authe…” https://t.co/jYn7i7b5b6"
Rockridgeさんのツイート: "Firefox 60で、Webコンテンツから使用されるjarプロコトルのサポートが廃止される見込み。参照:https://t.co/SwIrq4Fecp / “Intent to unship: remote jar: prot…” https://t.co/Q8mvHfpqXZ"
Rockridgeさんのツイート: "Firefox 60ではNightly/Developer Editionにおいてアプリケーションキャッシュ(AppCache)の利用が安全なコンテキストに限定される見通し。Firefox 62リリース版でも同様の措置へ。参照:… https://t.co/l58xbEEYLd"
Rockridgeさんのツイート: "Firefox 60でPolicy Engineが実装されるのに伴い、AutoConfig機能は廃止予定となる見込み。 / “1434655 - Make AutoConfig ESR only starting with Fi…” https://t.co/gIefqhB6OI"
Rockridgeさんのツイート: "Fx60:Rust言語製の新しい設定パーサが実装された。従来よりも高速かつ安全で、エラーメッセージがわかりやすく正確になり、メンテナンスもかなりしやすくなったという。参照:https://t.co/YlVSP1Gep3 / “N…” https://t.co/DY50wXxS0L"
Rockridgeさんのツイート: "Fx60:設定画面の〔プライバシーとセキュリティ〕の「サイトデータ」で、"すべてのデータを消去"を選択すると確認画面が表示され、キャッシュも削除できるようになった。 / “1422163 - Make a new confirm…” https://t.co/tfEBO7oghi"
Rockridgeさんのツイート: "Firefox 60に実装されたStructured Bookmark Applicationを取り上げている。ブックマークの同期時、サーバから読み込まれた内容をそのままデータベースに書き込むのではなく、中間的なツリーを構築するの… https://t.co/UhQfOqbHmj"
Rockridgeさんのツイート: "Fx60:スクリーンの横幅が十分にある場合、新規タブに表示されるトップサイトを1列あたり8つに増やすとともに、ハイライトのカードサイズを大きくするようにした。 / “1385944 - Support wider layout …” https://t.co/KctiojbENY"
Rockridgeさんのツイート: "Fx60:軽量インストーラがダウンロードを行う際、HTTPS接続を用いるようにした。 / “1246387 - Use https for stub installer requests” https://t.co/rPdBG5f2OZ"
Rockridgeさんのツイート: "Fx60:browser.urlbar.openintabの設定をtrueに変更すると、アドレスバーに入力された内容(URLまたは検索クエリ)は、常に新規タブで表示される。 / “1394304 - Support always…” https://t.co/oyF3ZqvmCv"
Rockridgeさんのツイート: "Fx60:security.insecure_connection_text.enabledの設定をtrueに変更すると、HTTP接続のページでは、アドレスバーに"Not Secure"つまり「安全でない接続」と表示されるようにな… https://t.co/sDMQzLG4ey"
Rockridgeさんのツイート: "Fx60:network.ftp.enabledの設定をfalseに変更すると、FTPプロトコルを無効にできる。 / “1374114 - Add a pref to disable ftp://” https://t.co/2DX18Pxfyo"
Firefox ESR60以降でのPolicy Engineによるポリシー定義の手順 - ククログ(2018-02-19)
Rockridgeさんのツイート: "Fx60:security.mixed_content.upgrade_display_contentの設定をtrueにすると、静的混在コンテンツにおいてHTTP接続が指定されたリソースを、HTTPS接続によって取得するという。 https://t.co/hCExsfu3kB"
Rockridgeさんのツイート: "Fx60:Cookie関連の設定がサイトデータのセクションに移された。Cookieはサイトデータの一部として扱われ、Cookieのみを一覧から削除することはできなくなった。 / “1432743 - Move cookie se…” https://t.co/onK6zsWjpt"
Rockridgeさんのツイート: "Policy EngineはFirefox 60で、ESRに限らず通常版でも利用可能になるようだ。ただし、一部の重要なポリシーはESRでのみ有効となる。 / “Intent to Ship: Enterprise Policies” https://t.co/2vf50eZCg8"
Rockridgeさんのツイート: "Fx60:新規タブ内のセクションごとにコンテキストメニューが設けられた。セクションを閉じたり削除したりできるほか、新規タブの設定を呼び出すことも可能。 / “1422079 - Add section context menu …” https://t.co/nikNbXfr8k"
Rockridgeさんのツイート: "Fx60:「ページのソースを表示」する際、新規ウィンドウに表示させる設定が廃止された。常に新規タブに表示されることになる。参照:https://t.co/JETAsOLAq1 / “Feature Removed: View S…” https://t.co/n6NebKKPCp"
Rockridgeさんのツイート: "Fx60:フレーム数の多いアニメーションGIF画像やAPNG画像を表示させた際、大量のメモリを消費する問題を修正。 / “523950 - Long animated images (GIF, APNG) makes Firef…” https://t.co/iWzpUYTCWc"
Rockridgeさんのツイート: "Fx60:長大なテキストファイルを表示する際、パフォーマンスが著しく低下する問題を修正。 / “1427625 - Performance cliff loading a Taskcluster log” https://t.co/IN56Y6rovT"
Rockridgeさんのツイート: "Fx60:Windows向け64bit版で、プラグインプロセスによるプロセス間通信がSSLによって保護されるようになったらしい。 / “1429643 - Restrict SSL brokering in NPAPI proc…” https://t.co/z7HFh3ohMq"
Rockridgeさんのツイート: "Fx60:Web Authentication利用時のパーミッションUIが実装された。 / “1430150 - Web Authentication - Prompt for permission before permitt…” https://t.co/oNqyW3BPZV"
Rockridgeさんのツイート: "Fx60:フォーム履歴の処理を非同期化。 / “888784 - FormHistory.jsm migration and DB creation should be off the main thread” https://t.co/uJ3qhQQ1rt"
Rockridgeさんのツイート: "Fx60:他のブラウザからブックマークや履歴などをインポートする際の処理について、非同期化を進めた。参照:https://t.co/j4gd1MhPeH / “862127 - profile migrators do all …” https://t.co/SV3KzEXyE0"
Rockridgeさんのツイート: "Fx60:workerが常時有効化。 / “1434934 - Get rid of dom.workers.enabled pref” https://t.co/n5Puw0CfqV"
Rockridgeさんのツイート: "Fx60:HTMLテキストでもCSSのpaint-orderプロパティがデフォルト有効化された。参照:https://t.co/ygLlo9FN8w / “Firefox 60 – Modules and More – Mozi…” https://t.co/ScyIRlmQG1"
Rockridgeさんのツイート: "MozillaがFirefox 60以上を使用するen-USロケールユーザーの1%を対象に、ファイルのダウンロード先としてクラウドストレージを指定可能にする機能の実験を行った。実験は今後も形を変えて継続される見込み。 / “Un…” https://t.co/ebDLXgiJfH"

61

Rockridgeさんのツイート: "Firefox 61以降、ビルドの際にNode.jsが必須となる模様。参照:https://t.co/rKdElYR1j2 / “Intent to require Node to build Firefox 61 and la…” https://t.co/pTb3yIO7k4"
Rockridgeさんのツイート: "Fx61:contentプロセスの生成時、メインスレッドをブロックしないようにした。パフォーマンスの改善が期待できる。 / “1348361 - Remove sync IPC when launching a child pr…” https://t.co/ZNOhFaKKPr"
Rockridgeさんのツイート: "Fx61:Windows版で、Async Pan/ZoomのコントロールをGPUプロセスのメインスレッドが担当するようになった。ユーザー入力時の応答性が向上するという。 / “1441324 - Make the APZ con…” https://t.co/DYPO4Hqtu0"
Rockridgeさんのツイート: "Fx61:browser.tabs.closeTabByDblclickの設定をtrueに変更すると、選択したタブをダブルクリックするだけで、そのタブを閉じることができる。 / “1435142 - Pref to enable…” https://t.co/SpyVyNcaBy"
Rockridgeさんのツイート: "Fx61:最終同期時間の表示が、日時ではなく、相対的にどれくらい前か(例:4時間前)を示すものになった。 / “1184265 - Make last sync date be relative” https://t.co/J1f2flpJ9Q"
Rockridgeさんのツイート: "Fx61:mousewheel.autodir.enabledをtrueに変更すると、縦書きのサイトでふつうにマウスホイールを回転させるだけで横スクロールが行われる。 / “1358017 - (autodir) autodir…” https://t.co/kwYm4EiRBk"
Rockridgeさんのツイート: "Fx61:「ページ情報」ウィンドウのセキュリティ欄からCookie以外のサイトデータも消去できるようになった。 / “1348223 - Organize site data (persistent storage) bette…” https://t.co/IHe1sqedfA"
Rockridgeさんのツイート: "Fx61:新規タブがページのサムネイルを取得する際、トラッキング防止機能が常に働くようになった。データ漏洩を予防するだけでなく、コネクションが減るのでスピードアップも実現できるという。 / “1449294 - Capture …” https://t.co/hXV9luZJqD"
Rockridgeさんのツイート: "Fx61:セッション復元の際、常に、前回終了時にアクティブだったウィンドウがアクティブになる形で、復元が行われるようになった。 / “1034036 - [Session Restore] Load windows by des…” https://t.co/1lD4vhya1W"
Rockridgeさんのツイート: "Fx61:Web互換性上の問題を修正するシステムアドオンがバージョン2にアップデートされた。特定のプラットフォームでUA文字列を上書きする機能や、特定のサイトを対象にJavaScript/CSSを挿入する機能が実装されている。 https://t.co/byIYxS2vKa"
Rockridgeさんのツイート: "Fx61:HTTP(S)ページによるFTPサーバーからのリソース読み込みをブロックする理由について。FTPは古いプロトコルであり、暗号化がされずセキュリティに問題があるので、少しずつ利用可能な範囲を狭めていくようだ。 / “Bl…” https://t.co/NRpjVzzRId"
なかのん&マジックさんのツイート: "自分で書いてたけど却下されてUIチームが引き取ってくれてた"browser.tabs.insertAfterCurrent"という設定、Firefox 61から入ってたことに今気付いた。"
なかのん&マジックさんのツイート: "これで仕事がはかどる。"
なかのん&マジックさんのツイート: "イライラしてカッとなって書いたパッチだったのに投入されてるのに9ヵ月も気付いて無いとか("

62

Rockridgeさんのツイート: "Variable Fontのデフォルト有効化はFirefox 62に延期された。 / “1455785 - Pref off OpenType Font Variations (Variable Font) support” https://t.co/h5EwnqNk2L"
Rockridgeさんのツイート: "Fx61:ブロックリスト関係のAPIを非同期化し、本体のパフォーマンスを改善した。 / “1447680 - Make blocklist APIs asynchronous” https://t.co/rgaLEgUpyw"
Rockridgeさんのツイート: "Fx62:RDF形式のファイルのサポートを廃止した。 / “833098 - Kick RDF out of Firefox and Gecko” https://t.co/6JqJiY55Tz"
Rockridgeさんのツイート: "Fx62:browser.tabs.loadBookmarksInTabsの設定がtrueの場合であっても、現在のタブが空白のときは、現在のタブにブックマークされたページを読み込むようにした。 / “1417133 - When…” https://t.co/VanNJcR53v"
Rockridgeさんのツイート: "Fx62:アドレスバーの自動補完機能のアルゴリズムが改善された。 / “1239708 - Improve the autofill decisions algorithms” https://t.co/vzGQvo57YJ"
Rockridgeさんのツイート: "Fx62:アドレスバーからポップアップされるコントロールセンターに、「Cookieとサイトデータを消去する」ボタンが付いた。ページを閲覧しながら、そのサイトのプライバシー情報を消せるので便利だ。 / “1462469 - Add…” https://t.co/6bPEwgkE8Z"
Rockridgeさんのツイート: "Fx62:browser.tabs.multiselectを有効化し、複数のタブを選択した状態で、うち1つのタブを閉じると、選択したタブすべてを閉じることができる。 / “1458022 - Implement ability …” https://t.co/yZSEZKmkp9"
Rockridgeさんのツイート: "Fx62:Firefox Syncの接続を切断した際、ローカルに保存されたSyncのデータを削除するかどうか尋ねるようにした。 / “1409208 - Provide users on disconnect an option…” https://t.co/ZiYSWtgbDs"
Rockridgeさんのツイート: "Fx62:メニューパネルに、トラッキング防止機能のオン・オフを切り替える項目を追加。Fx63では設定画面から防止対象を細かく制御できるようにする計画がある。参照:https://t.co/63RFOfeJ5U / “146246…” https://t.co/N3yU88pu4d"
Rockridgeさんのツイート: "Fx62:Android版FirefoxでもRace Cache With Network(RCWN)がデフォルト有効化。 / “1377570 - Enable RCWN on mobile” https://t.co/zZZTJdIx69"
Rockridgeさんのツイート: "Fx62:新規タブ・ホームタブ内で使用されるPNG画像について、データURIではなくBlobとすることで、省メモリ化を実現した。 / “1436615 - Lots of memory used for activity str…” https://t.co/CJ7xGZGO62"
Rockridgeさんのツイート: "Fx62:個別のブックマークのプロパティやブラウジングライブラリーから、「説明」欄が省かれた。データ自体は保持されているが、将来のバージョンで自動的に削除される模様。 / “1463738 - Remove the Bookma…” https://t.co/FHJtD297LU"
Rockridgeさんのツイート: "Fx62:アドレスバーの候補表示において、古すぎる履歴がヒットしないよう調整した。 / “1464454 - Consider an higher use_count limit for adaptive history” https://t.co/xMCLbDB1xv"
Rockridgeさんのツイート: "Fx62:storage.localのIndexedDBバックエンドはデフォルト無効化されており、extensions.webextensions.ExtensionStorageIDB.enabledをtrueにする必要がある。… https://t.co/57Ph71fK0T"
Rockridgeさんのツイート: "Fx62:デフォルト有効化予定であるシェイプパスエディタについて。文章が図形を回り込む際の位置関係を直感的に調節できる。 / “Jen Simmonsさんのツイート: "I’m proud to show you the nex…” https://t.co/Q2dCa1OkQK"
Rockridgeさんのツイート: "Fx62:開いているタブを異なるコンテナで開き直すことが可能に。 / “1376119 - containers: "reopen in .." option” https://t.co/fkXyyiqunr"
Rockridgeさんのツイート: "Fx62:アイデンティティパネル中のトラッキング防止機能のUIが改善された。サイト単位のオン・オフを切り替えることができるほか、設定画面にも飛ぶことができる。 / “1462470 - Update Tracking Prote…” https://t.co/WfFojmZvdj"
Rockridgeさんのツイート: "Fx62:複数タブの選択機能を有効化し、現に複数のタブを選択した状態でCtrl+wキーを押すと、選択したタブをすべて閉じることが可能に。 / “1467340 - Ctrl+w/Ctrl+f4 should close all …” https://t.co/bfjzrOVyr4"
Rockridgeさんのツイート: "Fx62:ブックマークの追加時などに表示されるダイアログで、そのページのサムネイルが表示されるようになった。 / “1460248 - Display preview image and favicon in the New B…” https://t.co/et1l8rrw8v"
Rockridgeさんのツイート: "Fx62:ブックマーク追加時、ブラウジングライブラリーに保存した旨のメッセージが表示されるようになった。 / “1459907 - Implement new bookmark confirmation” https://t.co/CPWRvwWxmv"
Rockridgeさんのツイート: "Fx62:アドレスバーにURLを貼り付けた際、URL末尾に空白が含まれている場合はそれを除去するようにした。 / “1460097 - Hidden character in pasted url gets wrongly in…” https://t.co/ZjA6h9rAMR"
Rockridgeさんのツイート: "Fx62:リリースチャンネルで、AutoConfig機能の利用はオリジナルAPIの範囲に限定されることになった。もっとも、general.config.sandbox_enabledの設定を追加してfalseに変更すれば回避できる… https://t.co/wMnyXXYL2o"
Rockridgeさんのツイート: "MozillaはFirefox 62のリリース後、en-US版のユーザーを対象として順次、Firefox Monitor(情報流出判別ツール)を利用可能にしていく模様。参照:https://t.co/zMMiYeTnWV https://t.co/qxmUsBhwEG"
Rockridgeさんのツイート: "Fx62:1つのホストにおけるCookieの上限数を150から180に引き上げた。 / “1460251 - Up limit to 180 cookies and expose limit prefs” https://t.co/2grfhLUH2Q"
Rockridgeさんのツイート: "Fx62:Windows版ではbrowser.startup.blankWindowの設定がデフォルト有効化されているので、起動開始後すぐに空白のウィンドウが表示される。 / “show_bug.cgi?id=1473142” https://t.co/93GQXVmjNI"
Rockridgeさんのツイート: "Firefox 62においてLayout関連で修正されたバグ一覧。CSS Parsing and Computation、DOM: CSS Object Model、Layout、Layout: Block and Inline、… https://t.co/mLXBE7FZaj"

63

Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効化し、現に複数のタブを選択した際、現在のタブが選択対象となっているかどうかが判別しやすくなった。 / “1468705 - Cannot tell that a tab is multisele…” https://t.co/Mg3Ug7b9tA"
Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効化した場合、複数選択したタブをまとめてピン留めし、あるいはそのピン留めを解除することができるようになった。 / “1458060 - Implement ability to pin/unpin…” https://t.co/v6iTAfTnkn"
Rockridgeさんのツイート: "Fx63:ブックマークの追加時などに表示される編集パネルにおいて、ブックマーク追加時に同パネルを表示するかどうかを選択するチェックボックスが付いた。チェックを外すと直ちにブックマークの追加処理が行われる。 / “1459878 …” https://t.co/zQMGvABZhN"
Rockridgeさんのツイート: "Fx63:オプションの〔ホーム〕欄で、「既定値に戻す」ボタンは設定の変更があった場合にだけ表示するようにした。 / “1434751 - Add Restore Defaults button to Home” https://t.co/zpd78Itbs1"
Rockridgeさんのツイート: "Fx63:検索結果を新規タブで表示する設定(https://t.co/cuNRKYzzc7.openintabがtrue)にしている場合でも、現在のタブが空白のときは、そのタブに検索結果が表示される。 / “1455326 - When brow…” https://t.co/yS9ifouIZ9"
Rockridgeさんのツイート: "Fx63:ブックマークに付随する「説明」欄のデータが、Placesデータベースから削除された。 / “1402890 - Stop supporting and remove the description annotation” https://t.co/5VOvnk5HVy"
Rockridgeさんのツイート: "Fx63:Placesデータベースのnotificationsシステムに大きな改修が加えられた。今後、ブックマークや履歴に適用されて本体のパフォーマンスが向上する見通し。 / “1340498 - Redesign the Pl…” https://t.co/3z5tSfmEJT"
Rockridgeさんのツイート: "Fx63:ブロックリストの読み込み時にプチフリが起きないようにした。 / “1454378 - Loading the blocklist is janky” https://t.co/wFVB3iaOMf"
Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効にし、現に複数のタブを選択した状態で、Shift+Ctrl/Cmdキーを押したまま他のタブを選択すると、選択範囲を拡張できる。 / “1473187 - Add ability to selec…” https://t.co/I6xxhK6iqB"
Rockridgeさんのツイート: "複数タブの選択機能は、将来的にデフォルト有効化される見通し。 / “1474938 - Enable the multiselect tabs feature by default for release and beta bu…” https://t.co/qWCCOUZFFT"
Rockridgeさんのツイート: "Fx63:about:performanceから"Memory usage of Subprocesses"欄が削除された。利用率の低さなどが理由だが、開発者の中にも代替機能の実装を望む声がある。参照:… https://t.co/BKyAU4YHKQ"
Rockridgeさんのツイート: "Fx63:Nightlyチャンネルで、複数タブの選択機能がデフォルト有効化された。具体的な機能は今後も随時実装されていく。複数タブのブックマークや別ウィンドウへの移動が実現されてからが本番だろう。 / “1474704 - En…” https://t.co/qI8YeVjoQP"
Rockridgeさんのツイート: "Fx63:Windows版で、ジャンプリストの生成処理を非同期化し、パフォーマンスを向上させた。 / “1425144 - 0.34 severe hangs / khr in CreateFileW while creatin…” https://t.co/yHjVRWsvwz"
Rockridgeさんのツイート: "Fx63:contentプロセス間で本体の設定データを可能な限り共有する仕組みとし、省メモリ化を図るとともにプロセスの起動を高速化した。参照:https://t.co/90Ad0YVcBF / “1471025 - Use sh…” https://t.co/8d8nfxMIb8"
Rockridgeさんのツイート: "Fx63:ショートカットに"-no-remote"を指定していない場合であっても、about:profilesの「プロファイルを別のプロセスで起動」が正しく動作するようになった。 / “1367743 - About:profi…” https://t.co/6wtZJsWw1x"
Rockridgeさんのツイート: "Fx63:about:policiesのページにアクティブなグループポリシーが列挙されるようになった。参照:https://t.co/Uy7ILTieUf / “show_bug.cgi?id=1472528” https://t.co/Myzr4906xT"
Rockridgeさんのツイート: "Firefox Nightly 63で、Content Blocking(旧トラッキング防止)を有効化し、"Slow Tracking Elements"を"Always block"に設定すると、Webページの読み込みが高速化す… https://t.co/TKwSTe48KR"
Rockridgeさんのツイート: "Fx63:オプションの〔プライバシーとセキュリティ〕の「トラッキング防止」は、妨害コンテンツのブロックへと名称が改められ、読み込みに5秒以上かかるサードパーティのコンテンツをブロックする機能が加わった。 / “1476217 -…” https://t.co/urzksJTKME"
Rockridgeさんのツイート: "Fx63:Content Blocking(妨害コンテンツのブロック)に関する設定UIを常時有効化。 / “1476879 - Remove the privacy.trackingprotection.ui.enabled p…” https://t.co/MUfScrRH69"
Rockridgeさんのツイート: "Fx63:FastBlockでサードパーティのコンテンツを何でもかんでもブロックしてしまうとWebページの表示が崩れるため、スタイルシート、フォントおよび画像はブロックの対象から除かれている。 / “1482129 - Exem…” https://t.co/7xjFgY408E"
Rockridgeさんのツイート: "Fx63:Windows版Firefoxを規定の「メール」アプリに設定できるようにした。 / “675428 - register firefox as default mail client” https://t.co/5G8E7sNAJM"
Rockridgeさんのツイート: "Fx63:browser.newtabpage.activity-stream.asrouterExperimentEnabledの設定をtrueに変更すると、Contextual Feature Recommender(CFR)… https://t.co/sQKhaLdD2F"
Rockridgeさんのツイート: "Fx63:1つのホストにおけるCookieの上限数が180を超えた場合、期限切れのものや古いものから優先的に削除して、150まで減らすようにする。 / “1357676 - Implement batch eviction fo…” https://t.co/C94v54mshX"
Rockridgeさんのツイート: "Fx63:ページ内翻訳機能にGoogle Translation APIのサポートを追加。有料のAPIキーが備わっていないので一般ユーザーが恩恵を受けるには至らない。参照:https://t.co/vK1tCTzXSK / “1…” https://t.co/jDjrmQmzni"
Rockridgeさんのツイート: "Firefox 63においてLayout関連で修正されたバグ一覧。14項目に分かれる。 / “Platform/Layout/ReleaseNotes/63 - MozillaWiki” https://t.co/pvOdGutBbI"
Rockridgeさんのツイート: "Fx63:Windows版で、プロセスの優先度を調節する仕組みが実装された。 / “1394710 - Changing priority on Window processes” https://t.co/Dq8cFgmY0k"
Rockridgeさんのツイート: "Fx63:Policy Engineのポリシーがアクティブになるまで関連するコードを読み込まないようにし、消費メモリを削減した。 / “1470324 - Don't load EnterprisePoliciesContent…” https://t.co/r7gs2jwE8l"
Rockridgeさんのツイート: "Fx63:サイクルコレクションの処理が長引いてプチフリが発生するのを防止。 / “1397297 - nsCycleCollector::FreeSnowWhite() could be more incremental” https://t.co/p6t3FhUgUE"
Rockridgeさんのツイート: "Fx63:Windows版で、firefox.exeが直接メインプロセスを起動させるのではなく、まず起動プロセスを開始し、それがメインプロセスを生成するという仕組みが実装された。Firefox 64で有効化を目指す。 / “14…” https://t.co/WlBue8VCCm"
Rockridgeさんのツイート: "Fx63:contentプロセスに読み込まれるコンテンツ内検索バーのコードを最小化し、消費メモリを削減した。 / “1479318 - Minimize the amount of content Findbar code lo…” https://t.co/ESwy49pzly"
Rockridgeさんのツイート: "Fx63:タブの複数選択時には、コンテキストメニューに「タブを複製」の項目が表示されないようにした。 / “1481473 - Hide the "Duplicate Tab" menuitem when there is a …” https://t.co/1isv7c9cT2"
Rockridgeさんのツイート: "Firefox 63 Beta 5でタブの複数選択機能が有効化された。early betaにおけるテストとのことで、Beta 6でも有効のままだが、通常Beta 5はearly betaの期間外とされていることから、いつまで続くか… https://t.co/yhRsno0R3R"

64

Rockridgeさんのツイート: "Fx64:選択した複数のタブを端末に送信する機能が実装された。 / “1470555 - Implement ability to send a selection of tabs” https://t.co/JnAuJNffCk"
Rockridgeさんのツイート: "タブの複数選択機能のデフォルト有効化はFirefox 64に延期。一部機能の実装が間に合わなかったため。 / “1488904 - Enable multiselect tabs feature on early beta bu…” https://t.co/WTElNXtsLj"
Rockridgeさんのツイート: "Fx64:複数選択したタブをドラッグ&ドロップによってまとめてブックマークに追加できるようになった。 / “1480907 - Implement ability to bookmark a selection of tabs …” https://t.co/jzsdOrqW6T"
Rockridgeさんのツイート: "Fx64:about:crashesのUIが変更され、すっきりした感じになった。 / “1476062 - about:crashes user interface update” https://t.co/oZh6jWUvlm"
Rockridgeさんのツイート: "Fx64:キャッシュの利用によりサイクルコレクションの処理を改善。 / “1488413 - Investigate if CycleCollector could use a cache on top of the graph…” https://t.co/Kebcd4bmRJ"
Rockridgeさんのツイート: "Fx64:ブックマークをエクスポートする際、browser.bookmarks.max_backupsの設定値が正しく反映されるようにした。 / “show_bug.cgi?id=1066992” https://t.co/gebonavwQN"
Rockridgeさんのツイート: "Fx64:Mac版でも、Windows版のグループポリシーに相当するEnterprise Policyをサポートした。 / “1445943 - Enterprise Policy support for macOS” https://t.co/6RT0khRCZe"
Rockridgeさんのツイート: "Fx64:ホームタブ・新規タブで、検索フィールド以外のセクションの表示をすべて無効にした場合、検索フィールドの上部にFirefoxのロゴが表示されるようになった。Activity Stream以前に近い印象となる。 / “148…” https://t.co/PB1A71tQhW"
Rockridgeさんのツイート: "Fx64:タブの複数選択機能がデフォルト有効化された。 / “1474938 - Enable the multiselect tabs feature by default for release and beta builds” https://t.co/okhLNYE9J1"
Rockridgeさんのツイート: "Fx64:ハンバーガーメニューの「その他」にある"Task Manager"から、about:performanceのページを呼び出せるようになった。 / “1498186 - Add a 'Task Manager' item…” https://t.co/iv89VC5iKk"
Rockridgeさんのツイート: "Fx64:当初導入予定だった仕様を撤回し、「右側のタブをすべて閉じる」「他のタブをすべて閉じる」の項目はサブメニューに回らず、従前どおり独立した項目として表示される。 / “show_bug.cgi?id=1502083” https://t.co/xOZh27FAY1"
Rockridgeさんのツイート: "Fx64:選択した複数のタブは別のコンテナに送ることもできる。 / “1500098 - The user is unable to open multiple tabs in Container” https://t.co/sCoXmFwGf6"

65

Rockridgeさんのツイート: "Firefox Nightly 64にFeaturePolicyが実装される。Fx65でデフォルト有効化の見通し。参照:https://t.co/L9pPbp4DPZ / “Intent to implement: Featur…” https://t.co/Qu5vDDWIjd"
Rockridgeさんのツイート: "Fx65:macOS版で、WebブラウジングのHandoffをサポート。参照:https://t.co/89Uhx7z3dH / “1085391 - Support Yosemite Handoff "web browsing…” https://t.co/HITp4eaEPm"
Rockridgeさんのツイート: "Fx65:img要素にalt属性がない場合、src属性の指定の有無にかかわらず、置換要素が生成されるようになった。参照:https://t.co/5uSnkStghd / “show_bug.cgi?id=1196668” https://t.co/t1071LtPz2"
Rockridgeさんのツイート: "Fx65:従前の仕様を撤回し、タブの複数選択時においても「タブを複製」の項目が表示されるようになった。 / “show_bug.cgi?id=1497980” https://t.co/puMGrTPyrp"
Rockridgeさんのツイート: "Fx65:起動時に前回のセッションを復元する設定になっている場合であっても、ブラウザ終了時に警告を出す設定が無効化されなくなった。 / “550559 - Decouple Session Restore from Quit w…” https://t.co/DnuOkkuwaE"
Rockridgeさんのツイート: "Fx65:Nightlyチャンネルで、a要素などにtarget=_blankの設定がされているときは自動的にrel=noopenerが付与されるようにした。 / “1503681 - Make target=_blank on …” https://t.co/Vh5Im3UDfd"
Rockridgeさんのツイート: "Fx65:Async Pan/Zoom(APZ)のrelative scroll offset updatesという機能がデフォルト有効化された。 / “1507356 - Let apz.relative-update.ena…” https://t.co/6DBDWQp08q"

66

Rockridgeさんのツイート: "Fx66:すべてのタブを表示するドロップダウンメニューに「タブを検索する」という項目が追加された。アドレスバーにジャンプして検索が行える。参照:https://t.co/BCAVvM0glv / “1516083 - Add "…” https://t.co/W5LtD6dNiH"
Rockridgeさんのツイート: "Fx66:Scroll Anchoring機能をサポート。Nightlyチャンネルでのみ有効。設定はlayout.css.scroll-anchoring.enabled。参照:https://t.co/eZ2oRu6g5w https://t.co/28QHprCtlm"

67

Rockridgeさんのツイート: "Fx67:タブの複数選択時、選択されたアクティブでないタブについてタブ全体の色が変わるようになった。選択範囲がわかりやすくなる。 / “1515686 - Update multi-selected tab colour so it's more visible in default theme” https://t.co/Pi8vXfzJJH"
Rockridgeさんのツイート: "Fx67:Windows版Nightlyチャンネルで、Process Priority Managerがデフォルト有効化。バックグラウンドのタブのみを含むcontentプロセスについて処理の優先度を下げる。参照:https://t.co/jI2liaOBEW / “1476981 - Turn on dom.ipc.processPriorityManager.enabled in Nig…” https://t.co/WWMu9QGHVB"

Twitter

@rockridge07

histric-1

Rockridgeさんのツイート: "Firefoxのプロファイルフォルダ内に保存されている各種データファイルについて。 / “Profiles - Where Firefox stores your bookmarks, passwords and other u…” https://t.co/uKWJS6uRDn"
Profiles - Where Firefox stores your bookmarks, passwords and other user data | Firefox Help
Rockridgeさんのツイート: "Webブラウザの各種パーミッション機能の動作を試すことができる。 / “https://t.co/oZaDDgu7Vz” https://t.co/EdhybgqFmx"
Rockridgeさんのツイート: "Firefoxのセッション保存機能がSSDに対する大量の書き込みの原因になっているという記事。筆者の環境では1日12GBに達するそうだが、追記によればChromeだと1日24GBになったらしい。参照:… https://t.co/M6i353iuGJ"
Rockridgeさんのツイート: "Race Cache With Network(RCWN)は、ディスクI/Oが遅い場合に、キャッシュされたコンテンツについてもネットワークリクエストを送り、応答が早かったデータを利用する新機能。Firefox Nightly 55… https://t.co/oHyzlzgz0J"
Rockridgeさんのツイート: "Firefoxは2017年末までにCustom Elementsをサポートする見通し。Shadow DOMについては未定。 / “1367205 - (QF-Polymer) Very poor Polymer performa…” https://t.co/Ar1HgAJlP3"
Rockridgeさんのツイート: "link要素のrel属性でprerenderの指定がされているURLを対象にWebページのプリレンダリングを行う機能をFirefox 53に実装したものの、先行するChromeが廃止の方針を示したので、有効化されないまま機能が削除… https://t.co/37U7zd8c30"
Rockridgeさんのツイート: "Firefoxは他のブラウザと異なりbutton要素内にリンクを置けない実装となっているが、仕様に適合しているのはFirefoxのほうであるらしい。 / “hyperlinks in buttons are probably n…” https://t.co/DrwqdTohEK"
Rockridgeさんのツイート: "Test PilotのSendで、ファイルのダウンロードに必要なパスワードを設定できるようになった。 / “Firefox Test Pilotさんのツイート: "We added password support to …” https://t.co/p2PPXtww89"
Rockridgeさんのツイート: "Bugzilla@MozillaでもGoogleアナリティクスが有効化される模様。ただしDo Not Trackをオンにしているユーザーは適用対象外となる。 / “208002.html” https://t.co/kZ736XHk9t"
Rockridgeさんのツイート: "MozillaのDoryプロジェクトはFirefoxの既存の設定をドキュメント化し、不要な設定を整理することを目指す。また、パフォーマンスが最適化される設定値の調査も行うようだ。 / “Project Dory - Mozill…” https://t.co/IDyL10TzOm"
Rockridgeさんのツイート: "Mozillaは2018年第3四半期ころまでに、ストレージ/データベース/同期にまたがる新システムを開発する計画だ。デスクトップ版・モバイル版双方で使う。参照:https://t.co/n0Uv6DYQFb / “0008-sy…” https://t.co/eK90st9S4Q"
Rockridgeさんのツイート: "Firefoxのヘッドレスモードにおいてできることの概略を述べた記事。 / “Using Headless Mode in Firefox – Mozilla Hacks – the Web developer blog” https://t.co/1VlvMDSVI4"
Rockridgeさんのツイート: "Firefoxに現存する3000以上の設定を整理したうえ、今後はガイドラインを設けて設定追加の要否をチェックしていく。参照:https://t.co/ojz5nNguyj / “All about Prefs” https://t.co/9X9fcpKE9a"
Rockridgeさんのツイート: "Firefox Nightlyで近々デフォルト有効化される見込みのtab warming機能について解説した記事。タブにカーソルをホバーさせた時点で予めレイヤーのレンダリング等を開始しておくことにより、タブの切り替えをスムーズにす… https://t.co/Cu5obZSjAw"
Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャでは、最新の暗号化技術によってパスワード等が保護される一方、Firefoxアカウントによるログインが必須になるかもしれない。 / “Firefox Lockbox alpha by Mo…” https://t.co/gZ81L14Enj"
Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャは、パスワードの生成機能を備えるほか、Firefoxアカウントでのサインインを前提に、クラウドへのバックアップも行えるようになりそうだ。 / “FAQs - Lockbox Extens…” https://t.co/QSxqSkLkgk"
Rockridgeさんのツイート: "2018年1月15日以降にGeckoに実装される、Webページ/サーバーからアクセス可能な新機能は、安全なコンテクスト(HTTPSなど)にあることが求められる。Distinguished Engineerが是認しない限り例外は認め… https://t.co/qlK5bwI4FM"
Rockridgeさんのツイート: "今後、Firefoxにはアドレスバーの入力・検索結果を新規タブに常時表示するための設定(browser.urlbar.openintab)が改めて追加される模様。また、将来的にはオプション画面からこの設定を制御できるようにする。 https://t.co/XEBRZtXZG2"
Rockridgeさんのツイート: "Geckoに新しくAnimationモジュールが設けられ、Brian Birtles氏がモジュールオーナーに就任した。 / “New module proposal: Animation” https://t.co/3Ed1ZHcip3"

Rockridgeさんのツイート: "将来的にFirefoxの軽量インストーラには、Mozillaの公式アドオンをダウンロードしてインストールする機能が実装されるようだ。 / “1414268 - Stub installer allows installing a…” https://t.co/W3mMrCoDhs"
Rockridgeさんのツイート: "Mozillaが2017年12月にアンケートを実施し、11.5万人以上のFirefoxユーザーから回答を得た。それによると、アンケートの際、76%のユーザーは5つ以下のタブしか開いていなかった。 / “The First Ina…” https://t.co/GIn1bO2cgU"
Rockridgeさんのツイート: "Mozillaは、いわゆるLooking Glass問題の再発防止策として、Shieldの実験において遵守すべき原則を公表した。参照:https://t.co/vv30EN0QqP / “Retrospective: Looki…” https://t.co/iMtmQLs8C2"
Rockridgeさんのツイート: "既にバックグラウンドで動作するスクリプト全般を抑制する仕組みが実装されているので、トラッキング用スクリプトだけを強く抑制する措置は執らないようにする模様。 / “Intent to remove: Throttling of t…” https://t.co/cIq9vTYGfS"
Rockridgeさんのツイート: "最小タブサイズを従来の半分(100 -> 50)にする新仕様に対し、Nightlyテスター等から異論が多く出された結果、サイズは70に引き上げられることに。 / “1404465 - Add back `browser.tabs…” https://t.co/b5fdmvDg9A"
Rockridgeさんのツイート: "Firefoxの設定関連のバックエンドにおける改修状況がまとめられている。 / “Platform/PrefsOverhaul - MozillaWiki” https://t.co/Jf9TYfiojH"
Platform/PrefsOverhaul - MozillaWiki
Rockridgeさんのツイート: "Firefox開発版のインストール時、独立したプロファイルを割り当てる機能の開発が進められている。割り当てられるプロファイルは新規のものではなく、リリース版のプロファイルのクローンになるようだ。 / “1419505 - All…” https://t.co/d5t4DrKXZO"
Rockridgeさんのツイート: "Firefoxアカウントにおいて、予備のメールアドレスを追加し、メインのメールアドレスに切り替える機能が、正式に公開された。 / “Changing your primary email in Firefox Accounts …” https://t.co/ogRBlMvo4p"
Rockridgeさんのツイート: "Firefox QuantumでFirefox Screenshotsがツールバーから消え、撮影数が一時減少したものの、概ね回復した。新UIで撮影完了までいく率は高まった。スクショはダウンロードする人が多く、最近はクリップボードへ… https://t.co/EiGzExOzZD"
So, How’s Screenshots Doing? – Firefox Test Pilot – Medium
Rockridgeさんのツイート: "Firefox/Thunderbird搭載のパスワードマネージャーについて、現在の水準からすると暗号化強度が低いのではとの指摘。コメント2では、Mozillaの開発者が、だからLockboxプロジェクトが進行中なのだと述べている。 https://t.co/VmKwBBrASb"
Wladimir Palant's notes: Master password in Firefox or Thunderbird? Do not bother!
Rockridgeさんのツイート: "MozillaはFirefoxのポップアップブロッカーの強化を検討中。必要なデータを収集するため、本拡張機能を通じて、ユーザーにページ内ポップアップが存在するURLを報告してほしいようだ。 / “In-Page Pop-up R…” https://t.co/lm1GM0VYOR"
In-Page Pop-up Reporter – Firefox 向けアドオン
Rockridgeさんのツイート: "tab warming機能は、タブ切り替え時の応答性向上に大きく貢献しているという。また、新規プロファイルでスマートブックマーク機能をなくす計画がある。 / “These Weeks in Firefox: Issue 35 –…” https://t.co/1HpOftnWbb"
Rockridgeさんのツイート: "Firefoxの複数タブ選択時におけるコンテキストメニューの案が掲載されている。また、従来、タブバーにタブが収まりきらない場合にメニューが表示される仕様だったが、このメニューを常時表示させる方針らしい。 / “Firefox b…” https://t.co/Nl7YRmGw4K"
Rockridgeさんのツイート: "MozillaがFirefoxユーザーを対象に調査したところ、Nehalem/Silvermont/Bulldozer以前のCPUを使用する割合が約20%だったという。 / “How much do we care about …” https://t.co/2wJylv0cnR"
Rockridgeさんのツイート: "Firefoxの複数タブ選択機能の実装状況について。モックアップもある。参照:https://t.co/khhPAfyMCX / “Email update for "Multi-Select tab in Firefox" p…” https://t.co/CViHzswxc5"
Rockridgeさんのツイート: "Firefoxのアドレスバー上のアイコンやページ操作メニューの項目を右クリックして表示されるコンテキストメニューから、アドレスバー上のアイコンの追加・削除が可能という小技を紹介。 / “How to add the share …” https://t.co/sCof4BPPn9"
Rockridgeさんのツイート: "Mozillaは、読み込みに5秒以上かかるサードパーティのコンテンツをブロックする機能のことをFastBlockと呼ぶ。Nightlyチャンネルでは今後この機能をデフォルト有効化する見通し。参照:… https://t.co/vuUIZBM4FW"
Rockridgeさんのツイート: "Firefox 62でFirefox Monitor(情報流出判別ツール)を展開していく計画だったが、延期に。 / “1483430 - Backout fxmonitor system add-on from central …” https://t.co/yEFy0eLaB7"
Rockridgeさんのツイート: "Placesデータベースの新バックエンドとなることを目指したデータストレージシステムのMentatが開発中止に。プロダクトの投入に間に合うように開発することが難しく、採用先がなくなってしまった模様。 / “Pausing wor…” https://t.co/f3RuQkFnCr"
Rockridgeさんのツイート: "デスクトップ版Firefoxのプレリリース時におけるユーザーエージェント文字列について、その変遷を簡潔に記載した記事。 / “notable-moments-in-firefox-desktop-ua-string-histor…” https://t.co/QxHkh1jfZl"
Rockridgeさんのツイート: "Android版Firefoxのプレリリース時におけるユーザーエージェント文字列について、その変遷を簡潔に記載した記事。 / “Notable moments in Firefox for Android UA string h…” https://t.co/7ntQPN84Ul"
Rockridgeさんのツイート: "about:performanceの新UIに関するモックアップ。今後は、コントロールセンターに、閲覧中のサイトに関する消費電力への影響やメモリ使用量を表示するようにしていく模様。 / “Loading...” https://t.co/PjMbbb5dTz"

@d_toybox

サイト分離機能

なかのん&マジックさんのツイート: "意外なことにFissionにはAPZ必須になりそうなので"layers.async-pan-zoom.enabled"はabout:configから削除されるのかな? それとも無効な場合に現在のe10sモードとして動くようにするのかな? / 「Firefox」にサイト分離機能の計画--「Chrome」に続き - ZDNet Japan https://t.co/h5Ww2THbIQ"
「Firefox」にサイト分離機能の計画--「Chrome」に続き - ZDNet Japan
なかのん&マジックさんのツイート: "APZCは真剣に何をやってるのかまったく理解できないんだよな。もはや綺麗なのか汚いのかも分からんレベルで本当に難しい。"
なかのん&マジックさんのツイート: "もし担当辞めたら、まったく引き取れる気しないけど、こっちに来そうで怖い。"

なかのんクエストさんのツイート: "<meta property="og:url" content="http://" /> これで指定されてるURLになるのか、FirefoxのTwitterでの共有。"
なかのんクエストさんのツイート: "ワードラップとかネストとかもありますよ。Firefoxの実装が遅れてるの批判してた人の9割は何も考えてなかった印象。 https://t.co/WD8sWPOVdQ"
なかのんクエストさんのツイート: "日本で昔から見かける、パッチすら書かずに同じような事言ってる場合もアイデアそのものが全然イマイチなパターンの方が多い。逆に共感できたアイデアだと実際にパッチ書いたりしたことある。大きいのだと、マウスホイールにトランザクションの概念追加とか。"
なかのんクエストさんのツイート: "最近はあんまし一般のバグ報告者と直接やりとりすること無くなってるけど、それでも時々、バグである根拠を他のブラウザと違うこと、とする残念な人とのやり取りがつらい時ある。標準仕様に入らないグレーゾーンでなおかつ他のブラウザの動作がベターなら普通に同意するんだけどね。"
なかのんクエストさんのツイート: "グレーゾーンかつレガシーな部分って、今さら動作を変えると、Firefoxをちゃんとサポートしてるサイトが今度は壊れるんだよってパターンも多いんだよね。この場合、新しいAPI使ってくれるようにサイト側にお願いするしかない。"
なかのんクエストさんのツイート: "サブドキュメントがスクロール可能だった場合の処理がChromeとちょっと違うんだけど、Firefox 57の動作の方が何が起きてるか分からない感じは無いと思う。visibility:hiddenにはまだ非対応。ひとまず、よく使われるdisplay:noneだけ。 #もずでぶ"
いざてんさんのツイート: "Chromeは font-family: monospace; するとフォントサイズが一段小さくなるのをまず何とかしてくれませんかねぇ?"
なかのんクエストさんのツイート: "Firefoxも言語が日本語以外だとそうなる。各国の印刷での慣習とかもあるのかもしれないけど、この差異の直接の原因は、漢字のビットマップグリフが綺麗に見えるサイズをデフォルトにする必要があったので、同じフォントサイズを日本語には設定したんだと思う。"
なかのんクエストさんのツイート: "Netscape Navigatorや、初期のGeckoで、MacOSでのみ、日本語のデフォルトフォントサイズが小さかったのは、やはりビットマップグリフの問題で、他と同じ16pxでは綺麗じゃなかったと聞いてる。"
なかのん DAYS''さんはTwitterを使っています: ".@cobodo 最初はchrome 1プロセス、content 1プロセス、plugin 1プロセス。windowed pluginを除けば全てのユーザの入力はchromeプロセスでハンドリングされて、非同期通信で他のプロセスに送信される。"
なかのん&マジックさんのツイート: "ユーザがサイトごとに、Webアプリによる、ブラウザのショートカットキーの横取りを許可・不許可に出来るようになりました。 https://t.co/FbqIuRqSPG #もずでぶ"
なかのん&マジックさんのツイート: "Firefoxのmiddlemouse.pasteってデフォルトtrueで良くない? Ctrl + 中クリックで引用貼り付けという、メニューに無い貼り付けが利用できるんだし。"
なかのん&マジックさんのツイート: ""一番困ったのが Cmd+W に対する反応が遅くて(処理落ちしてる感じ)" https://t.co/Mdu91Cl5fl 体感速度でまだまだってのは分かってるし、感想とかはまあ良いんだけど、この点が私も絡んでるんで気になる。"
Firefox やめた - @kyanny's blog
なかのん&マジックさんのツイート: "Cmd+Wは数少ない、Webアプリに押した通知すら行かないreserved shortcutキーなんだけど、 https://t.co/S8WMeklEFQ つまり、そもそもリモートプロセス(タブの中身を表示してるプロセス)に送信していないので、全てがメインプロセスのメインスレッド内で完結している。"
browser-sets.inc - mozsearch
なかのん&マジックさんのツイート: "ということは、メインプロセスのメインスレッドがbusyということで、これと通信を行う必要のあるリモートプロセスもそもそも高速な動作は期待できない(入力に至っては、全てメインプロセスのメインスレッド経由なので、モロに影響ある)。"
なかのん&マジックさんのツイート: "なので、そもそも、こちら(開発者側)が想定していない何かがこの人の環境で起きてる感じある。それが環境によるものなのか、なんらかのパフォーマンスバグなのかは分からんけど。キー押してからタブが閉じられるまでのprofileをむっちゃ見てみたい。"
なかのん&マジックさんのツイート: "ちなみに、普通は、keydown/keypressイベントがreservedか検査され、すぐにリモートプロセスに非同期で送信される。で、リモートプロセス内でイベントが発火された後、非同期でその結果をメインプロセスに通知、preventDefaultされてなかったらショートカットキーとして実行という流れ。"
なかのん&マジックさんのツイート: "なので、ショートカットキーはどうしても超高速にユーザの入力に対して反応するというのが今のAPIでは無理。Webアプリ独自のショートカットキーを登録するAPIってのがあれば良いんだけど、そういうの要るよねってW3Cで提案したらGoogleとか一部の企業以外には要らんやろっていう理由で却下に。"
なかのん&マジックさんのツイート: "Webアプリを最小限のコードで、あらゆるキーボードレイアウト対応にするには、そういうAPIが無いと困ると思うんだけどな。特にユーザ数の少ない、発展途上国のキーボードレイアウト使っているユーザさんに。例えば、USキーボードレイアウト前提でコーディングすると、だいたい動かない。"
なかのん&マジックさんのツイート: "ただ、この人の書いてる内容で思うのは、そうそう連打する訳ではないショートカットキーって、処理落ち時に過剰に処理されちゃわないように、timestamp見て、ある程度捨てた方が良いんだろうかってのは思う。それはそれで慎重にやらないと処理落ちしてても承知で、先行入力していく人も居てるはず。"
なかのん&マジックさんのツイート: "Ubuntu Weekly Recipe:第540回 Firefoxをあらためて見つめ直す #gihyojp https://t.co/oBwH3WvtF2"
第540回 Firefoxをあらためて見つめ直す:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
なかのん&マジックさんのツイート: "Containerは本当にまだ使いにくい。開発止まってるのかな……これが無いと仕事にならないんだけど、今のところ。"
おこめ/つなもりさんのツイート: "それは…content-typeの設定問題 IEは見てなかったらしいけど… "
アイヴァーンさんのツイート: "なんかアーカイブのダウンロードで、Chromium が勝手に HTML コンテンツそのもののと解釈して展開されてしまい、適切にダウンロードできない、とかいう局所的な問題が生じたことがあった記憶もあるので、Web 側だけでなくブラウザ側の視野狭窄も問題につながりかねない懸念しかない…… https://t.co/3r35zPjQZZ"
池田 泰延 / ICSさんのツイート: "作る人が、目の前の手元のツールで動くことばかりにしか意識しない。 ちらほら増えてきた「Chromeでしか動きません」というやつ。 作ってるのは標準仕様のウェブコンテンツでなく、Chromeという一つのツールでのみ動くコンテンツ。"
なかのん&マジックさんのツイート: "あったなぁ、そんな話。Mozillaも途中から折れて、ASCIIの制御文字にぶち当たったらダウンロードに切り替えるとかそんな感じで対応したんだったか。"

@xharaken

Kentaro Haraさんのツイート: "Firefoxがframe間での協調的スケジューリングを実装したというプレスリリースを見て、どうやったらそんなものを(セキュアに)作れるのか考えてもわからなかったので、Firefoxの中の人に聞いてみたら教えてもらえた。こういうのがオープンソースの良いところ^^"
Kentaro Haraさんのツイート: "最近のWebページは、「本体のコンテンツ+大量の広告」という構造になっている場合が多くて、広告のせいで本体のコンテンツが遅くなるのをいかに防ぐか(=どうやってframe間で性能を独立させてスケジューリングするか)というのが大きな問題になっている。"
Kentaro Haraさんのツイート: "frameごとにユーザレベルスレッドを作って協調的スケジューリング、frameごとにOSスレッドを分離、frameごとにOSプロセスを分離など、いくつか解決法はあるけど、いろんな事情でどれもものすごく大変。"

Form Autofill・Web Payments

5x

Rockridgeさんのツイート: "Fx56:Firefox SyncがForm Autofillの住所情報とクレジットカード情報に対応。同期の有効・無効はUIから制御できる。参照:https://t.co/fHJARwCEBR / “1374500 - New …” https://t.co/lN12ormhK1"
Rockridgeさんのツイート: "Fx56:米国のen-US版ユーザーに限定してForm Autofill機能が有効化された。 / “1385196 - [Form Autofill] Enable the feature based on locale and…” https://t.co/LOlkqS8bWk"
Rockridgeさんのツイート: "Fx57:Form Autofillにおいて、ユーザーがどの程度まで入力すれば次回の入力補完に使うかは難しい問題だ。FirefoxではChromeの挙動を参照しながら調整している。 / “1401411 - Autofill i…” https://t.co/iBdk1Std8Z"
Rockridgeさんのツイート: "Fx57:Form Autofillがクレジットカード情報に対応。参照:https://t.co/L4K0QlRR1n / “1390757 - [Form Autofill] Enable credit card featur…” https://t.co/6fOTBybzLP"
Rockridgeさんのツイート: "Fx58:Form Autofillでクレジットカードの自動補完機能がデフォルト有効化。 / “1417336 - [Form Autofill] Enable credit card autofill by default o…” https://t.co/ZgOP2bCq7I"
Rockridgeさんのツイート: "Fx58:米国のen-US版ユーザー限定という状況に変わりはないものの、Form Autofillの基本機能が、段階的なロールアウトのフェーズからデフォルト有効化のフェーズへと移行した。 / “1430522 - [Form A…” https://t.co/jYxFrKlG9u"
Rockridgeさんのツイート: "Fx58:Form Autofillが有効な環境では、自動補完に用いられるクレジットカード番号もデフォルトで同期されるようになった。 / “1395123 - Unhide credit cards sync engine by…” https://t.co/5C0JZsvHQB"
Rockridgeさんのツイート: "Fx59:Form Autofillにおいて、ハイフン付きのクレジットカード番号をサポート。 / “1413120 - [Form Autofill] Accept credit card numbers with hyphens” https://t.co/RWIkOMAiqn"

Rockridgeさんのツイート: "Form Autofill機能の先にあるのがWeb Paymentsの実装である。カード型の基本的なUIを2017年後半のうちに実装する計画であり、2018年第1四半期にリリース版に投入か。参照:… https://t.co/ZP2cwSD9kP"
Rockridgeさんのツイート: "Form Autofill機能の先にあるのがWeb Paymentsの実装である。カード型の基本的なUIを2017年後半のうちに実装する計画であり、2018年第1四半期にリリース版に投入か。参照:… https://t.co/sCmgTxV73M"
Rockridgeさんのツイート: "Form Autofill v2ではローカライズに対応するほか、マルチセクションの概念が導入され、個別の欄に消去ボタンが付く。 / “Firefox/Features/Form Autofill - MozillaWiki” https://t.co/ol53lYB1Vd"
Rockridgeさんのツイート: "検討が開始されたForm Autofillプロジェクトでは、ユーザーがフォーム送信時に許可を与えると、Firefoxが名前や住所などのプロファイルを保持し、別のフォームで自動的に補完するという機能の開発を目指す。 / “Thes…” https://t.co/R9W9LRdHXF"
Rockridgeさんのツイート: "Nightlyチャンネルで有効化されているForm Autofill機能について、フォームに入力した住所を自動的に保存して再利用するようになった。保存時にドアハンガーの通知が出るので、そのときオプトアウトすることも可能。 https://t.co/llIPbB20Qj"
Rockridgeさんのツイート: "FirefoxのForm Autofill機能は、クレジットカードのセキュリティコードを保存しない仕様となっている。 / “Online shopping: Autofill your credit card info safe…” https://t.co/iL5OOCepqg"
Makoto Kato ︎︎さんのツイート: "FirefoxのWeb Payments APIのUX実装って、custom element使ってるんだ"
Rockridgeさんのツイート: "2018年5月末時点でも、Form Autofillはen-US版ユーザーの20%しか有効化されていない。 / “1449055 - Convert formautofill to a webextension” https://t.co/Dd2vXTAihL"
Makoto Kato ︎︎さんのツイート: "AndroidのAutofill Framework使ったアプリ、パッケージ名見てるの多くて、新しいブラウザ作っても動かないパターン多い"

dynamis (でゅなみす@もじら)さんのツイート: "新しいFirefoxではWebフォントブロックできるようになったよ。Androidで通信量削減したい人にお勧め https://t.co/nG6VNCv92J"
Intent To Shipさんのツイート: "Gecko: Intent to implement and ship: HTMLMarqueeElement https://t.co/4SOMK9yEfI"
dynamis (でゅなみす)さんのツイート: "Firefoxがインストール後にUI言語の追加を公式にサポートし始めたので他の言語でのUI確認が楽になった。 https://t.co/XQMRWutqom… "
Changing the Language of Firefox Directly From the Browser | Mozilla L10N

Mozilla Developer Street (modest)
Firefox マルチプロセス化の今後 | Mozilla Developer Street (modest)
local MDC: Downloading Source Archives (/ja/developer_guide/source_code/downloading_source_archives)

Google

その他

Google Chromeに受信データ量を大幅に節約する「データセーバー」モード追加へ - GIGAZINE
Chromeブラウザ、「Script streaming」と「Code caching」の2つのテクニックで、さらにWebページ読み込み時間を短縮へ - Publickey
WebAssembly、CPU Throttling、Custom Elementsの最新情報を解説──2016年10月のブラウザ関連ニュース | HTML5Experts.jp
Google Chrome、ページロード途中のレイアウト変動を抑える技術を導入 | スラド IT
「Google Chrome 58」はIndexedDB 2.0やフルスクリーン版プログレッシブウェブアプリに対応 - GIGAZINE
Intent to unship: HTML scoped style sheets (<style scoped>) - Google グループ
Official Google Webmaster Central Blog: The new evergreen Googlebot
Web上でお絵描きしやすくなるキャンパスの改善や数字の可読性を向上させるセパレーターなどが含まれるGoogle Chrome 75安定版リリース - GIGAZINE
Chromium ソースコード珍百景

本の虫

本の虫: Chromeがいつのまにかruby要素をサポートしている件について
本の虫: Chromeがいつの間にか縦書きを実装し始めていた

フロントエンドBlog

Google Chrome 58安定板リリースと59の搭載予定機能 | フロントエンドBlog | ミツエーリンクス
Headless Chromeでのスクリーンショット取得とGoogle Chrome 60の搭載予定機能 | フロントエンドBlog | ミツエーリンクス
遂に来る! Chrome 75にてLazyLoadが正式に実装されるようです🎉 | フロントエンドBlog | ミツエーリンクス

Google Developers Japan

Google Developers Japan: ページリロードの高速化および軽量化について
Google Developers Japan: Chrome 59 ベータ版: Headless Chromium、macOS のネイティブ通知、Service Worker のナビゲーション プリロードなど
Google Developers Japan: Chrome 61 ベータ版:JavaScript モジュール、デスクトップ版 Payment Request API、Web Share API、WebUSB
Google Developers Japan: Chrome 68 ベータ版: ホーム画面に追加、Payment Handler、Page Lifecycle

Chromium Blog

Chromium Blog: A secure web is here to stay
Chromium Blog: Chrome 66 Beta: CSS Typed Object Model, Async Clipboard API, AudioWorklet
Chromium Blog: Evolving Chrome's security indicators
Chromium Blog: How we designed Chrome 10 years ago
Chromium Blog: 10 years of Speed in Chrome
Chromium Blog: Chrome 70 beta: shape detection, web authentication, and more
Chromium Blog: Trustworthy Chrome Extensions, by default
Chromium Blog: Notifying users of unclear subscription pages
Chromium Blog: Chrome Dev Summit 2018 Day 2: Ready for the next movement
Chromium Blog: Data Saver is now Lite mode
Chromium Blog: Chrome 75 Beta: low latency canvas contexts, sharing files, and numeric separators
Chromium Blog: Improving privacy and security on the web
Chromium Blog: Google I/O 2019: What's new with Chrome and the Web
Chromium Blog: Taking Action on Deceptive Installation Tactics
Chromium Blog: Chrome 76 Beta: dark mode, payments, new PWA features and more
Chromium Blog: New Chrome Protections from Deception
Chromium Blog: Easier Payments with Chrome

INTERNET Watch

Google、2017年1月提供予定の「Chrome 56」で、一部のHTTPサイトに警告を表示へ -INTERNET Watch
Google、10月提供のChrome 62以降で、入力欄のあるすべてのHTTP接続ページで警告を表示 -INTERNET Watch

窓の杜

「Google Chrome 58」が正式版に ~“Indexed DB 2.0”対応と29件の脆弱性修正 - 窓の杜
「Google Chrome 59」は“ヘッドレス”モードをサポート ~ベータ版でテスト中 - 窓の杜
最新版「Google Chrome」では再読み込み処理が大幅に高速化 - 窓の杜
「Google Chrome 62」が正式版に ~HTTP接続のフォームはすべて“非セキュア”扱いへ - 窓の杜
「Google Chrome 63」ベータ版では開発者向け機能が充実 ~非同期イテレーターなど - 窓の杜
Google、不正なリダイレクトやナビゲーションを「Google Chrome」から排除 - 窓の杜
「Google Chrome」の“監視対象ユーザー”機能が廃止、12日以降新規作成は不能に - 窓の杜
「Google Chrome 68」ではすべてのHTTP接続サイトが“安全でない”サイト扱いに - 窓の杜
「Google Chrome 66」では“CSS Typed OM”や“AudioWorklet”などが利用可能に - 窓の杜
「Google Chrome 67」はデスクトップ“PWA”をサポート!……で、“PWA”って何? - やじうまの杜 - 窓の杜
「Google Chrome 70」のベータ版、顔・バーコード・テキストを識別するAPIを搭載 - 窓の杜
Chromeには3種類の“再読み込み”があるって知ってた? Webページ上の画像などを最新の状態にするテク - 窓の杜
「Google Chrome 69」からはHTTPSが“当たり前”に ~“保護された通信”ラベルを除去 - 窓の杜
TLS 1.0/1.1対応などが終了 ~Google、「Chrome 72」の新機能と廃止機能を明らかに - 窓の杜
Chromeで3つ前に見ていたページへ一気に戻りたい! [戻る]ボタンの便利な小技 - 窓の杜
「Google Chrome 77」は新たなパフォーマンス測定の仕組み“LCP”を搭載 ~ベータ版でテスト中 - 窓の杜

TechCrunch Japan

ChromeはHTTPの死を早めている…1月からHTTPSでないページに警告を表示 | TechCrunch Japan
Chromeがモバイルでの不快なページジャンプを追放―スクロール・アンカリングを追加 | TechCrunch Japan

スライド

Future of Blink-in-JS - Google スライド
Chrome の marquee 要素が 優秀だった話 // Speaker Deck
State of Chrome's Memory - Google スライド

OSDN

ページ読み込み時間が5%高速化、「Google Chrome 27」が登場 | OSDN Magazine
新たに「Blink」エンジンを搭載した「Google Chrome 28」リリース | OSDN Magazine
画像検索機能が安定版に登場、米Googleが「Chrome 30」安定版リリース | OSDN Magazine
プッシュ通知にカスタムボタンが加わった「Google Chrome 48」が公開 | OSDN Magazine
開発者向けの機能を強化した「Google Chrome 51」が公開 | OSDN Magazine
IndexedDB 2.0をサポートした「Chrome 58」がリリース | OSDN Magazine
「Google Chrome 72」リリース、TLS 1.0/1.1が非推奨に | OSDN Magazine
「Google Chrome 73」リリース、macOSのダークモードに対応 | OSDN Magazine
「Chrome 74」リリース、Windows向けにダークモードを導入 | OSDN Magazine

Twitter

Chrome loading 下周りの実装

Kinuko Yasudaさんのツイート: "少し前から Chrome loading 下周りの実装の速度・安定性・安全性を高めるためにいろいろ大きめの改良を(ものによっては数年かけて)やってたんですが、それが最近ぼちぼち ship されてるので少しまとめてみました。→… "
Kinuko Yasudaさんのツイート: "It’s a rainy Friday in Tokyo, thought that tweeting about some cool✨ re-architecturing projects Chrome has done around loading could be good😀☕️, because there're many and they're shipping! Network Service, Service Workers, OOR-CORS, infra change for Script Streaming, etc... →"
Kinuko Yasudaさんのツイート: "1) Network Service👾! Chrome has been experimenting moving its network stack into its own service process, and it's now shipped on most platforms! This required massive work🔧 but has also significantly improved stability + security🔒👌"
Kinuko Yasudaさんのツイート: "2) Service Workers⚙ Did you know that Chrome's SW implementation has been completely renewed since around M72? For this @FalkenMatto and the team have done massive redesign, which has reduced per-fetch process-hops, resulted in perf win🚅, correct behavior and healthier code!"
Kinuko Yasudaさんのツイート: "3) OOR-CORS🔐 @toyoshim and @hirano_y_aa have been working on a project to move the CORS implementation out-of-renderer process. This makes cross-origin loading more spec conformant & securer, and CORB behavior more complete. We're *about to* enable it (i.e. fixing bugs)! 🤞🙏"
Kinuko Yasudaさんのツイート: "4) Script Streaming🚀 @hirano_y_aa and @MakotoShimazu have done great loading "data pipe" plumbing🔧 work, which enabled V8's direct script streaming from network to the parser. You can read more about this change in V8 release v7.5 blog: https://t.co/p6rpEe0QhE"
V8 release v7.5 · V8
Kinuko Yasudaさんのツイート: "5) Off-main-thread script fetch✈! @bashik7, @nhiroki_ and the team have been moving top-level worker script loading off-main-thread, which is enabled on ToT (https://t.co/pyWgoGVf6I). This is a part of efforts to make Service Workers startup faster. Let's hope this sticks😀"
service worker: 2nd attempt to enable OTMT service worker script fetch (I774e39d3) · Gerrit Code Review
nhirokiさんのツイート: "最近 off-the-main-thread worker script fetch を頑張っていて、shared worker / service worker 向けには Chrome 76 で有効にしました。今は dedicated worker 向けに実装中です。細かい話は以前記事に書きました (記事書いたのちょうど一年前だ!) https://t.co/iX0emUcuBx… https://t.co/wzRbWQS2nv"
ネットワーク API のメインスレッド依存をなくす話

Rockridgeさんのツイート: "Chrome 51は、Credential Management APIをサポートしたほか、スクリーン外のクロスオリジンなフレームにつきレンダリング処理を行わないことで、消費電力を最大30%削減した。 / “Chromium B…” https://t.co/NW9wOIzPbe"
なかのん DAYS''さんのツイート: "<isindex>って残ってるけど何もできない使えない要素だと思い込んでたけど、動作してたのね……(Blinkはすでにドロップ済みで、Geckoも https://t.co/FoNouOsBwT で作業中) #もずでぶ"
Yosuke FURUKAWAさんのツイート: "パスワードフォームを http で作ろうとすると警告ラベルが出るように / “Google Online Security Blog: Moving towards a more secure web” https://t.co/x1UxdV691D"
Rockridgeさんのツイート: "ChromeとSafariでは、「オートフィル可能なフォームが表示された場合、住所やクレジットカード情報をブラウザがサジェストしてくれ」るうえ、「オートフィルの情報はデバイス間で同期可能」である。 / “モバイルウェブのコンバー…” https://t.co/PPi2H2MxuO"
Kentaro Haraさんのツイート: "Blinkカンファレンスで、「Chromeのメモリ使用量を分解してみた」話をしました。 スライド:https://t.co/KdWXsI05PE"
Rockridgeさんのツイート: "Chrome 56以降で有効化されているスクロールアンカー機能は、Webページ閲覧中に画像が読み込まれるなどしてページの長さが変わっても、スクロール位置が動かず、閲覧を邪魔されないというもの。 / “Chromium Blog:…” https://t.co/wNcJFNA9BQ"
Kentaro Haraさんのツイート: "Blinkに協調的スケジューリングを入れてみようという話を書いてみた。単刀直入に言ってしまえば、Web広告が重たいJavaScriptを実行中に(もっと重要な)メインコンテンツの処理を割り込ませるにはどうすればよいか、という話。 https://t.co/xrBVpNtbIn"
Rockridgeさんのツイート: "ブラウザにいったん機能を追加すると廃止するのがたいへんなので、追加するときに必要性をよく考えるべき、とChrome開発者が実感を込めて語るスライド。 / “Deprecating features (is hard) - Goo…” https://t.co/8guV1SxJrD"
なかのん&マジックさんのツイート: "Mozillaのmarqueeの実装って、たぶん、Netscape 6 (Mozilla M18) よりも前に、中国語圏のマーケット事情で渋々実装したという感じで、それ以降、いじられてないだろうなぁ。 / Chrome の marquee 要素が 優秀だった話 // Speaker Dec https://t.co/4KqG0SAkak"
なかのん&マジックさんのツイート: "<blink>要素の削除の時に、CSS Animationsで<marquee>をもっと軽くできないかなとか思って、ちょっと調べてみたけど、一部属性の実装は(JSでごにょごにょしないと)無理って思って無かったことにした。"
Shigeki Ohtsuさんのツイート: "Chrome69の新UI「Material Refresh」で鍵アイコン等が灰色に変わりました。ChromeでHTTPS通信を緑色で判別する時代は9月に終わりますのでご注意ください。「保護された通信(Secure)」の文字も削除される予定です。https://t.co/jbKxqS4AjG… https://t.co/gIOh4Ra18E"
Rockridgeさんのツイート: "Chromeは2006年に開発が開始された。ユーザーがコンテンツに集中できるようにUIを簡素化し、スピード・応答性・安定性を高め、セキュリティも強化。当初はWindows版のみで後にクロスプラットフォーム化に苦労したという。 https://t.co/PsMVrqClWT"
Rockridgeさんのツイート: "ChromeのOmniboxのデザインを変更するにあたって考慮した事情など。 / “f6af7b8161a2” https://t.co/OmE0RIfFXE"
Makoto Kato ︎︎さんのツイート: "これ、実装したharakenさんがいかにスムーズにしたかっていうプレゼンかブログ見たことあるんだけど、多分発表者は知らないんだろうな。。。 https://t.co/tuZLygLqFc"
Shigeki Ohtsuさんのツイート: "既に Canary で HTTPが not secure になっている。この後に続く最終段階は、赤字に変わるやつ(actively dangerous)です。 https://t.co/XYKSuz1cKB… "
なかのん&マジックさんのツイート: ""Google previously recommended the superior practice for website creators of checking which features are present rather than browser name/version, but has since weakened this stance with their browser's growing market share. " https://t.co/VabMOtGR4R HAHAHA!"
なかのん&マジックさんのツイート: ""Scroll Anchoring"とか、これとか、UX周りは良い仕事してるよな。 / Google Chromeは「戻る」ボタンで戻れない悪質なウェブサイトを駆逐する予定 - GIGAZINE https://t.co/8xvmMdPz9L"
Google Chromeは「戻る」ボタンで戻れない悪質なウェブサイトを駆逐する予定 - GIGAZINE
なつきさんのツイート: "Chrome、新技術「bfcache」によってさらに爆速化へ | ソフトアンテナブログ https://t.co/THQKTglTjc Chromeのキャッシュをメモリに保存すれば高速になるのではと思ってはいたけど、ようやくサポートされるのか。"
Chrome、新技術「bfcache」によってさらに爆速化へ | ソフトアンテナブログ
なかのん&マジックさんのツイート: "Firefoxがめっちゃ昔から搭載してるヤツだ。むしろ無しで今までやってたんだな。Firefox for Androidでは多めに設定して使ってるけど、デスクトップのブラウジングではあまり恩恵を感じなくなった。たぶん、タブをフル活用できるから、戻る、進むを使わなくなってるんだと思う。"
Chromeの戻る/進むを高速化する技術 - PC Watch
Addy Osmaniさんのツイート: "Native <img> lazy-loading is coming to the web! https://t.co/LgF7F1iMgR <img loading=lazy> defers offscreen images until the user scrolls near them. Shipping in Chrome ~75 https://t.co/4gR7lvx4zx… https://t.co/MVhFCLPqR6"
ゆきさんのツイート: "Blocking high-risk non-secure downloads https://t.co/MymT5sBRr7 Chromeの中のひとが、非セキュアなダウンロードについて対策を考えたいとのこと"
Blocking high-risk non-secure downloads from Emily Stark on 2019-04-09 (public-webappsec@w3.org from April 2019)
KIMATA RobertHisasiさんのツイート: "https://t.co/x0szHUQ54V https://t.co/qFSHLHDesn Mobile版のGoogle Chromeで、body要素配下のtext nodeの合計文字数が244と245でfont sizeが変わり、`position: absolute;`が指定されたcontentの文字のサイズは更に別計算? 何を言っているのか自分でもよく分からない。なんなんだ、これは"
KIMATA RobertHisasiさんのツイート: "はい。あとデスクトップ版でもデベロッパーツール開いて、Android版にしたら発生しました… "
なかのん&マジックさんのツイート: "ASCII文字だけのテキストノードなので、245文字未満だとUTF-16じゃなく、ASCIIでストアしてるとか、そういう感じでの条件分岐だと思います。Geckoも内部でやってます。キリが悪いのは、その差分の部分に何かの内部処理用のフラグを持ってるんじゃないかと。… https://t.co/X08Uu9VGC0"
Makoto Kato ︎︎さんのツイート: "preventScroll、Chrome/Androidで動いてないよねというか誰もテストしてない系ぽいな。Geckoも人のこと言えないが。software keyboardが表示されたというlistenerがAndroidに存在しないからhackなコード入れざるをえないし"
なかのん&マジックさんのツイート: "web-compatとしてChromeの動作に寄せていくのは基本的には誰にとっても良いことになると思ってやってるんだけど、最大の問題はChrome側のバグだった時なんだよなぁ。そしてこの場合にChrome開発者が動いてくれないというのが問題で……"
mattnさんのツイート: "僕「Accept-Language は ja_JP じゃなく ja になるよ」 某「どのブラウザ使ってるの、Accept-Language は - か _ で区切られた ja_JP の様な物を返すんだよ。もしそんなブラウザがあるならそのブラウザだけ特例で回避すべきだ」 僕「Google Chrome だよ」 と返信したらレスが返って来なくなりました。"
なかのん&マジックさんのツイート: "いやその通りにシェアに関係無く、間違ってる実装に対するハックをブラックリスト形式で(かつ、可能なら修正されても壊れないように)やっておかないと、その実装側の修正時に壊れてしまう。Firefox/Geckoの長らく存在するバグを互換性のために修正すると、世界のどこかから壊れた報告が毎度毎度……"
Chrome Developersさんのツイート: "🖼 Image Lazy Loading on the web is happening! and it's as easy as adding `loading="lazy"`. It is available behind flags on Chrome Canary! Go try it out 🙌… https://t.co/fViARDbuSB"
ゆきさんのツイート: "[Chrome] Q1 Summary from Chrome Security https://t.co/TeW7aghynu Chromeのセキュリティについてのまとめ。よい。"
Q1 Summary from Chrome Security - Google グループ

Out-of-Process iframes (OOPIFs) - The Chromium Projects
Experiment Time: Scroll Anchoring  |  Web  |  Google Developers
Simple way to download Google Chrome/Chromium source code - Stack Overflow

Apple

iOS10.changesets · uupaa/WebKitChangeLog Wiki
uupaa/LatestLog
開発者のための WebKit (“WebKit for Developers” 日本語訳)
Rockridgeさんのツイート: "WebKitの新しいポリシーによれば、実験的な機能にベンダープレフィックスを付けず、ランタイムのフラグで管理する。既存のプレフィックス付き機能についてもケースバイケースで見直していく。 / “Updating Our Prefi…” https://t.co/InqdWd6vp8"
WebAssembly(wast)を書こう! - Qiita
Rockridgeさんのツイート: "次期Safariではフォームのバリデーション機能が強化される模様。たとえば空欄のフィールドには入力を促すポップアップメッセージが出る。 / “HTML Interactive Form Validation | WebKit” https://t.co/PDbwXx2EIi"
Rockridgeさんのツイート: "Safari 10.1は高速かつ標準適合度の強化された新URLパーザを搭載。また、CSSパーザもBlinkから移植されたものが有効化され、パフォーマンス、仕様適合度および他のブラウザとの互換性が改善された。参照:… https://t.co/7QZ6izyhoY"
Rockridgeさんのツイート: "次期Safariでは投機的なリソースの読み込みをサポートする。また、バックグラウンドタブの動作を抑制して消費電力を低下させる。参照:https://t.co/hOBf5Ht3pJ / “Release Notes for Saf…” https://t.co/owAS63uTJ6"
Safari 11に新機能追加、プライバシー改善
azuさんのツイート: "iPhone Xなど四角でない画面にフィットさせるための`viewport-fit=cover`やセーフエリアの概念を扱うための`constant()`(`env()`)についての解説 "Designing Websit…" https://t.co/SwRxRllQv4"
なかのんクエストさんのツイート: "えー、プレゼンテーションの指定にmeta要素使わせるの……なんでroot要素にのみ指定可能なプロパティを提案しないんだ。"
Rockridgeさんのツイート: "MozillaがNightlyを強化しているのとは対照的に、WebKitはNightlyのアップデートを止めてビルドのアーカイブを公開する形式に移行した。日常的に使うならSafari Technology Previewをどうぞ、… https://t.co/ESnWxbVcDp"
Eiji Kitamuraさんのツイート: "AppleがWeb App Manifestの実装を開始! https://t.co/ySCc3LlctY"
Safari による User-Agent 固定化と Web における Feature Detection | blog.jxck.io
SafariのUA文字列が固定されて固定されなくなったおはなし - fragmentary
Makoto Kato ︎︎さんのツイート: "https://t.co/XWuOl8QPpa を見てて、Firefox AndroidでUAにAndroidのバージョンを入れる入れないでWeb Compatibilityが向上する話を思い出した。バージョン入ってないとAndroidとして認識してくれないサイトがあるとか"
Web Inspector Styles Sidebar Improvements | WebKit
Apple、「Safari 12」を「macOS Sierra」「macOS High Sierra」向けに一般公開 - 窓の杜
Link Click Analytics and Privacy | WebKit
Intelligent Tracking Prevention 2.2 | WebKit
Dark Mode Support in WebKit | WebKit

MS

Google

高梨陣平さんのツイート: "名前出しての告発。JoshuaJB曰く、Edgeチームで働いていたけどEdgeを止めた理由の一つはGoogleが自社のサイトに他者ブラウザを遅くする変更を加え、我々はそれに追従できなかったから。例としてYoutubeは隠された空のdivを追加してEdgeのハードウェアアクセラレーションを効かなくした。… https://t.co/YNkOvrOcRp"
comexさんのツイート: "“I very recently worked on the Edge team, and one of the reasons we decided to end EdgeHTML was because Google kept making changes to its sites…” https://t.co/BQKYNUlXAm"
"For example, they may start integrating technologies for which they have exclus... | Hacker News
dynamis (でゅなみす)さんのツイート: "YouTubeってブラウザがハードルアクセラレーションのレイヤー境界を判断するコードも標準機能が出来て久しいのにBlink用ハックだけ入れ続けてGecko搭載機器で困ってたし(簡単なCSS追加を指示して解決してもらった)、悪意があるかどうかはともかく他ブラウザへの無配慮は常態化してたと思ってる。"
なかのん&マジックさんのツイート: "この手の話、多分ほじくればなんぼでもbugzilla上にあるんじゃないかな。私のweb-compatは大物がほとんどで件数少ないけどそれでもあるんだから。"
dynamis (でゅなみす)さんのツイート: "MozillaがWebPサポートしないと言ってたのを方針転換したのもYouTubeがWebPサポートしないと表示されない画像を入れ続けてたからだし、Google検索はFirefoxに劣化版出してくるし、あれだけエンジニアと利用者のいるGoogleの主要サービスがChrome以外に配慮しないのはWebの方向性に影響大きいよね"
なかのん&マジックさんのツイート: "自分達が欲しいAPIは迅速に実装、仕様案出して来て、他のブラウザベンダの状況関係なく自分たちで使い出す、逆に興味ないAPIや自分達が困ってないバグ修正は放置してるよね。ビジネスとしては、実験段階のものを実際に使うの以外は普通なんだけど立場を考えて欲しい。"
はじめてのにき(2018-12-17)
KIMATA RobertHisasiさんのツイート: "Chromiumが独占的な地位を得てしまっているので、例えばJavaScriptを独自拡張して「この拡張に対応していないとGoogle DocやYoutubeが使えません(or 激重になります)」みたいになると結果としてFirefoxのSpiderMonkeyエンジンが市場から排除される恐れがあるんだよなあ"
なかのん&マジックさんのツイート: "既にそういうサービスちょいちょい作ってなかったっけ。"
dynamis (でゅなみす)さんのツイート: "Chrome以外のブラウザ無視についてはGoogleなどより中国と日本のサイトが圧倒的に酷くてMozillaが苦渋の思いでwebkit接頭辞サポートをしたのはそれが原因。 修正コードや自動変換ツールまで持って行ったMozillaの修正依頼を、エンジニアに教育するコストが出せないと断った日本の大手IT企業が典型例"
dynamis (でゅなみす)さんのツイート: "明らかにビジネス判断遅かったし他にも都合があるが、Mozillaがモバイルでシェアを獲得できる機会を繰り返し失った主要因はサイト側が修正する気が無かった(サイトに影響力のある企業もそれを推進する気が無かった)ことがあったし、ブラウザ動向を決めるのは結局サイト制作側なんですよね。"
dynamis (でゅなみす)さんのツイート: "ブラウザシェアを大きく左右するのはサイト制作側よりもOSであったり検索サービスなどでの圧倒的な広告であったりするけど、Webの進化の方向を決める最後の鍵を握るのはサイト制作側なんだと理論でなく体感した15年だったなと思う年末です。"
dynamis (でゅなみす)さんのツイート: "即座に修正対応してくれたり、内製から外注に変えて仕様調整が難しいと告白しつつ努力してくれたり、マネージャが断っても現場から変えて数年後に対応してくれたり、無駄ではなかったです。 ただ業界を変えるには人手と時間が足りないし、大手IT企業ほどお断りされたのは事実であり限界はあったなと… https://t.co/izJCLzlCSD"
dynamis (でゅなみす)さんのツイート: "念のため書き足すと簡単なCSS追加をしたのはYouTube再生機能を持った機器側。メーカーからのYouTubeへの修正要望は受け付けられていなかったためブラウザ側にサイト固有ハックを入れるのがYouTubeのプレイヤーとしての性能要件を定めた認証を通す唯一の手段だったケース。"
SKSの申し子さんのツイート: "Edgeの開発をしていたという人がHNで「Googleはyoutubeとかでわざと他のブラウザを遅くしている」みたいなコメントして注目を浴びてるけど,「MSはサービスのクライアントをLinuxで遅くするのやめろ」みたいな突っ込みが入っていて,憎しみが連鎖している"
KIMATA RobertHisasiさんのツイート: "https://t.co/4jMT2MZdq2 https://t.co/t4lhNM483w この話「Web標準に沿ったコードを書いても、それ自体は会社の利益を生まないし、作業者の給料や評価が上がりもしない」のが辛い。だからアクセシビリティなどが優れるサイトは褒め称えるなどして社会的な評価上げないといけないのだろうなあ"
なかのん&マジックさんのツイート: "実際問題、今みたいにブラウザ屋さんになる前からWeb標準化の活動とかし始めたあたりから、この会社は信用できないなとかってのをWebサイトの出来から考えるようになったな。"
なかのん&マジックさんのツイート: "あ、この会社ヤバそうだからお近づきになるのやめとこう、みたいなの。"
なかのん&マジックさんのツイート: "なんでこの人達は全てのブラウザが同じHTML/CSS/Javascriptを受け取ると思い込んだ上でしたり顔トークしてるだろう…… https://t.co/nqAvMlrYsx"
なかのん&マジックさんのツイート: "転送容量の膨大さから、あえてinvalidなHTMLにして容量削減したりしてたぐらいの企業ですよ?"
Makoto Kato ︎︎さんのツイート: "YouTubeの話はpolymerがたまたま変なHTML生成しただけじゃないの?だし、彼らはなんも考えてないだけとしか思わないけどね。Blinkに対して最適化入れてるだけで"
Makoto Kato ︎︎さんのツイート: "自分たちはちゃんとGoogleへレポートしてるけど、彼らはちゃんとバグ登録してくれてる。問題は同じ会社なのにChromeチームと話があってないことだけ。大きい会社なんだ感あるだけだよ。それはMSもそうだけど、大きい会社の宿命だよ。いろいろ難しいよね"
Googleが「Microsoft Edge対策にYouTubeのコードを変更した」という指摘を否定 - GIGAZINE

- Microsoft Edge Development
Microsoft Edge、レスポンシブイメージ対応の「srcset」に対応。夏以降は主要ブラウザすべてでsrcsetサポート - Publickey
新しくなったMicrosoft Edgeを試してみよう!ーWindows 10 Creators Updateで入ったEdgeの新機能一挙解説 | HTML5Experts.jp
Chrome/Firefoxよりも断然エコ ~「Creators Update」における「Edge」の消費電力削減 - 窓の杜
Rockridgeさんのツイート: "Anniversary Update後のMicrosoft Edgeは、マウスホイールによるスクロールだけでなく、タッチ操作によるスクロールやサイドバーのスクロールについても処理の非同期化を達成している。 / “Scrollin…” https://t.co/2epkgtBAih"
Rockridgeさんのツイート: "Microsoft EdgeはIE時代のDOMツリーを、3フェーズに分けて次第に新しいアーキテクチャに移行させた。Creators Update後のEdge 15では処理高速化の成果が出ているという。今後はDOM周辺のサブシステム… https://t.co/nIPjowqY4i"
Modernizing the DOM tree in Microsoft Edge - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
最新バージョン「Edge 15」が大進化、応答速度3倍、高い電力効率を実現 - INTERNET Watch
Windows Creators Update,Firefox 53,Chrome 58リリース──2017年4月のブラウザ関連ニュース | HTML5Experts.jp
Rockridgeさんのツイート: "Windows 10 Fall Creators Update後のMicrosoft Edgeには、お気に入りのURL編集とタスクバーピン留め、音声読み上げ、パーミッション設定、CSS GridとPayment Request A… https://t.co/B3RKz3QkI9"
Windows 10 Fall Creators Updateに搭載されるMicrosoft Edgeの新機能 | HTML5Experts.jp
なかのん&マジックさんのツイート: "Edgeさん、そろそろ、KeyboardEvent.keyの値を仕様にあわせて変更してくれませんかね。あと、KeyboardEvent.codeの実装も。"
パルポーさんのツイート: "Windows 10 Insider Preview Build 17063 の Microsoft Edge でフルスクリーン時に画面上部にマウスを持ってくることでタブやアドレスバー, お気に入りなどにもアクセスできるようになってた #WindowsInsiders #win10jp… https://t.co/PZMUVhPM3n"
Internet Explorer および Microsoft Edge での Flash の今後の対応予定について – Japan IE Support Team Blog
なかのん&マジックさんのツイート: ""Recent Microsoft Edge tabs now show in Alt + Tab" https://t.co/ItBwlQD3Kd これうざいだけでは……"
なかのん&マジックさんのツイート: "タブをそんなに開くユーザは少数派という、テレメトリの情報からの判断なのかなぁ。"
KIMATA RobertHisasiさんのツイート: "RS5で使い始めていますが、(Edgeをメインで使っていない自分としては)あまり問題になってないのですが、タブを数十開く人の場合うざそうだなあ、などと。あと、Setsで「+」おして必ずEdgeが開くのもうざいです。普通同じアプリの新しいタブが開くことを期待するのではと思うの次第… https://t.co/GdQgS4XebV"
Microsoft Edge: Making the web better through more open source collaboration - Windows Experience BlogWindows Experience Blog
Rockridgeさんのツイート: "Mozilla Blogに掲載された「Goodbye, EdgeHTML」の和訳。他にも和訳はいくつか存在しているが、これが一番読みやすい。 / “「さよならEdgeHTML」――Goolgeへの対抗をあらためて誓うMozill…” https://t.co/OZ5vLalGzS"
「さよならEdgeHTML」――Goolgeへの対抗をあらためて誓うMozilla – P2Pとかその辺のお話R
won't fix: RIP EdgeHTML. Software lifecycle is difficult
Edge 終了に寄せて - mizchi's blog
米Microsoft、Chromiumベースの「Microsoft Edge」プレビュー版を公開 | OSDN Magazine
dynamis (でゅなみす)さんのツイート: "新しいEdgeのUA文字列は Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.48 Safari/537.36 Edg/74.1.96.24 注意すべきはEdgeなのにEdgeではなくEdgでありEdgiOSやEdgAと微妙なそろえ方をしてきてること https://t.co/hUsJ8AO7rh"
Fadisさんのツイート: "UserAgent、読んでも何もわからん情報っぷりに磨きがかかってるなぁ。イマドキのWebでUserAgentを見て何かの機能が利用可能かどうか判断しているJavaScriptが居たら流石に直した方が良い案件ではあるわけだけど"
7594591200220899443さんのツイート: "今時UAの文字列にどんだけ意味あんのかね、サーバサイドは今更QUICで接続してきておきながらlike Geckoとか言われても死ねよという感想しかないわけだしJSは所詮ローカルプロセス内でもっとgranularな情報取れるし意味なくねえか… https://t.co/hLn9k1zm7U"
なかのん&マジックさんのツイート: "え、UA文字列、普通に使われてるよ? なんでもかんでもfeature detection可能じゃないし、下手に関連性のないブラウザ間の非互換部分でブラウザ判定するほうが害悪。"
なかのん&マジックさんのツイート: "ここ半年ぐらい、そういうWebアプリとの互換問題やりまくっててウンザリしてる。"
Makoto Kato ︎︎さんのツイート: "ブラウザ作ってる会社のWebサービスがUA文字列見てるくらいだから、現状ではFeature Detectionでまかなえると思ってない"
なかのん&マジックさんのツイート: "Feature Detectionで何でもWebアプリを適当に書けると思ってる人は間違い無く素人さんです。"
なかのん&マジックさんのツイート: "特定のUAであるかどうかを判定するのにUA名のチェック以外により良いものなんてないんだと思うんだけどな。もし、全ブラウザがバグ無く未実装があるだけ、かつ、標準仕様が存在しない世界なんだったらブラウザ自体を判定しようっていう行為が愚行なことには同意できるけど。"
Microsoft、音声認識とAIを組み合わせたインテリジェントエージェントのビジョンをBuildで公開 ~ChromiumなMicrosoft EdgeにはIE互換のタブを実現するIEモードを追加 - PC Watch
[速報]次期Micrsoft Edgeに「Internet Explorer mode」搭載。企業向けにIE11のレンダリングも提供。Microsoft Build 2019 - Publickey
MicrosoftがEdgeのmacOS版やIEモードの搭載を発表 - GIGAZINE
ユーザー エージェント文字列の変更 (Windows)
ドキュメント『モダンブラウザーの今と、Web標準に対応したWebコンテンツの作り方』公開! | Microsoft Edge Japan
2016 年の展望: Microsoft Edge の開発者向け情報 | Microsoft Edge Japan

headless

Qiita

WindowsでPuppeteerを使ってヘッドレスChromeを操作するための環境構築手順 - Qiita
動的に生成されたページをpuppeteerでスクレイピングする - Qiita
--headless時代の本命? Chrome を Node.jsから操作するライブラリ puppeteer について - Qiita
ヘッドレスブラウザ(Chrome)を使ってSPAをスクレイピングする - Qiita
PuppeteerでヘッドレスChromeを操ってみる - Qiita
puppeteerでスクレイピング - Qiita

Docker で Puppeteer 動かして Slack にスクショを通知してみた · tail -f /var/log/ryysud.log
Headless Chrome をさわってみた | CYOKODOG
ヘッドレス Chrome ことはじめ  |  Web  |  Google Developers
Webブラウザの操作をJavaScriptで自動化。Headless Chromeのフレームワーク「Puppeteer」がバージョン1.0に到達。ChromeのDevToolsチームが開発 - Publickey
Headless Chromeでデザイン変更履歴を追える魚拓を作ってみた - pixiv inside
PuppeteerによるヘッドレスChromeの使い方 evaluate | iwb.jp
[puppeteer] ヘッドレスブラウザの操作でスクレイピング、クローリング │ Web備忘録
Puppeteerでできることまとめ | GMOアドパートナーズグループ TECH BLOG byGMO
Puppeteer  |  Tools for Web Developers  |  Google Developers
Puppeteer でのヘッドレス Chrome の使用  |  Node.js 用 App Engine スタンダード環境に関するドキュメント  |  Google Cloud
E2EテストをPhantomJSから、Puppeteer + Headless Chromeへ移行しました - LCL Engineers' Blog
[Node.js] puppeteerでスクレイピングしてみる - 筋肉エンジニアの備忘録
Dockerコンテナ内でpuppeteerを使うとChromeゾンビプロセスがたまる問題 - その手の平は尻もつかめるさ

自動入力

【やじうまPC Watch】ChromeやSafariの自動入力でクレジットカードなどの個人情報が盗まれる危険性 - PC Watch
暮らしに役立つITコラム ChromeやSafariの自動入力機能が、なぜ「悪いデザイン」なのか
Rockridgeさんのツイート: "Fx55:NightlyチャンネルでForm Autofill機能がデフォルト有効化。名前や住所などの入力フォームを自動的に補完する。ただし、当初はinput要素のautocomplete属性が指定されたフィールドに限られる。 https://t.co/plmEjkWchV"
Rockridgeさんのツイート: "Fx55:Form Autofill機能の対象にクレジットカード情報が追加された。 / “1359978 - [Form Autofill] Implement the credit-card storage” https://t.co/PahNcUMXig"
Rockridgeさんのツイート: "Fx55:Form Autofill機能に関し自動補完の対象となる入力フィールドを選別する機能が実装・有効化された。処理のパフォーマンスにも影響。参照:https://t.co/jFgqkhWj9g … https://t.co/1uZGKszQ2e"
Rockridgeさんのツイート: "入力済みの名前や住所などのプロファイルをFirefoxが保持し、フォームを自動的に補完するForm Autofill機能は、Firefox 57(2017年11月14日リリース予定)でシステムアドオンとして提供される見通し。 https://t.co/gFN21vBl9J"
Rockridgeさんのツイート: "Form Autofill機能で利用されるプロファイルは、将来的にFirefox Syncの同期対象となる。 / “Firefox/Features/Form Autofill - MozillaWiki” https://t.co/tqas9XAnfg"
Rockridgeさんのツイート: "Form Autofill機能は今後、autocomplete属性以外のフィールドも対象に含めていく。補完される情報の追加・編集機能も実装される見込みだ。 / “Preview Form Autofill in Firefox …” https://t.co/ICdJwGTefX"

OGP

OGPを設定しよう!SNSでシェアされやすい設定方法とは?
meta 要素 OGPの基本的な設定方法 - by Takumi Hirashima
OGP画像を設定してみよう! - Qiita
OGP設定の正しい方法とは?確認の仕方と注意するポイント | Marketing Native(マーケティング ネイティブ)

Internet Message Format

Kazuho Okuさんのツイート: "別の言い方をすると、ウェブのフォームバリデーションむけに作られた業界標準の正規表現なので、その目的で使うなら最強に近い https://t.co/QrgpKm8K5d"
Kazuho Okuさんのツイート: "living standardを定めている団体がwillful violationだと言っているものを、さもformalであるかのように(つまり「きちんと定義されている」と)言及したら反発くうのはしょうがないよね"
Dai MIKURUBEさんのツイート: "念のため言っておくとHTML(5)仕様中の<input type="email">のための正規表現は、本文中に"willful violation of RFC 5322"だって明確に書かれてるので、それはそれでいちおう要注意。まあそれなりにauthorizeされているしだいたい… https://t.co/wsVFCfkKnX"
RFC 5322 - Internet Message Format
RFC5322(Internet Message Format)
メールアドレス - Wikipedia
Email address - Wikipedia
RFC 5322のメッセージ書式
RFC 5322
SMTP の新しい RFC が公開
Outlook から RFC で認められていない形式のメール アドレスにメールを送信すると、配信不能メールが返され送信できない

HTML 3.2

HTML 3.2 Reference Specification
HTML 3.2 仕様書

HTML4

HTML 4.0 Specification
Index of the HTML 4.0 Elements
Index of the HTML 4.0 Attributes
Index
HTML 4 Changes
HTML 4.0 解説
HTML 4.01 Specification (ja)
HTML 4.01の正しい記述方法、最小構成編 | マイナビニュース
なかのん&マジックさんのツイート: "cite要素の定義、変わりすぎではって思ったけど、HTML4.01の仕様を確認すると、思いのほか何も定義してなかった。"

HTML5

W3C

HTML5
HTML 5.1
HTML 5.2
HTML 5.2 is done, HTML 5.3 is coming | W3C Blog

水底の血

2016年5月のdl要素にまつわるエトセトラ - 水底の血
HTML 5.1仕様とその日本語訳についてちょっと一言 - 水底の血
2016年下半期のw3c/wcag GitHubメモ - 水底の血
ITS 2.0の日本語訳を公開した - 水底の血
「縦書き」に関する総務省の行政事業についての報告書の感想のようなもの - 水底の血
HTMLのコメント中に余分なハイフンが出現してもよくなった - 水底の血
HTMLチェッカーはchecker.html5.orgを推してみたい - 水底の血
Re: コンテンツのデザインとウェブデザイナーにできること - 水底の血
W3C HTML 5.0仕様とそれ以前の(X)HTML仕様に対する廃止勧告の提案 - 水底の血

contenteditable 属性

Twitter

histric-1

なかのんクエストさんのツイート: "なんか、ちょっと詳しく書きたくなる内容なんだけど、ブラウザの実装調べて無いでしょ、この人…… / LINE BLOGアプリ開発で contenteditable と戦った話 : LINE Engineering Blog https://t.co/boJRmratd2"
なかのんクエストさんのツイート: "というか、多分、関連仕様書も読んでないのでは。"
なかのんクエストさんのツイート: "まあ、かと言って、私も、私基準では語れるほど詳しくはない。"
なかのんクエストさんのツイート: "Geckoは基本的にはChromiumの動作に合わせて修正していくんで、やりたい企業は基本的にはブラウザベンダと緊密に連絡とった方が良い。Microsoftさんはかなり頑張ってる。"
なかのんクエストさんのツイート: "何て言うか、Webで真剣にサービスやるなら、フルタイムで各ブラウザのバグを修正する部隊を社内で編成した方が良いですよ。このレベルのことやりたいなら。"
なかのんクエストさんのツイート: "とりあえず、一言だけ言っとくと、仕様が未熟な時期に実装するとブラウザ側や仕様側の変更で凄いコストかかるし、そういう実装が先にメジャーになってしまうと、ブラウザも仕様も合理的な方向に変更できなくなって新規の開発に悪影響出まくりなんで、その辺の覚悟と責任は知ってて欲しい。"
なかのんクエストさんのツイート: "DOMイベント周りは私も頑張って、地獄感がかなり減ったけど、contenteditableはかなりの地獄よ? (現Gecko Editorモジュールオーナー談"
もんどさんのツイート: "HTMLの本でcontenteditableを取り上げる可能性は限りなく低いと思っている"
さねさねさんのツイート: "userland側から見てもcontenteditableからむコードできれば書きたくない"
なかのんクエストさんのツイート: "多分無い。相当な資金力無いなら少なくともあと5年は手を出してはいけない。"
もんどさんのツイート: "ここはじーごーくーじーごーくー(ry"
Rockridgeさんのツイート: "contenteditableは仕様が未熟なのでアプリに実装するならブラウザベンダと緊密に連絡をとる方がよく、覚悟が必要で責任も伴うという。参照:https://t.co/UwqbkjQyT6 … https://t.co/GogPxoW2qq"
なかのんクエストさんのツイート: "なんか、contenteditableのネタが未だにちょいちょい、RTとかFav延びてるけど、みなさん、ご存知なくての話なのか、だよねーー的な感じなのか……"
なかのんクエストさんのツイート: "contenteditable="plaintext"なんて案もあって、bugzillaにも実装要望報告来てたんだけど、汎用性無さすぎな仕様で、速攻で仕様案からlegacy扱いになってたのはなかなかのギャグ。"
なかのんクエストさんのツイート: "現在の仕様案は悪くないと思うんで、Chromiumが先行するなら追随したいとこらではある。"
なかのんクエストさんのツイート: "実際に私が実装する事は無いと思うけど、テキストエディタの使い勝手って、IME並みに重要だと思うので、上手く抽象化してから、vimやemacsのキーバインドをGeckoで実装したいって人が来るならwelcome。個人的には。"
なかのんクエストさんのツイート: "まあ、まずは抽象化するっていう作業が必要ですけどね。今はキーの組み合わせをハードコーディングで確認したり、XULであらかじめ決定してるキーバインディングでコマンド実行したりしてる。これを全部、キーイベント発火タイミングでコマンドを関連付けるようにしないといけない。"
なかのんクエストさんのツイート: "Quantum Flowがらみでその辺は今、ぼんやりと考えてる段階。"
なかのんクエストさんのツイート: "これのHTMLエディタへの対応を、どうするのか、物凄く悩ましい。"

histric-2

LINE BLOGアプリ開発で contenteditable と戦った話 : LINE Engineering Blog
Rockridgeさんのツイート: "Fx55:Windows版で、テキストエリア内においてATOKの定型文章入力を行った際、改行が無視される後退バグを修正。 / “1339331 - [TSF] new line is ignored when use ATOK'…” https://t.co/T6qhU8hzEk"
なかのんクエストさんのツイート: "これのHTMLエディタへの対応を、どうするのか、物凄く悩ましい。"
なかのんクエストさんのツイート: "常に<br>置換でも良いような気もするものの、ハングルのIMEの挙動を考えると、普通にEnter押したときの動作でないとまずいし、でも、ATOKだとそれじゃ、変な結果になるよな、という……"
なかのんクエストさんのツイート: "プレーンテキスト脳なATOKのhacky動作を無視するのが一番なのかなぁ。"
Rockridgeさんのツイート: "Fx60:contenteditable/designModeの編集領域において、ユーザーがEnterキーを入力した場合、他のブラウザと同様にdiv要素が挿入されるようになる。従来はbr要素が挿入されていた。 / “Intent…” https://t.co/eHZAPYMIbO"
なかのん&マジックさんのツイート: "あー、やっと、Chromeの微妙に納得いかない動作に合わせる方法思いついた。contenteditable="false"絡みはどこのブラウザベンダもちゃんとテストしてないから、実装の癖がそのまま出ちゃうんだよな。"
なかのん&マジックさんのツイート: "なので、最大シェアのChromeが、理屈的に微妙な動きをしてるときにどうすべきか、ケースバイケースで難しい。"
なかのん&マジックさんのツイート: "本当にこの辺は標準化しないと使い物にならないよな。穴埋めみたいな入力画面をcontenteditable="false"を活用して作ると、undo/redoが全編集可能エリアで統合されるんで、場合によっては便利そうなんだけど、いかんせん、互換性とか以前のレベル。"
なかのん&マジックさんのツイート: "contenteditableの実装、invalidなHTML内での編集も処理しないといけないの、複雑さを悪化させてたり。<div><li></li></div>で、<li>内でEnter押した時とか。"
なかのん&マジックさんのツイート: "そーいや、EdgeもBlinkも、contenteditableでの編集中に、平然とHTML的にInvalidなDOMツリーを作るんだけど、どうなってんだ……"
なかのん&マジックさんのツイート: "孫以降にInvalidな要素を作ってしまうのであれば、パフォーマンス的に分からなくもないんどけど、流石に子供として挿入しちゃうのは……"
Pascal Chevrelさんのツイート: "My Firefox Dev Tools tip of the day, live edit your Web content by setting contenteditable=true to the body tag ;) #FirefoxHowTo… https://t.co/TCxpCtk49C"
なかのん&マジックさんのツイート: "うおおおお。バグ報告一杯来そうで嬉しいやら悲しいやら。"
なかのん&マジックさんのツイート: "正直、contenteditableで生成されるツリーは綺麗ではない。"
なかのん&マジックさんのツイート: "Edgeなんか、Enterキー押した時に、親が<span>とか<p>でも、<div>を突っ込んで来たりするしね。"
なかのん&マジックさんのツイート: "日本人ではゼロかもしれないですけど、FirefoxのcontenteditableやdesignModeで表示される固有UIの、画像等のリサイザや、絶対配置要素の位置変更、テーブルのセルの追加、削除のUI、これらを日常的に(頻度は問いませんが)使っている人居ますか? #もずでぶ"
なかのん&マジックさんのツイート: "全世界のNightlyとBetaユーザの利用率を調べると、削除するには無視できないぐらいには、割合は少ないものの明らかに意図的に操作している人が居るのが分かって、驚いています。"
なかのん&マジックさんのツイート: "今のところ、トラブルが無ければ、Firefox 64 (2018年12月リリース)で、標準では無効化(非表示)にして、execCommand経由でWebアプリが有効化したり、あるいはユーザが強引にabout:configから有効にできるようにする予定です。"
なかのん&マジックさんのツイート: "ちなみに、Chrome、Safari、Edgeはこれらのビルトインな特殊要素の編集UIを持っていませんので、デフォルトで非表示にすることでブラウザ間の互換性が向上します。"

なかのん&マジックさんのツイート: "<blockquote>の挙動が分からないって言ってるの、HTML4(.01)を知らないからか。明日か明後日、体調戻ってたら解説記事書くのも面白いか。 / noteと"contenteditable"|ct8ker|note https://t.co/6vcjcqDAw2"
noteと"contenteditable"|ct8ker|note
なかのん&マジックさんのツイート: "HTML 4.01の<blockquote>の仕様はこちら: https://t.co/VSx974gYKp"
Paragraphs, Lines, and Phrases
なかのん&マジックさんのツイート: "というかこの人、専門でやってるという割には仕様を調べたことなさそうな感じだし、まあ、そもそも仕様書もどきに辿りつくのも大変だと思うんでやっぱりなんか書きます。"
なかのん&マジックさんのツイート: "Firefoxのcontenteditableの動作、超複雑怪奇になる条件が重なったケースというのを除けば、だいたい理解はできる感じなんだよな。"
なかのん&マジックさんのツイート: "Geckoのエディタモジュールのオーナーであるにも関わらず知らなかったんですが、contenteditable内に可視化されたstyle要素を置いて、そのCSSのルールをいじると、ちゃんとその結果がページ全体に反映されるんですね…… https://t.co/aZk1TwaLAr"
A Pen by Masayuki Nakano
KIMATA RobertHisasiさんのツイート: "HTMLの仕様を読むと最初の方で「この仕様はHTMLを知らない人向けじゃないよ。そういう人は先に別に用意されたチュートリアルを読んでね」的な事が書いてあるのだが、そのチュートリアルはどこで見つければ、と言う気持ち。正直HTML4.01を勉強したころに比べて今は難しいと感じる"
なかのん&マジックさんのツイート: "contenteditable周りを開発する人は今からでもHTML 4.01は読んでおいた方が良い。なんでかっていうと、HTML5以降廃止されたブロックレベル要素、インラインレベル要素っていう概念を元にブラウザが実装してるし、そこの互換性がまだまだ低くて、"
なかのん&マジックさんのツイート: "なおかつ、それぞれがバグ持ちで標準化不能になってるから、HTML 4.01での概念を分かってないと意味不明な挙動に見えるんだってのをこないだ学んだ。"
かさんのツイート: "Twitterの新しいWeb版がやらかしてくれました…日本語入力が狂うなと思ったら案の定textareaを使わずに謎の編集可能なdivとspan… これやられるとマジで入力がおかしくなる環境の人がいるから全Web技術者は真似しないで欲しい… https://t.co/U3p4QcsB6s"
なかのん&マジックさんのツイート: "特にFirefox Nightlyでは問題無いなぁ。なんかのブラウザのバグを踏んでる?"
Makoto Kato ︎︎さんのツイート: "Twitterがやりたいことをやるためには、<textarea>じゃ実現できなくて、contentedtiable使うしかないってわかってない多そう。例えばURLを入力すると色が変わるとかはtextareaとかじゃ実現できない"
Makoto Kato ︎︎さんのツイート: "Twitterがほしいのはcontentediable=plaintext-onlyなんだろうけどさ。入力とかペーストはhtmlのエレメント欲しくなくて、プレーンテキストだけを許可したいとか"
Makoto Kato ︎︎さんのツイート: "contenteditableで日本語入力がおかしくなるのは、ブラウザかスペックのバグなのでブラウザ作ってる人たちが直すしかないので。無理難題多いけど自分も含めてどうにかするしかない。"
なかのん&マジックさんのツイート: "あれ結局、実装してるブラウザもやっつけ実装だし、細かい仕様出せってなった後反応無くなったしで黒歴史。"
Makoto Kato ︎︎さんのツイート: "Linuxでの日本語入力がChromeで問題あるのは、まぁリソースの問題じゃないのかなぁ。彼らにとってプライオリティ高くないし。Firefoxで問題があるのであれば、すみませんというしかないけど。(あのim moduleの仕組みはバグ増やすだけだからよくないとは思ってる)"
なかのん&マジックさんのツイート: "contenteditable=plaintext-onlyの一番分かりやすい疑問点はEnterキーを押した時に、<br>を入れるのか\nを入れるのかってところ。<p>に\n入れてもスペースだし、かといって<pre>に<br>入れるのも変。"
なかのん&マジックさんのツイート: "ようするに雑やねん、あれ……"

君はHTML5の contentEditable 属性を知っているか | Tips Note by TAM
contenteditable 属性 - グローバル属性 - HTML5 タグリファレンス - HTML5.JP
HTML5/グローバル属性/contenteditable属性 要素内容が編集可能かどうかを指定する - TAG index
【HTML5】contenteditable属性 - Qiita
[HTML5API] contentEditable 属性を使用したリッチテキストエディタの実現 – monoe's blog
contenteditable=contenteditable - コンテンツの編集許可
HTMLのcontenteditable属性 - 備忘帳 - オレンジ工房
contenteditable 属性 | HTML5 タグリファレンス | W3 Watch Reference
Re: noteと"contenteditable"|ct8ker|note - WebStudio

Publickey

「HTML5 Rocks」だけじゃない、ブラウザ各社のHTML5チュートリアルを集めました - Publickey
WebIntentsとSocket APIでブラウザから家電が操作できる。HTML5 Conference 2012 - Publickey
まだぼやけているHTML5の将来、WHATWGとの二重管理のジレンマ。W3C TPAC 2015 - Publickey
W3C、「HTML5.1」を今年9月に勧告とする計画。仕様はGitHubで公開 - Publickey
W3Cが「HTML 5.1」を勧告、レスポンシブイメージへの対応など。次のHTML 5.2は2017年末頃を目指す - Publickey
HTML 5.2の勧告を2017年11月とする工程表が提案される - Publickey
W3C、「HTML 5.2」勧告。同時にHTML 5.3のファーストドラフトを公開 - Publickey

Qiita

<a href="#top">がHTML5で正式仕様になってた件 - Qiita
サイトに埋め込まれたHTMLのmeta(メタタグ)あれこれまとめ - Qiita
なつき@コーディングスクール開催さんのツイート: "Googleは以前head, body省略を推奨するような記事書いてましたよね…私はおすすめしませんが。p要素も条件次第で省略可能です。 "HTML5 で省略できるタグ - Qiita" https://t.co/4kqHmgDz82"
HTML5 で省略できるタグ - Qiita
なかのん&マジックさんのツイート: "公開する分だけ機械的に抜くのはともかく、基本的には書いた方がミスがなくて良いと思うけどな。C++でもたまに、{}を付けてなかった1行のブロックに機械的に行を追加しちゃったけど、当然ブロックスコープが意図せず違っててクラッシュバグになったりとかあってるし。"

Twitter

vyv03354さんのツイート: "WHATWGのHTMLも最新とは限らないとか勘弁して…。 https://t.co/zySMIUvL #もずでぶ"
KANZAKI, Masahideさんのツイート: "HTML 5.2 https://t.co/LRz4sAfmvD 更新されたWDを久々に見たら:main複数可(ただし表示は1つのみ、WHATWGと違)、styleはbody内も可(4月WD、WHA.は不採用)、dlの子にdiv可(2月、WHA.は昨年末)などなかなか斬新"
Rockridgeさんのツイート: "2017年12月14日、HTML 5.2の仕様がW3C勧告となった。 / “HTML 5.2 is now a W3C Recommendation | W3C News” https://t.co/D13rRxxZM6"
Rockridgeさんのツイート: "HTML 5.2において、プラグインシステムはobsolete(旧式)なものとして扱われるようになった。 / “HTML 5.2 is done, HTML 5.3 is coming | W3C Blog” https://t.co/XPnb10LxWQ"
なかのん&マジックさんのツイート: "そういえば、HTML5で実際にアプリに使われていたことのある、<link rel="top">とか、<link rel="up">が仕様にない上にvalidatorでerrorになるというのには驚いたなぁ。"
もんどさんのツイート: ">アウトライン周りはなかなかに人によって意見が分かれそうな雑な定義で実に悩まされましたね……ググっても、どれを参考にすれば良いのかと思えるぐらい、検索結果が玉石混交っぽくて、今でもまだ正解が分かってません。 どうせブラウザーが実装してないから気にしない派です。"
なかのん&マジックさんのツイート: "そこはそれ、妄想の中にある理想のブラウザで読み込まれることを前提としてですね("

W3Cのは『欠陥フォーク』!? HTMLスナップショット2016 ── HTML5 Conference 2016セッションレポート | HTML5Experts.jp
HTML関連英文書の日本語訳 - HTML5.JP
Top | Diff of HTMLs
W3C - 『HTML 5 differences from HTML 4』日本語訳 - HTML5.JP
HTML5日本語訳
HTML Standard 日本語訳
HTML5の最小構成サンプルとその説明 | マイナビニュース
すべての人が使えるウェブを開発しよう | Mozilla Japan ブログ
JenkinsとHTMLHintを使用して潜在的な構文エラーに気づいていく | フロントエンドBlog | ミツエーリンクス
picture要素やsrcset属性による画像のレスポンシブ、高解像度対応 | フロントエンドBlog | ミツエーリンクス
HTML の q タグが日本語のサイトではカギ括弧を出すようになってた - 頭ん中
本の虫: W3CとHTML5のruby要素の違い。
A Study in HTML5 — Baldanders.info
W3CはHTML 5.2を公式勧告としてリリースした
WebStudioともずはっく日記のHTML5化とその他もろもろ - WebStudio
img要素とiframe要素のlazyload属性 - EagleLand
Chrome 74が遅延ローディングをネイティブにサポート

XML

XML 1.0第五版登場、一部規制を緩和 | マイナビニュース
RFCの正規文書がXMLに:Geekなぺーじ
The XML C parser and toolkit of Gnome
Downloads
Welcome to Expat! · Expat XML parser

XHTML

なかのん DAYS''さんのツイート: "なんかそのうちドキュメントにまとめたいと思うけど、長年、私のサイトでapplication/xhtml+xmlを運用してきたけど、その結果からするとこの仕様はdeprecatedにして、廃止した方が良い。"
なかのん DAYS''さんのツイート: "まず第1の問題はGoogleを始め、知る限りほとんどのエンジンが対応していないというか、acceptableなMIMEタイプに含めていないぐらいにブラウザベンダ以外はサポートする気が無い。"
なかのん DAYS''さんのツイート: "第2の問題は不安定な通信状況等で1バイトでもデータが欠けると、ページ全体がレンダリングされない。これは非常に大きな問題。"
なかのん DAYS''さんのツイート: "第3の問題はうちの日記システムのように生のHTMLを書き込めるようなシステムの場合、プレビューの仕方を工夫しないとエラーが出て書き込んだ情報のdatalossにつながりかねない。"
なかのん DAYS''さんのツイート: "最後の問題として、lang属性 vs. xml:lang属性の問題や<pre>要素の問題等、text/htmlと動作が違い過ぎる点がある。このため、テストが二重に必要になるのでこんなコストを良しとする作成者は普通は居ない。"
なかのん DAYS''さんのツイート: "あんまし記憶にないんだけど、CSSのセレクタの動作がXMLかHTMLかで変わるってのもあった気がする。"
なかのん DAYS''さんのツイート: "あ、application/xhtml+xmlだと、利用できる実体参照の数がすごい少ないんだっけか。"
なかのん DAYS''さんのツイート: "あー、クローラーと書くつもりがエンジンって書いちゃってたのか。 https://t.co/9NBeWL7IgH"
XHTML 1.1 解説

ISO-HTML

ISO-HTML (JIS-HTML, ISO/IEC 15445:2000)について - HTML リファレンス
<style>要素(スタイルシート言語に依るスタイル定義) - HTML リファレンス
ISO-HTML に於ける Pre-HTML について - HTML リファレンス

JIS

ISO-HTML (JIS-HTML, ISO/IEC 15445:2000)について - HTML リファレンス

MDN

HTML | MDN
HTML 要素リファレンス - HTML | MDN
属性 (HTML) - HTML | MDN
Microdata - HTML | MDN
div 要素 - HTML | MDN
span 要素 - HTML | MDN
Global attributes - HTML | MDN

水底の血

W3CがHTMLとDOMを(再)勧告する理由 - 水底の血
W3C HTML 5.0仕様とそれ以前の(X)HTML仕様に対する廃止勧告の提案 - 水底の血
さようなら W3C HTML5.0仕様 - 水底の血
さよならアウトラインアルゴリズム? - 水底の血
(メモ)W3C、HTMLとDOM仕様の並立状態が有害であることを認めていた - 水底の血
W3Cで現在公開されているHTMLとDOM仕様は将来廃止されます - 水底の血
Web における技術の解釈とエコシステムによる合意形成プロセスについて | blog.jxck.io
(メモ)DOCTYPEスイッチあるいはウェブ標準としてのQuirks Modeの覚え書き - 水底の血
(メモ)令和初のHTML Working Groupが始動した - 水底の血
HTML4/5の知識の断絶みたいなものを感じた件。 - 水底の血
高校の「情報」の教科書にあるHTML断片が酷いらしい - 水底の血
メモ:両HTMLにおけるmain要素の説明、ついに一定の収束の気配か。 - 水底の血
本家Stack OverflowでHTMLの質問をしたら、仕様が変わったという話 - 水底の血

GitHub

html · momdo/momdo.github.io Wiki
talk/webtalk_2016-09-03.pdf at master · momdo/talk
Jxckさんのツイート: "[html][header] HTML の HEAD に書けるメタ情報のまとめ / “GitHub - joshbuchea/HEAD: A list of everything that goes in the <head>…” https://t.co/3cFiiIGEqR"
joshbuchea/HEAD: A list of everything that could go in the <head> of your document
Home · momdo/momdo.github.io Wiki

Wikipedia

HyperText Markup Language - Wikipedia
マイクロフォーマット - Wikipedia
Microformat - Wikipedia
Geo (マイクロフォーマット) - Wikipedia
Geo (microformat) - Wikipedia
hCalendar - Wikipedia
hCalendar - Wikipedia
hCard - Wikipedia
hCard - Wikipedia

Qiita

ヒトでもわかるWebブラウザ自作入門 - Qiita
Webブラウザの作り方 - Qiita

Twitter

その他

Jxckさんのツイート: "@Jxck_ つまり <input type=email> で大丈夫って言われたメアドが Rails 側の保存時にダメって言われることがあるのか。つまり、フロントを自前 pattern でやるか、 Rails を CustomValidator にするか寄せる必要が。"
Kazuho Okuさんのツイート: "「link rel=preload には crossorigin と as attribute つけろよな!絶対だぞ!」"
Jxckさんのツイート: "「alt に代替テキストを付ける」のは「読み上げブラウザのため」って考えるから、「読み上げた時にどうだから alt はどうあるべき」って話をするのなら、それは根本的な勘違い。 alt はスクリーンリーダのため「だけ」ではない。Web を取り巻く全てのエコシステムのためのもの。"
Jxckさんのツイート: "<fieldset>, <legend> タグってほんと全然使われてないんだな、スタイルのバグのせいなのかと思ったけど、そもそも知られてないとかなのなかな。"
llamaさんのツイート: "もうWebブラウザに内蔵しといてもらえないかなHTMLバリデータ。コンソールに結果出してよ。"
にゃおきゃっとさんのツイート: "小学生の頃、html文書というのは table table table table でした。あれから十数年経過した今は、 div div div div に変化していました。"
ともい(Tomoi,S.)さんのツイート: "Twitterのように縦に長くなるWebサイトを横画面で見る場合、同じ情報を共有した分割画面で、今読んでいる箇所と最新を同時に見たい。"
ともい(Tomoi,S.)さんのツイート: "一見2枚開けば同じことができるように見えますが、「論理的に1枚の画面で、読んでいる位置だけが違う」状況が必要なので、これができるブラウザがあれば乗り換えたいところ。"
一ノ瀬 いろはさんのツイート: "ルートパスって何。"
もんどさんのツイート: "みてる:divでdtとddをグルーピングできる - Qiita https://t.co/OlYW79cqIh こう、W3C仕様の勧告というステータスへの信仰みたいなもの、どうすればいいんでしょうね。"
divでdtとddをグルーピングできる - Qiita
道化師さんのツイート: "昨今の HTML の類いのファイル、サーバー上 or クライアント上でレンダリングする templete まみれで素の HTML を前提としてるエディタ、非常に残念なことになるよなぁ。"
dynamis (でゅなみす)さんのツイート: "Web業界にやっとブラウザ標準のコンポーネント化技術がHTML/JS双方で揃い、AndroidだけでなくiOSやデスクトップでのアプリサポート、課金システム対応、Wasm強化にAV1の導入、これらを背景としてHTTPの本格的なdepricationが始まるのが今年のブラウザトレンドになりそうかな。"
uint256_tさんのツイート: "#Naglfar - 閉じられていないHTMLのコメントに対応 https://t.co/vOgoxtLNeG"
KIMATA RobertHisasiさんのツイート: "あと、time要素の「datetime属性の値になりえるテキストノードがこようその場合のみdatetime属性を省略できる」のに <time>2018年9月26日</time> みたいな記述を散見する。まあ、これもやりがちなのだが、駄目な奴。結論としては「チェッカー使いましょう」だろうか"
スドー🌻さんはTwitterを使っています: 「もともとHTMLのリンク文字列は「青文字で下線表示」というスタイルで「ここはクリックできますよ」と明示していたのだが,CSSの普及とともに色分けも下線もなくしてどこがクリックできるのかわからないようにするのが流行りはじめ,デザイナの考えるかっこよさとユーザビリティの乖離を考えさせられた」 / Twitter
なかのん&マジックさんのツイート: ""Geckoをユーザーエージェントにしたブラウザを優遇したウェブページが登場するようになりました" / 世界中を巻き込んだブラウザ戦争と「ユーザーエージェント文字列」をめぐる複雑怪奇な変遷とは? - GIGAZINE https://t.co/qDtUPZnO6F いや、そんなタイミングは全く無かったと思うが……"
いざてんさんのツイート: "正確にはMozillaですかね?(… "
なかのん&マジックさんのツイート: "IEとGeckoの違いが大きかったので、見分けるために使ってたかもですが、優遇っていうより、IE以外を見分けるのになんでか"Gecko"とか見てるサイトがあったとかそんな感じ? ピーク時でもシェアは今より良かったってだけで、めちゃくちゃシェアが大きかったことなんて無いですし。… https://t.co/TmqsvRAcY6"
いざてんさんのツイート: "原文を読んでみましたけど、「KHTML, like Gecko」が入っていたという話らしいのでGeckoを見てるサイトがあった、という訳文に間違いはなさそうですね。そんなサイトあんまり覚えがないですけど……。… "
もんどさんのツイート: "これ見て気づいたんですけど、User agents must support [...] UTF-8, [...] ISO-2022-JP, Shift_JIS ってあって、EUC-JPが見当たらないんですけどどういうことなんですかね…"

robots.txt

電波の妖精さんのツイート: "げぇっ、総務省のWebサイトってrobots.txtでInternet Archiveのクローラだけ狙い撃ちで弾いてるのか……これなら確かに国会図書館法には違反しないけど…… https://t.co/ttYlY0LQVd"
電波の妖精さんのツイート: "User-agent: ia_archiver Disallow: /"
電波の妖精さんのツイート: "このrobots.txtは2012年12月頃に置かれたようだ https://t.co/vqFPd3AuOp それでもHTTPSページとトップページだけは収集するのな。"
電波の妖精さんのツイート: "海外だとHTMLドキュメントなどを含む行政文書はパブリックドメインに属すると思うんですけど、日本だと法の建て付けが弱いというか、行政文書は行政機関が著作権を持つという前提で進んでいる気がして、そういう意識の現れなのかなぁと思いました(小並)"
Tsukasa #01 [要出典]さんのツイート: "IA は robots.txt を無視する方向に持っていきたいみたい (当該ブログ記事では米国の政府・軍事機関のウェブサイトでは既に無視しているとのこと)。 | Robots.txt meant for search engines don’t work well for web archives https://t.co/gHrKPcu65J"

Super Reload

べるさんのツイート: "うたプリファンミ通販のためにムービックで戦っている方、4:14現在全てまだ在庫あります。 スマホとPCで試した結果、firefox(PC)でアクセスしてCtrl+Shift+Rを繰り返していたところ、10分とせず繋がりました…!! ご飯お風呂睡眠を挟んで16時半からの戦いがやっと…幕を閉じました…(˘ω˘)"
なかのん&マジックさんのツイート: "あまり有名じゃないSuper Reload……"
おじゅんぬさんのツイート: "うたぷり ムービック戦争ですが PCのFirefoxで マイページより「うたの」で検索→落ちると思うのでctrl+Shif+Rで連打 であっさり行けます"
にんさんのツイート: "ムービック燃やす勢いのうたプリファンの皆さん pcからfirefox落として「ムービック うたプリ 通販」で検索、お客様各位になったもshift.ctrl.rの3つ同時押しで更新してたらぽろっといけます!!!その後も度々お客様各位にされるけど同じやり方で更新!!"
なかのん&マジックさんのツイート: "なんでSuper Reloadがこの界隈では有名なの……?"

タブ数

Rockridgeさんのツイート: "Firefox Nightlyユーザーの75%は、同時に9タブ未満しか開いていない。もっとも、上位5%に限ると40タブ以上開いているほか、中には3300タブという猛者もいるらしい。 / “dietrich ayalaさんのツイー…” https://t.co/Jx2RQkqBOT"
dietrich ayalaさんのツイート: "Ok, which one of you has 3.3k tabs open on @FirefoxNightly… https://t.co/yK7JYyMpzt… "
Measurement Dashboard

エンコーディング

KIMATA RobertHisasiさんのツイート: "まず、W3Cの最新のHTMLであるHTML5.1 2ndでは(HTML5の頃から引き続き)”Authors should use UTF-8.”。この should はRFC 2119が定めたshouldなので「理由を完全に理解した上で敢えて従わないこともできる」"
KIMATA RobertHisasiさんのツイート: "一方、Living Standardの現時点の表記は ”the actual character encoding used to encode the document must be UTF-8.” である。Must なので理由があってもUTF-8でなければいけない"
KIMATA RobertHisasiさんのツイート: "肝心のUTF-8でなければならない理由は潜在的なセキュリティ上の脆弱性があるからとされている。具体的には(日本人に馴染みあるコードとしては)ISO-2022などが名指しで使うなとある。また、UTF-16とエンコーディングアルゴリズムが区別つかないUTF-32も使うなとある"
なかのん&マジックさんのツイート: "UTF-16は、ASCII非互換ってところだけで、文字コード不明な段階でのHTMLのパースに色々と面倒な事が容易に想像してもらえると思うし、NULL文字にあたる0が多々含まれるのがやっぱ怖い。というか気持ち悪い。"
なかのん&マジックさんのツイート: "@robert_KIMATA BOMが無いケースが普通にあります。UTF-16BEとUTF-16LEと。"

ブラウザの挙動と仕様

なかのん&マジックさんのツイート: "仕様をきちんと理解してる開発者が、仕様とは異なる挙動をブラウザがしている場合や、仕様を実装していない事に対して言うなら正しいよ。でも、そうじゃないケースを多々見てきてるから、うなずけない。こういう考え方がIE6一強時代みたいなのを繰り返すやろうね。 https://t.co/6BvsqjJEfJ"
なかのん&マジックさんのツイート: "真面目に勉強されてる人がこういう事言うと、そうじゃない人は都合よく解釈するのがオチ。"
なかのん&マジックさんのツイート: "ブラウザ側のバグで動かない場合、そのままってのはブラウザベンダからすると意外と有り難い面もある。バグを修正して他のブラウザと同じ挙動になったら壊れるアプリってのが一番困る。大抵、UA文字列等の関係ない情報でブラウザを特定して動作を変えるという、やっちゃいけない判定やってる。"
なかのん&マジックさんのツイート: "例えば、特定のイベントの結果がブラウザによって異なるからハックを入れる場合、特定ブラウザを確認してコードを書くのではなく、得られた結果を確認して書かないといけない。前者はブラウザ側の挙動変更で壊れるが、後者は壊れにくい。"
なかのん&マジックさんのツイート: "@okomeki バグ報告してから修正されないならベンダの責任やけど、だいたい、報告されないから、他の開発者も同じ所で同じようなハック入れたりする地獄が想像できる……"
なかのん&マジックさんのツイート: "@okomeki あの手のヤツ、うまいこと作ってるらしく、ブラウザ側の挙動変更に強くて助かる。でも、使うのがこれだけ一般的になってても、やはり挙動変更で壊れるサイトがあって、UA文字列偽装で動くとか未だに普通にある。"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeみたいにブラウザの判定じゃないとどうしようも無い場合ももちろんあるんだけど、こういうケースはブラウザ側は修正できないし、あまりしない。標準化においても、レガシーなものと定義して、代わりのものを用意して、過去との互換性に配慮する。"
なかのん&マジックさんのツイート: "@t_daicho あの辺はグレーゾーンも多そうですね。あと、小数点の丸め誤差とか。デバイスピクセルに沿わせないとボケて見えるので。"

互換性

dynamis (でゅなみす)さんのツイート: "Googleさんの、社内の他のサービスが壊れるのを気にせずにChromeの挙動変更を入れていく姿勢、Firefoxなど他のブラウザへの挙動変更をリクエストしていく姿勢、大好きです。 社内配慮でサービス側を直さずプラットフォーム側の改善禁止やハックを求めて何も進まない日本の大企業とは違う。"
なかのん&マジックさんのツイート: "激しく巻き込まれてる最中でもにょる……"
なかのん&マジックさんのツイート: "Googleさんの各種アプリのアップデートが大変ということで、古い挙動をブラックリスト形式で許可していってるところだけど、なかなかに作りが悪くない感じで、JSのコンテキストは比較的、素直なサブドメイン上で動いてて助かる。"
なかのん&マジックさんのツイート: "これ、ユーザによってサブドメイン違うとかだと、もう無理ゲーになってくるんで。"
なかのん&マジックさんのツイート: "XHRのアクセス先なんかは、ドメイン上に数字が含まれててスゴく怖いんだけど、まあ、そっちは今回は関係ない。"
なかのん&マジックさんのツイート: "*.google.comとかすると、新しい挙動にしてくれと言ってきた部署のアプリがテストできないんで、個別指定ができないと困る訳ですわ。"
Mantarohさんのツイート: "IE さえなければこれを使いたいってあるよね(遠い目) https://t.co/Z8t4RgCbXb"
HTMLSelectElement.selectedOptions | MDN

target="_blank"

Manabu Uenoさんのツイート: "Mac の Safari は、target="_blank" のリンクから新規タブで開いたページで「戻る」ボタンを押すとタブが閉じて元のページに戻れるのがいい。iOS の Safari もそうなってほしい。"
llamaさんのツイート: "知らなかった。世のブラウザがみなそういう実装になったら、target=“_blank” やめましょうと説く必要はなくなるかな。他に理由があるか今ちょっと思いつかないけど。"
なかのん&マジックさんのツイート: "きちんと調べたことないんだけど、Firefox for Androidも概ねそんな動作な感じ。Backボタンを押したときに履歴が無かったら、タブを閉じて、openerなのか単に左にあるタブなのか直前のタブなのかはっきりしないけど、何しか、割と直感的に動いてくれる。"
なかのん&マジックさんのツイート: "Firefox for Desktopでも履歴が無い場合のタブでの戻るボタンについて似たような動作にしろっていうバグを昔見たけど、ユーザに混乱与えずに実装する「正解」が見つけられずに止まってたな。誤って戻るボタンで閉じたタブを進むボタンで開けない以上、どうしたもんかっていう感じだったと思う。"
なかのん&マジックさんのツイート: "18808 - New windows/tabs should inherit current page, back button/go menu history https://t.co/fUL9KtHLki"

@d_toybox

なかのんクエストさんのツイート: "個人的には、Web (public) と相容れない形式のファイルをインライン表示する手段としてのプラグインは永遠に必要だと思うんだけど、Flashみたいに「悪用」してそれに乗っかる「クリエイター」が出続けてた状況を見ると、一般ユーザーの利益になるのはプラグイン廃止よねぇ。"
なかのんクエストさんのツイート: "Webを酷いものにしたのはFlashとそのクリエイターだし、ブラウザのプラットホームとしての可能性を結果として潰したのもFlashとそのクリエイター達という認識。"
なかのんクエストさんのツイート: "DOMがあるからすっきりと体系化できるんだし、セマンティクス中心にスタイル指定できるようにclassが有るのに。"
なかのんクエストさんのツイート: "Chromeのようにシェアが有るところが、強攻手段で存続させるメリットが互換性以外に無い、非標準な動作を変えるってのは、Webを健全なプラットホームとして保つのに必要なので、ガンガンやっていただきたい。"
なかのんクエストさんのツイート: "「Firefoxだけ値や動作が違うから修正すべき」って、問題が発生してるひとつのサイトだけ見て言う人が多いんだけど、他の問題ない多数のサイトはその値前提で動いてるんですよ。プラットフォームの動作を変えるってのはそれほどにリスキーで難しい。 #もずでぶ"
なかのんクエストさんのツイート: "比較的変更しやすい例は、値が文字列等でそれまでの値と新しい(他のブラウザと同じ)値をorで検査しているような場合や、Firefoxでのみ追加のAPI呼び出しが必要だったケースで他のブラウザに合わせる場合。ただ、これらでもUA文字列確認してて壊れるサイトが出てくる。#もずでぶ"
なかのんクエストさんのツイート: "KeybordEvent.keyCodeの検査のように、UA名を確認しないといけない場合を除き、UA名を見て動作を変えるサイトは悪だと言うことがよくわかってもらえると思う。動作の違いやAPIの有無を確認して処理を行うのが正しいアプローチ。 #もずでぶ"
なつき@コーディングスクール開催さんのツイート: "「WinとMacの見た目を統一したい」というのは制作者やクライアントの要望でよく聞くけど、ユーザーはそんなこと求めてないんじゃないかなぁというのが私の意見なので、単に sans-serif だけ指定してブラウザやOSに任せることが多いですね。"
なかのんクエストさんのツイート: "なんでかGeckoがネイティブのL&Fを一番大切にするブラウザになってしまった。普通はOS付属のやつだと思うんだが……"
なかのんクエストさんのツイート: "<input type=radio>と<input type=checkbox>はサイズ指定されてる場合はどうにかならんもんかなぁとは思うけど。"
九波ヒメヒコさんのツイート: "周知の機能かも知れませんが… クリスタで「フォントどうしようかな~」と一つ一つ選んで試すのが面倒!って方は、変更したいテキストを選択してから[ツールプロパティ]の[フォント]にカーソルを乗せマウスのホイールをクルクルさせてみてください。 幸せになれます。 https://t.co/GNokXKEsy5"
なかのん&マジックさんのツイート: "マウスホイールでドロップダウンリストの選択項目が順に変わるのを有りがたいと思うケースって本当にあるのか……"
なかのん&マジックさんのツイート: "あれは意図しない編集が発生したままで、フォームを送信する可能性があるんで、ブラウザは絶対にやるべきじゃないと思ってる。例えネイティブの動作と異なってたとしても。"
なかのん&マジックさんのツイート: "え、HTMLのid属性ってこんだけしか定義ないの……? https://t.co/cF7I2KDDx8"
HTML Standard
なかのん&マジックさんのツイート: "let e = document.createElement("span"); e.setAttribute("id", "foo"); document.body.setAttribute("id", "foo"); document.body.insertBefore(e, document.body.firstChild); ってやった時に、どっちかのid属性が削除されるべきなのかどうなのか気になったんだけど……"
なかのん&マジックさんのツイート: "altに求めてる事が属性値としては不適切になってきてるよな。後方互換性を捨てまくってるんだから、内容を持てる様にしても良かったんではって最近思える。"
なかのん&マジックさんのツイート: "今日も一つ、HTML4時代にはそう解釈するのが普通よねって動作が、WebKit/Blinkでは違ってて、さらにHTMLの仕様で現在のWebKit/Blinkの動作に近い内容にいつの間にか変わってるし、モバイルなページでそれに依存してるところあるぞってバグに巻き込まれた。"
なかのん&マジックさんのツイート: "<blink>要素にとどめを刺したのは私だけど、別に広告が原因じゃないよ。 https://t.co/AbDf7LNcJU"
広告によって滅ぼされる技術 (#3505579) | 2018年中にサードパーティCookieが無効でもWebサービスが正常に動作するか確認を | スラド
なかのん&マジックさんのツイート: "スラドのフェイクニュースを訂正する気は無いという強い意志を感じる("
なかのん&マジックさんのツイート: "<input type="password">を含むformはGETでは送信しないとか今のHTML仕様で縛られても良い気がする。… "
malaさんのツイート: "パスワード入力フォームにmethod=POSTの指定がなくてJavaScriptエラーでGETメソッドで送ってしまったのではないかと推察。あくまでURLにパスワードが露出するバグとして報道されている(この規模のサービスでパスワードが平文保存なわけがないです) https://t.co/afmJz0Q1PB"
InstagramがユーザーのパスワードをURL内で公開するミス、なぜかFacebookにもパスワードが保存されていたと判明 - GIGAZINE
なかのん&マジックさんのツイート: "それで互換問題出るWebアプリはさすがに修正に追い込まれた方が良いだろうし。"
しめじさんのツイート: "ブラウザのタブなんて整理つかなくなるんだから、アドレスバーで検索しようとしたタイミングで「お前それもう別のタブにあるぞ」って出してこいよ"
なかのん&マジックさんのツイート: "Firefoxはそうしてるし、Enterキーだけでそのタブにスイッチするけど、Chromeだとボタンに「このタブに切り替え」ってボタンにフォーカスあわせないとできないのか。"
なかのん&マジックさんのツイート: "どういう理屈で、新しいタブを作りまくることを誘導する今のUIにしたんだろう、Chromeは。"
なかのん&マジックさんのツイート: "それにしてもドロップダウン内でボタンというウイジットにフォーカスを移動させるという行為、なんか気持ち悪いな。"
なかのん&マジックさんのツイート: "<keygen>要素、完全になくなるのか。あれとcontenteditable絡みで一杯クラッシュバグを見つけられてたけど、ひとまずその辺は落ち着くのか。"

HTML Standard

CSS

和訳

CSS3の日本語訳集 - 血統の森 web実験小屋
Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification 日本語訳
CSS Basic User Interface Module Level 3 (CSS3 UI) 日本語訳
CSS Values and Units Module Level 3 日本語訳
CSS Text Decoration Module Level 3 日本語訳
CSS Device Adaptation Module Level 1 (日本語訳)
CSS Snapshot 2015 日本語訳
CSS Snapshot 2017 日本語訳
CSS Snapshot 2018 (日本語訳)

Mozilla

4x

Rockridgeさんのツイート: "Fx49:CSSの色指定で、RGBA値(4桁または8桁)を指定する場合でも16進表記が可能になった。WebKitでは実装済みで、Chromeも実装予定。参照:https://t.co/aXse15IScD … https://t.co/EnboG25nyv"
Rockridgeさんのツイート: "Fx47:CSS Scroll Snap Pointsの処理が別スレッドで非同期に行われるようになった。 / “1219296 – Ship snap points to the compositor so that we ca…” https://t.co/u9mqpFnIou"
Rockridgeさんのツイート: "Fx49:絵文字の文字列にline-breakプロパティが正しく適用されるようになった。 / “1265631 – Supplementary-plane Unicode characters (including Emoji)…” https://t.co/TEvC0rcWaK"
Rockridgeさんのツイート: "Fx49:CSSのbackground-position-x/background-position-yプロパティをサポート。 / “550426 – Add background-position-x and backgrou…” https://t.co/nwWRK8u59v"
Rockridgeさんのツイート: "Fx49:ベンダープレフィックスなしのtext-align-lastプロパティをサポート。 / “1039541 – Unprefix -moz-text-align-last” https://t.co/u8iLn7d72N"
Rockridgeさんのツイート: "Firefox 49において-webkit-のベンダープレフィックスがついたCSSプロパティや属性を多数サポートしたことで、互換性が向上した実例が画像で示されている。 / “Firefox 49 fixes sites desi…” https://t.co/Sq4QVf6w32"
Firefox 48 は CSS calc() 関数の入れ子に対応、CSS カスタムプロパティとの併用がより便利に | WWW WATCH
Firefox 49でChrome・Safariを基準に作成されたコンテンツの表示精度が向上 - Mozilla Flux
Rockridgeさんのツイート: "Firefox 49において-webkit-のベンダープレフィックスがついたCSSプロパティや属性を多数サポートした背景には、日本と中国のトップ1000のWebサイトのうち、およそ20%がAndroid版Firefoxで正しく表示… https://t.co/uYOpbR0old"

5x

50

Rockridgeさんのツイート: "Fx50:CSSのMask Imageプロパティがデフォルト有効化の予定。実装はFirefox 47から。参照:https://t.co/AzLSK26Eee / “Intent to ship: CSS Mask Image” https://t.co/UvnPjs0QDz"
Rockridgeさんのツイート: "Fx50:Pointer Events API関係のtouch-action CSSプロパティをサポート。参照:https://t.co/ByxmjKhqYV / “Intent to enable: touch-action …” https://t.co/82VAnlvyrr"
Rockridgeさんのツイート: "Fx50:border-image-repeatプロパティのspaceキーワード(枠線用の画像間の余白を均一にするもの)をサポート。 / “720531 – Implement border-image-repeat space…” https://t.co/is3VkL4NF7"

51

Rockridgeさんのツイート: "Fx51:ベンダープレフィックスなしの::placeholder疑似要素をサポート。参照:https://t.co/Lhofrgdq9E / “Intent to ship: CSS placeholder pseudo-ele…” https://t.co/un6XzSEMvO"
Rockridgeさんのツイート: "Fx51:onanimation*やontransitionendなど、CSSアニメーション関係のイベントハンドラのサポートを拡充し、WebKitと同等となった。 / “911987 – Add onanimation* eve…” https://t.co/jbyH818uNn"
Rockridgeさんのツイート: "Firefox 51でCSSのProperties/Values API Level 1を実装予定。デフォルト無効とのこと。参照:https://t.co/ASJFWNGvPl https://t.co/oIUpVqQjZy https://t.co/wv4H8qdGgu"

52

Rockridgeさんのツイート: "Fx52:CSS Inline Layout Module Level 3のinitial-letterプロパティが実装予定。参照:https://t.co/vBVvC7GCoL https://t.co/vG8WlvEEaj https://t.co/8TE91JAMe5"
Rockridgeさんのツイート: "Fx52:CSS Multi-column Layout関係のプロパティをベンダープレフィックスなしでサポート。参照:https://t.co/pTT4Gjxh3j / “Intent to ship: css multi-co…” https://t.co/sodonlx7mc"
Rockridgeさんのツイート: "Fx52:CSSのshape-outsideプロパティをサポート。参照:https://t.co/FtjLZ5EBXo / “Intent to implement: CSS shape-outside property” https://t.co/2bwRANEYkD"
Rockridgeさんのツイート: "Fx52:Beta/リリースチャンネルでもCSS Gridがデフォルト有効化の見込み。参照:https://t.co/6BskxHvwDv / “Intent to ship: CSS Grid - Google Groups” https://t.co/UWpkArdohD"
Rockridgeさんのツイート: "Fx52:予定通りBeta/リリースチャンネルでもCSS Gridがデフォルト有効化。 / “1217086 – [css-grid] Enable CSS Grid by default” https://t.co/yqIgcccYQc"
Rockridgeさんのツイート: "Fx52:CSSの関数記法による色指定について、新しい構文を実装。たとえば"rgb(0 0 0 / 100%) "といった記述が可能になる。参照:https://t.co/K7UCH7raOM / “Intent to ship…” https://t.co/qL7e3cAOCA"
Rockridgeさんのツイート: "Firefox 52/Chrome 57でサポートされるCSS Gridは、ビューポートを格子状に切り分け、行と列でボックスをコントロールする仕組み。Flexboxよりもきめ細かなレイアウトの制御が可能に。 / “CSS Gri…” https://t.co/f2iS2Ijsbv"

53

Rockridgeさんのツイート: "Fx53:チェックボックスやラジオボタンに対し、スタイルシートで背景色やボーダーなどを指定できるようになった。 / “418833 – can't define the style of input when the type …” https://t.co/Epi4fq5unm"
Rockridgeさんのツイート: "Fx53:CSSのMask Imageプロパティがデフォルト有効化。 / “1251161 – (mask-ship) Ship CSS positioned mask support on beta & release cha…” https://t.co/sXkFPaLC2U"
Rockridgeさんのツイート: "Fx53:ベンダープレフィックスありのtext-align-lastプロパティを削除。プレフィックスなしの同プロパティはFx49でサポート済み。参照:https://t.co/i2aPJfYRoP / “1276808 – Re…” https://t.co/6GayvnZDsn"
Rockridgeさんのツイート: "Fx53:キャレットの色を変更するCSSのcaret-colorプロパティをサポート予定。参照:https://t.co/CDCuV6IdZP / “Intent to implement and ship: CSS caret…” https://t.co/pCo1F85bll"
Rockridgeさんのツイート: "Fx53:CSSのdisplayプロパティでflow-rootの値をサポート。floatの解除に使える。 / “1322191 – Implement CSS `display: flow-root` (modern clear…” https://t.co/FLXEwcIOco"

54

Rockridgeさんのツイート: "Firefox 54にCSSのtext-justifyプロパティが実装される予定。テキストの均等割り付けが指定できる。参照:https://t.co/h3lxcUTEL8 / “Intent to implement: CSS …” https://t.co/cKZB0RpCC6"
Rockridgeさんのツイート: "Fx54:CSSのappearance:autoとappearance:noneのプロパティをサポート。-webkit-appearanceもエイリアスとして使用可能。参照:https://t.co/EaLwvF2nRE https://t.co/uTCySTdtBy"
Rockridgeさんのツイート: "Fx54:Facebook使用時、CSSアニメーションの非同期処理が行われない場合がある問題を修正。 / “1339578 - OMTA doesn't trigger for 4x4 layers leading to CPU…” https://t.co/olYbboRjDW"
Rockridgeさんのツイート: "Fx54:clip-pathがCSS Shapesの基本シェイプ(basic shape)に対応。参照:https://t.co/Lonr4Gv3B5 / “1247229 - (basic-shape-ship) Ship b…” https://t.co/YyG6Z1RM5A"
CSS Shapes の新しい文法 | Adobe Creative Station

55

Rockridgeさんのツイート: "Fx55:CSSのtext-justifyプロパティがデフォルト有効化。参照:https://t.co/15ge7l04dl / “Intent to ship: CSS text-justify property” https://t.co/DuVp3M8ex2"
Rockridgeさんのツイート: "Fx55:ページ読み込み時に表示されるスロバーがCSSアニメーションを用いることにより別スレッドで処理されるようになった。 / “759252 - Use CSS animations for the loading and c…” https://t.co/6d7Sf4FyQS"
Rockridgeさんのツイート: "Fx55:CSS Variables(CSSカスタムプロパティ)を無効にするための設定が削除された結果、常時有効化された。 / “1312328 - Remove CSS pref "layout.css.variables.e…” https://t.co/ECXb0hrRaG"
Rockridgeさんのツイート: "Quantum CSS(Stylo)はFirefox Nightly 55に投入され、Firefox 57でデフォルト有効化となる見通し。 / “TPE-Layout/Dashboard - MozillaWiki” https://t.co/EYNMjZjLL0"
Rockridgeさんのツイート: "Fx55:"display: flow-root"のサポートを設定から無効にできないようにした。 / “1365163 - Remove the layout.css.display-flow-root.enabled pref…” https://t.co/unD5kcmZNJ"

56

Rockridgeさんのツイート: "Firefox Nightly 56に搭載されているCSS Gridインスペクタの改善点を紹介した記事(動画あり)。レイアウトパネル、ボックスモデルパネルともに直感的な操作を実現した。 / “Powerful New Addit…” https://t.co/GpGO5Ad5ov"
特定のマルチカラムレイアウトで、バランスが崩れたり、ランダムに要素が欠落する場合があります (リグレッション) | Firefox サイト互換性情報

57

Rockridgeさんのツイート: "Fx57:タブの切り替えにCSSのsmooth-scrollを使用し、パフォーマンスを向上させた。 / “1356705 - 28ms uninterruptible reflow at set_scrollPosition@c…” https://t.co/cfBET6gzul"
Rockridgeさんのツイート: "Firefox 57でCSSのfont-displayプロパティがデフォルト有効化へ。Quantum CSSでもfont-displayプロパティは使える(むしろ無効化する設定がない)らしい。参照:… https://t.co/WvgaAElbjI"

58

Rockridgeさんのツイート: "Firefox 58でMedia Queries Level 4のInteraction Media Featuresをサポートする予定。参照:https://t.co/csJc8naMKv / “Intent to imple…” https://t.co/O1WgOBHzri"

59

Rockridgeさんのツイート: "Fx59:CSSのoverscroll-behaviorプロパティをサポート。参照:https://t.co/IBSIGPNiYh / “951793 - Add support for 'overscroll-behavior'” https://t.co/4tqc2LDwZf"
Rockridgeさんのツイート: "Fx59:CSS Shapes Module Level 1の仕様の一部をデフォルト有効化。 / “Intent to ship: CSS Shapes Module Level 1 (partial)” https://t.co/LsAxDiycqd"
Rockridgeさんのツイート: "Fx59:メディアクエリ内でcalc()をサポート。 / “1396057 - stylo: Bring back calc support inside media queries” https://t.co/mwNLdCOmow"
Rockridgeさんのツイート: "Fx59:CSS Gridが常時有効化。 / “1398492 - Remove the "layout.css.grid.enabled" preference” https://t.co/9E9xzYkiE9"

6x

60

Rockridgeさんのツイート: "Firefox 60で、CSS Transform Module Level 2のtransform/rotate/scaleプロパティが実装される見込み。参照:https://t.co/4JIQzJACte … https://t.co/gSjMIshNDI"
Rockridgeさんのツイート: "Fx60:-moz接頭辞付きのtransformプロパティが削除される見込み。 / “Intent to unship: Legacy -moz-transform syntax.” https://t.co/f4cY5j6Xqb"

61

Rockridgeさんのツイート: "::-moz-selection疑似要素のベンダープレフィックスがFirefox 61で外れる模様。参照:https://t.co/3F9Hb7XdKg / “Intent to unprefix: ::-moz-selecti…” https://t.co/kzHjXENxzT"

62

Rockridgeさんのツイート: "Fx62:CSSのshape-outsideプロパティがデフォルト有効化。 / “Intent to ship: shape-outside” https://t.co/9o62gL7bjO"
Rockridgeさんのツイート: "Firefox 62はCSS Shapesをサポートしているので、Web開発者はページ内の画像や文章を複雑な形に配置できる。ウェブ開発ツールのインスペクターにCSS Shapesの編集機能が付いており、直感的な操作が可能。 https://t.co/iFdlODvEXX"

63

Rockridgeさんのツイート: "Fx63:疑似要素だけでなく、通常の要素においても、contentでurlを指定すると画像等を表示できるようになった。WebKit/Blinkとの互換性が向上する。 / “215083 - (content-url-elemen…” https://t.co/Czkndktzpl"
Rockridgeさんのツイート: "Fx63:Windows版で、CSS Media Queries Level 5のprefers-reduced-motionをサポートした。Mac版はFx64がターゲット。参照:https://t.co/Yro7Sk5i2s … https://t.co/LzEKwdlkhy"
Rockridgeさんのツイート: "Fx63:巨大なテーブル要素内に多数の項目があり、display:noneも適用されるという状況において、テキストの動的処理を高速化。 / “1330375 - interleaved innerText calls and d…” https://t.co/asITEbVrBp"
Rockridgeさんのツイート: "Fx63:"white-space: nowrap;"の指定がされていてもfloatとの組み合わせで改行が発生する問題を修正。 / “488725 - float pushed down one line with white-…” https://t.co/1yFTHTce1W"

64

Rockridgeさんのツイート: "Firefox 64では、"-webkit"のベンダープレフィックス付きCSSセレクタが、未サポートのものでもCSSの適用対象となる。参照:https://t.co/Dqlyqvg9cf … https://t.co/ykcLxbsZfj"
Rockridgeさんのツイート: "Fx64:CSSのscrollbar-colorプロパティとscrollbar-widthプロパティをデフォルト有効化。スクロールバーの色や幅を調整可能に。 / “1492012 - Enable scrollbar prope…” https://t.co/4lxs1vMtSx"

65

Rockridgeさんのツイート: "Fx65:CSSアニメーションとCSSトランジションの各処理を非同期化することでパフォーマンスを改善した。 / “1502026 - Buy iPhone page animation seems janky” https://t.co/bl2JCqcGyc"
Rockridgeさんのツイート: "Fx65:border-image-repeat/background-sizeの処理結果について他のブラウザとの互換性を向上させた。 / “1501261 - serialization of border-image-rep…” https://t.co/5LuaicF7sQ"
Rockridgeさんのツイート: "Fx65:-webkit-appearanceプロパティの値としてmeter、progress-barおよびtextareaをサポート。 / “Firefox 65 for developers | MDN” https://t.co/jbtmpUUqhJ"

Twitter

@rockridge07

Rockridgeさんのツイート: "Geckoは1pxを60として整数値でCSSを処理する(浮動小数点を用いない)。計算の途中で小数点の切捨てが入ると、WebKit/Blink/EdgeHTMLとは結果が違ってくる場合がある。 / “How CSS width i…” https://t.co/0e2ZSydzms"
Rockridgeさんのツイート: "FirefoxにCSS Typed OM Level 1を実装することが検討されている。参照:https://t.co/DeMTXH7cPe / “1278697 – Implement CSS Typed OM Level 1…” https://t.co/iknGkA2aoK"
Rockridgeさんのツイート: "ServoがCSSのキーフレームアニメーションをサポート。参照:https://t.co/43IaS3EKtr / “These Weeks In Servo 71” https://t.co/KA3F1pUTdt"
Rockridgeさんのツイート: "Houdiniタスクフォースで検討中のCSS関係の仕様について、ブラウザごとの実装状況を示す。2016年8月9日現在、Chromeが先行し、Firefoxが追う状況。それ以外のブラウザは、走り出してもいない。 / “Is Hou…” https://t.co/LmXAUhGvRU"
Rockridgeさんのツイート: "Stylo/Servo/Firefox/ChromeがサポートするCSSプロパティを一覧にまとめて比較できるようにしたもの。StyloはGeckoに実装中のServoのスタイルシステムのこと。参照:… https://t.co/xsIsgOE6f3"
CSS properties list
Rockridgeさんのツイート: "ServoがCSS Gradientsをサポート。Styloを通じてGeckoと処理を比較できるようになった。 / “twis-81” https://t.co/CgDYtxJrop"
Rockridgeさんのツイート: "今後、Geckoに実装される新しいCSS機能は、Servoにも同時に実装される見込み。Quantum CSSへの移行時に機能の減退が起きないようにするための措置だ。 / “Ensuring new CSS features ar…” https://t.co/MnOqG7yqqc"
Rockridgeさんのツイート: "Firefoxでブロックコンテナ一般においてBox Alignmentプロパティ群をサポートする予定。参照:https://t.co/IgjA7cuoW7 https://t.co/vFI22Lz9dF / “Intent to…” https://t.co/gza9TxODbT"
Rockridgeさんのツイート: "GeckoのHoudiniサポートが具体化しつつある。CSS Painting API Level 1を実験的に実装し、利用例やレンダリングパフォーマンスなどを見ていくという。参照:https://t.co/91M9OYIoAS https://t.co/pM0YNq2JTx"
Rockridgeさんのツイート: "-webkit-line-clampプロパティはmax-linesプロパティとして標準化される模様。Mozillaが実装するのもmax-linesプロパティとなる。参照:https://t.co/b8wJQ1O36t 情報提供感謝… https://t.co/P5LnrsQG7R"
CSS Writing Modes ◆ 24 ways
Rockridgeさんのツイート: "clip-pathとCSS Shapesの基本シェイプ(basic shape)を組み合わせることで可能になる様々な表現のデモ。HTML/CSSの内容もCodePen上で確認できる。 / “CSS Shapes, clippin…” https://t.co/zD9YksHWx3"
CSS Shapes, clipping and masking – and how to use them ★ Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "MDN Web DocsにFlexboxの紹介記事が追加された。CSS Gridとの連携・役割分担を意識したものらしい。 / “New flexbox guides on MDN – Mozilla Hacks – the We…” https://t.co/utXJs2Prav"
New flexbox guides on MDN – Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "CSS Box Alignmentのチートシート。解説はこちら。https://t.co/tnqYqdwKFI / “CSS Alignment Cheatsheet” https://t.co/9QHqvRj5qo"
Demystifying CSS alignment – Patrick Brosset – Medium
CSS Alignment Cheatsheet
Rockridgeさんのツイート: "CSS GridとCSS Multi-Columnsを組み合わせると、ユーザーのディスプレイサイズに応じた柔軟なデザインが可能になるという話。 / “CSS Grid + CSS Multi-Columns = ♥ – Patr…” https://t.co/lkgJNfvBZq"
Rockridgeさんのツイート: "Mozillaが2018年にCSS関連で注力する分野。Fonts Level 4/Motion Path/Sizing/Shapes/Scroll Snap update/Containment/Values and Units … https://t.co/X33BKsMzfE"
Rockridgeさんのツイート: "FirefoxがサポートするCSSプロパティの数について。2004年のFirefox 1.0当時は100に満たなかったが、13年を経た現在、300近くになっている。 / “Florian Scholzさんのツイート: "CSS …” https://t.co/Lk8dLVcMUf"
Rockridgeさんのツイート: "CSS GridをWebアプリのUI構築に使えば、Flexboxよりも簡潔なコードで済むという話。 / “CSS Grid for UI Layouts – Mozilla Hacks – the Web developer b…” https://t.co/OKk1OMmK5K"
Rockridgeさんのツイート: "FirefoxでCSS subgridの実装を開始。グリッド内に子グリッドを設定可能になるらしい。 / “Intent to implement: CSS subgrid” https://t.co/yNqUTod369"

chikoskiさんのツイート: "Firefoxの新しいCSS処理系(stylo)の話。@linclark の記事はいつも素晴らしい。簡潔で、わかりやすくて、ユーモラス。https://t.co/sXkeAgoE6O"
Inside a super fast CSS engine: Quantum CSS (aka Stylo) ★ Mozilla Hacks – the Web developer blog
Mantaroh@media=printさんのツイート: "私も先ほどソースを見て初めて知った。edge と unwriteable は 1/00 インチで指定されてるんだ・・・一方 margin は普通にインチ指定・・・謎だろ"
mozmm CSS 単位への対応が打ち切られました | Firefox サイト互換性情報
Mantaray@Devさんのツイート: "Jen Simmons 氏による CSS Grid の御法度。 https://t.co/qdtv4Sj8cd"
9 Biggest Mistakes with CSS Grid – Mozilla Hacks – the Web developer blog
Makoto Kato ︎︎さんのツイート: "最近聞いたものの中で最も...なやつがautolandに入った https://t.co/rlIKrMdUaI overflow:hidden;はviewportの存在次第で無視されるというWebKitとBlinkの変な動作に合わせる話。それどうかと思うけどこの変な動作に依存するサイトが多すぎるからその動作にせざるを得なくなった"
1423013 - Content that overflows the ICB on an overflow:hidden page is "out of reach"
Šime Vidasさんのツイート: "Do you find scroll chaining annoying? There’s a simple way to prevent it. Apply this CSS to the nested scroll container (or <body> of iframed document): { overscroll-behavior: contain; } More info: https://t.co/GcQPXcysqe… https://t.co/DmFSu45RRx"
なかのん&マジックさんのツイート: "Firefoxはかなり昔からスクロールターゲットをタイムアウトするまで変更しないようにしてこの不快な動作にならないようにしてる。カーソルがドラッグ開始するだけの距離動くとキャンセルされるけど。"
なかのん&マジックさんのツイート: "それにしても、スタイルシートにしちゃうの違和感あるな。ime-modeと一緒で。ユーザースタイルシートでコントロールできるのは理にかなってるけど。"

CSS で計算(四則計算)が行える calc() 関数を使ってみよう | WWW WATCH
CSS - MozillaWiki
won't fix: Quantum CSS (Stylo)
CSS Grid and Grid Inspector in Firefox — Mozilla
区分分断の変換規則(2017/4/25 追記アリ) - おいしい
Supporting Referrer Policy for CSS in Firefox 64 | Mozilla Security Blog

Google

Rockridgeさんのツイート: "Chrome 52がサポートするCSS Containmentは、ブラウザによるスタイル/レイアウト/描画の処理が行われる範囲を開発者が限定できるようにするもの。適切に使えばWebページの表示速度が大きく改善される。 / “CS…” https://t.co/bE2A13RlP3"
Google Chrome、ウェブページを高速表示する新機能などを実装へ -INTERNET Watch
WebAssembly実装プレビュー、Chrome 49新機能など─2016年3月のブラウザ関連ニュース振り返り | HTML5Experts.jp
Google Chrome 34リリース、レスポンシブイメージのサポートなどが追加される | OSDN Magazine
“CSS Motion Path”が初期状態で有効化された「Google Chrome 46」がベータ版に - 窓の杜
[Backspace]キーで前のページへ戻る機能を削除した「Google Chrome 52」が正式版に - 窓の杜
Rockridgeさんのツイート: "Chrome 56でposition:stickyを改めてサポート。なお、Firefox 32でサポート済み。 / “position:sticky is back in Chrome  |  Web  |  Google De…” https://t.co/dlIczTg4kb"
Google Developers Japan: Chrome 52 ベータ版: CSS Containment、よりシンプルなパフォーマンス評価、Service Worker からのレスポンスのストリーミング、豊富な Web Push オプション
Google Chrome 56 から、position: sticky;のフラグなしサポート開始 | フロントエンドBlog | ミツエーリンクス
「Google Chrome 57」ベータ版が公開、“CSS Grid Layout”をサポート - 窓の杜
“CSS Grid Layout”をサポートした「Google Chrome 57」が正式版に ~脆弱性も修正 - 窓の杜
本の虫: Blink、新機能に対して新たなベンダープレフィクスを追加しない決定
“マテリアル”になった「Google Chrome 69」がベータ版に ~「AV1」動画もサポート - 窓の杜
なかのん&マジックさんのツイート: "たまにChromeで表示確認しようとすると、CSSのキャッシュ捨てなさすぎやろって思うんやけど、常用してて、更新されたサイトのレイアウト崩れるとかないんかな??"
白鷹(しろたか)🦅さんのツイート: "devツールを開いて更新ボタンを長押ししてキャッシュを除くが開発のときは面倒でなくて、一般にリリース時は適当なリクエストパラメータを与えてそれを更新することで対処するんです… "
なかのん&マジックさんのツイート: "リクエストパラメーターとは?… "
白鷹(しろたか)🦅さんのツイート: "こんな感じで .css?XXXX 他にもwebpackでビルドすると生成されるファイルがランダムなハッシュっぽいファイル名になるので全く考えなくてよかったり… "
なかのん&マジックさんのツイート: "あーなるほど。… "

Apple

Rockridgeさんのツイート: "次期Safari 10.0がCSS Font Loading API/WOFF 2フォント/CSSのunicode-rangeデスクリプタをサポート。Firefoxでは全てデフォルト有効化済み。 / “Improved Font…” https://t.co/0EMSLAoG5R"
Rockridgeさんのツイート: "次期Safari 10.0がCSS Color Level 4のcolor-gamutメディアクエリをサポート。sRGBを超えた色空間を生かせるらしい。 / “Improving Color on the Web | WebKit” https://t.co/ykHUviojgZ"

MS

Rockridgeさんのツイート: "Windows 10 Creators Update後のMicrosoft EdgeはCSSカスタムプロパティをサポートしている。 / “CSS Custom Properties in Microsoft Edge - Mic…” https://t.co/YJDjAHBBdG"
Rockridgeさんのツイート: "Microsoft Edgeのバージョンアップにより主要なブラウザすべてがCSS Gridをサポートするようになった。約20年前からグリッドレイアウトの構想はあったが、現在の仕様の始まりは、IE10に実装されたGrid Layou… https://t.co/erbLdAXv3O"
TOYAMA Naoさんのツイート: "Edge 15 から CSS の text-combine-upright プロパティに対応したそうだけど、(IE 時代からの -ms-text-combine-horizontal 含めて) 1em より幅の狭い文字を 1em まで引き伸ばしちゃうのはなんなの? https://t.co/HNu0Xkfxwc の「4」とか Edge だと引き伸ばされて不格好に見えるんだけど。"
TOYAMA Naoさんのツイート: "とりあえず Microsoft に報告した。 https://t.co/9qlLAYHQ9p"

W3C

Cascading Style Sheets
CSS current work & how to participate
CSS Grid Layout Module Level 1
CSS Text Module Level 4
CSS Text Decoration Module Level 4
CSS Color Module Level 3
Exploring CSS property definitions | W3C Blog
CSS Fonts 3 is a W3C Recommendation | W3C Blog
W3C Strategic Highlights: Strengthening the Core of the Web (CSS) | W3C Blog

CSS Object Model (CSSOM)

CSS Object Model (CSSOM) (日本語訳)
オブジェクト モデルの構築  |  Web  |  Google Developers
CSS Object Model - Web API インターフェイス | MDN
CSSOM
CSS Object Model (CSSOM)
CSSOMとパフォーマンス - Qiita

HTML4・CSS2

CSS 2.1仕様 日本語訳 EPUB版 - 達人出版会
CSS2 の CSS1 からの変更点 - CSS Dencitie
Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification
(メモ)CSS 2.1の更新版のなまえ - 水底の血

HTML5・CSS

ここ数年のブラウザのデフォルトスタイルシート。縦書きとかHTML5とか。|Web Design KOJIKA17
HTML Standard
HTML Standard — Rendering(日本語訳)

CSS Fonts Module Level 4

謎のCSS総称フォントファミリーfangsongについて - 水底の血
日本語向けフォントスタックの現状 - yuhei blog
CSS Fonts Module Level 4
宋朝体 - Wikipedia

CSS in JS

Webサイト開発にCSS in JavaScriptを使うのはやめよう | POSTD
Reactと一緒に使う時のCSS in JSのライブラリ選定とか所感とか - Qiita
CSS in JS(Elm)したら想像以上に良かった - ジンジャー研究室
JSS
All You Need To Know About CSS-in-JS – Hacker Noon
CSSinJS
MicheleBertoli/css-in-js: React: CSS in JS techniques comparison
CSS in JS - Material-UI
SPAにおけるCSSについて、ひとつの解 - エンジニアをリングする
Comparing CSS in JS Libraries

Source Map

SassのデバッグにSource Mapsを使うべきたくさんの理由 - ROCHAS
CSSのSource Map - ウェブログ - Hail2u.net
sourcemap: 圧縮されたJSやCSSと圧縮前のコードの対応関係情報を持ったファイル - general
gulp で、CoffeeScript をコンパイルして concat して SourceMap 出力して SCSS もコンパイルして
sourcemap を使いたい - Qiita
Introduction to JavaScript Source Maps - HTML5 Rocks
多段SourceMapの対応方法とライブラリ | Web Scratch
多段SourceMapとASTの現状について話してきた | Web Scratch

Normalize.css

Normalize.css: Make browsers render all elements more consistently.
[CSS]CSSリセットとは異なる、Normalize.cssの特徴や使い方などの解説 -About normalize.css | コリス
normalize.cssで使用されている各スタイルがどのように機能しているか解説 | コリス
Normalize.cssを使ったコーディングの注意点とリセットCSSとの違い | Cappee Design
なぜリセットではなく Normalize.css を使うのか
Normalize.css v4.0.0 変更点まとめ - Qiita
【CSS】Reset CSSやNormalize.css…。CSSリセットは何を使うべきか比較してみた | unitopi - ユニトピ -
Bootstrap v4で追加されたRebootというスタイルシートを見てみる | フロントエンドBlog | ミツエーリンクス

Sass

Sass - Wikipedia
Sass (stylesheet language) - Wikipedia
爆捗! WordPressテーマ作成ショートカット(3):CSSコーディングで泣かないためのSassの基礎知識と10の利点 (1/3) - @IT
これからSassを始めたい人へ!導入手順をまとめてみた(Dreamweaver対応) | 株式会社LIG
CSSのメタ言語Sass(SCSS)、LESSの完全入門 - Qiita
CSSを超効率化する!SASSの基本と導入方法まとめ | Tech2GO
サンプルソース | Web制作者のためのSassの教科書 - 公式サポートサイト
Sass(SCSS)は難しくないよ!私なりの使い方をご紹介! | Tips Note by TAM
とほほのSass入門

Compass

CSS書くならCompass使った方がいいよ。SASS使ってる人なら特に。

Enduring CSS

さねさねさんのツイート: "僕はCSS全く得意ではないんですが、CSS設計は色々あった結果、Enduring CSSみたいな思考法でBEMしてblockとReact類のcomponentを1対1させるのが、勝ちもしないけど負けもしなくていいのではないかと思うようになって来ました"
さねさねさんのツイート: "BEMで概ね完成系に至っていると思うので、CSS in JSは好きではない"
さねさねさんのツイート: "FLOCSSみたいな分け方してBEMっぽいことしてEnduring CSSですよ!"
さねさねさんのツイート: "勝つためのベストプラクティスよりも負けないためのアンチパターン避け技能ですよ"
Enduring CSSの設計思想 | CodeGrid
連載 | Enduring CSS | HTML5Experts.jp
最強のCSS設計()のヒントになりそうな考え方いろいろ - Qiita
ECSSの概要と考え方のまとめ - Qiita
【CSS】ECSSまとめ
Enduring CSS
Enduring CSS - by Takazudo

cssdb

cssdb
csstools/cssdb: A database of staged CSS features
PostcssとCSS Level 4の現状と今後のCSSプリプロセッサとの付き合い方を考える - Qiita

POSTD

CSS Variables(カスタムプロパティ): なぜ、関心を持つべきか? | プログラミング | POSTD
CSSコーディングテクニック : 詳細度、単位、flexbox、mixin | プログラミング | POSTD
あなたはCSSプロパティ”display”をどのぐらい知っているだろうか? | デザイン | POSTD
CSSになり損ねた言語たち | デザイン | POSTD

Qiita

最低限知っておくべきCSSの基礎 - Qiita
CSS設計の基礎概念 - Qiita
html floatの基本 高さを認識させる - Qiita
QiitaのCSS構成2016 - Qiita
新しめのCSS設計まとめ 〜2016年冬〜 - Qiita
2018年のfont-family指定 - Qiita
CSS界隈は今どうなっているのか、そこで素人な私が思ったこと - Qiita
ページ表示を速くするCSSの記述方法 - Qiita
CSSアーキテクチャについて軽くまとめてみた - Qiita
ぼくの辿り着いた濃いめのtext-shadow - Qiita

Wikipedia

Cascading Style Sheets - Wikipedia

Twitter

その他

Kazuho Okuさんのツイート: "<link rel=preload as=style href=foo.css onload="this.rel='stylesheet'"> で優先度の低いCSSを遅延適用できるのか。なるほどー"
積炭酸さんはTwitterを使っています: "なので例えば10ptと指定しても、画面上のサイズが10pt≒3.5mmで表示されるわけではなく10ptを96dpi換算して13.3ピクセルが適用される。1ピクセルがどのくら
魔法の蒸留水さんのツイート: "ここにサンプルがあるから勉強できそう https://t.co/0X1EVnTUbS #html5jplat"
いいかんじ💯さんのツイート: "もうSafariとChromeはCSS的には全く別物と割り切って書いた方が良い、という事を再確認した夜であった (initial キーワードの解釈が違うとかそんな…)"
Teppei Satoさんのツイート: "またApple独自仕様!IEか!と言われてるけど viewport-fit=coverは元々LG陣営がCSS Round Displayとして標準化を進めてたのね https://t.co/9wbX69p7tM constantは提案中"
CSS Round Display Level 1
鹿野壮@CSSNite・frokan登壇さんのツイート: "Edge 15まではGridの古い仕様のみ対応し、ベンダープレフィックスも必要だった。 16ではChrome等他ブラウザと同じGridの仕様に準拠、プレフィックスも不要に。 Gridが全モダンブラウザで使える時代に。 https://t.co/eNiEk1zVqx #css https://t.co/t3Ao8dkHaV"
Tsukasa #01 [要出典]さんのツイート: "ふむ。等幅フォントの幅を CSS で指定する場合には、ch 単位 ("0" の横幅) が有用そう。"
Tsukasa #01 [要出典]さんのツイート: "ちなみに、全角幅については CSS4 のモジュールでは "水" 字の幅を示す "ic" 単位が追加予定らしい。"
Jen Simmonsさんのツイート: "According to Can I Use (and Stats Counter), global support for CSS Grid (unprefixed) now at 84%. Support for Flexbox at 94%. 84% to 94% #timetolearncssgrid… https://t.co/Kw0UdsVXzA"
Fadisさんのツイート: "画面の端の方が削れていて見えない機器が増えてきた事を受けて、CSSに「この画面四角い?」「見えないかもしれない領域も表示に使って」「見える領域に沿ってコンテンツを配置しろ」「枠線を画面の形に合わせろ」をやるための仕組みが提案されているらしい https://t.co/mBCqyjUrQt"
CSS Round Display Level 1
渡久地 信之さんのツイート: "flex,CSS3から使えるけどバグも多いのでアレ(主にIE11)"
MDN Web Docsさんのツイート: "break-before, break-after, and break-inside are implemented in Firefox 65, and the legacy page-break-* properties now alias to them. For example, see: https://t.co/c5w6HzjP3X"
break-before - CSS: Cascading Style Sheets | MDN
池田 泰延 / JSコードレシピ集を書きましたさんのツイート: "CSSのFlexbox使いがfloatを老害とdisって話題になってますが、CSS Gridの便利さはもっと知られていいと思う。 display: gridだとメディアクエリーすら書かずに4行でレスポンシブ対応できて超便利。… "
Ryosuke IWANAGA 🇨🇦さんはTwitterを使っています: 「Tailwind CSS 本当に最高。今までWebのデザインがまるでできなかったのは、Bootstrap みたいなフレームワークはカスタマイズしようとするとフレームワークの知識が不可欠だけど汎用性なくてやる気出ないし、生でCSS書けるほど要素に詳しくなれない。そのちょうど間。」 / Twitter
Ryosuke IWANAGA 🇨🇦さんはTwitterを使っています: 「程よく生のCSSだけど、あれを変えるのにどの要素だっけ?って考えなくてもクラスから探せばいい。色やサイズも荒い粒度でデフォルト提供されてるので、ちょこちょこいじるのも簡単。」 / Twitter

文字列選択ブロック

tkr@受験なので低浮上さんのツイート: "文字列選択出来ないサイトあったからJSブロックしたのに選択出来ないんだけどどういう仕組みだ"
tkr@受験なので低浮上さんのツイート: "これ入れたら出来た… "
user-select - CSS: カスケーディングスタイルシート | MDN

縦書き

TOYAMA Naoさんのツイート: "Edge で文書全体を縦書き表示にすると、JS で取得するスクロール位置の方向も入れ替わってしまう。pageXOffset プロパティなのに y 軸方向の長さが返ってくるとはいったい……。 https://t.co/obhVdpshIU"
TOYAMA Naoさんのツイート: "とりあえず Microsoft に報告した。 https://t.co/t93Ey12WKj"
TOYAMA Naoさんのツイート: "CSS で縦書きの機運が高まっているそうだけど、ちょっと触るだけでぽろぽろとブラウザ間の挙動の違いが見つかる (実装のバグも、仕様に明記されていない点も)。そういうのを片っ端からブラウザベンダに報告していけば、2 年後くらいにはだいぶ相互運用性を保てるようになっているのでは。"
なかのん&マジックさんのツイート: "だいたい、私の関わった仕様、実装し出すと、これどーすんの?みたいなのを大量に見つけてやりとりすることになってる。実際に複雑なケースを書く、Web開発者さんならなおさら見つけるだろうなと。本当にバグ報告しないと、仕様も実装も前進できないので損するのはWeb開発者さん自身ですよ、と。"
TOYAMA Naoさんのツイート: "CSS での縦書き表示、Edge は IE 時代からの縦書き最古参だけあってかつて検討された挙動 (logical value と physical value の読み替えや orthogonal flows の扱いなど) をいくらか残している、Chrome は描画が乱れることがあるが LayoutNG の導入に従い Canary ではかなり改善、"
TOYAMA Naoさんのツイート: "Firefox は最後発だけあって安定した挙動、あとは principal writing mode を body 要素から取れるようになれば ( https://t.co/6N1lWeRIQq ) ほぼ問題なしではといった印象。"
TOYAMA Naoさんのツイート: "……と言ったけど、Chrome はフォームコントロールの扱いや、orthogonal flows と絶対配置の組み合わせでの位置のずれ、Firefox は flexbox との組み合わせ (Nightly では修正済み) など、穴はいくらでもありそう。"
なかのん&マジックさんのツイート: "そこまでやってる人は皆無だろうけど、ブラウザにバグられてては困るケースは、web platform testを書いて、いずれかのブラウザベンダ経由で登録するってのはかなり有効かつ、みんなが幸せになれる方法。ブラウザの開発時に自動テストで走らせるからね。"

text-decoration-skip

ながしまきょうさんのツイート: "Chrome 57でtext-decoration-skip: ink実装、フラグなしになったけど、まだダメそうw https://t.co/2I8owNAYqc https://t.co/6H5Rk7F1m7"
なかのん&マジックさんのツイート: "Chromeはこれ、改善してからデフォルト有効にしたのかな?"
なかのん&マジックさんのツイート: "Canaryでうちの日記を表示してみたけど、下線の表示、微妙だな……あんまし綺麗に見えない……"
なかのん&マジックさんのツイート: "なんか、下線がちぎれてるっていう印象で綺麗に見えない…… Google Chromeの新しい下線表示 (text-decoration: underline; text-decoration-skip: auto;)。 https://t.co/UDKf7vOEKX"
なかのん&マジックさんのツイート: "Chromeの新しい下線表示のサンプルで見ると綺麗なんだけど、フォントや文字列によっては綺麗には見えないっぽいので、なんか微妙だなぁ。サンプルだけ見ると、Geckoもやらないとって思えるけど(私はやる時間全くとれないけど)。"

@chikoski

chikoskiさんのツイート: "CSSにはwriting-modeという属性があります。これを使うと文字の方向をコントロールして、雑誌のような文字組みができます。雑誌記事を例に、文字組みを解説した@jensimmons による記事が公開されました:https://t.co/8AUMzTe0El"
chikoskiさんのツイート: "属性ではなく、プロパティというのが正しい言葉でした。訂正させていただきます https://t.co/nKtFJOEZFX"
chikoskiさんのツイート: "CSSGridでは列や行、セルに名前をつけて、その名前を使ってレイアウトできるのか。便利 #html5jplat"
chikoskiさんのツイート: "たて、よこが混じる写真リストの実装も簡単にできるのはよいなー #html5jplat"
chikoskiさんのツイート: "GridとFlexboxとの関係について。Flexboxは1次元のレイアウトに関する仕様で、Gridは2次元。 #html5jplat"
chikoskiさんのツイート: "Gridもアニメーションと組み合わせてつかえるのか。おもしろいことできそう感 #html5jplat"
chikoskiさんのツイート: "Gridはほとんどのブラウザでサポートされてるけど、サポートしてるかどうかはCSS feature query使えばできる。 #html5jplat"
Kinuko Yasudaさんのツイート: "Chrome Canary から <body> 以降にロードされる stylesheets はそこまでのレンダリングをブロックしなくなります。critical じゃない CSS はそうするべし thanks to @patmeenan!… https://t.co/S8UdQOv55B"
Yoav Weissさんのツイート: "Yay! @patmeenan landed sane CSS loading behavior in Chrome Canary. Now you can load non-critical CSS in the <body> and it won't block rendering of everything above it!!… https://t.co/i5TXiwTKkD"
Patrick Meenanさんのツイート: "FYI, as of today's canary it is enabled by default and should ship in 69.… "
chikoskiさんのツイート: "ということは、特定のビューコンポーネントにのみ効くスタイルシートは、bodyタグの中でリンクすると全体のレンダリングスピードを上げやすくなる、ということかしら。… "
chikoskiさんのツイート: "むしろページ全体のレイアウト、例えばグリッドレイアウトの場合だと、グリッドの設定とハイレベルな要素のグリッドへの割付に関するcssだけをheadタグの中でリンクするようにした方がいい、ということになったりしないかな。https://t.co/NHt3SHVwcA"
The future of loading CSS - JakeArchibald.com
chikoskiさんのツイート: "そのページで使われているコンポーネントを調べ上げて、それぞれで必要なCSSをまとめ、linkタグを適切に生成するようなツールがあるとうれしかったりするかもなー。link要素のDOMへの追加をアプリの状態遷移に合わせて行いつつ、SWつかってキャッシュしたりするとさらに嬉しいかもしれない。"
chikoskiさんのツイート: "以上、妄想終わり。"

@rockridge07

Rockridgeさんのツイート: "CSSが統一的な仕様を提供したのは2.1までで、それ以降はモジュール化の方向に舵を切ったので、CSS3という呼称はLevel 3モジュールの総称にすぎない。なので将来的に規格としてのCSS4が出ることもない。 / “Why th…” https://t.co/kmwXvTZ0Rl"
Rockridgeさんのツイート: "CSSの-webkit-line-clampプロパティは、複数行でも3点リーダーを聞かせることができるが、現状および今後のWebブラウザでのサポートが望めないため、使わないほうがよいとのこと。 / “CSS の -webkit-…” https://t.co/35EFOz9ZO0"
Rockridgeさんのツイート: "CSS Gridを学ぶのに適したWebサイトなどを列挙している記事。 / “Learn CSS Grid | Jen Simmons” https://t.co/Cs3dfjZQ9B"
Rockridgeさんのツイート: "Webドキュメントにスタイルルールを適用する方法を巡る議論について。CSSは「壊れ」てはおらず、 CSS Object Model(CSSOM)のようにJavaScriptで制御するやり方は、Flashやフレームに対するのと同じ違… https://t.co/Et93e8Gq2o"
Our (css) discussion is broken - otsukare
Rockridgeさんのツイート: "CSS Gridレイアウトのチュートリアル。豊富な使用例が掲載されている。 / “Grid by Example” https://t.co/nOYAQjQGy2"
Grid by Example
Rockridgeさんのツイート: "CSS Gridを段階を追って解説。申し訳程度にFirefoxの開発ツールの利用をアピールしているが、利用していなくても問題なく読み進められるようになっている。 / “CSS Grid PlayGround | Terminol…” https://t.co/QXFvy7Mv4I"
Rockridgeさんのツイート: "ベンダープレフィックスのないborder-imageプロパティを指定するときは、末尾に「fill」のキーワードを指定することが、Web互換性の観点から重要とのこと。 / “How To Fix border-image in y…” https://t.co/5pVSvjV700"

@shibu_jp

渋川よしきさんのツイート: "resizeってのをCSSで指定したら、flexbox使ってCSSだけ使ってリサイズ可能パネル作れるの・・・CSS複雑すぎでは・・・CSSエンジンのプログラマーみんなストレスで禿げてるでしょ。絶対。"
渋川よしきさんのツイート: "うーむ。resize + flexbox、うまくいかんな。専有可能な幅100%をA/Bのパネルでわけあって、AとBの間をドラッグでリサイズできるようにしたいけど、広げちゃうとドラッグできない。"
渋川よしきさんのツイート: "CSS Houdiniでページネーションの実装ができて、それがいろんなepubリーダーで使われるようになって品質が安定化したら世の中平和になる"
渋川よしきさんのツイート: "flexbox使ってヘッダー固定で中部分だけスクロールとかしているページ、そのまま印刷してもページの一部しか出力されないのか。@media printの時は全部伸ばす、みたいなスタイルあてないといかんのかな・・・"

どのCSSプロパティが世の中のWebサイトでよく使われているのか? マイクロソフトがクローラーから得た統計を「Global CSS Property Usage」として公開 - Publickey
CSS usage on the web platform - Microsoft Edge Development
コンポーネントベースのアプリケーションのためのCSSアーキテクチャ
CSSの進化がすごすぎる!新しいレスポンシブデザインの実装方法を解説 | コリス

WM

ドッグさんはTwitterを使っています 「ウィンドウマネージャ実装したこと無いから一度やってみたい気もするな.タイル型は木なんだと思うけど,レイアウト情報をどう持つんだろう」 / Twitter
こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp XMonad は位置とサイズのリストを返す関数を保持してる感じ https://t.co/U7T5ITGd5w `a` は Window ID」 / Twitter
anekos / xmonad-conf / src / XMonad / Layout / Harakiri.hs — Bitbucket
ドッグさんはTwitterを使っています 「@anekos ありがとうございます.やっぱ任意のレイアウトに対応するにはウィンドウとそのレイアウト情報の組をリストに平坦に持つべきな感じしますね」 / Twitter
こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp この場合、持っているのはあくまでも関数だと思います。(都度計算する) また、レイアウト関数を二つとって新しいレイアウト関数を返す LayoutModifier みたいなのもあったり。」 / Twitter
こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp すみません、Window (ID?) のリストも持ってないとですね。」 / Twitter
ドッグさんはTwitterを使っています 「@anekos 関数を返すのは計算を遅延する目的なんだと思っていたので,あまりそこに焦点を当ててませんでした.レイアウトが分割統治でやれるのかが気になっていました」 / Twitter
ドッグさんはTwitterを使っています 「パネルを分割するのって素朴に考えると二分木なので親は自分のレイアウトだけ持って,その中のレイアウトは子に再帰的にやらせれば良いかなと思ったけど,それだとできないレイアウトが出てきそう」 / Twitter
(っ=﹏=c) .。o○さんはTwitterを使っています 「@Linda_pp 四畳半問題ですね https://t.co/vmXNHuOcxR」 / Twitter
四畳半問題 - Humanity
ドッグさんはTwitterを使っています 「@itchyny おお,まさしく似たようなことを考えてました.読んでみます.ありがとうございます!」 / Twitter

アクセシビリティ

その他

A11yとは - Weblio辞書
WebSchemas/Accessibility 日本語訳
アクセシビリティの祭典/トップページ
WindowsでaViewerを使う | アクセシビリティBlog | ミツエーリンクス
今すぐ使えるアクセシビリティチェックツール13選! | フロントエンドBlog | ミツエーリンクス
少しずつアクセシビリティ意識する - Hatena Developer Blog
アクセシビリティに関する各種リンク - EagleLand
アクセシビリティの専門家の言うことは唯一の正解ではない | 水無月ばけらのえび日記
Webアプリのアクセシビリティを追求せよ!「インクルーシブ」なマークアップを議論しながら学んでみた | HTML5Experts.jp
視覚障碍者プログラマのためのツール | キャリア・働き方 | POSTD
New Site-wide WAVE Tools (WebAIM)|AccSellクリッピング|AccSell
むらログ: 実用レベルに達している日本語音声入力
アクセシビリティ機能はありますか (Acrobat DC)
アクセシビリティを確保するなら、ファインダビリティも大事。国税庁Webサイトリニューアルでリダイレクトなし | Web担当者Forum
今更だけど、ウェブアクセシビリティについてまとめてみた(概要と手法) - Qiita
パワポやExcelのグラフを色弱者にも分かりやすくするセットを有志が無料配布 作者「将来は標準設定に」 - ねとらぼ
やさしいウェブのためにすべきこと。英国のウェブアクセシビリティ啓蒙ポスターの日本語版が公開 | UNLEASH
posters/accessibility/dos-donts/posters_ja at master · UKHomeOffice/posters
アクセシビリティガイドライン > 45. 色だけに依存した表現によって… : 三井住友銀行

音声ブラウザ

音声ブラウザ - Google 検索
水無月ばけらさんのツイート: "「メディアクエリや音声向けのCSSがあまり期待通り動いてくれない」というのは、スクリーンリーダーが「音声ブラウザ」ではなく、普通のブラウザの表示結果を読み上げているだけだからですね。… "
どうけ 🍣さんのツイート: "とりあえず発表したことを書きました。懇親会で話したことはまた別途書きます。 #gaad2019_tokyo 「アクセシビリティわかってるつもりでわかってなかった」を共有した話|道家 陽介 @doke|note(ノート) https://t.co/9if35W1gbz"
「アクセシビリティわかってるつもりでわかってなかった」を共有した話|道家 陽介|note

水底の血

句読点とか小数点とかのメモ - 水底の血
Re: 頭字語に空白文字を挿入することの是非とWebアクセシビリティ - 水底の血
電子書籍版デザイニングWebアクセシビリティの献本をいただいた - 水底の血
色覚異常という言葉に関するメモ - 水底の血
AccSell Podcast Vol.128に出演しました - 水底の血
アクセシビリティの祭典 2018 感想戦のようなもの - 水底の血
アクセシビリティチェッカーA11ycのChrome拡張機能をローカルで作成してみた話 - 水底の血
君はISOの代替テキストのガイダンスを知っているか? - 水底の血
いわく、ハザードマップにウェブアクセシビリティな問題があるとのことだけれども。 - 水底の血
みんなの公共サイト運用ガイドライン(2016年版)で参照する法律の謎 - 水底の血
世界最先端デジタル国家創造宣言・官民データ活用推進基本計画とウェブアクセシビリティ - 水底の血
障害者基本計画(第4次)とアクセシビリティ - 水底の血
都立中央図書館でアクセシビリティ方面の書籍をあさった話 - 水底の血
都立中央図書館でアクセシビリティ方面の書籍をあさった話 - 水底の血
障害者の権利委員会 一般的意見第2号を読む - 水底の血
ISOの代替テキストガイダンスの続編(ものすごい雑なメモ) - 水底の血
手話の話を枕に、例の国交省検討会の議事概要から - 水底の血
このごろのWAIC WG4(2020年3月版) - 水底の血

W3C

Accessible Platform Architectures (APA) Working Group | Web Accessibility Initiative (WAI) | W3C
Inaccessibility of CAPTCHA
Research Questions Accessibility Task Force
Video: Web Accessibility Standards and Benefits | W3C Blog
W3C Strategic Highlights: Web for All (Web Accessibility) | W3C Blog

WAI-ARIA

W3C

WAI-ARIA Authoring Practices 1.1 Note helps authors make content accessible | W3C Blog
Digital Publishing WAI-ARIA Module 1.0
Accessible Rich Internet Applications (WAI-ARIA) 1.2
Core Accessibility API Mappings 1.2
WAI-ARIA Authoring Practices 1.1
HTML Accessibility API Mappings 1.0

水底の血

2015年末におけるWAI-ARIAの今をものすごくざっくりと - 水底の血
某プログラミング知識共有サービスっぽい古いエントリーへの注意書きを付けてみた - 水底の血
WAI-ARIA 1.1、DPUB-ARIA 1.0、HTML 5.2ほかが勧告案になっていた - 水底の血
WAI-ARIA 1.2の草案が発行されてた - 水底の血
(メモ)WAI-ARIAのロードマップ - 水底の血

フロントエンドBlog

Webコンテンツの推奨実装方法集「WAI-ARIA Authoring Practices 1.1」 | フロントエンドBlog | ミツエーリンクス
あのWAI-ARIAがIDL属性として実装される!? | フロントエンドBlog | ミツエーリンクス

Accessible Rich Internet Applications (WAI-ARIA) 1.1 日本語訳
Accessible Rich Internet Applications (WAI-ARIA) 1.0 日本語訳
ARIA Techniques | Techniques for WCAG 2.0 日本語訳
WAI-ARIAを活用したフロントエンド実装 | CodeGrid
WAI-ARIA の基礎知識 — Website Usability Info
HTML講座 - WAI-ARIA
WAI-ARIA をマークアップに取り入れたシンプルなタブ - CSS HappyLife
WAI-ARIAを活用したJavaScriptによるDOM操作 // Speaker Deck
WAI-ARIA Authoring Practice Dialog(Modal)のフォーカス管理 - /var/log/sukoyakarizumu
Introduction - webcomponents.org
The Accessibility Object Model (AOM) | aom

WCAG

W3C

WAI-Tools Project Launched | W3C Blog
WCAG 2.1 is a Candidate Recommendation | W3C Blog
Web Content Accessibility Guidelines (WCAG) 2.1
Understanding WCAG 2.1
Techniques for WCAG 2.1
Understanding Success Criterion 2.1.4: Character Key Shortcuts

水底の血

WCAG 2.0ノートの本体更新予告やら日本語訳やら - 水底の血
新しいWCAG 2.0解説書がWAICサイトで公開されました - 水底の血
WCAG 2.0 解説書
WCAG 2.1 FPWDがもうすぐ出そう(提案間にあわない) - 水底の血
2016年版のWCAG 2.0達成方法集がWAICサイトで公開されました - 水底の血
HTMLラジオボタンを大きくする方法について - 水底の血
Japan Accessibility Conferenceに登壇します - 水底の血
WCAG 2.0解説書の更新版と、How to meet WCAG 2.0の日本語訳が公開されました - 水底の血
PDF版 JIS X 8341-3:2016, WCAG 2.0早見表/逆引き表作成裏話 (Web Accessibility Advent Calendar 2017) (有限会社時代工房)|AccSellクリッピング|AccSell
WCAG 2.0クイックリファレンスが更新されました - 水底の血
WCAG 2.0 クイックリファレンス (WAIC)|AccSellクリッピング|AccSell
このごろのWAIC WG4の活動について - 水底の血
WCAG 2.0関連文書レビューのご案内(6/14〆) - 水底の血
WAICサイトのWCAG 2.0関連文書が更新と、WCAG 2.1訳の話題 - 水底の血
WCAG 2.1の「次」について - 水底の血
WCAG 2.2の策定作業が始まっていた - 水底の血

なかのんクエストさんのツイート: "GeckoはネイティブのTheme API使ってレンダリングするんで、サイズ固定なWinやCocoaだとscale以外はどうしようもない気が。 / HTMLラジオボタンを大きくする方法について - 水底の血 https://t.co/3AAIc3dtGj"
レシピを見ながら楽しく実装、フォームのアクセシビリティ!その1 | フロントエンドBlog | ミツエーリンクス
レシピを見ながら楽しく実装、フォームのアクセシビリティ!その2 | フロントエンドBlog | ミツエーリンクス
レシピを見ながら楽しく実装、フォームのアクセシビリティ!その3 | フロントエンドBlog | ミツエーリンクス
WCAG 2.0 達成方法集
柴田宣史さんのツイート: "Twitterのキーボードショットカット。必ずしも視覚障害者でなくっても、ずいぶん便利だと思います。… "
うおさんのツイート: "誤爆する話、ちょっと前に見て気になっていたところです。 WCAG2.1でみんな幸せになれる感じでしょうか。 https://t.co/3ACIT6JRry… "
柴田宣史さんのツイート: "なるほど。 2.1.4: Character Key Shortcuts (Level A) If a keyboard shortcut is implemented in content using only letter, punctuation, number, or symbol characters, then at least one of the following is true: - Turn off - Remap - Active only on focus… https://t.co/3hJ0s2eb3G"
もんどさんのツイート: "なるほど。 2.1.4 文字キーのショートカット (レベル A) コンテンツに文字 (大文字と小文字を含む)、句読点、数字、又は記号のみを使用したキーボードショートカットが実装されている場合、少なくとも次のいずれかを満たしている: 解除 再割り当て フォーカス中にのみ有効化 https://t.co/vUE60Z8t6f… https://t.co/uaIYg5cJT3"
Web Content Accessibility Guidelines (WCAG) 2.1 (日本語訳)

JIS

JIS X 8341-3:2016の公示 | コラム | ミツエーリンクス
JIS X 8341-3が改正・公示された - 水底の血
JIS X 8341-3:2016は誰が作ったのか - 水底の血
chikoskiさんのツイート: "JISにもWeb Accessibilityに対するガイドラインがあります。JIS X 8341-3 https://t.co/VPlNH7J87W WCAG2.0とほぼ内容は同一ですが… #WeJS"
JIS X 8341-3:2016 解説
chikoskiさんのツイート: "はい… https://t.co/nVuf54CTjB"

Mozilla

アクセシビリティサービスインジケーターとは? | Firefox ヘルプ
タブバー上の人型アイコンを消す(追記あり) - Mozilla Flux
Rockridgeさんのツイート: "Fx59:TBNotifier.exeがアクセシビリティサービスとしてFirefoxにアクセスできないようブロックした。Ask Toolbarの一部とのこと。 / “1421018 - Block TBNotifier.exe …” https://t.co/PwKO5f1cpI"
1421018 - Block TBNotifier.exe from accessing accessible services
Makoto Kato ︎︎さんのツイート: "アクセシビリティが有効になってるとChromiumのバグを開く際にクラッシュする話に今日何度も引っかかってる https://t.co/Nv5zZ2fxxI"
アクセシビリティのためのメディアクエリの使用 - CSS: カスケーディングスタイルシート | MDN

MS

アクセシビリティ: Microsoft Edge と Windows 10 でさらに多くの人が Web を利用できるように | Microsoft Edge Japan
EdgeHTML15 のアクセシビリティの向上 | Microsoft Edge Japan
Windows 10 October 2018 Update のアクセシビリティについて - Windows Blog for JapanWindows Blog for Japan
Masaru Iritaniさんのツイート: "Windows アプリケーションとウェブページのアクセシビリティ対応を簡単に確認できるツールが公開されました。オープンソースです。… "
Microsoft Developerさんのツイート: "#A11y is important to us and we want to ensure it is easy for you to foster inclusion in your own apps. Announcing Accessibility Insights for Windows and Accessibility Insights for Web: https://t.co/JeIFc9gKJl… https://t.co/c2yGGgTziY"
Microsoft open sources Accessibility Insights - Open Source blog
Accessibility Insights
Microsoft/accessibility-insights-web: Accessibility Insights for Web

20??年のWebアクセシビリティ

2014年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2015年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2016年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2017年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
2018年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社

infoQ

Visual Studio 2017 15.3 がリリース。 Adds .NET Core 2 がサポートされた。
Appleはどのようにして手書きの漢字をリアルタイム認識しているか
MicrosoftはAzure Bot ServiceとLanguage Understandingの一般提供を発表した
HTMLコントロールの残されたアクセシビリティの問題

スライド

アクセシビリティとこれからのWebデザイン
Japan Accessibility Conference vol.1 アクセシビリティ・ガイドラインの歩き方(初心者編) - Google スライド
創業期の医療スタートアップに立ちはだかった3つの壁 / Three challenges of medical startup - Speaker Deck

Twitter

Rockridgeさんのツイート: "Fx51:リーダーモードのNarrate(音声読み上げ機能)で、読み上げの速度を5%刻みで細かく調整できるようになった。これまでは25%刻みだった。 / “1316828 – Allow finer control over n…” https://t.co/Hg5ZaJFCQB"
犬洋さんのツイート: "色盲の人にも分かりやすい信号機これすごいなぁ https://t.co/z1nGgdCKXo"
Rockridgeさんのツイート: "Fx59:アクセシビリティサービスが、テキスト/ハイパーリンク/属性の情報を一挙に取得できるようになった。プロセス間通信が減少するのでパフォーマンスの向上につながる。 / “1419362 - [e10s a11y] Handl…” https://t.co/522i1Qx39E"
もんどさんのツイート: "https://t.co/ENVZw1R9XK この辺からコーポレートサイトだけでなく、ne¥.jpもどうにかしてと言うとか。… "
ryomatsuさんのツイート: "アクセシビリティ… "
JIS X 8341-3:2016に基づく試験結果表示(ウェブページ単位:2016年3月31日公開) | ウェブアクセシビリティ方針 | サイトご利用にあたって | NTTドコモ
柴田宣史さんのツイート: "また、サイトに埋め込むGoogleのサイト内検索のキーワードの自動補完も、スクリーリーダだと気がつかないうちに補完されているケース(自分はキーワードを入力し終わったので、つぎのユーザインタフェースコンポーネントに移動するためにTABキーを押す)があるので、なかなか悩ましい。"
なかのん&マジックさんのツイート: "個人的にはTabキーのイベントはWebアプリで発火すべきではなかったと思ってます。今更なのでそれはできないけど。"
なかのん&マジックさんのツイート: "ブラウザのa11y上の問題で、どのブラウザも一部のキーコンビネーションはWebアプリで発火しないようになっているものの、やはり「バグ報告」はやってきますね、いつまでも。"
なかのん&マジックさんのツイート: "Webアプリは読み込んだだけで利用者の同意なく動き出すものなので、ネイティブアプリ同様の何でもアリ感はさすがに認められないわけです。"
ゆうてん🥶さんのツイート: "del要素のアクセシビリティ対応例 https://t.co/vNTt5Y7NtF 疑似要素を読み上げさせるのトリッキーだな"
<del>: 削除文字列要素 - HTML: HyperText Markup Language | MDN
未識魚 /中川譲@3/21~キャラクターで描く千住展2019さんのツイート: "普通の人でもディスレクシア(読字障害)の気分が味わえそうな事例を作ってみた。 左:UDデジタル教科書体、右:VDRロゴJrブラック (芥川龍之介「愛読書の印象」より) 右でも確かに1文字ずつ追えば「読める」けどものすごく辛い。… "

その他

Redshift
jonls/redshift: Redshift adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night.
EIZO、モニター色校正のための最新認証を世界で初めて取得 - デジカメ Watch
カラーマネジメントモニター 基本的なキャリブレーション作業の手順の一例 | カラーマネジメント実践ブログ 〜フォトレタッチの現場から〜
ディスプレイキャリブレーション 色温度の決め方 5000Kか6500Kか | カラーマネジメント実践ブログ 〜フォトレタッチの現場から〜
Color Management Handbook ver.5
【カラマネ極意17】印刷の標準規格がなぜ求められるのか - JAGAT
デジタル写真の必修科目・カラーマネージメント講座 連載 第1回 | GANREF
カラーマネジメント | 能登印刷株式会社 – 石川県金沢市・白山市の総合印刷・出版|商業印刷・美術印刷・カタログ印刷・商業出版・自費出版・オンデマンド印刷・Webサイト制作
カラーマネジメントの解説
トラブルを未然に防ぐ!カラー設定10選 | psgips
ソフトウェア・キャリブレーションとハードウェア・キャリブレーションの違い | EIZO株式会社
パワポやExcelのグラフを色弱者にも分かりやすくするセットを有志が無料配布 作者「将来は標準設定に」 - ねとらぼ
新ドライバでGeForceもOpenGLの10億色出力対応に - PC Watch
Adobeのオープンソースのアダプティブでアクセス可能なカラーパレットジェネレーター
HDRモードでも正確な色表現 ~プレビュー版Windows 10+ICCプロファイルを利用するクリエイティブアプリでテスト中 - 窓の杜
【ニュース・フラッシュ】Windows 10プレビュー版、HDR環境でアプリごとにICCプロファイルを適用可能に - PC Watch

Google ブックス

背景イラストメイキング講座 - 草壁 - Google ブックス
カラーマネジメント技術: 拡張色空間とカラーアピアランス - Google ブックス

blog

まだCMYKで消耗してるの?〜大幅な色補正をCMYKで行ってはいけない理由〜 – やもめも
コンポジターに必要なアルファチャンネルの知識(前編) - コンポジゴク
コンポジターに必要なアルファチャンネルの知識(後編) - コンポジゴク
続・Webブラウザのカラーマネジメント対応まとめ : やんま まのblog(仮)
機械の目と人間の目の類似点|Rui Ueyama|note
日記 (2017 年 10 月中旬)
第27回:カラーマネジメントの疑問 色はどこで管理されてるの? | PERCH長尾の知っ得!デザインビズ必読ポイント! | AREA JAPAN
YUVをちゃんと理解してからRGBにコンバートしましょうね : KLabGames Tech Blog
YCbCr変換による色数の減少 - toruのブログ
RGB等色関数で現れる負の値の正体 | tech - 氾濫原
色を科学する その① 感覚なのに科学できる理由|[色彩工学/カラーサイエンス]YoshiColor|note
[色彩工学/カラーサイエンス]YoshiColorの月別一覧|note
色を科学する その⑦ XYZのトリセツ|[色彩工学/カラーサイエンス]YoshiColor|note
YCbCr変換による画質劣化の可能性について - toruのブログ

GIGAZINE

Googleが提唱する「マテリアルデザイン」の普及をフォローするカラーツールが登場 - GIGAZINE
なぜ画像に「ぼかし」を入れると色の境界部分がつぶれてしまうのか? - GIGAZINE
色覚異常の人がより多くの色を見分けられるようになるコンタクトレンズが開発される - GIGAZINE
ブラウザによって色が異なる「色空間」の不思議な世界 - GIGAZINE

POSTD

色弱のユーザーにもやさしいランディングページのデザイン | デザイン | POSTD
色:ヘキサコードから眼球まで – Part 1. | POSTD
色:ヘキサコードから眼球まで – Part 2. | POSTD
色:ヘキサコードから眼球まで – Part 3. | POSTD

Qiita

XYZ色空間に迫る(1) - Qiita
XYZ色空間に迫る(2) - Qiita
プログラマが知っているとよい色使い(安全色) - Qiita

Wikipedia

ICCプロファイル - Wikipedia
ICC profile - Wikipedia, the free encyclopedia
YUV - Wikipedia

Twitter

histric-1

Rockridgeさんのツイート: "BlinkにCanvasでのカラーマネージメント機能が実装される見込み。HDRディスプレイの普及を踏まえたもので、WebGLとの併用が想定されている。Khronosで議論がされてきたといい、将来的にGeckoでもサポートされそうだ。 https://t.co/3mKPtzn2x5"
Rockridgeさんのツイート: "Fx54:プリマルチプライ処理とアンプリマルチプライ処理を高速化。参照:https://t.co/ARm3QakXMg / “738343 - Use a central library for pixel format con…” https://t.co/KP6tDbkVFC"
738343 - Use a central library for pixel format conversion and alpha-(un)premultiplication
Rockridgeさんのツイート: "主要ブラウザのカラーマネジメント対応状況が詳細にまとめられた記事。Firefox 8でLUTをサポートしたというのはこのバグだろう。参照:https://t.co/xHinFtLlih / “続・Webブラウザのカラーマネジメン…” https://t.co/eSTzYqe8mg"
Rockridgeさんのツイート: "Fx57:DCI-P3ベースの広色域プロファイルをサポート。近年のMac環境で色の表示に違いが出るようだ。 / “1250461 - ICC profile (Late 2015 iMac with P3 Retina disp…” https://t.co/mpx3lAgVHF"
渋川よしきさんのツイート: "今日は、会社の若者に @m_seki さんから教わった秘伝の技を教えた。とりあえずデータ種類ごとにカラフルにしたいときに、カテゴリ名のハッシュ値を計算して、それを元に色が決まるようにすればいいよ、というやつ。HLS色空間使えば、明るさのばらつきも抑えられてお得。"
Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "色覚異常な人に一部の機能が使えない家電製品ばかりになり、その状況が年々悪化しているということは、普通に色覚バリアフリーな家電製品を作ってそれを宣伝するだけで、日本国内だけでいきなり300万人をつかめるおいしい状況でもあるはずなのに、家電メーカーは何をやっているんだろう?"
Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "色覚バリアフリーが当たり前で売りにはならない文具業界や什器業界よりむちゃくちゃおいしい状況なのに。"
Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "半世紀前の世界には色覚異常な人に一部の機能が使えない家電は存在しなくて、色覚異常な人に一部の機能が使えない文具で満ちていたのに、なんで逆転したのだろう?"
Rockridgeさんのツイート: "Firefox開発者いわく、カラーマネージメント機能の強化は開発の優先順位が低い。 / “Can we focus more on color management support?” https://t.co/i9XTuh5JNY"
Fadisさんのツイート: "HTML5のCanvasにfloat16の線形色空間で描けるようにしよう、という提案がなされている。色を正確に再現する必要があるコンテンツの表示や、物理的に正しい色の合成、ハイダイナミックレンジディスプレイの活用等に利用できる https://t.co/4iKE2mUNkd"
canvas-color-space/CanvasColorSpaceProposal.md at master · WICG/canvas-color-space
Fadisさんのツイート: "Web屋さんがついに色はRGB各8bitでは全く足りない事に気付いてしまったらしい"
Fadisさんのツイート: "このproposalはクロノスのWebGLワーキンググループでApple Google Microsoft Mozilla Nvidia他のエンジニアを交えて議論された、って書かれてて「なるほど」ってなった https://t.co/4iKE2mUNkd"
Fadisさんのツイート: "WebGLからHDRディスプレイに対してHDRレンダリング結果を吐くための下準備か"
👻 道化師 🃏さんのツイート: "自分用に作ったモノなんですが、色々なカラーテーブルを作成できるしたツールを作ってみました。各パラメーターは弄る度に URL も更新されるので、その URL をコピーしておけばいつでも同じカラーテーブルを参照できます。配色の参考やディスプレイの色味比較などにどうぞ。 https://t.co/OYONZG9JcA… https://t.co/0quJ8onRdo"
phi ratio coloring
👻 道化師 🃏さんのツイート: "https://t.co/PHf9AMzL3Q このツールとしての肝は hue step を phi ratio にした時のカラーリングで、 saturation, lightness の場合とは適用のされ方が大きく異なり、これは植物の葉(枝)の生え方を上から見たのと同じで、同じ場所(色)が出にくく、いい感じに離れた場所(色)になってくれます。"
👻 道化師 🃏さんのツイート: "https://t.co/dgfKQpNF9z lightness を人間の眼で感じる明るさ(luma)で補正(align)する機能を付けては見たものの有効に機能する範囲がかなり厳しいよなぁ。… "
Fadisさんのツイート: "緑を#00FF00と書くとまず人間が識別できる輝度の幅に対して256階調が荒過ぎる問題に直面し、次に人間が見ることが出来る色の範囲に対してsRGB色空間が狭過ぎる問題に直面し、とどめに高速で遠ざかる#00FF00が赤方偏移して黄色っぽくなる問題に直面する"
狐代@冬コミ全日(お燐/玉藻)さんのツイート: "ディスプレイの表示できる色域の問題も… "
Fadisさんのツイート: "広い色空間と高い輝度の表示が出来るディスプレイも少しづつ出てきてはいるものの、信号として送れる色に対してディスプレイが正しく表示出来る範囲がマチマチで、この辺活かしてリニア空間でのレンダリング結果を出来るだけ潰さずに表示したいゲーム屋さんは工夫を求められる状況になってるっぽい… https://t.co/wYFERdcAKm"
OS自作したい。技術書典6・う38さんのツイート: "CMYKだと再現できない色があるんだなあ,というのが体感的に分かった."
nikqさんのツイート: "これ色域マッピングとかRRTとかの効果をアーティストさんが体感で再現してるんだなあ。すごいなあ… "
のうめん🏗️👺デザイン産業バーチャル機械さんのツイート: "さっきいつきちゃんところで話してたシャドウとハイライトの色ずらしの件は図示するとこんな感じですぞ 基準色からただ明るく、ただ暗くしただけの色を乗せるより、少し色相をズラしてあげることでより鮮やかな色変化になるんよ… "

FadisさんはTwitterを使っています: 「人間が目を通して知覚する明るさと実際の光のエネルギーは非線形の関係にある。8bitで表現された256色段階のグレースケールが線形に変化して見える時、ピクセルの値と光のエネルギーの関係は線形ではない。近代的な3Dグラフィクスは物理モデルから光のエネルギーを求めるため、最後に変換が必要になる」 / Twitter
FadisさんはTwitterを使っています: 「RGBAのAの厳密な定義が無くて3Dプリンタで透明を扱う際に機器間で互換がとれないから、観測可能な物理量に基づくAの厳密な定義を作ったという論文。同じ材料でも大きさを変えると透過する光の量は変わるが、Aはサイズによらず同じ値が同じ見た目になるように定義される https://t.co/lXxoabovRx」 / Twitter
[1710.00546] Redefining A in RGBA: Towards a Standard for Graphical 3D Printing
FadisさんはTwitterを使っています 「HDRで吐くと色が薄くなって見えるっていうのは「私はゲーム開発者ですがコンテンツを正しい色で見て作っていません」と言っているのと同義なんだよ」 / Twitter
FadisさんはTwitterを使っています 「DirectXがRGBA各4bitで1ピクセル16bitのサーフェスという物をサポートしていて、Vulkanでも同等の物があったらVulkan上にDirectXを実装するのが捗るってことで、そういうVkFormatを追加する拡張が出来たらしいんだけど、拡張の名前VK_EXT_4444_formatsて… https://t.co/kAQAkoe2ZU」 / Twitter
Vulkan 1.2.149 Released With Another Extension For Helping The Likes Of DXVK - Phoronix
7594591200220899443さんはTwitterを使っています 「著者の誠実な態度は買うが、本来こういう事をちゃんとちゃんとしていく事こそ出版社の仕事である。出版社が仕事しないならわざわざ商業出版する意義に乏しい。」 / Twitter
解答略さんはTwitterを使っています 「拙著「作ろう!CPU」について、重刷が決定したようです。 あちこちから指摘をいただいておりますが、私の無知のせいで、本書の第1刷は色弱の方に全く読めないものを出版してしまいました。本当に心よりお詫び申し上げます。私としては色を置換して第2刷にしたいと考えて、現在出版社と交渉しています」 / Twitter
解答略さんはTwitterを使っています 「ペアの配色を、こんな感じに変更しようと考えています。今回の版では間に合わないかもしれませんが、いずれ必ず変更しますので、色弱の方はもうしばらく購入をお待ち下さい。 https://t.co/39cXiME47K」 / Twitter
きしだൠ(K8S(Kishidades))さんはTwitterを使っています 「@kaitou_ryaku そもそも色分けで線の違いを表現するというのがあまりよくないです。色よりも、形で表現したほうがいいと思います。この場合であれば白抜きにするか点線にするかなどです。 もしくは明暗差で。」 / Twitter
ǝunsʇo ıɯnɟɐsɐɯさんはTwitterを使っています 「「色覚異常の人に合わせて赤と緑で判別してる図表を変えないといけないの? めんどくさい」と思った人。 多分「日本語に合わせて多言語化対応しないといけないの? 英語のままでいいじゃん。めんどくさい」と虐げられた悔しい体験がほとんどない幸せなIT生活が若い頃から当たり前だった世代では?」 / Twitter
ふれーむさんはTwitterを使っています 「@otsune っていうか別に色弱者のユニバーサルカラーデザインだけでもないですよね。あの領域って。みんな老いたらレンズ体濁るし。」 / Twitter
FadisさんはTwitterを使っています 「glTF、構造自体は近代的なGPUで読みやすい良い3Dシーンのフォーマットなんだけど、「色は全てsRGB色空間の値だ。画像ファイルに色空間の指定があっても無視しろ」のところで、ウッってなるゲーム屋さん多そう」 / Twitter
FadisさんはTwitterを使っています 「色、「FF0000が赤です」みたいなのWeb屋の色の理解を見ると「色、なんて簡単なんだ」ってなるし、CIE XYZ色空間の少しでも大きな範囲を埋める為にここ10年くらいディスプレイ屋がやってる努力を見ると「色、なんて難しいんだ」ってなる」 / Twitter
FadisさんはTwitterを使っています 「すごく見たくない色の表し方になるけど、Webにwide color gamutがやってきたとき、既存のスタイルシートの意味を壊さずに拡張するとなると本当にこういうアレになるのかもしれない…」 / Twitter
nikqさんはTwitterを使っています 「scRGBに拡張して#-FE+FF-4Cみたいな表記を許せばXYZすべて表記できるようになる…!」 / Twitter
nikqさんはTwitterを使っています 「ただこれだと高輝度が表現できなくてさみしい」 / Twitter
福嶋 美絵子(はらぺこ翻訳者)さんはTwitterを使っています 「@ishiimark_sign @yoh7686 そういえばゲームパブリッシャー大手のElectronic Artsには色覚問題を含めアクセシビリティを扱う役職があるようで、へえと思った記憶があります https://t.co/LRprJrMMbe」 / Twitter
福嶋 美絵子(はらぺこ翻訳者)さんはTwitterを使っています 「EA Sportsのアクセシビリティ・リードの人が、PowerPointプレゼンを視力の悪い人や色覚異常のある人にも見やすくするための配色やフォント設定をまとめたカードを公開しています。https://t.co/V6rD3s7STO RGB値はスレッドの先でテキストでも書き起こしてくれてる」 / Twitter
Karen StevensさんはTwitterを使っています 「I'm currently having these cards delivered to everyone in the studio. It took many iterations of colors before those in the studio with Protanopia, Deuteranopia, and even the rare Tritanopia, could see all colors distinctly, yet keeping the shades close to colors already favored. https://t.co/KeNFojOeNo」 / Twitter

Little CMS – Great color at small footprint
Color Tool - Material Design

Project Zero

Project Zero: Drawing Outside the Box: Precision Issues in Graphic Libraries
Project Zero: Heap Feng Shader: Exploiting SwiftShader in Chrome
Project Zero: The Curious Case of Convexity Confusion
Project Zero: The Great DOM Fuzz-off of 2017
Project Zero: 365 Days Later: Finding and Exploiting Safari Bugs using Publicly Available Tools
Project Zero: Notes on Windows Uniscribe Fuzzing
Project Zero: One font vulnerability to rule them all #1: Introducing the BLEND vulnerability
Project Zero: One font vulnerability to rule them all #4: Windows 8.1 64-bit sandbox escape exploitation
Project Zero: One font vulnerability to rule them all #3: Windows 8.1 32-bit sandbox escape exploitation
Project Zero: A year of Windows kernel font fuzzing #1: the results
Project Zero: A year of Windows kernel font fuzzing #2: the techniques
Project Zero: Enabling QR codes in Internet Explorer, or a story of a cross-platform memory disclosure
Project Zero: In-the-Wild Series: Windows Exploits

blog

UINavigationController - iPhoneアプリ開発の虎の巻
オブジェクト指向の呪いと、その避け方 - mizchi's blog
qune: 「コードを共通化するために継承しよう」なんて寝言は寝て言えとゆ話
S.F. Blog:ブレゼンハム・アルゴリズムの原典を読み、理解する - WebGLでレトロPCグラフィックスを楽しむ(23)
Apple、新フレームワーク「Swift UI」発表。簡潔なコードとドラッグ&ドロップでUIを構築、デバイスでの即時プレビュー。WWDC19 - Publickey
ソシオメディア | OOUI – オブジェクトベースのUIモデリング
Storybookでモジュール一覧を作る | フロントエンドBlog | ミツエーリンクス
OLE Drag & Dropを実装する - yohhoyの日記(別館)
Evolution of the Scrollbar
drawthe.net - Visioに頼らず綺麗なネットワーク構成図を手に入れる MOONGIFT
話題のGUIツールキットOrbtkを読む | κeenのHappy Hacκing Blog
消えゆくスクロールバー|3inowayosuke|note
✕はなぜ閉じるのシンボルなのか歴史を読み解く|みーた|note
UI開発の要素 — Overreacted
JSXが実はベターな解だったのではないか?|erukiti|note
今週の MYOS - 借り初めのひみつきち

GIGAZINE

QRコードを生成できるだけでなく「作り方」まで理解できる「Creating a QR Code step by step」 - GIGAZINE
元Appleの重鎮が指摘する「Apple製品から失われてしまったもの」とは? - GIGAZINE
世界中を巻き込んだブラウザ戦争と「ユーザーエージェント文字列」をめぐる複雑怪奇な変遷とは? - GIGAZINE
「ChromeはmacOS上でSafariの10倍もメモリを食う」という実験結果 - GIGAZINE
無料でウェブデザインの背景と文字の色を微調整しながら確認できるアプリ「Kontrast」 - GIGAZINE

infoQ

Vanilla JSの108の一般的なDOMタスク:HTML DOMプロジェクト
Crank: レンダリングを備えた新しいフロントエンドフレームワーク - 作者のBrian Kim氏に聞く
Brahmos -- コンカレントレンダリングを備えた、コンパクトなReact風UIフレームワーク
開発者向けの強力なブラウザであるPolypaneの作成者へのインタビュー
Flutter 2はWeb向けに本番環境対応しており、新しいプラットフォームを追加している
新しいSvelte NodeGuiでQtとSvelteを使用したネイティブデスクトップアプリケーションを作成できる
SpotifyのWebとデスクトップクライアントのコードベース統合への道のり
GoogleがAndroidマテリアルデザインを刷新し、UI Toolkit とAndroid Studioを改善

Wikipedia

Xerox Alto - Wikipedia

Qiita

Reflowを制するものはDOMを制す - Qiita
Webフロントエンドに従事するお前らはいい加減高頻度イベントとレイアウトとスタイリングの付き合い方を考えろ - Qiita
シングルファイル C/C++ ライブラリが便利すぎてやばい - Qiita
the Nothing itself nothings
nothings/stb: stb single-file public domain libraries for C/C++
nothings/single_file_libs: List of single-file C/C++ libraries.
MSE/PSNR vs SSIM の図解紹介 - Qiita
UX最強のベジェ曲線「κ-Curves」を完全に理解する - Qiita
Sixel Graphicsを活用したアプリケーションの御紹介 - Qiita
Flutter 1 → Flutter 2 で変わったことと今後【概要】 - Qiita
CanvasKit - (Skia + WebAssembly)を使ってみる - Qiita

Twitter

その他

histric-1

品川 高廣さんのツイート: "個人的には(よく出来た)Webフォームが一番ラクですね。Excelだとフォーマットが崩れたり、元からある文字が消えたり、入力内容がはみ出たり、TABキーで入力すべき所だけに移動出来なかったりする。プレーンテキストだと結局フォーマットを自分で作ったり余計な文章が必要だったりする。 https://t.co/dP4aE0CPZx"
いざてんさんのツイート: "まぁFirefoxが潰れてChromeだけになったらそれこそIE6の悪夢再来みたいなもんだしな……。(´・ω・`) / Latest topics > Firefox 57とかWebExtensions移行後のツリー型タブとかがクソとかゴミとか言われているのを見て思う事 - ou… https://t.co/WudNidXsXt"
Fadisさんのツイート: "いまどきのブラウザ、デバイスの加速度センサーの値をJavaScriptから読めて、加速度取れると正しく物理したくなるんだけど、JavaScriptでインタラクティブに物理はあまり現実的でなくて、シェーダで物理はWebGL2にならないと出力を浮動小数で取れなくてきびしい"
dynamis (でゅなみす)さんのツイート: "OSの通知で標準ブラウザの切り替えを求めてくるのが常識のようになってるのって変ですよね。 WindowsもMacもOS標準のブラウザに戻せと薦めてくるけど、非標準ブラウザもやり始めるとルール無用感が漂う。 WebにおけるOSのような検索エンジンでも切り替え薦めてくるしなー。 https://t.co/0Ox0Gr5SzD"
Brian Birtlesさんのツイート: "Now even Chrome is doing Windows notification spam 😕 https://t.co/oNl4aqo6DG"
Rockridgeさんのツイート: "「Chromeが登場した2008年にはブラウザの進化が止まっていて、イノベーションの阻害要因となっていたが、GoogleがChromeを世に投入してブラウザ技術が息を吹き返した」とする。先行するFirefoxがなかったことに……。 https://t.co/ckWda0sS7t"
すべてのウェブ・ネット関係者に読んでほしい! 及川卓也が解説する「ウェブの進化が支えるデータ社会」全文公開【iNTERNET magazine Reboot】 - INTERNET Watch
るくすさんのツイート: "バイナリアンたる者、任意のHTML5/ES6のコードを見たら瞬時にWebKit内部で使用されるC++クラス、メソッド郡を含めた動作説明ができねばならない。"
Rockridgeさんのツイート: "Pwn2Ownで脆弱性が発見されてから22時間未満でFirefox 59.0.1をリリースできた背景事情を説明した記事。複数のOSと90言語をサポートし、1800万行を超えるソフトウェアでこれを実現したところに意味がある。 https://t.co/l2J3r1xdI9"
愉快な生活送り太郎さんのツイート: "EPUBの標準化団体(IDPF)がEPUBのリファレンス実装として公開していたReadium-SDKがGPLからBSDライセンスになってた!!!!!!!!! ■BSD化のアナウンス https://t.co/NjlOQTKmzh ■github https://t.co/bj1AOe5J0E"
BSD Licensing for SDK
readium/readium-sdk: A C++ ePub renderer SDK
Rockridgeさんのツイート: "MicrosoftがWindows 10 April 2018 Update(build 17134)上でJetstream 1.1ベンチマークを用いて計測したところ、スコアが良いほうから順にEdge 17、Firefox 59、… https://t.co/P11N9CTWkf"
Hideyuki Tanakaさんのツイート: "みんな当たり前すぎて忘れてるかもしれないんだけど、ブラウザってURL入れてEnterを押すのは、プログラムをリモートサーバーから取ってきてサンドボックス上で実行する、というコマンドに他ならないわけなんだけども、案外そういう認識なかったりするのかなあ(´・_・`)"
K.Namba/ご注文は910ですか?さんのツイート: "HTML に従って描画されていく… "
Hideyuki Tanakaさんのツイート: "UI定義DSL… "
くいなちゃんさんのツイート: "「HTMLは構造を決め、CSSは見た目を決める」という原則がありますが、現代の多様な環境で凝った表現をすると無理があり、結局HTMLで見た目を作る黒魔術を使わざるを得ません。そんなときJavaScriptが「どうせ自分がHTMLもCSSも好き勝手に書き換えるから気にしないで!」と言ってくれるのが心強いです。"
Dai MIKURUBEさんのツイート: "ブラウザを立ち上げてアドレスバーにURL打ち込んでEnter押してからページが表示されるまでに (裏側で) 何が起こっているかわかる限り説明してみてください、前職の面接で何度か聞いたけど、やー、なかなか。そこからわかってそうなところを深掘りしたりするんだけど、全く掘れないことも割と"
Mikio Kiuraさんのツイート: "この質問面白そう!しかしエンター押したあと、キーボードがUSB接続だと仮定すると、エンターキーにつながるキーボード基盤の2つのポートが電圧Hになって、キーボードの中のUSBドライバを介してPC側にenterのキーコード13keypressイベントが送られます。そして…みたいに説明すると結構長くなりそう…… https://t.co/4Vhy0sr5Pj"
Kazuho Okuさんのツイート: "キー入力イベントがフォーカスのあたっているGUIオブジェクトに送られるにあたってどういうデータ構造通ってくるかとか、全く理解してないわー"
keiichiro shikano λ♪さんのツイート: "DNSとか経路探索は『プロフェッショナルIPv6』でいけるし、現代のWebに欠かせないSSL/TLSについても『プロフェッショナルSSL/TLS』があるので、ラムダノートの本でだいたいカバーできるのでは?(うそです。ブラウザのレンダリングに関するところは別の本でお願いします)… https://t.co/mfMjAYUePG"
渋川よしきさんのツイート: "ブラウザがつながるまでのやつ。ウェブ系の会社で期待されるであろう内容はReal World HTTPとかGoならわかるシステムプログラミングには書いたからな!よろしくな!DNSとか経路探索は書いてないからな!そこは別の本を読んでくれよな!"
Mantarohさんのツイート: "この間の Digital Publication Layout and Presentation のレポート。 https://t.co/j0CxtMNDpO Vivliostyle の村上さんのスライドが Vivliostyle を使った物だと言うのが感慨深い。 Pagination という痛いところを突かれて心苦しいけども…"
W3C Workshop on Digital Publication Layout and Presentation (from Manga to Magazines)
Kazuho Okuさんのツイート: "本当ならウェブブラウザのエコシステムにとって悲しいニュースだな。実質、市場にWebKit (Chromium) 系とMozilla系のたった2種類のレンダリングエンジンしか存在しないことになる… "

histric-2

Windows Centralさんのツイート: "Microsoft is building a Chromium-powered web browser for Windows 10 https://t.co/CloX43qdAc"
Microsoft is building a Chromium-powered web browser that will replace Edge on Windows 10 | Windows Central
Rockridgeさんのツイート: "Braveブラウザは一部のWebサイトでリーダーモードをデフォルト有効化することにより、高速化とプライバシー保護を実現できると主張。この機能をSpeedReaderと読んでいる。 / “SpeedReader: Fast and…” https://t.co/JpLjA0ysHp"
int $0x03@SNS部さんのツイート: "gnome3に地味な便利機能あったんだ。10進数でも16進数でも文字列選択して右クリックすると10進数と16進数での値とIEC 60027-2での表記が出る https://t.co/6MOfMRDVBP"
七誌さんのツイート: "VSCodeで全置換したとき、キャレットが動かないのが地味に便利だということに気付いた。"
アプリマーケティング研究所さんのツイート: "待ち時間が3倍になったのに、評価があがったエクセルマクロ。 A:処理中に砂時計を表示(2分)😟 B:処理を早回しでみせる(6分)😂 裏側で「何が起きているか?」を早回しでみせたら社内で絶賛された。体感時間が短くなったことと、プロセスの可視化による効果。 アリエリー教授の人生… https://t.co/7RfAB4vSLS"
KURODA, Michihiroさんのツイート: "@tanakh はじめまして。 3DCGIのOpenEXRファイルフォーマットが16bitFPが主流なのでそうなっています。 CGIのレンダリング時の演算自体は32bitFPのものがほとんどです。合成ソフトに限っては16bitFPのものがあったりします。"
Tsukasa #01 [要出典]さんのツイート: "@tanakh オフラインレンダリングでも出力で 32-bit float はあまり無かった気が。リアルタイムレンダリングだと最近主流の 16-bit float とか Xbox 360 なら 10-bit float というのも。ディスプレイの出力側は最近 10-bit 整数に基づく HDR… https://t.co/bOkmhjTMHV"
ドッグさんのツイート: "テキストベースの Linux デスクトップ環境すごい… テキストなので SSH でリモートから描画できる | ‘tombh/texttop: A fully interactive X Linux desktop rendered in TTY and streamable ov… https://t.co/aQJeubNwUS"
tombh/texttop: A fully interactive X Linux desktop rendered in TTY and streamable over SSH
Makoto Kato ︎︎さんのツイート: "IE6開発終わった時に、みんなAvalonやるから!ってことで開発チーム解散になったし、FlutterももともとChromeのメンバー多いし、なぜブラウザに飽きるとGUIフレームワーク作り出すのか"
Kunihiko Imaiさんのツイート: "UNIX の場合,改行コードとか行編集とかの typewriter 端末相当の機能はカーネル側で処理するけど,カーソル移動とか色とかの制御は curses ライブラリとか使ってユーザプロセス側で処理する. 歴史的理由なんだろうけど,今見るとキリが悪いよな."
Mantaray@Devさんのツイート: "RTLでもX軸方向は変わらないので、マウスイベント関連の実装がとても面倒なことに"
Kazuho Okuさんのツイート: "シェルのタブ補完、先頭一致だけじゃなくて中間一致も試すモードがほしい。git branch ... とか中間しか覚えてなかったりする"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyを初めて見た人から、「沢山のボタンやチェックボックスがあって、何をして良いのか分からない」と言われた。 そうかも。慣れきっていると気づかない視点は大事だ。 一方で現状UIに慣れた人にも違和感少な目で、エレガントに解決するのは、なかなか難しい。"
Nerry@さんのツイート: "実機でキー入力の反応が悪い。描画ロックのせいかな?"
Nerry@さんのツイート: "マウスは普通に動いてるしnoiz2bgがそれほど負荷高いわけでもないからキー入力だけレスポンス悪いのは不自然ϵ( 'Θ' )϶"
Nerry@さんのツイート: "ロックが中途半端だったからspinlockに変えたら早くなったϵ( 'Θ' )϶"
Nerry@さんのツイート: "ロック方法も悪かったけど1文字入力するごとに再描画必要な現在のコンソールの構造がそもそも悪い気がする"
mer2さんのツイート: "なにがどうやばいって、BlenderでモデリングしながらLooking Glassでモデリング中オブジェクトをリアルタイムに立体視で表示できちゃうんだよ。これはやばいやばいやばい。 #b3d… "
Manabu Uenoさんのツイート: "UIデザイン原則とUIデザインパターンを使えば、自然に高品質のUIを作ることができる。しかし次の事項にはデザイナーの創造力が必要で、これらがアプリの独自性となる。 ・オブジェクトをどのようなアレゴリーで概念づけるか ・オブジェクト一覧をどのような形式で示すか ・デフォルトをどうするか"
Manabu Uenoさんのツイート: "入力欄のラベルに「お名前」とか「ご住所」のように御の字をつけるのはおかしい。ソシオメディアでは、 UIはユーザーに帰属するものと考える。ユーザーが自分の意思を示すものだから御の字は不要、とクライアントに指摘している。しかしこの感覚を持たない人にわかってもらうのは難しい。"
Manabu Uenoさんのツイート: "多くの事業者は自分たちのシステムを自分たちに帰属するものとしてデザインしようとする。それをユーザーに使ってもらう姿勢だから、UIラベルに「へりくだり」を持たせようとしてしまう。その結果UIの主体が曖昧になる。ひいてはインタラクション全体がタスク指向になり、むしろ傲慢になっていく。"
Kazuho Okuさんのツイート: "ウェブブラウザがどのようにリソースをダウンロードするか(そしてどう最適化すべきか)、詳細な解説 / “Resource (pre)loading” https://t.co/1I5H6mfYu0"
Resource (pre)loading

histric-3

渋川よしきさんのツイート: "描画エンジン(Skia)が即時モード、レンダーツリーは保持モード、DOMは保持モード、仮想DOMの生APIは即時モード、仮想DOMのコンポーネントは保持モード。最近、こういう多層構造がコーディングのシンプルさと性能の両立に重要なんだろうなって気がしてる。"
ゆるsyuu1228△さんのツイート: "ブラウザのタブ大量に開いとくとなんとなく24CPU消費してくれんかね"
Makoto Kato ︎︎さんのツイート: "Gecko (w/ Stylo)だとrestyleでもう使ってる。"
Mantaray@Devさんのツイート: "left / right 多用しているアプリは RTL 環境だと致命傷ということがよくわかった。"
ぽんこつ@本骨システムさんのツイート: "Single Page Applicationだとありがちだとおもうんですが、ブラウザで開いて、ブラウザ側は読み込みが完了している表示になっているにもかかわらず、別リソースの読み込み待ちで一瞬白くなることがあって、あれ良くないんじゃないかとか"
tkrさんのツイート: "そのうちhtmlレイアウトエンジンをwasmにコンパイルしてcanvasに描画する人とか登場しそう"
tkrさんのツイート: "html in html"
tkrさんのツイート: "s/レイアウト/レンダリング"
品川 高廣さんのツイート: "ブラウザ標準の「戻る」「閉じる」操作で対処可能な「ブラクラもどき」より、「右クリックは禁止です」というポップアップを出すサイトや、「戻る」「進む」操作で正常な画面遷移ができなくなる等冪性のないサイトなど、ブラウザ標準の操作を妨害するサイトの方が遥かに有害。"
dynamis (でゅなみす)さんのツイート: "EdgeがまともなUIを備えるようになったらWindowsではEdgeからChromiumに乗り換える意味って何になるんだろう。"
弩.net@Coqやっていきさんのツイート: "そのOSの標準的なダイアログの出し方・UIガイドライン・認証・バックグランドタスクの投げ方を踏襲しているアプリは信頼感が高い。逆に謎カスタマイズしているアプリは不審。そして行政や日本の大企業が出して来るアプリはだいたい後者。"
弩.net@Coqやっていきさんのツイート: "明らかにOSやネットワークプロトコルやその他各レイヤーの機能を活かさず筋の悪い提案を出してきた人を見たら「ああ、この人は何にも知らずに喋ってるんだな」って判断するよね。普通。"
弩.net@Coqやっていきさんのツイート: "典型的な例が、行政や大企業が出してくるスマホアプリは絶対OSの標準UIコントローラを使ってないんだよ。標準UIが完璧とは言わないけど、その辺の素人の考えよりかはよっぽと、タップ・フォーカス・キャンセル・disableの視覚効果が練られてるんだよ。特に理由がないならそのまま使うべきなんだよ。"
Masaru Iritaniさんのツイート: "Outlook で電子メールをカレンダーにドラッグ アンド ドロップすると簡単に予定を作れることを知ってから、作業依頼の電子メールはすぐ予定にして時間を確保するようにしています。"
Fadisさんのツイート: "Wio: Plan9のウィンドウシステムRioをWaylandで再現したものらしい。Rioは個々のウィンドウを分離された名前空間で処理するが、WioはWaylandのCageを使ってこれを再現。Rioはウィンドウに対する操作をファイル操作で行えるが、WioはFUSEでこれを再現 https://t.co/QhCoedseWi"
Wio: Plan 9's Rio Windowing System Re-Implemented As A Wayland Compositor - Phoronix
島鉄雄さんのツイート: "GTK4 で GSK(GTK Scene Graph Kit)が導入されたけど、どの程度のものか分かってなかったけど、スクショを見たら本当にシーングラフになってたw GTK Node Editor とかたまらん! 今までも階層構造にはなってたけど、より明確に分離されたって事だね。 https://t.co/kmfSky3OvN"
GTK 3.96.0 – GTK Development Blog
chikoskiさんのツイート: "WebAssemblyコンパイラの作り方。オレオレ言語を処理して、WASMを出力するコンパイラを作っている。一般的なコンパイラの作り方の説明になっているので、そっち方面の勉強に良さそう。https://t.co/nEJFyiZOTz"
Build your own WebAssembly Compiler
chikoskiさんのツイート: "興味深かったのはグラフィックスの扱い。JSで実装された描画用の関数群でグラフィックスの操作をするのが、よくある手法なのに対して、このコンパイラでは線形メモリの一部をVRAMとして扱うことで描画する。もしかしたら一括転送できて、パフォーマンス的にもいい手法なのかもしれない"
島鉄雄さんのツイート: "最近のLinux用GUIアプリはWayland上で動くように作られている(GTK+3とか) 古いX11アプリもWayland Clientとして実装されているXWaylandを通して動かす事が出来る 要するに描画を担当しているWayland Compositorの Windows版があればWSL上で動く全てのGUIアプリを動かす事が出来る。 誰か実装してくれ!… https://t.co/oK1IzFAU8z"
島鉄雄さんのツイート: "その図を見ると分かるように、Wayland CompositorがLinuxに激しく依存してるように見える。 実際はWayland Protocolとして分離されててUnix domain socketで転送してるだけだから、Compositorはプラットフォームに関係無く実装出来るはず。"
島鉄雄さんのツイート: "Linux上で動くWayland Compositor自体はマイナーなものまで含めると山ほどあるけど、Windows版が無いのは、それらがWayland Compositorのリファレンス実装を元に作ってて、それが激しくLinuxに依存してるからだろうと思われる。 細部までちゃんと理解してフルスクラッチから作る必要があるんだよね。"
島鉄雄さんのツイート: "emacs-develで--with-cairoはもうexperimentalじゃないっていうのがあったけど、WaylandにはXにはあったライン等の描画APIが一切無いので、自前で描画する必要があるけど、それをcairoに投げる事で相当楽が出来る。 後はウィンドウ周りのコードをWaylandのAPIを使う事でWaylandで動くようになるはず。"

histric-4

Taku KudoさんはTwitterを使っています: 「chromebook + remotedesktop が快適すぎてもうこれでいいんじゃないかと。ローカルにログインすると同時にほぼ透過的にリモートにつながるし、セッションが保持されているので作業が途切れない。」 / Twitter
FadisさんはTwitterを使っています: 「Vulkanの実装がVK_EXT_direct_mode_displayをサポートしている場合、ウィンドウシステム上でVulkanのレンダリング結果を表示するのではなく「ディスプレイ丸ごとよこせ」が出来る。奪い取ったディスプレイはウィンドウシステムの管理から外れてどんなフォーマットで通信するか自由に選べるようになる」 / Twitter
ゆきさんはTwitterを使っています: 「W3CにDanmakuってドキュメントがあったけど、「弾幕のユースケースと要件について」ってマジ? https://t.co/67BJ2s1Iqk https://t.co/5gUlIONRqc」 / Twitter
弹幕规范
島鉄雄さんはTwitterを使っています: 「GUI は好きだが、マウスは嫌いだ。 コマンドラインじゃなくて GUI で出来るならそっちの方が絶対良いけど、イコール、マウスを使うではない事だけはアプリ制作者に言いたい。 要するにリッチな GUI をキーボードだけでサクサク動かせれば最高。」 / Twitter
島鉄雄さんはTwitterを使っています: 「Firefox も Vimium (Vim キーバインドで Web ページが読める)を使って、ほぼキーボードだけで操作してる。 Editor は Emacs だけど、ブラウザのキーバインドは Vim で快適。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「BTRONの実身/仮身モデルとWindowsのOLEって似てるんじゃないかと思って検索したらこんな記事があった。 "TRON Project と BTRON の概要" https://t.co/l3CGMOBCO6」 / Twitter
TRON Project と BTRON の概要
社会人でもOSを作りたいさんはTwitterを使っています: 「いやー,先行研究の調査って大事だなあ。OLEが結構やりたかったことに近いぽい。BTRONの実身/仮身モデルを借用したようなアーキテクチャ。」 / Twitter
杉本啓さんはTwitterを使っています: 「昨晩、渡辺さんとのんで、この図の左がPOA、右がDOAなんです、という話をしました。 POA:プロセス中心アプローチ DOA:データ中心アプローチ 設計を真剣に考える人々は、COBOLでコードを書きながら、今の大多数のエンジニアより洗練された設計観を築いていたんですね。 https://t.co/FBRkCJezTK」 / Twitter
Manabu UenoさんはTwitterを使っています: 「ユースケースにただ対処するだけだと、全体の情報量はデザインの分だけむしろ増えてしまう。顕在化した問題を縦に貫くことで、潜在的な要求への準備ができる。 https://t.co/WhhLr7Nwo9」 / Twitter
Manabu UenoさんはTwitterを使っています: 「これはりんご皮むき機と果物ナイフの話と同じ。 https://t.co/PYyI6hXfvr」 / Twitter
杉本啓さんはTwitterを使っています: 「DOAの人々が、設計に関する経験・知識が継承されなかったと嘆くのは、ある意味、もっともな嘆きではあるんです。言葉が違うから伝わらないのが惜しい。POAは今の言葉で言うならユースケース中心、DOAはアーキテクチャ中心なんですね。」 / Twitter
杉本啓さんはTwitterを使っています: 「渡辺さんはじめDOAの人がOOを批判するのは、OOでの設計が、ともすればユースケース中心になってしまっていることに起因する面が強いと思っています。OO全体への批判としては、それはあたらないと思いますが、OO支持者によって現に実践されている設計の多くに対しては妥当な批判でしょうね。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「あー、ソースコードもこういう事やな。悪い意味でハッキーな人は左側のアプローチしかやらない。」 / Twitter
しめじさんはTwitterを使っています 「Firefoxのアドオン「ツリー型タブ」の良さ① タブをブラウザの上下ではなく左右に置ける(横長ディスプレイを有効活用&タブが増えても幅が変わらずタイトルが読みやすい)」 / Twitter
しめじさんはTwitterを使っています 「Firefoxのアドオン「ツリー型タブ」の良さ② タブグループをツリー構造で管理できる(調べものした時に検索結果の各ページをホイールクリックでツリーにぶら下げたり、派生した調べ物でツリーを分けられる。ツリーはまとめて閉じたりブックマークも可能)」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「OCaml 用並行 GUI ツールキットを作った.各 UI 部品は自律したプロセスとして実現されていて,チャネルを経由して通信しあうことで協調し全体として UI を構成する.通信部分は ocaml-csp を使用.バックエンドは GTK+ または Direct 2D. https://t.co/l2oNniLM7K」 / Twitter
hatsugai/Guedra: Concurrent GUI toolkit for OCaml
hatsugai@PRINCIPIAさんはTwitterを使っています 「図面を作る基礎にできる汎用の Draw widget を作った.ドメイン特化図形言語を定義し描いた図面をデータ構造化して処理するというよくある用途向け.UI から処理まで OCaml で統一できる. 図形オブジェクトは関数で表現しており draw widget とは CPS で通信する. https://t.co/csJj3PC6s1」 / Twitter
hatsugai/Guedra-draw: Draw widget for Guedra
hatsugai@PRINCIPIAさんはTwitterを使っています 「というわけで,1つはプロセスでチャネル通信,もう1つは関数で CPS です.楽しそうに遊んでいるグループから少し離れたところで,ちょっと変わった一人遊びをしてる子供みたいなものです.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「Scheme 版では R6RS record の継承を使ってオブジェクト指向システムを作って,その上で図形を表現してた.図形オブジェクトの実現と継承は相性がいいので,その点ではそちらの方がよかったけど,CPS にはしなかったので呼び返し問題には気を使わなければならなかった.」 / Twitter
島鉄雄さんはTwitterを使っています 「lsp-mode が重い原因は、単純にありとあらゆる処理が非同期になってないから、どこかで UI をブロックしてしまうからなんだよね。 取り敢えず結論としては、UI に絡むプログラム(含むテキストエディタ)を作る場合、libuv かそれに類する処理を実装して、あらゆる API を非同期処理にしないと駄目だ。」 / Twitter
島鉄雄さんはTwitterを使っています 「・コードの重複を避ける(ただし過度な統合は悪) ・if 文を極力書かない ・実行タイミングが違う関連処理は状態遷移で纏める という感じで咀嚼した。 しかし、React のフックは Emacs に昔からあるフックとほぼ同じもんだな。(GUI ライブラリの signal とかと一緒) (続く) https://t.co/btcb0DlTQH」 / Twitter
inductorさんはTwitterを使っています 「神資料だ https://t.co/HQ6gQ9NkkW」 / Twitter
オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling - Speaker Deck

島鉄雄さんはTwitterを使っています 「更に Emacs には advice という強力な機能があって、これで全く関連が無い他人の書いたコードを、システムの奥深くの機能に追加や変更が出来る。 (ちなみに CLOS ではメソッド結合で同じ事が出来る) advice が有ればコンポーネントとか高尚な概念が無くても、ゆるーい結合で何でも出来るって事だな。」 / Twitter
お気楽 CLOS プログラミング入門
Common Lisp Object System - Wikipedia
島鉄雄さんはTwitterを使っています 「この場合は、ライブラリのレベルでボタン押下を trigger と press に分けて保存するようにすれば、それほど難しい問題ではなくなる。 trigger → 前のフレームに離されていて現フレームで押された(次のフレームも押されてたら press へ移行) press → 前のフレームから押されっぱなし https://t.co/TxGNxAEEXw」 / Twitter
Kumagai, MさんはTwitterを使っています 「組込プログラミングの課題として、   「上上下下左右左右BA」の判定 というのは、わりとよい題材だと思う。 ビットの入出力くらいあれば(ミリ秒時刻変数もほしい)、あとは言語固有の知識をあまり必要としない、現実を見据えたアルゴリズム、の話になるから。」 / Twitter
FadisさんはTwitterを使っています 「The Qt Companyが、短期的なキャッシュが必要になった為Qtの将来のバージョンではオープンソース版を廃止するかもしれない、とした事をうけて、KDE及びQtを利用するオープンソースソフトウェアの開発者達がQtをforkする方法について議論を始めている、という話 https://t.co/z1KWjdC8HK」 / Twitter
More Open-Source Participants Are Backing A Possible Fork Of Qt - Phoronix
FadisさんはTwitterを使っています 「尚Qtが過去にforkした事例としては、KDE3をforkして現代のLinux環境でも使えるように保守し続けているTDEの人達が、KDE3が依存しているQt3を使い続けられるように独自に開発を続けているTQtが存在する」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「@hanabimusi 英語がわからなくても、オフィシャルのこの辺の情報はハンズオン的に追っかけていくだけでも基本はわかるんじゃないかと思います。次のステップは、とりあえず入門書系ですかね。2019年後半以降に出てる日本語の本ならとりあえず最新の情報にはキャッチアップできるかと。 https://t.co/I7y6GzQN5Y」 / Twitter
Write your first Flutter app, part 1 - Flutter
Takashi KawasakiさんはTwitterを使っています 「@hanabimusi 英語でよければ、最初のチュートリアルの続編みたいな感じで、こういうのもあります。カッコいいレイアウトをガシガシ作っていける楽しさがわかるとモチベーションになると思います。 https://t.co/ut7etEzK99」 / Twitter
Building layouts - Flutter
FadisさんはTwitterを使っています 「ソニーが組込機器にリッチなGUIを乗せる為に、Flutter(Google製のGUIツールキットで、主にスマートフォンやFuchsiaで使われる)をWayland上で動くようにした、という話。Qt、GTK、Webkit等いろいろな選択肢を試したが、これが丁度いい綺麗さ、開発の容易さ、軽さだったらしい https://t.co/3uIQ0hJwb6」 / Twitter
Sony Engineer Talks Up Using Flutter + Wayland For Their Embedded Interfaces - Phoronix
クチコミのない大陸さんはTwitterを使っています 「マウスポインタとかいう思考停止と妥協の産物が高精細なディスプレイで見つけにくくなって廃れるの、技術の勝利なので無駄な機能で延命を図るのをやめ、素直に新しいパラダイムを作って普及させて欲しい」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Javaや.netのようなクソデカランタイムもつらければ、dockerやsnapやflatpakのような全部入り環境も辛いし、Electronみたいなブラウザー組み込みもつらいし、本当に世の中は根本的な問題解決を取らずに場当たり的な対処出回っている。」 / Twitter
kuremaさんはTwitterを使っています 「@masayuki_koba それはXamarinの標準的な仕様のはずです。 dotnetで動いている都合上ランタイムを全部同梱していて、拡張子はdllです。 容量がでかいってのはXamarinのいくつかある欠点の一つですね。 Blazorとかだとブラウザにも大量のdllが落ちてきます。 別にWindows用のバイナリが添付されてる訳ではありません。 https://t.co/aczzSXrTsw」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「根本的な問題解決とは、ランタイムはシステムが管理する。わざわざ依存全部zipにまとめて依存問題解決とはしない、ブラウザーは組み込まない。」 / Twitter
FadisさんはTwitterを使っています 「多くのソフトウェアがQt6に移行していない中でQt5のオープンソース版の開発が終了した事を受けて、Qt5を恐らく最も使い込んでいるKDEプロジェクトが「Qt5のオープンソース版の最後のバージョンに対するセキュリティフィックスとバグフィックスの提供」を開始したらしい https://t.co/TmYIxQrhRq」 / Twitter
KDE Now Maintaining Their Own Set of Patches For Qt 5 - Phoronix
Yao Tadahito(八尾 唯仁)さんはTwitterを使っています 「QtはAndroid対応がやばい。Qt6は未実装モジュールが多くて移行できないしQt5はこのままほっとくとSDK30への対応期限迎えてアプリがリリースできなくなる。この辺は多分KDEでもメンテできない。」 / Twitter

レガシー

Masaki OhashiさんはTwitterを使っています 「SIerとかの「画面とDB直結おじさん」はいつまで存在するのだろうか…」 / Twitter
Masaki OhashiさんはTwitterを使っています 「こういうおじさんが決定権を持ってると、あらゆるOOPもフレームワークもMVCもDDDも崩壊してしまう」 / Twitter
Masaki OhashiさんはTwitterを使っています 「画面→SQL→DBみたいなおじさん。」 / Twitter
Masaki OhashiさんはTwitterを使っています 「直結なので抽象化やモデリングがまったくできない…」 / Twitter
Masaki OhashiさんはTwitterを使っています 「コントローラからいきなり生えてるSQL」 / Twitter
Masaki OhashiさんはTwitterを使っています 「「クラサバ系MVC」」 / Twitter

クエリー

κeenさんはTwitterを使っています 「このクエリいいな。ASTに対して同じようにクエリ投げたい。 使いやすさを重視したHTMLスクレイピングライブラリを作った - 純粋関数型雑記帳 https://t.co/gmVijUiQqI」 / Twitter
使いやすさを重視したHTMLスクレイピングライブラリを作った - 純粋関数型雑記帳
わさびずさんはTwitterを使っています 「Egisonじゃん https://t.co/XljT4RUGou」 / Twitter
κeenさんはTwitterを使っています 「なるほど?つまりEgisonでコンパイラを書けば良い?」 / Twitter
わさびずさんはTwitterを使っています 「@blackenedgold 実際かなり書きやすいと思います 特にpeephole的な処理は瞬殺できます」 / Twitter
EgisonさんはTwitterを使っています 「最新の論文の3.4.1節にツリーに対するパターンマッチについて書いています.少ないパターンコンストラクタを組み合わせていろいろなパターンが書けるようになっています.ぜひみてみてください! https://t.co/CWqBL3zik5 https://t.co/FFSTkkkX5I」 / Twitter
Functional Programming in Pattern-Match-Oriented Programming Style

API

Manabu UenoさんはTwitterを使っています: 「Apple, Google, MS, Amazon, Facebook, Twitter 等々、いろんなベンダーの API を触っていると、それぞれの企業の本当のデザインセンスが見えてくる。サービスの中の「インターフェース」がどのようにデザインされているか。その組織のエンジニアがどれぐらい「道具づくり」に長けているか。」 / Twitter
Manabu UenoさんはTwitterを使っています: 「よくできた API は、サービスの無為な道具的存在性がちょうど良い粒度で抽象化され、サードパーティに自己拡張イリュージョンを与える。悪い API は、技術者の自意識がコンプレックス(複雑性)としてそのまま露出していて、何をするにも使役感が伴う。」 / Twitter
Manabu UenoさんはTwitterを使っています: 「UI(ユーザー向け)にしろ API(プログラマー向け)にしろ、I(インターフェース)の在り方が製品そのものなのである。そして良いインターフェースは、何かを「させる」ものではなく、何かが「できる」ようにデザインされているのである。」 / Twitter

Mozilla

Quantumプロジェクト

Quantum CSS

5x

Rockridgeさんのツイート: "Quantum CSSはFirefox Nightly 56でデフォルト有効化される見通し。 / “2017-Q2-Goals#Astley_Chen” https://t.co/fy6DWNZ3OP"
Rockridgeさんのツイート: "Quantum CSS(Stylo)がFirefox Nightly 56にデフォルト無効で投入される日は近い。まずはLinux向け64bit版とWindows向け64bit版がターゲットになるという。 / “Stylo bit…” https://t.co/1oVpBX6GZi"
Rockridgeさんのツイート: "デスクトップ版Firefox Nightly 56においてQuantum CSSがデフォルト無効で投入されたことを踏まえ、コミュニティにテストを呼びかけている。Firefox 57リリース版でデフォルト有効化する予定である旨も公式… https://t.co/ibTPG1M84i"
Rockridgeさんのツイート: "Fx56:macOS版NightlyにQuantum CSSがデフォルト無効で投入されたのは、このバグの修正による。 / “1379339 - Enable stylo on macOS automation builds” https://t.co/RL6ko4h7xY"
Rockridgeさんのツイート: "Firefox Nightly 56ユーザーの20%を対象にQuantum CSSをデフォルト有効化する実験が進行中。参照:https://t.co/UpEheT0DiS / “Firefox/Channels/Meetings…” https://t.co/F7P61nUy5R"
Rockridgeさんのツイート: "Firefox Nightly 57ユーザーの80%を対象にQuantum CSSをデフォルト有効化する実験が進行中。参照:https://t.co/uQOn5H5ASH / “Chris Petersonさんのツイート: "@…” https://t.co/81uTquiudR"
Rockridgeさんのツイート: "Quantum CSSはRust言語製の新CSSエンジンを開発するプロジェクトであり、その成果はFirefox 57に投入される。エンジンはServoの並列処理とGeckoのルールツリーを採用し、WebKit/Blinkから着想を… https://t.co/CFvG9OZQ6O"
Rockridgeさんのツイート: "Fx57:NightlyチャンネルでQuantum CSSがデフォルト有効化。これまではNightlyユーザーの80%で有効化するテストが行われていたが、以後は100%有効化される。参照:… https://t.co/lehGXM9JXn"
Rockridgeさんのツイート: "Quantum CSS(Stylo)がAndroid版Nightly 58にデフォルト無効で投入予定。Nightly 59でデフォルト有効化の見通し。apkサイズが1.6MB増える問題があり、Beta版以降への投入についてはスケジ… https://t.co/JwBmoDT9nT"
Rockridgeさんのツイート: "Quantum RenderはFirefox 59に間に合うように、当初の段階で実装される機能を限定するらしい。 / “WebRender Project Status Update - Friday October 27th” https://t.co/nhSPqbN9Ba"

6x

Rockridgeさんのツイート: "Fx60:リーダーモードでもQuantum CSSが効くようになった。 / “1406274 - stylo: Enable stylo for about:reader” https://t.co/POKcSz8OXm"
Rockridgeさんのツイート: "Fx60:Quantum CSSをドメイン単位で無効にする機能を削除。Fx57のリリース後、無効にしたドメインはなかったとのこと。 / “1426223 - stylo: Remove Stylo domain blocklis…” https://t.co/j5ZtHHcvQh"
Rockridgeさんのツイート: "Fx60:Quantum CSSがFirefoxの親プロセス(chromeプロセス)にも適用されるようになった。 / “1417138 - stylo: Enable stylo-chrome by default” https://t.co/l7qkt6cSVI"
Rockridgeさんのツイート: "Fx60:このバグが修正されたことで、Quantum CSSがFirefoxの親プロセス(chromeプロセス)に適用される際に本来の効果を発揮できるという。 / “1375913 - stylo: re-enable the …” https://t.co/aU6zDiHovv"
Rockridgeさんのツイート: "Fx61:Quantum CSS(Stylo)による置き換えが完成したため、Geckoの旧スタイルシステムは削除された。参照:https://t.co/qa6SYLQJ5Q / “1447358 - Unifdef the ol…” https://t.co/IviwpSKNYo"

Rockridgeさんのツイート: "Quantum CSSがFirefoxのすべてのプロパティをサポートした。Nightlyチャンネルにデフォルトオフで投入される日も近い。参照:https://t.co/zq2Z5xQDum / “All properties i…” https://t.co/Abn2BR5N5o"
Rockridgeさんのツイート: "Quantum CSSの開発においてfont-sizeの実装に苦労した話。いろんな単位をサポートしなければならないうえ、たとえばmediumが何を指すかはフォントの系統ごとに変わってくる。ルビやMathMLでの調整も必要だ。 https://t.co/2Tb21cStTy"
Font-size: An Unexpectedly Complex CSS Property - In Pursuit of Laziness
Rockridgeさんのツイート: "Quantum CSSのCSS解釈などがGeckoと違う点を列挙。 / “Firefox Quantum 57 for developers - Mozilla | MDN” https://t.co/jxRGHYurWB"
Firefox Quantum雑感 - Mozilla Flux
Firefox QuantumでThe Book of Mozillaも新章へ - Mozilla Flux
Rockridgeさんのツイート: "Quantum CSS(Stylo)は8.5万行のRustコードで構成される。Geckoの同等システムは16万行のC++なのでコンパクトに。Firefox搭載への取り組みは2015年に開始された。並列処理によるパフォーマンス向上を… https://t.co/3gjQxjNrbL"
Firefox Quantum高速化の一翼を担うQuantum CSS - Mozilla Flux
Rockridgeさんのツイート: "Firefox Quantumのリリース時に達成できたのは粒度の粗い並列処理のみ。今後はQuantum CSSのような粒度の細かい並列処理をFirefox全体が行えるようにし、CPU・GPUのマルチコアをより生かしていく。Quan… https://t.co/UsFu70H2KP"
Rockridgeさんのツイート: "Quantum CSSにRayonと呼ばれるRust言語製のデータ並列性ライブラリが使用されている。また、フォントレンダリングシステムのPathfinderが将来のFirefoxに統合される旨が明言された。 / “Fearles…” https://t.co/InWBJXwuJj"
Rockridgeさんのツイート: "少数のチームでQuantum CSS(Stylo)を開発した際の苦労話。StyloはGeckoを段階的にRust化していくプロセスの中で、マイルストーンとなる。 / “::bholley - Boiling the Ocean,…” https://t.co/oNZAWrOkfc"
超高速エンジンの内部:Quantum CSS(別名Stylo)- 前編 | プログラミング | POSTD
超高速エンジンの内部:Quantum CSS(別名Stylo)- 後編 | プログラミング | POSTD
azuさんのツイート: "Firefox CSSのパースが並列化されたのか "1346988 - stylo: Consider parallelizing CSS parsing" https://t.co/1i0XqJvW9Q"

Quantum Flow

Rockridgeさんのツイート: "Quantum Flowの各チームが力を入れている分野について。DOMではタスクのスケジューリング、JavaScriptではCacheIRとGCのスケジューリング、Layoutではリフローのパフォーマンス、Graphicsではディ… https://t.co/xVghGZrUz1"
Rockridgeさんのツイート: "Quantum Flowの成果が出始めている。Firefox Nightly 55では起動速度が改善され、セッション復元に要する時間が約5分の1になったという。 / “Quantum Flow Engineering Newsl…” https://t.co/fVE0Sw4FS6"
Rockridgeさんのツイート: "Quantum Flowプロジェクトの成果に関するスライド。2017年8月15日時点のFirefox Nightly 57は、Speedometer v2のスコアがFx54の倍近くまで上昇している(9枚目)。同スコアをChrome… https://t.co/M4gfB6w2Yx"
Quantum Flow - Status 2017 08 28 - Google スライド
Rockridgeさんのツイート: "Quantum Flowプロジェクトの中でプロセス間通信(IPC)の非同期化が進められたことによって、Firefox Quantumでは、フレームレートの制約が通常よりも厳しいWebVRにおいて、Fx55との比較でも処理が滑らかに… https://t.co/ve9hxFLGTj"
なかのん&マジックさんのツイート: "Quantum Flowのための最適化で設計が綺麗じゃなくなっていくのはなんかモヤモヤするものがある。"
なかのん&マジックさんのツイート: "そーいや去年から対策やってるQuantum Flowのテストケース<https://t.co/WGZwbbDB44>、Firefox NightlyのWindows版では20msだけど、Android版をZenPad S3 10 Z500KLで走らせたら200msもかかってた。やっぱり、モバイルって遅いな。Chromeに圧倒的に負けてるケースなんだけど、Chromeでも10倍以上遅い。"
なかのん&マジックさんのツイート: "エディタ周りはもうこれ以上削れるところ無いかなって感じにはなってきた。まだ、Selectionの方は改善できそうだけど。"
なかのん&マジックさんのツイート: "ただ、私のカバー範囲だと、どうやってもChromeの速度には到達できないんだよな。"
なかのん&マジックさんのツイート: "今日のNightlyでprofileとるとこんな感じ: https://t.co/Vw6Z7IBjq1"
perf.html
なかのん&マジックさんのツイート: "あー、でも、Surface Book 2でも70msぐらいかかった。Browadwell-Eなんでシングルスレッドの動作速度はそこまで高速じゃないんだけど、単純にデスクトップ機のCPUは高速だったか。 https://t.co/AXrX73dvyQ"
perf.html
Rockridgeさんのツイート: ""Quantum Flow 2018"というプロジェクトが始動する模様。 / “WeeklyUpdates/2018-04-09 - MozillaWiki” https://t.co/mBbCMFPa8I"
なかのん&マジックさんのツイート: "Quantum Flowはむしろ、低スペックな方が恩恵受けやすいと思うんだけど、レス付けてる人は何のことを言ってるんだろう(実測でどうかは知らない。例えば極端にメモリがない環境とか)。 https://t.co/LANQiIt2ID"
なかのん&マジックさんのツイート: "Quantum Flowの一番のポイントはやらなくて良い処理はやらないようにしようってことなんで。あと、バージョンアップに伴い、ビルド環境もアップデートされていくんで、コンパイラの最適化の違いもあると思う。"
なかのん&マジックさんのツイート: "やらなくて良い処理を何でやってたのか、あるあるなのは、 nsAutoTArray<RefPtr<nsIFoo>> temp(original); for (auto& item : temp) { item->DoSomething(); } ってのがあったら、original.IsEmpty()を先にチェックするようにしてnsAutoTArrayの生成を回避したりとか。"
なかのん&マジックさんのツイート: "久々にQuantum Flowな修正を年末のレビューリクエスト飛んでこない時にやってみた。Selectionの変更時や、エディタでの編集時にヒープに確保してたContentIteratorをスタックに置けるようになったんで、特にmacOSで地味な速度アップしてるはず(実験はしてない)。"
なかのん&マジックさんのツイート: "TextEditRules/HTMLEditRulesって、ヒープに常に確保されてる必要があるんだろうか。例外を除けばそのメンバはEditActionをハンドリング中にスタックにだけで居れば良いような気がする。 #もずでぶ"
なかのん&マジックさんのツイート: "GeckoはSelectionとnsRangeの速度を改善すると効果が大きいというのが経験的にある。なにしろ、選択範囲(キャレット含む)が変わる操作を何かするたびに処理が1回から多いときは3-4回も走るから。 #もずでぶ"
なかのん&マジックさんのツイート: "Webアプリ書いてる人も、Selectionが変化する処理を無駄に行わないようにすると結構アプリのパフォーマンス変わってくると思う。どうしてもSelection/Rangeのパフォーマンス向上には限界がある。"
なかのん&マジックさんのツイート: "DOMのRangeってどのブラウザ発祥なんだろ。ちょっと親切すぎるせいでパフォーマンスが出ない仕様なんで、なかなかちょっと今のWeb向きでは無いように思う。"

Quantum Render(WebRender)

WebRender

dynamis (でゅなみす)さんのツイート: "servoとして実験していたレンダリングエンジンの成果の本命であり、Firefoxレンダリングエンジン最大のアーキテクチャ変更であるWebRenderが遂にリリース。 まずはNVIDIA GPU搭載のWindows PCユーザ(4%)がターゲットでデフォルト有効に。 https://t.co/YRcljA9wwU"
Graphics Team ships WebRender MVP! – Mozilla Gfx Team Blog
dynamis (でゅなみす)さんのツイート: "最近のIntelかAMD GPUを搭載したデスクトップWindows 10やLinuxではIntel統合GPUs with Mesa 18.2以降を4K未満の解像度で使ってる場合もテストしてるから、設定で有効化してみるのも良いかも。"
dynamis (でゅなみす)さんのツイート: "WebRenderなにそれ美味しいの?的な人向けの長大なイラスト付き解説はこちら https://t.co/vImsoma2oT"
The whole web at maximum FPS: How WebRender gets rid of jank - Mozilla Hacks - the Web developer blog
dynamis (でゅなみす)さんのツイート: "どちらかというとパフォーマンス向上はこれからで、まずは落とさずにジャンク(描画の問題)を減らしたりOS依存性の低く最適化もして行きやすいアーキテクチャへの変更が最初の目標設定かな"
dynamis (でゅなみす)さんのツイート: "GPUによる分割並列処理が得意で極端なケースでは他のブラウザの4~10倍以上高速、スムーズに描画可能にはなるけどより一般的なケースにおいての評価は未発表かな https://t.co/9l6d27gZdZ"

ANGLE

Rockridgeさんのツイート: "Fx55:Windows上のQuantum RenderではANGLE(Almost Native Graphics Layer Engine)が用いられる。参照:https://t.co/zdxyYLozNa / “13233…” https://t.co/DzrEfiMDi8"
ANGLE - Almost Native Graphics Layer Engine
google/angle: A conformant OpenGL ES implementation for Windows, Mac and Linux.

Rockridgeさんのツイート: "Quantum Renderでは、従来のClientLayerManagerインスタンスに代えて、WebRenderLayerManagerインスタンスを作成・使用する。 / “Platform/GFX/Quantum Rend…” https://t.co/DKhkMFwjcf"
Rockridgeさんのツイート: "Quantum RenderがFirefoxのリリース版で有効化されても、少なくとも当初はWebコンテンツの表示速度に与えるインパクトは大きくないようで、開発者いわくUI描画のGPU支援に使えるとよかったのだが、と。 / “Qu…” https://t.co/WtiCniHJ5C"
Rockridgeさんのツイート: "QuantumRenderがTier-1に昇格。有効化へと一歩近づいた。 / “Making QuantumRender tier-1” https://t.co/xJnCqjqDRu"
Rockridgeさんのツイート: "Fx55:Android版にもNightlyチャンネルにQuantum Renderがデフォルト無効で投入された。 / “1323612 - Build webrender on android” https://t.co/JSPCafNMH4"
Rockridgeさんのツイート: "Fx57:Quantum Renderの動作にHWアクセラレーションの有効化が必須となった。主にLinux版に影響する措置。参照:https://t.co/ig0hDpsxSE / “Heads-up: WebRender no…” https://t.co/zc4EmG1D1X"
Heads-up: WebRender now requires HWA enabled - Google グループ
Rockridgeさんのツイート: "Firefox NightlyでQuantum Renderをフルに試す際に有効化すべき設定について。gfx.webrender.enabled/gfx.webrendest.enabled/gfx.webrender.layer… https://t.co/TmoRzQA0kv"
Rockridgeさんのツイート: "Quantum Renderのリリース時期がFx59から未定へと変更された。時期優先で機能を絞るという話だったはずだが、それも難しかったのか。 / “WebRender Project Status Update - Frida…” https://t.co/jupMZ6NdCN"
Rockridgeさんのツイート: "意味を読み取りづらいが、Quantum RenderはFirefox Nightly 60の開発サイクル初期にデフォルト有効化か。 / “WebRender Project Status Update - Friday Nove…” https://t.co/IX5BXIGtYY"
Rockridgeさんのツイート: "Firefox Nightly 59のQuantum Renderは多くのWebページで正常に動作するようになってきているが、GPUやグラフィックスドライバーごとの挙動のばらつきを抑えるのが今後の課題だという。 / “WebRe…” https://t.co/JgzPMwn5g9"
Firefox 58以降も続く高速化と応答性向上 2018年もパフォーマンス2倍が目標 - Mozilla Flux
Rockridgeさんのツイート: "Quantum Renderがリリース版に投入されるまでの間に解決すべき問題が列挙されている。その数は多く、Firefox 60の段階で解決できているか疑問だ。 / “Notes from last Wednesday...” https://t.co/HZM3hmhokD"
Rockridgeさんのツイート: "近々Firefox Nightly 55にQuantum Renderが投入される模様。デフォルト無効だが、gfx.webrender.enabledをtrueに変更して再起動すると使えるようになるそうだ。参照:… https://t.co/SBNOA2cMmX"
Rockridgeさんのツイート: "Quantum Renderの投入時期が大幅に延期された。Nightlyチャンネルの有効化がFx63、Betaチャンネルの有効化がFx64となっており、このスケジュール通りに進んでも、2018年11月にならないとリリース版に入らな… https://t.co/gJbHyZ1Vu7"
Rockridgeさんのツイート: "Fx59:gfx.webrender.allの設定をtrueにすることで、Quantum Render関連の設定を一挙に有効化することができる。 / “1425260 - Bring back webrendest functi…” https://t.co/xZCKQKJsrQ"
Rockridgeさんのツイート: "Fx60:Quantum RenderではDirect2Dバックエンドを使用しない。 / “1421818 - Stop using Direct2D with WebRender” https://t.co/3nmrH5hm3A"
Rockridgeさんのツイート: "Firefox 64をターゲットにしているQuantum Renderだが、その時点でデフォルト有効化されるのは、NVIDIAのディスクリートGPU+Windows 10の環境だけらしい。Mozillaの試算ではリリース版ユーザー… https://t.co/L3neo6aTCq"
Rockridgeさんのツイート: "Fx61:Quantum Renderの有効化は段階的に行われる見通しであり、その際、gfx.webrender.all.qualifiedの設定が用いられる。 / “1455696 - Pref for qualified W…” https://t.co/CB0ABKyyyg"
Rockridgeさんのツイート: "Fx62:Quantum Renderを有効化した際、無駄なRendererスレッドが発生しないようにした。 / “1469028 - Too many "Renderer" threads” https://t.co/LZgdvKqP1a"
Rockridgeさんのツイート: "Fx63:Quantum Renderが有効化されるGPU環境を、おおむねNVIDIA Tesla以降に限定した。 / “1478150 - Restrict webrender qualified to modern nvid…” https://t.co/i8Rml3jRpm"
Rockridgeさんのツイート: "将来的にFirefoxのグラフィックスエンジンとなるWebRenderのアーキテクチャを解説した記事。WebRenderはDisplay Itemと1:1で対応するPrimitiveを生成してレイヤーに割り当てるが、レイヤーのコン… https://t.co/mKVGtkWJZG"
Rockridgeさんのツイート: "WebRenderでは従来のレンダリングエンジンが行っていたlayout/invalidation/painting/compositingの処理のうち、painting/compositingの区別をなくし、すべてをウィンドウに… https://t.co/TFk8Y76rSo"
Rockridgeさんのツイート: "WebRenderの解説の前段階として、Geckoのグラフィックスパイプラインを紹介している。DOMツリー -> フレームツリー -> ディスプレイリスト -> レイヤーツリーの流れで処理されていき、compositorがレイヤー… https://t.co/i9ZT4IUgcB"
Introduction to WebRender – Part 1 – Browsers today – Mozilla Gfx Team Blog
Rockridgeさんのツイート: "WebRender(Quantum Render)について詳細に解説した記事。従来のpainting/compositingの区別を取り払い、GPUを活用してスクリーン全体を描画することで常時60fpsを実現する。無駄な描画処理を… https://t.co/0PNod5UgwI"
Makoto Kato ︎︎さんのツイート: "webrenderのいろいろ話を聞いてるけど、rustcのhack必要な話多すぎて、LLVM万能じゃないって感じしてる"
Rockridgeさんのツイート: "WebRenderのドローコール(画面に描画を行う際に呼び出すGPUに対する命令)が1か月前と比べて2分の1から3分の1に減少し、パフォーマンスが大幅に向上したそうだ。 / “WebRender newsletter #20 –…” https://t.co/y3RwSwW7ox"
Rockridgeさんのツイート: "Fx64:Nightlyチャンネルで、NVIDIA Tesla以降のGPUを搭載したWindows 10環境(バッテリー非搭載)においてQuantum Render(WebRender)がデフォルト有効化された。参照:… https://t.co/A71dX96TwI"
Rockridgeさんのツイート: "Firefox Nightly 64のユーザーのうち約17%がQuantum Render(WebRender)有効化の対象になっているという。 / “WebRender newsletter #22 – Mozilla Gfx…” https://t.co/NUll274gfB"
Rockridgeさんのツイート: "Firefox 64リリース版の一部環境でQuantum Render(WebRender)をデフォルト有効化する計画は、ブロッカーバグが多いため、実施できるか不透明な状況になってきた。 / “WebRender on in F…” https://t.co/28nJhr9a6g"
Rockridgeさんのツイート: "WebRenderはフレームごとにすべてを再レンダリングするが、paintingとcompositingを分離しないので動的ページでは高速になる。ただ、複雑な静的ページもあるので、描画命令の束をキャッシュしておき再利用する。 https://t.co/gZeeclLnbq"
Rockridgeさんのツイート: "WebRenderは、今のところ、Webページのレンダリングに求められるグラフィックスプリミティブを全面的にサポートするには至っていない。そこでフォールバックの仕組みとして"blob images"がある。 / “WebRend…” https://t.co/Q7EAtVSDtr"
Rockridgeさんのツイート: "WebRenderではプリミティブを2グループに分け、処理をまとめやすいグループでは積極的にプリミティブをまとめてGPUの活用を図っているとか。 / “WebRender newsletter #31 – Mozilla Gfx…” https://t.co/5wJmgxDyEW"
Rockridgeさんのツイート: "2018年11月17日時点で、WebRenderはFirefox 67リリース版でのデフォルト有効化を目標としていた。もっとも、ブロッカーバグが多く、間に合うかどうか微妙な様子。 / “Google グループ” https://t.co/ABlWYQpHR5"
Rockridgeさんのツイート: "Windows 10上のNightlyチャンネルで、一部のAMD GPUもWebRenderデフォルト有効化の対象に含まれるようになった。Graphics Core Next第2世代以降であればOKな模様。 / “1523823 - Enable WebRender by default on modern (CIK, VI, GFX9) desktop AMD hardware on nightly” https://t.co/WGKsTyULXt"

Quantum DOM

Rockridgeさんのツイート: "Quantum DOMの一環として、イベントキューを処理の優先度(High/Normal/Low)に応じて3つに分割する。これによりページの描画やユーザー入力の処理をネットワーク処理に優先させるといったことが可能になる。 https://t.co/ejpbe9tH3z"
Rockridgeさんのツイート: "Quantum DOMはcontentプロセス内のメインスレッドが処理するタスクについて、3段階の優先順位を付ける。また、タブグループごとにタスクをまとめて独立したスレッドを割り当て、フォアグラウンドタブの処理を優先する。 https://t.co/ZLKNOFf3LA"
Rockridgeさんのツイート: "Fx57:NightlyチャンネルにQuantum DOMの初期実装がデフォルト無効で投入された。参照:https://t.co/nEDt4NSRAz / “Quantum Flow Engineering Newsletter…” https://t.co/SJq9f8wlCB"
Rockridgeさんのツイート: "Fx61:Quantum DOMのスケジューラシステムは、Fx57においてデフォルト無効で投入されたものの、結局お蔵入りに。参照:https://t.co/nEDt4Oass7 https://t.co/mY8GXkdWwi https://t.co/f9rInjSRGU"

なかのん&マジックさんのツイート: "Firefox Quantumのパフォーマンスチューニング、普通に、メソッドのインライン化とかvirtual callの削減もやって向上させてます。 https://t.co/cXOAUDrjQj"
なかのん&マジックさんのツイート: "意外とref-countableなポインタのaddref/releaseもprofileに引っかかってた。"
Rockridgeさんのツイート: "Quantumプロジェクトにおいて想定されているローエンドのハードウェアは、Acer Aspire Eだという。15.6インチのフルHDノートブックで、Core i3-7100U(Intel HD Graphics 620)・4G… https://t.co/B14CZfoab5"
Rockridgeさんのツイート: "Mozilla HacksでQuantumプロジェクトを解説する連載が始まった。第1弾となる本記事は、ブラウザのレンダリングエンジンの処理について述べ、CPUのシングルコア性能が停滞する中、マルチコアの活用が重要と説く。 https://t.co/2Tugflzd9h"
Rockridgeさんのツイート: "MozillaはQuantumプロジェクトの成果を測るための手法についても研究中だ。ユーザーの体感を重視し、利用頻度の高い分野におけるWebページを閲覧する際の、読込速度、動きのスムーズさ、応答性を柱に据える。 / “Desig…” https://t.co/EvBDfMTf3d"
Rockridgeさんのツイート: "Firefox Quantumではすべての入力処理でAsync Pan/Zoom(APZ)が有効化されており、スクロールがJavaScriptスレッドによってブロックされない。ただし、キーボード入力に関してはAPZが無効になる場面… https://t.co/gkSmNVHaNV"
Rockridgeさんのツイート: "Firefox QuantumのプライベートブラウジングとChrome v61のシークレットモードを比較したところ、200サイトのページ読み込みテストでFirefoxが2.4倍高速との結果になった(Disconnect調べ)として… https://t.co/VX57HyrPkr"
Rockridgeさんのツイート: "Fx59:Nightlyチャンネルで、gfx.webrender.allの設定をtrueにすればQuantum Renderが有効化されるようになった。 / “Update your prefs to get WebRender…” https://t.co/4D4kZ2Fe60"
dynamis (でゅなみす@もじら)さんのツイート: "Firefoxの次世代ブラウザエンジン開発Quantum周りを見ていると顕著だけど、イマドキもうアルゴリズムを変えるとかSIMD命令を使うとかじゃ無くてGPUのシェーダなどに従来CPUで処理していたものを丸投げする実装への切替で圧倒的な性能向上を果たすのがトレンドですかね"

DOM

Mantaroh@r?さんのツイート: "DOMの世界において、1つのDOMが常に1つの矩形フレームで描画できるというわけではないので、Mozilla では continuation frame という機能を使ってる。例えば幅で改行された要素などは1つの矩形フレームで表現できない。 AAAAABBBBBB BBBCCCC… https://t.co/fMiDGyjku2"
Mantaroh@r?さんのツイート: "改ページの時も同じ。Gecko では複数フレームに分割される際、先頭のフレームを primary frame、それ以降に続くフレームを continuation frames と呼んでる。"
Mantaroh@r?さんのツイート: "この primary frame は DOM(nsIContent)が挿入された通知を受けて、フレームコンストラクタ(nsCSSFrameConstructor)が作成する。一方 continuation frames は主にリフロー中、リフロー時に要素がレイアウト制限いっ… https://t.co/ECspqcT1ef"
Mantaroh@r?さんのツイート: "Pagination の仕組みを理解しようとしたら、ここから入れと書いてあったもので。ドキュメントが古いからコードとにらめっこしながらだけど・・ 元ネタ:https://t.co/H0CJ69akNs"
Gecko:Continuation Model - MozillaWiki
Mantaroh@r?さんのツイート: "リフロー中に作成された continuation frames を特に fluid continuations と呼ぶ。1つの要素の continuation frames は2重連結リストで作られているので nsIFrame::GetNextContinuation/nsIFr… https://t.co/2ngca6W0aB"
nsFrame.cpp - mozsearch
Mantaroh@media=printさんのツイート: "分割されるフレームは要素による。page break によって分割されるドキュメントは nsSimplePageSequence。line break によって分割されるインライン要素は nsBlockFrame 等。"
Mantaroh@media=printさんのツイート: "overflow が指定されページに収まらない要素などは例えそのフレームが完成したとしても、フレーム分割が必要になってくる時がある。このフレームは overflow incomplete と呼ばれ特別な continuous frame を保持する。"
Mantaroh@media=printさんのツイート: "overflow incomplete は、非表示で親内部に特別なリストとして保持される。(詳細は nsContainerFrame.h 参照)"

4x

Rockridgeさんのツイート: "Fx49:inner documentのリフロー処理を非同期化することでパフォーマンスの向上を図った。 / “881832 – Make inner document reflow asynchronous to improve…” https://t.co/MsYxTgCMaf"

5x

Rockridgeさんのツイート: "Fx55:Windows 8以降でダブルバッファリングの技法を用いて描画処理のパフォーマンスを向上させた。 / “1352163 - Use double buffering for D3D11 window backbuffe…” https://t.co/guc3hPpFzu"
Rockridgeさんのツイート: "Fx55:table要素のフレームごとにディスプレイリストのアイテムを生成することで、処理のパフォーマンスを改善した。 / “929484 - Make HTML table frames (including row/cell…” https://t.co/ahqUjpQBQQ"
Rockridgeさんのツイート: "Fx55:border-radiusの有無についての情報をキャッシュしておき、これを参照することで、display listの構築処理を高速化した。 / “1367906 - Avoid some overhead for ba…” https://t.co/ri56HSMOzk"
Rockridgeさんのツイート: "Fx58:ターゲットとなる要素が表示領域外にある場合、Transformのアニメーションを抑制することで、消費電力を低減。 / “1190721 - Throttle transform animations that the …” https://t.co/KrrM7F6ZkQ"
Rockridgeさんのツイート: "Fx59:Advanced Layersの機能が拡張され、1つのレイヤー内に複数のテクスチャがある場合も処理が可能になった模様。 / “1420674 - Support tiling in Advanced Layers” https://t.co/nqiMBfMnCv"
Rockridgeさんのツイート: "Firefox 58で導入されるOff Main Thread Painting(OMTP)の解説記事。別スレッド化されるのはRasterizationの部分で、当該処理の時間を短縮し、FPSを向上させる効果があるそうだ。 https://t.co/CXNirEQq9Y"

6x

Rockridgeさんのツイート: "Fx60:Mac版で、Off Main Thread Painting(OMTP)が有効の際、Painting処理を並列的に行う仕組みがデフォルト有効化。 / “1430793 - Enable parallel paintin…” https://t.co/uhiWyO0p2N"
Rockridgeさんのツイート: "Fx61:Webページが複数のスタイルシートを利用している場合、それぞれのCSSのパース処理を並列的に行うようになった。 / “1346988 - stylo: Consider parallelizing CSS parsing” https://t.co/2fkIC27bAb"
Rockridgeさんのツイート: "Fx62:Nightlyチャンネルで、直近の5つのタブを対象としてレイヤーツリーのキャッシュを保持するようにした。キャッシュがヒットした場合、タブの切り替え表示がスムーズに行われる。 / “1176019 - [e10s] Ke…” https://t.co/WpcwrSAKGx"
Rockridgeさんのツイート: "Fx62:ペイントスレッドがDisplay ListやFrame Layerの構築をブロックしなくなったことで、パフォーマンスが改善された。 / “1462411 - Try to FlushAsyncPaints in Cli…” https://t.co/jUQUAZYMM9"
Rockridgeさんのツイート: "Fx62:Nightlyチャンネルでテストされていたレイヤーツリーのキャッシュ機能は、いったん無効化された。見つかった問題を修正して、再度の有効化を目指す。 / “1465106 - Disable tab layer cach…” https://t.co/K0nRjGfl2C"
Rockridgeさんのツイート: "Fx62:フレームの再描画が必要な場合にだけレイヤーを生成するようにし、処理速度を改善するとともに電力効率も高めた。 / “1467619 - Fix our motionmark_animometer Design score” https://t.co/6Yfu5l39WY"
Rockridgeさんのツイート: "Firefox 62以降、Zone/Compartment/Realmの3分類が用いられるようになった。1つのZoneはおおむね1つのタブに対応し、複数のCompartmentを持つ。1つのCompartmentは複数のRealm… https://t.co/kdPLEEyRd9"
Rockridgeさんのツイート: "Fx61:リリース版のユーザーを対象にRetained Display Listsが順次有効化されていく。リリースから2日後に25%を対象に提供を開始。さらに1週間後に50%に引き上げ、最後に100%となる。参照:… https://t.co/rqu68Peuie"
Rockridgeさんのツイート: "Fx63:NightlyチャンネルでQuantum Renderのテストが開始された。NVIDIA製GPUを搭載したWindows 10環境(バッテリー非搭載)の50%が対象となる。参照:… https://t.co/2ycd4spXTf"
Rockridgeさんのツイート: "Fx63:JavaScriptによってWebページ内に入力フィールドが次々に挿入される場合、レイアウト処理を遅らせることでハングが生じるの防ぐ。 / “1456843 - HTML loading hangs for minut…” https://t.co/70dKN4NfJH"

@rockridge07

Rockridgeさんのツイート: "GeckoのLayout EngineモジュールからWeb Paintingモジュールを分離した。Web Paintingのモジュールオーナーは Matt Woodrow氏。 / “splitting painting cod…” https://t.co/8womLPPkFI"
Rockridgeさんのツイート: "2017年5月18日時点のFirefox Nightlyを同年4月1日時点と比較すると、ブラウザウィンドウの最初のフレームの描画までが1232.84ミリ秒から849.66ミリ秒に、about:homeの検索ボックスの描画までが18… https://t.co/uTATjBS2yr"
Rockridgeさんのツイート: "MozillaはOff Main Thread Paintingと呼ばれる非同期描画機能を開発する模様。スレッドに挙げられている文書はパーミッションがないと閲覧できない。 / “Off Main Thread Painting …” https://t.co/2ob443qNPE"
Off Main Thread Painting Design Doc - Google グループ
Rockridgeさんのツイート: "HTML文書に指定された外部リソースを読み込むにあたって、処理のブロックが起きないことが重要。本記事では投機的パース、defer、async、プリロードとそれらの差異について説明が行われている。 / “Building the …” https://t.co/tINgrwcr8V"
Building the DOM faster: speculative parsing, async, defer and preload ★ Mozilla Hacks – the Web developer blog
Rockridgeさんのツイート: "実装は完成していないものの、ServoのHTMLパーサであるhtml5everのパース処理が非同期化され、投機的なパースも行えるようになりつつある。 / “Off main thread HTML parsing in Servo” https://t.co/HafjYjhuAz"
Rockridgeさんのツイート: "Geckoのグラフィックス処理部分では共有メモリの仕組みが頻繁に利用されているが、compositorが独立したGPUプロセスに分離されることに対応すべく処理に変更が加えられたらしい。 / “An Introduction to…” https://t.co/hwSonjETno"
Rockridgeさんのツイート: "Servoはレイアウト処理の並列化を行うようになっているが、この機能は将来的にGeckoにも取り込まれる模様。 / “Oxidation2 - MozillaWiki” https://t.co/UoEOxoFSbZ"
Rockridgeさんのツイート: "Retained Display Listsはディスプレイリストを必要な箇所のみアップデートすれば足りるようにする。Firefox 58 BetaでのA/Bテストの結果によれば、16ミリ秒を超える「遅い」Painting処理を30… https://t.co/a2SXIVhmLd"
Retained Display Lists – Mozilla Gfx Team Blog
Rockridgeさんのツイート: "Firefoxのグラフィックス関係で用いられる略語や専門用語について。 / “Platform/GFX/Jargon - MozillaWiki” https://t.co/RfRsyHMFek"
Platform/GFX/Jargon - MozillaWiki
Rockridgeさんのツイート: "Mozillaは、Windows版の一部環境でQuantum Renderをデフォルト有効化した後、対象となるWindows版の環境を拡大するとともに、Android版とMac版でもデフォルト有効化を目指す。 / “Platfo…” https://t.co/cO0gYZ7MfD"

@d_toybox

なかのんクエストさんのツイート: "nsRangeのプロファイルへの出現具合を見てると、nsRangeというか、DOM Rangeを内部処理で使うのはそもそもアカンっていう結論しかなくなってくるぞ。"
なかのんクエストさんのツイート: "ただ、nsRangeはmutation observerで常にvalidなレンジを保証してるんで、使い勝手は良いし、変なバグは発生しにくいんだよな。単純にシンプルなクラスや構造体と置き換えられる場所とそうじゃない場所がある。"
なかのん&マジックさんのツイート: "StaticRangeが実装できたら、Selectionの全rangeをStaticRangeとしてedit actionの開始時に保存しておいてselectionは削除してしまうと全体的に高速化できそうな?"
なかのん&マジックさんのツイート: "nsRangeがvalidな位置を維持するコストが思ってたより悪そう。"
なかのん&マジックさんのツイート: "お、<input>.valueのセット、急に高速化してる。何が効いてるんだろう。"
なかのん&マジックさんのツイート: "最近私の入れたパッチ群はデスクトップマシンだと、せいぜい合計で1ms速くやるかなって程度だったけど、2msぐらい一気に速くなってる感じある。"
なかのん&マジックさんのツイート: "XPCOMでひたすら抽象的な構造にして柔軟性もたせようとされていたMozillaのコードがパフォーマンスの追求でどんどん依存度を高めて行くの、時代の移り変わりを感じる。"
なかのん&マジックさんのツイート: "Firefox Nightlyで"Slow Tracking Elements"を"Always"にすると笑えるぐらいにページの読み込みが高速化するな。Geckoの速度自体よりも、アクセス解析のGecko利用時のパスの遅さに問題があるのかよく分かる。"
Macheriさんのツイート: "Illustratorの「文字に下線設定」で見慣れてたからAdobe XDで同じように文字に下線設定つけた時、「g」とか「y」とか下にはみ出るアルファベットのところ線きれて気持ち悪かったんだけど、webで下線指定した時も線切れるんだね。Illustratorがおかしかったのか。どうなのか🤔… https://t.co/9Zp0MOhbTF"
なつき@コーディングスクール体験開催さんのツイート: "| x・) oO(ここ数年のモダンブラウザーで下線が切れるのは、アルファベットのディセンダ部分が見づらくならないようにという配慮だそうです。Illustratorはここ数年下線機能に手が入っていないためそのような機能がなくただの直線なのだと思います)… "
なかのん&マジックさんのツイート: "あれなぁ、フォントに依存するんだと思うけど、Windowsで見やすいと思えないんだよなぁ……"
なかのん&マジックさんのツイート: "下線の1px上がグリフの横線の場合、下線は消えずに線が太く見えるBlinkの実装も意図的なのかしゃーなしなのか、バグなのか。"
なかのん&マジックさんのツイート: "文字が大きめかつ、ベクターフォントで、文字がアルファベットなら確実に綺麗だとは思うんだけど、やっぱり日本語のリンク見てると、これ、綺麗って思えないなぁ。"
なかのん&マジックさんのツイート: "ASCII文字でもアンダースコアの視認性が皆無になるのか……"
Yosuke HASEGAWAさんのツイート: "ブラウザーの脆弱性探すなら、エンジン載せ替えて実装が枯れてない今がチャンスですよ。"
なかのん&マジックさんのツイート: "refcountに頼らないといけない時点で色々と人類は敗北してるんですよ。"
なかのん&マジックさんのツイート: "正直、アプリを開発するのを生業とした時に、やらなくて良い`foo++`がパフォーマンス的に問題になる日が来ると思ってなかったし、必要なそれをし忘れてるのがセキュリティホールになる仕事になるとは思ってもなかったです、はい。"
なかのん&マジックさんのツイート: "ブラウザ開発ってそれぐらいピーキーなことやってるので実に楽しい。"
なかのん&マジックさんのツイート: "なんでもかんでも、ライフタイムを保証しておけば良いってのはダメってのは昔のFirefoxとChromeのベンチマークの結果の差が語っているという(それだけでもないけど、もちろん)。"

Mantarohさんのツイート: "Gecko へ screenLeft / screenTop の実装が入ったというお話。 https://t.co/eMX6dWaDOR"
[cssom-view] Window#screenLeft/screenTop · Issue #1091 · w3c/csswg-drafts

fuzzing

ドッグさんはTwitterを使っています 「Mozzila による Firefox の fuzzing 運用の解説 | 'Browser fuzzing at Mozilla - Mozilla Hacks' https://t.co/1un9aR1KAZ」 / Twitter
Browser fuzzing at Mozilla - Mozilla Hacks - the Web developer blog
ドッグさんはTwitterを使っています 「やっぱ HTML 生成して食わせるのか.トータル1100件以上の問題を見つけてて成果を出してる」 / Twitter

Google

さねさねさんのツイート: "Blinkのprerender機構ってIntent to depracate出てたのか https://t.co/jdvOZQY0W8"
Rockridgeさんのツイート: "Chromeのレンダリング処理の概要が書かれている。Quantum Renderの設計にあたり、Chromeをよく研究していることがうかがえる。 / “A Quick Overview of Chrome's Rendering…” https://t.co/UAiLGa8nkx"
Rockridgeさんのツイート: "将来のBlinkではスタイルの再計算とレイアウトツリーの構築をそれぞれ独立したステージに分け、前者は要素のスタイルがアニメーションなどでダイナミックに変更される場合でも効率よく処理できるものにしていく。 / “Next Gene…” https://t.co/RiR6ZFcCTd"
hadakadenkyuさんのツイート: "chromeでflexで画面を2分割するとブラウザ幅が奇数の時に真ん中に1px間が開く。Firefoxだと大丈夫。小数点の関係だろうけど。バグだろこれ。"
Rui Ueyamaさんのツイート: "最新のChromeのレンダラ、微妙だけどかなり見た目の印象が変わる変更が加わってる気がする。下線、前はこういうふうに途切れずに、文字にかぶって表示されていたはず。… "
Kentaro Haraさんのツイート: "Blinkのドキュメントが少なすぎる・・・というご要望にお答えして、Blinkアーキテクチャが全体としてどう動いてるかを(Blink開発者向けに)解説してみました。 https://t.co/xojjmLjfqa"
How Blink works - Google ドキュメント

DOMJIT

webkit/Source/WebCore/domjit at master · WebKit/webkit
webkit/Source/WebCore/ForwardingHeaders/domjit at master · WebKit/webkit
Filip Jerzy Pizloさんのツイート: "DOMJIT is a thing! @Constellation https://t.co/MhrVnCa7yb"
172098 – [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
162916 – [DOMJIT] Introduce DOMJIT::GetterSetter to tell JIT information
164006 – [DOMJIT][CSSJIT] Share code with DOMJIT
小倉唯さんのツイート: "これだいぶ完了まで近づいてきた. https://t.co/QplPWtdBd8 DOMJIT やっててよかった..."
171637 – Hoist DOM binding attribute getter/setter prologue into JavaScriptCore taking advantage of DOMJIT / CheckDOM
小倉唯さんのツイート: "DOM getter, 最初に type check するけど, その check, getter lookup の段階で大体 IC がもうやってる. type checking 部分を JSC にわかるように切り出すと, 大抵さっくり削除できる"
小倉唯さんのツイート: "massive code reduction と optimization のチャンスだ"

feDropShadow

渋川よしきさんのツイート: "最近、CSSとかでドロップシャドウとか簡単に出せるけど、ピクセル単位で自分で計算して出すときの良いアルゴリズムとかどこかにあるのかな"

@d_toybox

フレームワーク

なかのん&マジックさんのツイート: "ブラウザ開発者としては、フレームワーク使って開発しておきながら、テストのコストとかなんだろうけど、それをアップグレードしていかないWebサービス提供者には破滅して欲しい。"
なかのん&マジックさんのツイート: "フレームワークにバグがあるパターン、一番有害。"
なかのん&マジックさんのツイート: "良いフレームワークはUAの判定を最小限にしてるはず。そうじゃないと、ブラウザ側のバグ修正や、標準仕様の変更で簡単にバグる。"
なかのん&マジックさんのツイート: "基本的にはfeature detectionかデフォルトアクションの結果を検査しての動作切り分けになるので、Webアプリのフレームワーク作りは相当にプログラミングのセンスを要求されそう。ちょっと、やれる自信無い。"
なかのん&マジックさんのツイート: "そーいや、日本人でフレームワーク書いてる人って知らないな。居たら是非しゃべってみたい。酒でも飲みながら。"
なかのん&マジックさんのツイート: "ブラウザは、エンジン部分の競合は標準仕様が特定のOSや特定の実装者の優先順位に左右されないように複数存在することは絶対必要なんだけど、より互換性を高めて、ユーザーレベルでは、好きなUIで選ぶ事ができる状況にならないとなー。"
なかのん&マジックさんのツイート: "とりあえず、Chromeのシェアがもっと下がらないと、不健全ってところまでは来たな。Chromeのバグや、仕様では定義されていない部分の動作に依存してるサイトの互換性問題の報告が無視できないレベル。"
なかのん&マジックさんのツイート: "結局、IEの時代と同じ事を繰り返してる。"
なかのん&マジックさんのツイート: "しかも、今はフレームワークがあって、それが依存してる場合の影響がデカすぎて、より難しくなってる。"
なかのん&マジックさんのツイート: "Google Closure、feature detectionとUA名チェックが混在しまくってるのか……"
なかのん&マジックさんのツイート: "ブラウザの動作変更して仕様も変えてフレームワーク開発者にも対応してもらって、ようやく何が起きるかというと、大量のバグってるデキの悪いサイトが動くようになるっていうの、色々と間違ってる感あるね……"

histric

histric-1

なかのん&マジックさんのツイート: "@izaten あの頃と違うのは、もはや新しいエンジンの登場は、新規開発にかかる金額考えるとあり得ない。開発停滞したら最後。"
なかのん&マジックさんのツイート: "ブラウザは、非互換が分かった場合に、仕様が有る場合は仕様通りに動いていない方が、仕様が無い場合はベターな方か、単にシェアの大きな方に合わせた挙動を仕様書に明記しつつ統一したりするんで、なんか判断するなら仕様を確認しつつ、仕様と違う動作のブラウザにハックを用意しないとワヤですね。 https://t.co/JeiQejIf6H"
なかのん&マジックさんのツイート: "仕様の方が技術的に良くなくて、仕様が更新されるたち悪いケースも無くはないけど。"
なかのん&マジックさんのツイート: "@momdo_ 仕様が無い所をよしなにやっていくつらみ……"
なかのん&マジックさんのツイート: "@momdo_ CSS仕様書を書く人達の語彙力すごい("
なかのん&マジックさんのツイート: "Firefoxのマスターパスワードが未だにモーダルダイアログなのは最悪なUIだけど、これ、どうしようもないよなー。タブモーダルなもの作ってもWebサイトの作った偽物との見分けが完全につかなくなるし。"
なかのん&マジックさんのツイート: "開発手法はどうか知らないけど、うちのライバル製品の実装に関しては正攻法じゃなくて「うぬぬ」ってなることがあるなぁ。"
なかのん&マジックさんのツイート: "今どき、モバイル版とデスクトップ版でURLが違うWikipediaはどうにかならんの?"
なかのん&マジックさんのツイート: "wheelDeltaを未だに使ってるクソなサイトがまだ大量にあるのか…… / Chrome Platform Status https://t.co/XKoQpA0Xyp"
Chrome Platform Status

histric-2

なかのん&マジックさんのツイート: "Googleからのリクエストで伝統的な挙動を捨てて、後付け標準仕様にあわせた動作に変更する作業やってると、Chromeのバグ見つけて報告する事多いんで、本当に多様性って大切だと思わされる。"
なかのん&マジックさんのツイート: "というか、世界中のWebアプリ開発者の多くが、このChromeのバグ知ってるやろっていうのを見つけても、報告が見当たらなくて新規に報告することになったりしてて、本当に絶望感漂う。"
なかのん&マジックさんのツイート: "よし、やっと、WheelEvent.deltaModeの闇、Googleの仕様の編集者にキャッチしてもらえた。"
なかのん&マジックさんのツイート: "なんかこう、スクロール量をより精度高くとれるようにブラウザ各社が仕様を策定したのに、多くのケースでChromeがpixel値で返すってだけで、値をピクセル値と仮定して処理するWebアプリ開発者が多すぎるの、本当にtry & errorでやってるアレな開発者だらけなんだなぁと思わされた。"
なかのん&マジックさんのツイート: "この件、Safariは、macOSで動いてる場合、macOSのネイティブイベントがピクセル値でスクロール量を知らせてくるのでどうしようもないのよね。この件は本当にChromeのWindows版でのいい加減な実装が招いちゃった悲劇。"
なかのん&マジックさんのツイート: "GeckoはWheelEventの実装のときに、全部の処理を書き直して、各OSのネイティブイベントの情報をほぼロスレスでWebアプリに伝えるようにしたんだけど、Chromeの開発者は既存のパスに最小の変更で、見た目、WheelEventに対応したように見せたことでこんなことになってしまった。"
なかのん&マジックさんのツイート: "なので、Windowsのシステム設定で、ホイールのスクロール量をページ単位にすると、Chromeでもそういったいい加減なWebアプリはバグる。なにしろ、Windows版Chromeは、ページ単位のスクロール設定の場合にはWheelEvent.deltaModeでDOM_DELTA_PAGEを返してて、正しく実装してるから。"
なかのん&マジックさんのツイート: "念のために解説しておくと、Windowsは、行単位でのスクロール量か、ページ単位でのスクロール量がネイティブイベントを通知してくる。macOSでは高解像度のホイール搭載マウスや、トラックパッドからはピクセル単位、古いノッチ単位で回転するホイール搭載のマウスなら行単位を通知してくる。"
なかのん&マジックさんのツイート: "Geckoはこの辺、完璧に近い形でロスレスでWebアプリに伝えるようにがんばった。本当にがんばったのよ?"
なかのん&マジックさんのツイート: "ロスレスで伝わらないケースは、主に小数点の丸め誤差の問題なので、普通のアプリでは問題にならないレベルです。"
なかのん&マジックさんのツイート: "興味ある人は、大昔に書いた、こちらのスライドも参照してみてください。 https://t.co/dZYIwH8Rt6"
マウスホイールイベント処理マニアックス
一ノ瀬 いろはさんのツイート: "Qiita とかにバグの内容と再現方法と回避方法まで書いて有っても報告がされてないケースの悲しみは大きい。… "
なかのん&マジックさんのツイート: "誤解なきように書いておくと、特定の開発者がバグ報告してなかったとかいう話ではなく、世界中の様々なレベルの開発者が最多シェアを持つChromeにバグ報告していないって点ですわ。つまり、そういう流れが業界全体に出来上がっていないと言えるかと。"
Makoto Kato ︎︎さんのツイート: "qiitaでなんとかの闇って書かれてるの、大概バグ報告してないよね"
なかのん&マジックさんのツイート: "Qiita、調べ物で引っかかって来た時以外には読んで無いけど、良くも悪くも殴り書きって感じはある。"
渋川よしきさんのツイート: "タイムマシーンがあったら、Windows APIのスクロールイベント、行単位じゃなくてピクセル単位にしてくれってビル・ゲイツを説得しに行きたい。"

histric-3

なかのん&マジックさんのツイート: "HTML直書きなんてするもんじゃねえという意見が多々あるけど、静的なページ公開したいときに手書きは全然有りでは?と思っちゃう。CMSの見た目をいじる方が難度高くない?"
なかのん&マジックさんのツイート: "今、仕事で関わってる所だと、フレームワークがバグってるから自分達では修正できないとか、どんな(自主規制)なんだよとか思ってしまう。他人の作った物を使ってそれなりのもの作っても、トラブルへの対応能力も無いとね。"
なかのん&マジックさんのツイート: "WindowsのAltGr周りのイベントを、Googleのエンジニアさんが提案してきた新しい挙動にするの、WindowsのAPIでは気軽に実装できるものではあるし、なんか条件文書いてて嫌になってくる。歴史的な事情ってつらい。"
なかのん&マジックさんのツイート: "結果論だけど、今のVirtual Keycode見ると、AltGrに1bit割り当てるのが正解だっただろうなと。"
なかのん&マジックさんのツイート: "ヨーロッパのWeb開発者さんは、やっぱり、AltGrの挙動についてバグ報告してくれるんで、裏を返せば、苦しめられてるんだろうなぁ。"
なかのん&マジックさんのツイート: "私がKeyboardEvent等でmodifier周りの進化した仕様を実装・検証するまでは、WebアプリがAltGrの状態を取得不能だったんで、色々と無理ゲーな要求もあったんだろうなぁ。"
なかのん&マジックさんのツイート: "ChromeもSafariもこの辺は無事、追随してくれたので、まあ、みんなが幸せになれた感じ(互換性問題はありそうだけど、Firefox/Geckoが先行した部分を後からシェアの大きいブラウザのいい加減な実装で台無しになることは無いと信じたい)。"
なかのん&マジックさんのツイート: "WheelEventなんかは、常にdeltaModeがDOM_DELTA_PIXEL前提のクソすぎるアプリを作った一部クソ開発者のせいで、仕様自体を修正しようという話になってて本当にクソ。"
なかのん&マジックさんのツイート: "しっかりテスト出来ないクソがChromeでもDOM_DELTA_PAGEのケースがあることに気付いてれば問題なかったんだけど、そもそも、それが分かる人ならやらかさないレベルで低レベルな話なんだよな。"
なかのん&マジックさんのツイート: "そもそも、まともなリファレンスならWheelEvent.deltaYの値が何かとか、ちゃんとWheelEvent.deltaModeと共に説明してるはずで、それが出来ていないクソリファレンスが存在したのか、文書読めないクソのせいなのか、原因が知りたくはある事案。"
なかのん&マジックさんのツイート: "いやほんと、この件ほど、Web開発者に失望したたことは未だかつて無いよ。あれだけ用意周到に色々とやったのに。"
なかのん&マジックさんのツイート: "WheelEventでのChromeの問題を見るに、また、今までの私の経験からしても、「生データ」へのアクセシビリティは非常に重要で、ロスレスではない抽象化はアプリ開発においてやってはいけないミスだと確信した。"
なかのん&マジックさんのツイート: "「これだけしか必要無いから、これだけの情報でいいでしょ?」ってやると、だいたい、何年後かにその削られたデータが必要になる。長いことメンテするアプリを書いてる人は要注意。特に、メンテを評価しない現場では、ロスレスで抽象化しとかないと危険。"
なかのん&マジックさんのツイート: "長いことブラウザ屋さんやってるけど、未だにアクセシビリティツールがどうやってコンテンツを取得してるのかは知らない……"
なかのん&マジックさんのツイート: "なんとなく、各OSのa11y APIと、DOMへのアクセスの両方だと思ってたけど、前者だけなのかな?"
hadakadenkyuさんのツイート: "ページ右下の「トップへ戻るボタン」はマジでユーザを誰も幸せにしてない例だと思う。効果確かめたことあんの?アレがあることでユーザの離脱率落ちるの?CTR上がるの?継続率UPする?売り上げ上がる?"
なかのん&マジックさんのツイート: "一応、ブラウザベンダに在籍してるものとして、タッチスクリーンデバイスのスクロールに、もっと良い方法が無いか考えてみたけど、あんまり思いつかないんだよな。OSレベルでどうにかこうにかして欲しい問題。"

histric-4

なかのん&マジックさんのツイート: "スマートポインタのrefcountのコストが気になるって、ブラウザのピーキーさ凄いと思いません?"
なかのん&マジックさんのツイート: "ちなみに、管理をミスると即座にセキュリティバグにつながるので、Quantum Flowの前は安全のために掴んどけっていう流れでしたね。割とブラウザの速度のチューニングって、セキュリティに関して無保険車爆走みたいなところあります。"
なかのん&マジックさんのツイート: "私がDOMイベントをやりだしたのって、イベントドリブンなWebアプリにとって、この入り口の互換性の低さはシェアの低いGeckoにとってヤバいって思ったからなんだけど、いざやりだすと、BlinkとWebKitではもだいぶ違うんんだよね(そもそもBlinkでもプラットフォーム変わると結構違うけど)。"
なかのん&マジックさんのツイート: "ネイティブの入力イベントを抽象化したDOMイベントの場合、Webアプリ開発者さんは少なくともデスクトップではWindowsとmacOSの両方でテストすべき状況は続いてるし、もっというと、例えばWheelEventだと、Windowsはページ単位のスクロールかどうかのシステム設定で変わるし、macOSだとデバイスで変わる"
なかのん&マジックさんのツイート: "後者は未だに条件がよく分からない。"
なかのん&マジックさんのツイート: "USBの仕様に全然詳しくないのでなんとも言えないけど、Appleは自社のデバイスは認識時に特別扱いするようになってるのかなってのは思うなぁ。キーボードやマウスのテストしてると。"
なかのん&マジックさんのツイート: "Macユーザは同等なハードで、Apple純正か、サードパーティー製か悩んだ時はApple製の方が間違いは無いってのは感じるな。そんな市場は嫌なので個人の金を投げ入れたいとは思わないけど。"
なかのん&マジックさんのツイート: "XULアドオンって色んなタイミングを捕まえられるように、さまざまなobserverになり得たんだけど、これってmutation event listenerが大量にあるイメージで、呼び出し時にセキュリティを確保しつつ安全に全obseverに通知するってのがコスト高だったのには削除時にパフォーマンス調べてびっくりした。"
なかのん&マジックさんのツイート: "特にメモリのアロケーションが遅いmacOS版が深刻だった記憶。"
なかのん&マジックさんのツイート: "XULアドオンが無くなってどうしたかというと、そういうobserverをC++なら個別のクラスのnon-virtualなメソッドを直接呼び出すようにして大幅にランタイムコストを削減してる。綺麗なコードなのは前の抽象化されたobserverなんだけど。"
なかのん&マジックさんのツイート: "私のやってるeditorだと、検索バーが未だにobserverをJSで実装しちゃってて、これをどうにかすればもっとスッキリするんだけどな(ランタイムコストは検索バーが表示されてなかったらほぼゼロになるようにはしてる)。"
なかのん&マジックさんのツイート: "前にも書いたけど、場所によってはスマートポインタのrefcountの上げ下げすら問題になるのがブラウザっていうアプリなんで、observerって本当に厄介。"
なかのん&マジックさんのツイート: "nsCOMPtrとRefPtrと二種類あるの、いい加減にどうにかならないかな。Foo(RefPtr<Bar>& aBar)みたいにすると、nsCOMPtrで掴んでる場合にあかんし、こういうのをいちいちtemplateにしてると今度はバイナリサイズが悪化するし。"
なかのん&マジックさんのツイート: "まあ、 class Foo { RefPtr<Bar> mBar; void DoIt() { DoSomething(mBar); } void DoSomething(RefPtr<Bar>& aBar) { aBar->Boom(); } }; とかメンバを渡されたらあかんのでどっちみちセキュリティは保証されへんか。"
なかのん&マジックさんのツイート: "Rustってこういう所有権の問題、どうしてるのかよく知らない。"
なかのん&マジックさんのツイート: "ブラウザって要するに、このメソッド呼び出したらJS走る可能性があるから、なんでも起こりえるよっていうのが随所にあるので楽しい。"
なかのん&マジックさんのツイート: "Webアプリのパフォーマンスチューニングって当然ブラウザ毎に「このブラウザはこれが遅い」とかあるだろうから、本当に徹底してるWebアプリはブラウザ毎にパス変えてたりとかあるんだろうか。"
なかのん&マジックさんのツイート: "autocompleteの時にchromeがどう動いてるんだろうかと気になってテストしてみたら、InputEventではないinputイベントが発生してる疑惑だこれ……… "
なかのん&マジックさんのツイート: "マイナーブラウザのバグにまで対応しなくても良いんですよ。マイナーブラウザでもテストしておくと、開発者が自覚していない仕様のグレーゾーンがあぶり出される事が多いという点が重要。それを経てリリースされたWebアプリ側にマイナーブラウザ側がバグ修正して対応するのが理想的で誰も損しない。"
いざてんさんのツイート: "実装依存なコードはやめろっていうのは、別にWEBだけじゃなくてコーディングすべてに言えることだと思うの。よく知ってる例ではデータベースとか。"

histric-5

🐾わおん🐾さんのツイート: "ブラウザにベンチマーク機能内蔵してスペックの判定と負荷の許容度の設定を用意してWebサイトと連携しようなどと大変そうな妄想を広げている"
なかのん&マジックさんのツイート: "手遅れ感は強いけど、fingerpintingが……"
なかのん&マジックさんのツイート: "Firefox とChrome のマルチプロセス見てると、GUI アプリのマルチプロセス化は無理矢理感が強くて。かといってIE 方式なのはさらにどうなのかって感じだし。"
CORSAIR JAPANさんのツイート: "PCのメモリをいくら増やしても、あればあるだけメモリを使おうとするアプリありますよね (;_;)… "
なかのん&マジックさんのツイート: "使わんのも変やけどな。使いすぎてもアロケーションの速度落ちるから使い切るのがええわけでもないけど。"
Hideyuki Tanakaさんのツイート: "ブラウザのタブに、負荷が高いやつを色付けするとかあれば、重いやつ閉じればいいやんとかそういう風には言いやすくなる(´・_・`)"
なかのん&マジックさんのツイート: "タブの色が変わったりするの、動画広告と同じ理由でものすごく鬱陶しく感じると思う。"
ゆういちろうさんのツイート: "「わずか0.2秒という高速な処理」 って言うと早そうだけど 「処理に200ms掛かります。」 って言うと遅い気がする…"
なかのん&マジックさんのツイート: "入力イベントまわりやり出してから、人間にとっても1秒ってめっちゃ長いことを知った。"
いざてんさんのツイート: "数十~数百ms読み込みを早くするためにWEBサイトの作りをあれこれ考えるも、お偉いさんの「あれおいてよ、共有のためのボタン」という一言によりソーシャルウィジェットが設置され"
なかのん&マジックさんのツイート: "あれ、asyncにすれば大丈夫。… "
なかのん&マジックさんのツイート: "まあ、アカウント作らないと何もできないように思えるシステムってのは良くないと思ってて、アカウント作らないと駄目なシステムであったとしても、作成前に必要情報を入力させていって、じゃあ、今回の情報でアカウント登録しておく?って聞いてくる楽天みたいな方式が正しいんだろうなって思う。"
なかのん&マジックさんのツイート: "毎回入力すればアカウントを作らなくてもOKにできるなら、それが一番ストレス無いんだろうなと。"
なかのん&マジックさんのツイート: "アカウントを先に作らせるというのは、今、入力したいことを後に回させられるということで、システムやその運営者が強権的に思えてよくないんだよな。"
なかのん&マジックさんのツイート: "XUL のボックスレイアウトとflexbox は何が違うんだろう。flexbox にしろWeb components にそろ、Mozilla 内部では慣れ親しんだものなだけに、標準との違いがよくわからん。"
なかのん&マジックさんのツイート: "HTML の通常のフローはUI には遅すぎるので、まだ、XUL は捨てられないって言ってたときはあったけど、flexbox で完全に置き換えられるのかな?"
uint256_tさんのツイート: "ますますJavaScriptが広く使われてるのが意味わからなくなってきたし 今からでもいいから、Lispでもなんでもいいからまともな言語にしてほしい"
なかのん&マジックさんのツイート: "HTMLにしろ、CSSにしろ、かちっと仕様の方を定義しても斜め上の事するWeb開発者が出てきて仕様の方が折れるという歴史の繰り返しなので絶対無理。"
いざてんさんのツイート: "開発側の視点としては、Dartはよくできてるなって思ったんだけど、あんまり流行らないまま廃れたね。"
なかのん&マジックさんのツイート: "IE一強時代も、Chrome一強の今も、互換問題が報告された時にブラウザ側のバグが原因ってのは少ないという現実がある。"
なかのん&マジックさんのツイート: "Web開発者が ・仕様と違う事をやりつつ、一強のブラウザがバグってる ・仕様で定義されていない一強ブラウザの動作に依存している ということをやっていると、Webブラウザの多様性が失われていって、最終的には誰も幸せじゃない未来になる。"

histric-6

なかのん&マジックさんのツイート: "えー…… Googleさん、ちょっと、Webをコントロールしようとしすぎでは。 / remove document.designMode · Issue #177 · w3c/editing https://t.co/9wA3y1lm6t"
remove document.designMode · Issue #177 · w3c/editing
なかのん&マジックさんのツイート: "Webはメンテされなくなったドキュメントやらアプリやらがやたらと存在し続ける場所だから、APIの削除って基本的にはやるべきじゃないよなぁ。"
なかのん&マジックさんのツイート: "ChromeやFirefoxみたいな設計のマルチプロセスだとどうしようも無い気がするけど、どうなの…… / https://t.co/vCWlS0Z06m - On GNU+Linux switching tabs with alt+1 etc passes the hit of 1 to the page #もずでぶ"
なかのん&マジックさんのツイート: "特に不便なスマホやタブレットでアクセスしている時に、ページ内の一部に読み込んだデータを追加していってくれるUIは便利なんだけど、各状態にURIを別途割り当ててくれていないと情報のシェアには不便なので、そういうところは意識して欲しい。"
なかのん&マジックさんのツイート: "オーソドックスなページだとUXは落ちるものの、逆に致命的な問題は起きようがない。オレオレUIでUXを向上させると、ぱっと見では便利になってても、開発者が想定していない不便が発生してる。フィードバックを受け付けて順次改善していくようなものじゃなければ、有り物を使ったりすべきなんだろうな。"
なかのん&マジックさんのツイート: "特定のURLを特定のウインドウで常に開くようなアドオン無いかな……bugzilla専用のウインドウ作ってタブまとめないとあかん感じになってきた。"
なかのん&マジックさんのツイート: "最近のGoogleは本当におかしな方向に行ってるとしか思えない。実験実装にしても発想が非常識過ぎる。例えユーザーがそれを求めたとしても、その内容というか発想は非常識過ぎる。 https://t.co/HG0xzE6eUx"
Chrome Canary、Web検索時に検索語句だけをOmniboxに表示する機能をテスト中 | スラド IT
なかのん&マジックさんのツイート: "Google Chromeのトップに居てるDarin FisherとはMozillaで彼がやってた時期に面識あるんだけど、こういうのを是とする人と思えんので凄く不思議なんだが。"
なかのん&マジックさんのツイート: "プロジェクト細部までトップが決定できるとか、そんな幻想の話ではないというぐらいに、割と根幹に関わる話よね、特にChromeのシェアを考えると、Webの未来に直結しかねない。"
KIMATA RobertHisasiさんのツイート: "(続き)UAの挙動を指定するdownload属性の利用は target="_blank" 同様に別途検討が必要なのではと思いますが、どうでしょうか。pdfへのリンクなら、ユーザーによってダウンロード、そのままブラウザで読む、ダウンロードを経ずにPDFのリーダーで読むなど期待する挙動が違うのではと思いますので"
なかのん&マジックさんのツイート: "ダウンロードするという予告のもと、確実にブラウザにダウンロードを促すには必要不可欠なので必要だと思うんだよな。昔だと、MIME設定がひどくて、ダウンロードリンクをクリックしたはずが、膨大な容量のバイナリファイルをプレーンテキストとして表示しようとして「攻撃」を食らったりしたし。"
なかのん&マジックさんのツイート: "PDFを普段はブラウザで開きたいけど、PDFをダウンロードしたい場合もある時に、サイト側が通常のリンクとダウンロード用のリンクと別途用意してくれてるケースは正直、便利で助かってる。"
なかのん&マジックさんのツイート: "サイト側が使い方間違うと被害ありそうではあるんだけど、まあそれはたいがいの機能がそうな気もする。"
なかのん&マジックさんのツイート: "普通の人がメリットそうそう無いと思うけど、HTMLファイルをダウンロードさせようとすると、やっぱしそういう機能しかないかなーとも。"
なかのん&マジックさんのツイート: "最近、ひとつのアカウントでしかログインできないアプリの設計ってクソだなって思うようになってきた。"
なかのん&マジックさんのツイート: "全然関係無いけど、ふつうのサイトの開発に必要ないけど、ブラウザの開発には超便利な機能が無いと、仕事柄非常に困るので、HTML4の後、<base>が消えたりしないかと冷や冷やしてた。あれ、バグってるサイトをダウンロードしてテストする時にむっちゃ便利なのよね。"
なかのん&マジックさんのツイート: "あとEdgeよ、いい加減にdata URIをフルサポートしてくれ……"
なかのん&マジックさんのツイート: "んー、Nightlyのslow-loading trackersをブロックする機能、他のアプリにLANの帯域を食い潰されてると画像の読み込みとかに悪影響出てる気がする……"
なかのん&マジックさんのツイート: "auxclickイベントの再実装、どうしたもんかなぁ。いつやろう。どうにかねじ込まないとこれマズすぎる。"
なかのん&マジックさんのツイート: "ダウンロードしたブツの正当性を確認するためにハッシュ値を確認させようとするの最悪極まりないUIなのになんでか非難されない……"

なかのん&マジックさんのツイート: "これ読んでると、"OSSだから誰でも好きな機能を"とか、現実を知らない人居るようで、現実ではなく、妄想ベースの結論は「今の自分に都合の良いところに落ち着くだけ」なんだなと。 https://t.co/IApZpstnEi"
Mozilla、EdgeがChromiumベースになることに対しGoogleの独占を危惧 | スラド IT
なかのん&マジックさんのツイート: "こんなこと言えちゃう人は、だれでも無断で好きなパッチをツリーにコミットできると思ってるんだろうか……"
なかのん&マジックさんのツイート: "実装が一つの場合、使いやすいAPIのために元の設計を大きく書き直すということはコスト面を考えると無いのは明白ですな。今回、Geckoが65でkeypressイベントを(事実上)Blink/WebKitに合わせて標準化された動作に半年以上かけて修正したのも異なる実装だったからこその話なので。"
なかのん&マジックさんのツイート: "こういう大きな書き直しが無いとどういう実装になっていくのか、コードを長期間にわたってメンテしたことある人なら分かるんだけど、ハッキーなパッチでどんどんバグだらけの無理矢理な修正が積み重なっていき、袋小路に。その状況は短期的にはユーザーにとって好ましく見えるのがたちわるいところ。"
なかのん&マジックさんのツイート: "何しろそれなりに動いてるものが即座に追加され、簡単に治りそうに見えるバグが残ってるだけに見えるからね。そして、Blinkの挙動やテストをGeckoでの実装時に確認すると、Blinkはだいたいそうやってるんだなというのが見えてくるのでつらい。"
なかのん&マジックさんのツイート: "とりあえず、最近ますます速度が上がって、Webの進化に自分が関わってる所以外はついていけないんだけど、なんで「落ち着いてる」って言ってる人を結構見かけるのか不思議だ。"
なかのん&マジックさんのツイート: "Geckoの場合、開発者やプロジェクト全体にとって興味の無かったモジュールはNetscape時代からほとんど大きな変更無く放置され、それがさらに誰も触りたくない魔窟になっていってた。その内のひとつ、editorを引き取ったのは、書き直さないとこれから増えてくるAPIを実装でき無くなると思ったからで。"
なかのん&マジックさんのツイート: "実装が一つしか無かったら、変わり者が出現して、それを容認してくれるマネージャーがいないと、そういう場所はどんどん進化から取り残されていくだろうね。特にWeb開発者がそこに熱烈な仕様案を書いても誰も実装しない未来が待ってるのは確実。"
なかのん&マジックさんのツイート: "大きく書き変えての実装には、既存サイトがつぶれたり、regression報告をトリアージするコストも当然含まれるので、外部から来た大きすぎるパッチを無条件に取り込むなんてことも期待できない。"
なかのん&マジックさんのツイート: "Webブラウザの開発でつらいのは、既存の実装がある所にその設計をまったく考慮しない仕様案がしょっちゅう出てくるところ。なので、案の段階で、自分の所に不都合な形のAPIにならないように代替案をなんか考えないといけない。実装がひとつしかなかったら、その設計に依存したAPIしか通らなくなる。"
なかのん&マジックさんのツイート: "まあ、どのブラウザでも実装が難しすぎて消えていった仕様もあるけど、そういうのがより極端になっていくやろね。"
なかのん&マジックさんのツイート: "極端な話、実装書いて仕様案だけWICGに投げて、オープンを装ったり出来るんだよな。"
なかのん&マジックさんのツイート: "仕様策定で、その現場に居てる人の顔を立てて妥協したら、その人の所属する企業の他の部署の調子に乗った奴からの恫喝に仕事増やされ、それを対応したら、さらにその企業の他の部署がてんやわんやの大騒動になったというのが2018年の私のメインの仕事の顛末でして。"
なかのん&マジックさんのツイート: "自社製品が後出しジャンケンでinvalidとされるような仕様には二度と合意しないという気にしかならないよ、そんなことされちゃ。"
なかのん&マジックさんのツイート: "は??? Firefoxのタブバーの"+"ボタン、マウスで長押ししたらcontainerを選べるとか知らなかったんですけど……"
なかのん&マジックさんのツイート: "regression報告で初めて知った、なかなか衝撃のUI。デスクトップで長押しの発想はなかった。(まあ、戻るボタンとかは長押しあるけれども。)"
なかのん&マジックさんのツイート: "普通に考えたら、昔の戻るボタンのデザインみたいに、"+"の脇に小さくでも、下向きの▼とか必要だよな。"
なかのん&マジックさんのツイート: "Netscapeはブラウザをメインの事業のひとつとして、パッケージを売ることでも収益を上げていたので、アップグレードは当然金のかかる行為となってた。ここをMicrosoftは突いてきて、Windowsのプラットフォーム戦略の一環としてIEを無料で使えるブラウザとしてNetscapeの事業の資金源を潰しにかかった。"
なかのん&マジックさんのツイート: "もちろん、汚いビジネス手法だと今でも思うんだけど、無料でもアップグレードを渋る人達すら居てる現在の現実を見ると、もし、ブラウザのアップグレードが有料のままだったとしたら、世の中、最新じゃないブラウザを使い続ける人が大量に居た(むしろ主流派になってた)であろうことは確実に思える。"
なかのん&マジックさんのツイート: "そこを当時のMicrosoftが狙っていたとも思えないんだけど、結果的にブラウザのように更新頻度が高くて、常に最新版にしておかないといけないものが無料で手に入るのが当たり前になった現状を作ったMicrosoftの歴史的な決定は今のWebのセキュリティに無茶苦茶貢献したと言えると思う。"
なかのん&マジックさんのツイート: "もし今でもWebブラウザが有料のソフトウェアで、バージョンアップに金がかかるのであったなら、ブラウザのバージョンの断片化は昔のそれよりはるかに酷くなってて、Web自体がここまで使いやすいプラットフォームになってなかったんではないかな。"
なかのん&マジックさんのツイート: "こんだけブラウザが多機能になってる時代に、Ctrl + Uがソース表示に使われてるの、むっちゃ勿体ないように思う。開発者用は全部Shift付きで良いような(開発者的に不便ならShiftLockみたいなのキーボードレイアウト関わらずできるようにするとか)。"
なかのんクエストさんのツイート: "@momdo_ ああ、マウスジェスチャーは冬の時代かもですね……あれってアプリが実装するのも変なようには思いますが(OSから結果だけAPPCOMMANDとかのイベントで来いよって感じが)。"
マウスジェスチャー - Wikipedia
マルチタッチ - Wikipedia
なかのん DAYS''さんはTwitterを使っています: "思った以上にキャレットが多かったですね。ちなみに、用語的にはカーソルは、マウスカーソルを指すことが多く、キャレットを使った方が誤解が無くなります。"
なかのんクエストさんのツイート: "というか、Windowsってなんで未だにデスクトップアプリのセッション復元に関するAPI整備を未だに行わないんだろうかと不思議。OS側で仕組みを用意してやれば、開発が活発なアプリは追従してくると思うんだけど。"
なかのん&マジックさんのツイート: "なんだかんだで、メニューって便利よね。モダンなアプリのデザインではどんどん廃止・オプション扱いにされてるけど。最短でのアクセスはできないけど(最低でも2クリック)、整理されてるのでアクセスしにくいメニューってのはそうそう無い。"
なかのん&マジックさんのツイート: "ネイティブのタイトルバーはWindowsの場合、アプリのプロセスがハングアップしてても操作可能なので、GPUドライバのバグとかで固まりやすいメディアプレーヤー系では使えるようにしておいて欲しい。自前のモーダルダイアログ出すアプリとかだと詰むんだよなぁ。"
なかのん&マジックさんのツイート: "observer (listener)って綺麗にデザインできるけど、runtimeコスト高いなーと思う今日この頃。"
なかのん&マジックさんのツイート: "ところでドロップダウンリストの「選択」って用語、一般的には開かれてるリストをハイライトしてることを言うのか、それを選んで閉じた状態を言うのか、いまだによくわかっていない。"
なかのん&マジックさんのツイート: "説明文書いてると後者を「選択」というのが自然な気もするけど、じゃあ、前者をどう呼ぶ? って感じが。"
なかのん&マジックさんのツイート: "Ctrl+ZXCVみたいに、Ctrl+Shift+CXVあたりもリッチテキストを扱えるアプリ間で暗黙の共通のショートカットキーとならないんだろうか。 / 【レビュー】[Windows]+[V]キーでテキストから書式を取り除いて貼り付け「PureText」 - 窓の杜 https://t.co/TQjnNbHQ5l @madonomoriさんから"
なかのん&マジックさんのツイート: "OSに標準搭載されてるアプリがショボくて、なんでこんなのあるんだって思う人も多いかと思いますが、サードパーティーのアプリはあれを参考にすることでOS上でアプリ間共通の用語、メニュー構成、ショートカットキー、その他使い勝手を実現できるので、無いとえらいことになるんです。"
いけち@狐耳さんのツイート: "弊社のITスキルは偏差値3くらいしかないので、Outlookが最新版に更新されてアイコンが変わった日の朝、「メール開くやつがなくなった。直して欲しい」という電話で情シスのヘルプデスクがパンクした。"
なかのん&マジックさんのツイート: "いやほんとに、PC 等に苦手意識のある人は理解せずに使い方を覚えてるだけなので色々と難しい。"
なかのん&マジックさんのツイート: "アプリの操作方法を驚きの固定手順で覚えてる人ってライトユーザにはたぶん多くて、「これぐらい分かるやろ」っていう変更がかなりあかんパターンは多いと思う。かといっていつまでもUIデザインを変更しないわけにもいかなく…… https://t.co/9StksFHaL0"
最近気になったアプリケーションの操作方法の変更について | アクセシビリティBlog | ミツエーリンクス
なかのん&マジックさんのツイート: "変更回数が少ない方が良いのは間違いないけど、じゃあ、溜め込んでおいて、一回のアップデートで大変更が良いのか、ちょっとずつ変化していく方が変更に追随しやすいのか、その辺はデータ見たことないのでプロダクトとしてどちらが好ましいのかよく分からない。"
なかのん&マジックさんのツイート: "ふと、MozillaのCSSのbindingによってショートカットキーが特定の要素に付加された時にどこからその処理が来てるのか気になったのでデバッグビルドでスタック見てみたら、非同期で投げられててどっから来たのか分からないという……"
なかのん&マジックさんのツイート: "そら、ソースコードを読んでてもたどり着けませんわ……"
なかのん&マジックさんのツイート: "今、ショートカットキーはキーイベントがある度に、連結リストを辿って、マッチするかどうか確認するようになってて、メモリ削減には貢献してるんだけど、その代わりにオーバーライドするのがちょっと無理って感じになってしまってる。"
小池宏幸@Piascoreさんのツイート: "トグルボタン問題、こういうのやね。… "
なかのん&マジックさんのツイート: "あの分かりにくいウイジットを使い出したAppleのデザインセンスわけわからん。"
Takashi Kawasakiさんのツイート: "この前のトグル問題の本質だと思うけど、説明に動詞がほしいし、日本語がそもそもおかしい。「起動時またはバックグラウンドで起動」って、何が「または」なんだよ。… "
Takashi Kawasakiさんのツイート: "HUAWEIのこの辺の設定、全体的に意味がわからん。「消費電力の高いアプリ」っていうのはユーザーが表明するという意味なのか、それとも他の意味があるのか。英語か、中国語で語彙を調べた方がよさげではある。… "
なかのん&マジックさんのツイート: "GPUのドライバがクラッシュしたっぽいけど、この場合、NightlyのUIは完全にお亡くなりになるのか。メニューとかすら自前レンダリングのアプリはこういう時は弱い。"
なかのん&マジックさんのツイート: "本格的にContainer Tabを使い出して思うけど、ウインドウ単位でContainerになって欲しい。せめてデフォルトで利用されるContainerがそうであって欲しい……"
なかのん&マジックさんのツイート: "もう、本当にWin10に「ディスプレイのタッチ機能」を一時的に無効化するUIつけて欲しい。子供がさわりに来ると使えなくなる。"
なかのん&マジックさんのツイート: "でも、2018年にもなってって感じだけど、自分専用のファイラは作った方が仕事がはかどるのではって思うこと多いな、最近。"
なかのん&マジックさんのツイート: "Mozillaのソースコードとか読んでみると良いよ。ネイティブUIとできるだけ同じルック・アンド・フィールを実現するために、どれだけのコードが必要になってて、どれだけメンテナンスコストかかるかなんとなく想像できると思う。それでも全然完璧からはほど遠いんだし。"
なかのん&マジックさんのツイート: "ウイジットを全て自前で実装して、本当にその価値があるのってブラウザみたいに自前でレンダリングするしかやりようが無いような特殊なアプリか、クロスプラットフォームでUI部分のコードを完璧にシェアしつつ、自分達でその仕様をコントロールする必要がある場合だけだよな。どちらにしろ特殊。"
なかのん&マジックさんのツイート: "ホイールとかタッチとか、あの辺はGUIアプリでも入力が来すぎてどうなのってところあるし、今、Mozillaでもcoalescingしようかみたいな話は出てるけど、それぐらいかなぁ。"
なかのん&マジックさんのツイート: "macOSが特に顕著なんだけど、ホイール操作で1px単位のスクロールのイベントが飛んでくるの、本当にやりすぎでは。"
なかのん&マジックさんのツイート: "passiveじゃないホイールイベントやタッチイベントのリスナが居てると非同期スクロールも使えないんで、細かすぎるスクロールを示唆するイベントはパフォーマンスの低下につながってる。"
ɔさんのツイート: "3/19にリリース予定のFirefox 66から、疑似カーソルが正確に座標を追尾するようになります。普段使っているブラウザが対応するのは本当に嬉しいので 確かみてみろ! 完"
なかのん&マジックさんのツイート: "その節は本当に勉強になりました。"
なかのん&マジックさんのツイート: "個人的にはUIにアニメーションは派手さ以外の面では要らないって思ってます。あれがあることで変化が分かりやすいってのはユーザテストしてない結論だと思ってる。大概の人はそんなに視界の変化について注意してないと思ってる。"
なかのん&マジックさんのツイート: "みんなそんなに視界の変化に注意を払ってるなら交通事故なんて起きないんですよ……"
なかのん&マジックさんのツイート: "人は見ようとしているもの以外は視界にあっても認識していないと思う。"
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「確かに白い背景のUIが多い昨今、白いマウスカーソル使うのは理にかなってないな。」 / Twitter
Asa DotzlerさんはTwitterを使っています: 「Did you know you can easily change your pointer color and size in Windows? I didn't until last week but I've been running with a yellow pointer for several days now and it's SOOO nice to be able to find the thing without all that jiggling and circling. https://t.co/Rmglg0a304」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「未だにフォーカスが移動しちゃいけない時や、フォーカス移動がからむデバッグと、DnDのデバッグは面倒くさい。」 / Twitter
Manabu UenoさんはTwitterを使っています 「マウスオーバーすると色が薄くなるボタンとか、下線が消えるリンク文字とか、何を考えてるんだろう。そのオブジェクトが視覚的に体現していた意味性を手放すということは、操作を拒否してることではないか。そもそもマウスオーバーによる変化は全て不要だと思う。UIを複雑にするだけ。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「私はマウスホバーという、「状態の変化」が正常に処理されたか見えないと困ることがあるので変わって欲しいと思う。みなさんは、アプリのフリーズ(一時的なものも含め)にどうやって気付いてるでしょうか? マウスカーソルが期待通りの変化をしなかったことから気付くこと、多くありません?」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Firefox for Androidでは長押しでmousemoveイベントと、その副産物のhover状態の変更が起きなかったんですが、わざわざ去年か一昨年に入れましたよ? そうじゃないと困るサイトがあったので。 https://t.co/J8oklxOvav」 / Twitter
なつき@Webデザイン体験レッスンさんはTwitterを使っています 「マウスオーバーによる表現、PCユーザーが中心だった時台は必要でしたがスマフォ・タブレットユーザーが中心だとわざわざ付ける必要がない気もしますね。 皆さん今でもマウスオーバーで見た目を変えているのでしょうか…?」 / Twitter
なつき@Webデザイン体験レッスンさんはTwitterを使っています 「@d_toybox 確かに長押しで変化しますね。スマフォでリンクなどを長押しするユーザーがどれだけいるのか気になります…」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「@Stocker_jp これがないとメニューバー内のメニューがリンクになってるのに、そこにhoverして開かれるポップアップメニューを使うことを期待してるサイトが全滅なのですよ。」 / Twitter
なつき@Webデザイン体験レッスンさんはTwitterを使っています 「@d_toybox スマフォでそういう表示が出るサイトはそろそろ改善して欲しいですね…」 / Twitter

@makoto_kato

Makoto Kato ︎︎さんのツイート: "Bug 1472618 - navigator.platform returns "Win64" in Firefox but "Win32" in Chrome and Edge on Win64 OS https://t.co/2WTuOEB0S0 というか、Win64なIEはWin64と返してたのに、EdgeになるとWin32になるってなんだそれ"
Makoto Kato ︎︎さんのツイート: "Win64なFirefoxでWin64と返すようにしたのはずっと昔の自分ではあるが"
Makoto Kato ︎︎さんのツイート: "Got win64/arm64 laptop!!… "
Makoto Kato ︎︎さんのツイート: "重いんだけど、これ。しかも電源がType Cじゃないんだ"
Makoto Kato ︎︎さんのツイート: "syswow64ある意味わからない"
Makoto Kato ︎︎さんのツイート: "… "
Makoto Kato ︎︎さんのツイート: "No arm64 string in Edge Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
Makoto Kato ︎︎さんのツイート: "SunSpider on Edge + Windows 10 / arm64 https://t.co/CRR3TsS1gw… "
Makoto Kato ︎︎さんのツイート: "Emulation mode of Windows 10 / arm64 is slow... (this result is Firefox x86 on emulation mode) https://t.co/51OzDrjkUb… https://t.co/P8SJVFhMqR"
Makoto Kato ︎︎さんのツイート: "もしかして、sysarm32がthumb2でsyswow64がx86のバイナリってことか"
Makoto Kato ︎︎さんのツイート: "notepad.exeがx86とthumb2とarm64の3バージョン含まれてるとか、誰得だよ"
Makoto Kato ︎︎さんのツイート: "SONYはWebKitにコミットしてる (WebKit reviewerも社員にいる) ので、次もWebKitだと思いますよ。任天堂はACCESS次第 (これ https://t.co/TbaGqgBZsa)… "
WebKitブラウザ「NetFront® Browser NX」|ブラウザ|製品情報 | 株式会社ACCESS
Makoto Kato ︎︎さんはTwitterを使っています 「GNOME/Waylandで整数じゃないDPIスケールを有効にすると、整数倍のDPIでも非常にぼやける。使えなすぎた」 / Twitter

@rockridge07

Rockridgeさんのツイート: "Fx55:Windows版で、描画関係の処理において常に垂直同期(vsync)タイマーが使用されていることから、ソフトウェアタイマーを使用するモードを削除した。 / “1352074 - Firefox fixes Window…” https://t.co/cHdNp6G3Vl"
Rockridgeさんのツイート: "FirefoxにPolicy Engineと呼ばれるコンポーネントが追加される見込み。システム管理者が作成したJSONベースのカスタマイズ設定を読み込み、本体に反映させる。また、"ESR 60"という表記にも注目すべきだろう。 https://t.co/VZpDE6sj2H"
Rockridgeさんのツイート: "FirefoxのUIアニメーションがPCにかける負荷は軽微なものではない。Mozillaはマシンパワーに乏しい環境ではフレームレートを下げ、負荷を減らそうとしている。参照:https://t.co/t2qYcmhKaR / “T…” https://t.co/VxPpYlM7XB"

@shibu_jp

渋川よしきさんのツイート: "動的ウェブの高速化、そろそろ、データ変更時にそれを表現するhtml片を生成まで事前にやっておく、みたいになって、エンタープライズなバッチシステムに回帰していくのでは。"
渋川よしきさんのツイート: "What's 3 Words、すでにあるマップコードの仕組みを単語の空間にマッピングしたものという理解でいいのかな?というか、これもベースはデンソーなのか。すごいな、デンソー 。 https://t.co/UzIgpTfiyr"
Mapcode - Wikipedia
渋川よしきさんのツイート: "ガントチャートは依存関係を持ったタスク情報をコンパイルしたら出力されるべきものであって、ガントチャートを入力するものではないよね。"
渋川よしきさんのツイート: "QML向けのReact Nativeが出れば、クライアント開発の一発逆転はあり得る気がしてる"
渋川よしきさんのツイート: "アイディアを書き留めたり、一次入力としてよく使ってます。編集は提案を自動で作って選択肢から選ぶぐらいのUIが実現したらできそう。構成は複雑なカードゲームのユニット編成とかゲームでやってるからできそう。 https://t.co/12OA5XZecV"
渋川よしきさんのツイート: "僕の中でmacOS機が良いのはディスプレイが綺麗で、フォントが綺麗で、スクロールがなめらかで、SSDがそこそこ高速なコンピュータという位置づけなので、他のOSはまだいまいち。特にスクロール。最近の普段使いはLinux機だけど。"
渋川よしきさんのツイート: "Windowsってスクロールイベントが行単位なんだよな。Xもそう。Waylandはwheelは「ボタンクリック」って書かれているので期待薄だけど、fingerでのスクロールはkineticって書いてあるので、WindowsよりはLinuxとかの未来に期待してる。"
渋川よしきさんのツイート: "macとiOSは常にデバイスのdevice pixel ratioが一定で、macはretina機種だと2。2880x1800の物理解像度でも、文字一番小さい設定にすると、論理的な作業スペースは1920x1200。標準で1440x900。内部では2倍の3840x2400でレンダリングしてスケーリングしている。"
渋川よしきさんのツイート: "これ、すごく無駄に見えるようだけど、画面描画はアンチエイリアスが効いて悪くない。あと、スクリーンショット撮ると、常に2倍のサイズで取得される。RPAでオートメーションするときにDPI変えても動作に影響ない。macはこの画面の描画とピクセル単位スクロールイベントの2つは尊い。"
渋川よしきさんのツイート: "MacBook Proは高い、○○なら/自作したらもっと安い、と言っている人よく見かけるけど、System 76ならたしかに半額ぐらいで32G/1TBマシンが選べる。なんだけど、ユーザーランドの部分はともかく、電源管理だったり、スクロールだったり、Retina対応だったりの部分は圧倒的にmacがいいのだよな。"
渋川よしきさんのツイート: "Surface Proも身近で買った人は多いけど、もろもろ電源の問題だったりとかトラブル抱えていたりするし、いろいろ厳しさがある(し、Surface 2とWindows Phone 7でハードの寿命とサポートされなさが異常だったのでMS製ハードはしばらく近寄りたくない)"
渋川よしきさんのツイート: "Macがダメになっているといっても、他のダメさがまだ勝っているので、しばらくはmacかなぁって。Linuxが8th Genの電源管理完全にサポートしてWaylandでピクセル単位スクロールが実現したらLinuxメインにしたさはある。"
渋川よしきさんのツイート: "UI部品。今までもX, Yと重なりのZの3次元であったけど、最近はZ軸でフォーカスアウト(ぼかし)や、アニメーションという時間軸tが入ってきた。その次は回転でも入るのかな。"

@uint256_t

uint256_tさんのツイート: "#Naglfar - クラッシュしたら、Issueで報告してねって表示がでるようにした"
uint256_tさんのツイート: "#Naglfar これ、Naglfarはすぐにクラッシュするからその都度報告してもらってたら大変なことになりそう()… "
yumetodo-鳥の氷河から逃げるさんのツイート: "違法なHTMLに対して「あきらめましょう」と出す機能はありますか?… "
uint256_tさんのツイート: "これが許されるなら、HTML はもっと健全な方向へ進化していったんだろうなあ (今のところそういう機能はなくて、おかしなHTMLでも無理やり解釈するようになっています… "
なかのん&マジックさんのツイート: "なんかこう、MS vs. Netscapeな頃を彷彿とさせてくれてて、良い。"
uint256_tさんのツイート: "ブラウザは一人の人間が作るものじゃないよ。"

@yugui

Yuki Yugui Sonodaさんのツイート: "だからIMEの状態を見ずにエンターキーイベントだけ拾って検索を開始するのはやめろと何度言ったら"
Yuki Yugui Sonodaさんのツイート: "Googleは正攻法と正論を突き詰めて成立してる会社って印象があって。品質を保ちたい→テストを書く。テストしづらい→テストしやすい設計をする。テストを浸透させたい→浸透させる職種を作って全チームに配置。テンソル計算が遅い→速いプロセッサを作る。時刻ズレで整合性が辛い→原子時計を設置"

@shirouzu

ダブルバッファリング

Shirouzu Hiroaki(白水啓章)さんのツイート: "描画のちらつき抑止用ダブルバッファリング、OS側がそれ的な動作をサポートしてくれないものかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: ".NET には存在しているようだ。 https://t.co/SjjgMV7Dco"
ダブル バッファリングされたグラフィックス | Microsoft Docs
Ryota Shioyaさんのツイート: "いまどきの Windows でデスクトップ・コンポジションが有効な状態だと実質的に常にダブル・バッファしてるようなもんだと思うんですけど,どうでしょう?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "その意味ではその通りです。 ただWindowDCにGDIで直接お絵かきすると、その過程がすべてリアルタイム更新されるので、ちらつくんですよね。(手動ダブルバッファなしに)BeginPaint~EndPaintをまとめて最終結果だけ表示するモードも欲しいなぁ、と。… https://t.co/sH84BFwODx"
Ryota Shioyaさんのツイート: "マシンパワーゴリ押しで十分速く更新されるので運悪く DWM の更新タイミングにぶつからないぎりは平気かなとか思ってたんですが,ネットみてるとそんな簡単にはいかないみたいですね・・・ ところで,BeginBufferedPaint という API もあるようですけど,こちらで解決されたりしませんか?… https://t.co/lk6Pkbv9Y2"
Shirouzu Hiroaki(白水啓章)さんのツイート: "おぉ、いつの間にかこんなAPI(Vistaで増設)が…これを使えば大丈夫そうですね。 ありがとうございます! (Vista以降のAPI増えたし、そろそろ「XPでは起動もしません」にするかな)… "
Ryota Shioyaさんのツイート: "Vista で導入されたコンポジションのバッファリング関係の API を眺めていたら、「あれ?これは名前からして目的そのものなのでは? 」という感じでした! 頑張れば動的ロードで XP でも最低限動くように出来るとも思いますけど、流石にもう打ち切っても良いのではないかなと言う気がします… https://t.co/TvPHzgaPHD"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸、DirectWrite(Win7以降)やカラー絵文字(Win8.1以降)対応しつつ、未だにWin98サポートのすごさ。 OS毎の分岐で悪夢なコードになっていないか、気になる。 https://t.co/kIhkQPQp9D… "
秀まるおのホームページ(サイトー企画)-秀丸エディタ

Shirouzu Hiroaki(白水啓章)さんのツイート: "例外ハンドラ内でMessageBoxを生成すると、メッセージループが回る=同一スレッドのタイマー処理が動くスキを与えてしまう問題。 MessageBox専用スレッドを別途生成すれば一応解決するが、やや牛刀感。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "IP Messengerでも(昔から)非アクティブでも選択が見える形にしている。 ただしオーナードローではなく、WM_KILLFOCUSをブロックというhack的な実装。… "
やねうら王さんのツイート: "『将棋神やねうら王』は、ListViewが複数配置されていて、そのすべてがアクティブという特殊なUIデザインになっています。この理由について記事にしてみました。 ListViewが複数あるこの世界で世界最強 https://t.co/bDNHg2i7Jr"
システムのフォントサイズを大きくする機能が追加 ~「Windows 10 RS5」Build 17692 - 窓の杜
Shirouzu Hiroaki(白水啓章)さんのツイート: "ユーザには良い機能だが、開発側はダイアログで表示が切れる等に気をつけないと。(以前、IEEEでも有名な年配の米女性から、丁寧な指摘メールが届いた経験が、、、)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ユーレカ! ent->TimerProcの中で(レア設定の場合に)MessageBoxを通っていた。 MessageBoxは内部メッセージループを持つ=パケット処理やタイマー処理などが再入的に発生する。 msgActイテレーション中のMsgBoxでパケット受信が発生、別関数でのmsgActイテレーション再発生が原因。(再現も完了)… https://t.co/0G9RELEoD0"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WM_INITDIALOGのコンテキスト内だと、MessageBox等のModalDialogを作っても、Modalにならない不思議(まるでオーバーラップ的な挙動)。 (さらに、PostMessageでわずかにDelayさせても回避できない様子)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "GetForegoundWindow API、Edge(UWP)内部での発行 と、一般プロセス発行で違う値が返るなぁ…Edge側Containerが余計なことをしているように見える。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これとは違うかもだけど、開発流行に追随だけで(著しい外部メリット出せてないのに)「俺ってイケてる開発者」と自意識だけ拗らせてる人、稀にいたっけ。」 / Twitter
R. ShioyaさんはTwitterを使っています 「学生さんが React で課題作ってて,「やたら色々ややこしいし何が良いのかわからない.jQuery ならもっと簡単なのに」みたいなこと言ってて,何年か前にこの記事みて笑ってたときと状況が同じだった.https://t.co/ug89AonP0U」 / Twitter
2016年にJavaScriptを学ぶとこんな感じ. このストーリーは、Circle CIに投稿された”It’s the… | by Hiroshi Takeuchi | Medium Japan | Medium
R. ShioyaさんはTwitterを使っています 「個人的にはべつに React とかを否定したい訳ではなくて,どこでもきちんと動く複雑大規模なものを作ろうとしたらああいうのが必要なのはわかるのだけど,それはそれとして学習の初期コストはかなりでかいよなぁと思う」 / Twitter

プロダクト支援チームでkintoneのStorybookをホスティングした話 - Cybozu Inside Out | サイボウズエンジニアのブログ
D-Bus のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Epoxy/README.ja.md at main · kekyo/Epoxy
flutter 内部構造 - Google 検索
モジュールの構造化 · An Introduction to Elm
PreactチームがWMRをリリース、最新のWebアプリ開発を簡単に
日本のアプリのUI(ユーザーインタフェース) は古くて醜いのはなぜでしょうか?に対するMakiko Nukagaさんの回答 - Quora
第595回 リモートデスクトップのためのSPICEクライアントあれこれ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

エディタ

その他

その他

ed(1) is Turing-Complete – *nix Windows
最初のアウトライナー
Outliners & Programming
技術文書
What I learnt from coding a text editor in C
「Skype」のメッセージからタスクを生成、“Microsoft To-Do”へ直接登録可能に - 窓の杜
ClangdでC++ソースコードを補完する際にコンパイルオプションを指定する方法 - uchan note
世界を劇的に変えた大発明の1つ「スプレッドシート」誕生秘話 - GIGAZINE
「CKEditor 5 v16」リリース、コードブロックのサポートや制限モードの導入が行われる | OSDN Magazine
Pandocで索引をどう作るか - golden-luckyの日記
抽象データ型を自作する - golden-luckyの日記
matsumoto19.pdf
2020年6月30日 Fedora,デフォルトエディタに「nano」を採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
全能テキストエディタ「Vim」の歴史と開発者に広く普及した理由 - GIGAZINE
TwitterがiOSアプリ向けに新しいオープンソースのテキストエディタAPI「Twitter Text Editor」を発表 - GIGAZINE
iOS版「Twitter」アプリのテキスト編集コントロールがオープンソース化、“GitHub”で公開 - やじうまの杜 - 窓の杜
「記事中の誤字を教えてくれるエディタ」をイギリスの新聞社が開発 - GIGAZINE
vi.1

KeyboardEvent

MS

なかのん&マジックさんのツイート: "そうだ、 https://t.co/xaBjzAiLxI を一度、アップデートしておかないとな。"
KeyboardEvent.key mapping of each browser - Google スプレッドシート
なかのん&マジックさんのツイート: "ラフに調べて見ても、Edge、今回の大型アップデートでKeyboardEvent.keyの値が改善してるものの、まだいくつかアレやわ……バグ報告しとかんと。"
なかのん&マジックさんのツイート: "というか、なんで、Travisが居てるのにこんなことになるんだよ。"
なかのん&マジックさんのツイート: "UWPのイベントモデルを全く知らんけど、デスクトップアプリで受け取れてた仮想キーコードが受け取れなくなってるとも思えんしなぁ。"
なかのん&マジックさんのツイート: "それにしてもまだ、EdgeはKeyboardEvent.codeに対応してないのか。これ、かなり簡単なんだけどなぁ。"
なかのん&マジックさんのツイート: "それともUWPでscancodeが取れなかったりすんのかな?"

なかのん&マジックさんのツイート: "よくよく調べてみたら、Safariも既にKeyboardEvent.keyとKeyboardEvent.codeをサポートしてるやん。なんで、未だにKeyboardEvent.keyCode使ってるサイトが多々あるんだ?"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeで、記号の入力キーを見るのだけは本当に頭おかしいのでやめていただきたい。真面目に対応しようとすると、各ブラウザの各OS版で、しかも各キーボードレイアウト毎に対応しないといけないのが昔から分かってる。"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeの値に意味がそもそも無いので、各ブラウザが各OSで都合の良いようにマッピングしてるだけなので、UA文字列なりを確認してブラウザごと、OSごとに処理を分岐させるしかない。なので、ブラウザ側で他のブラウザにあわせた値に今更変更すると、既に存在してるアプリを壊してしまう"
なかのん&マジックさんのツイート: "というわけで、こいつの互換性に問題ありまくりなのはブラウザ開発者側も分かってるから、標準仕様ではkeyCodeはちゃんと定義されず、keyとcodeという新しい属性が、その値のリストも含めて新たに標準仕様としてまとめられてる。"
なかのん&マジックさんのツイート: "よく誤解されてるけど、勧告に至ってるKeyboardEventの仕様って2018年2月になっていも未だに存在しないからね。DOM Level 2 Eventsでも未定義: https://t.co/RnXVtM1buh"
Document Object Model Events
KeyboardEvent.keyCodeとは何か - WebStudio
KeyboardEvent.keyCodeとは何か - WebStudio
vyv03354さんのツイート: "> Mozillaのソースコードを公開した当時の履歴は既に残っていませんでした。 https://t.co/sPQl5E0cai… "
mozilla-central-cvs: dom/public/idl/events/nsIDOMKeyEvent.idl@2df74fb33691 (annotated)
なかのん&マジックさんのツイート: "おお、ありがとうございます。cvsのリポジトリのコピーあったんですね。助かりました。… "
UI Events KeyboardEvent key Implementation Report
UI Events KeyboardEvent code Implementation Report
なかのん&マジックさんのツイート: "Firefox本体内で、たまに、 if (event.key === " ") { // something for spacebar } ってコードを見かけるけど、これたぶん間違ってて、 if (event.code == "Space") { // } じゃないといけない。確かASCIIの空白以外を入力するレイアウトがあったはず。"
なかのん&マジックさんのツイート: "スペースキーをショートカットキーとして処理する場合、普通の文字キーと違って、物理位置の確認で普通は問題無いはず。(AltGr+?)スペースキーをTabとして使うという、超変態レイアウトもあったように思うけど、あのレベルは無視しても良いと思う、さすがに。"
なかのん&マジックさんのツイート: "今やってる事: ・keypressイベントをnon-printableキーや、キーコンビネーションでは発火しないようにする ・keydownとkeyupイベントを、IMEの未確定文字列があっても発火するようにする Web開発者さんの負担を減らすために同時投入が望ましいと考えてます。 #もずでぶ"
なかのん&マジックさんのツイート: "ようやくここまで来た。 / Intent to stop dispatching "keypress" event for non-printable keys and key combinations in Nightly and early Beta - Google グループ https://t.co/oYfGCNQBBb #もずでぶ"
なかのん&マジックさんのツイート: "間もなく、Nightlyとearly Betaのデフォルト設定を変更して、keypressイベントの発火を止めますが、"dom.keyboardevent.keypress.dispatch_non_printable_keys_only_system_group_in_content"をtrueに変更すれば今すぐテストできますので、それで問題のあるUIやサイトを報告してください。 #もずでぶ"
なかのん&マジックさんのツイート: ""keydown"と"keyup"イベントを未確定文字列がある場合にも発火するように(リリース版では)同時にやるんだけど、こっちはたぶん、そんなにバグが無いと思うんだよな。たぶん、あっても、イベントリスナ内で、KeyboardEvent.isComposingをチェックするだけで済む。 #もずでぶ"
なかのん&マジックさんのツイート: ""keypress"イベントの発火中止は、Netscape時代からの(Geckoの最初期からの)実装仕様を変更しちゃうんで、影響範囲が大きい。また、chrome documentとか、system event groupでは引き続き発火してるんで、ソースコードから単純に検索してバグる場所を探し出せなくて厳しい。 #もずでぶ"
なかのん&マジックさんのツイート: "ちなみに、keypressの発火を止める件って、keypressイベントの動作をUI Eventsの仕様策定中に、WGの編集者が、Firefoxの動作だけ違うから、それ以外を標準ってことにしてしまおうっていうひどく乱暴な話だったのに、それを盾にしてくるとはなぁ。"
なかのん&マジックさんのツイート: "私は、もう歴史的な問題が積み上がりすぎだから、定義せずに、MAYで参考情報入れとけば良いやんってスタンスやったんやけど。そもそもFirefox以外のブラウザの動作も完全に同じじゃないし、Chromeもプラットフォームによって動作違うし。"
なかのん&マジックさんのツイート: "本当にUI文字列見ないとクロスブラウザなコードを書けないパターンって、KeyboardEvent.keyCodeぐらいのものだと思うんだけど、他でもあるのかなぁ。keydownでハンドリングすべきイベントを、わざわざFirefoxの場合にだけkeypressでハンドリングしてるという理由が想像つかない。"
Non-printable keys will soon stop firing keypress event (Affecting) | Firefox Site Compatibility
なかのん&マジックさんのツイート: "未だにOSの違いを見てるクソサイトあるのか。KeyboardEventでよほどセンシティブなことやるとき以外は、PCかモバイルかぐらいしか見分ける意味が無いはずなんだけど。"
KeyboardEvent.keyCodeとは何か - WebStudio
JSer.infoさんのツイート: ""KeyboardEvent.keyCodeとは何か - WebStudio" https://t.co/MdNT9glaPb => https://t.co/QkP7hNkIJj KeyboardEvent.keyCodeの歴史や実装について。 keyCodeはOSやブラウザ間で問題があり標準化もされていないため、keyやcodeを代わりに使うべきという話。"
uehajさんのツイート: "KeyboardEvent.keyとKeyboardEvent.codeは、 KeyboardEvent.keyCodeと違って、数値ではなく、文字列である / “KeyboardEvent.keyCodeとは何か - WebS…” https://t.co/xUIVeyCVQf"
なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeでググったりすると、KeyboardEvent.keyと、KeyboardEvent.codeの解説も書かなきゃいけないなって気がしてきてる。Reactのissueなんか読んでも、不信感しか湧いてこない。"

Range

azuさんのツイート: "見てる: "range - Web API インターフェイス | MDN" https://t.co/1T4tv5Eq6t"
range - Web API インターフェイス | MDN
なかのん&マジックさんのツイート: "@azu_re DOM Rangeの生成・初期化コストの高さは各所で問題になってるので、速度には注意が必要です。"
なかのん&マジックさんのツイート: "DOM Rangeの生成・初期化、あとは、大量にインスタンスが存在する時のDOMツリーの変更速度の低下は深刻。Quantum Flowでは、ここの速度の多少の最適化と、変更回数自体を減らしたりというのを、エディタ周りでは行ってる。"
なかのん&マジックさんのツイート: "提案されてるStaticRangeで多くの場合は事足りるハズなんだよな。"

Web Components

Custom Elements

Firefox Nightlyさんのツイート: "Custom Elements v1 are enabled in Nightly! https://t.co/wccEYEExji - MDN documentation and demo: https://t.co/K17kLhmV2f"
Custom Elements - Web Components | MDN
Rockridgeさんのツイート: "Fx59:予定通りNightlyチャンネルでCustom Elements v1がデフォルト有効化された。脱XBLに向けても前進となる。 / “1406825 - [meta] Enable Custom elements v1…” https://t.co/CzPOswCEDP"
W3C HTML 5.3にCustom Elementsが統合された - 水底の血
Using custom elements - Web Components | MDN

microformats2

Rockridgeさんのツイート: "Fx50:microformats2対応の新パーザに一本化するため、旧パーザを削除。 / “1254367 – Remove old microformats parser now that we have the new mi…” https://t.co/1VgbEQWChZ"

JSON-LD

schema.org 日本語訳 - ホーム
schema.org構造化データマークアップのシンタックスにJSON-LDという選択 | HTML5Experts.jp
Home - schema.org
Silo Buster
JSON-LD と Open Graph で構造化メタデータ対応 | blog.jxck.io
ついに始まった、Google AMP(Accelerated Mobile Pages)を試してみよう! (1/2):CodeZine(コードジン)
やっぱりWebComponents+JSON-LDがこれから熱くなるわけです | WP-kyoto
JSON for Linking Data Community Group
JSON-LD Guiding Principles, First Public Working Draft | W3C Blog
First Public Working Drafts: JSON-LD 1.1 Syntax, JSON-LD 1.1 Processing Algorithms and API, and JSON-LD 1.1 Framing | W3C News
JSON-LD 1.1
JSON-LD 1.1 Processing Algorithms and API

Polymer

Web Componentsを簡単・便利にするライブラリ「Polymer」を使いこなそう | HTML5Experts.jp
Web ComponentsはじめるならPolymerで | apps-gcp.com
Welcome - Polymer Project
いまさら聞けない Polymer 入門 - Polyfills は Web Components の夢をみるか - Librabuch
Polymer と Web Components の違い9選(もとい Polymer の便利機能) ::ハブろぐ
Web ComponentsとPolymer【解説編】 - Qiita
WebComponentsとPolymerコード比較 - Qiita
Polymer を導入して Web Components による革命に参加する
Web ComponentsやPolymerについてまとめる – Simple IT Life
Polymer Japan Meetupに出演しました - EagleLand

webcomponents.org
VirtualDOM Advent Calendar 2014 - Qiita
リアルな DOM はなぜ遅いのか - steps to phantasien
JavaScriptでのDOM操作は重いのかという話とForced Synchronous Layoutについて - id:anatooのブログ
Web Components | HTML5Experts.jp
X-Tag ★ Web Components
web.mit.edu/freebsd/head/sys/contrib/dev/acpica/components/namespace/nsinit.c
skatejs/skatejs: SkateJS is a library built on top of the W3C web component specs that enables you to write functional and performant web components with a very small footprint. It focuses on size, performance and is built around a functional rendering pipeline.
riot - デザイナはWeb Componentsに夢を見るのか - Qiita
Shadow DOM 101 - HTML5 Rocks
2017年のWeb Components:新春特別企画|gihyo.jp … 技術評論社
コンポーネント化: Web のために生まれ変わった従来の設計プラクティス | Microsoft Edge Japan
Microsoft Edge と Web コンポーネント | Microsoft Edge Japan
Web Components 周辺の仕様とか 2017年秋 - EagleLand
連載 | 基礎からわかる Web Components 徹底解説 〜仕様から実装まで理解する〜 | HTML5Experts.jp
Web ComponentsベースのUIライブラリ「Brick」をMozillaが公開 | HTML5Experts.jp
Web Componentsが変えるWeb開発の未来 | HTML5Experts.jp
Web Componentsについて気になること、泉水さんに全部聞いてきました! | HTML5Experts.jp
渋川よしきさんのツイート: "WebComponentはそのままでいいから、InnerHTMLみたいな感じで、内部状態を含めたそのままJS無しで再現可能なDOM/CSS片を取り出す、みたいなものが作られないとつらそうだなぁ、というお気持ち。"
Web Components を本番投入する(2018年春) - EagleLand
R.I.P. Web Components v0 - EagleLand
渋川よしきさんのツイート: "Shadow DOMのPolyfillのShadyDOMを使ってSSRというのはどこかで見た。ただ、Polyfillと仮想DOM同時に使うと更新うまく行かないのは確認済み。なので、ブラウザ固定できる環境以外はまだ無理かなって。 : え、まだWeb Componentsを未来の技術だと思ってるの? https://t.co/yns14WSEYV"
え、まだWeb Componentsを未来の技術だと思ってるの? - Speaker Deck
Rockridgeさんのツイート: "最近のWeb ComponentsはCustom ElementsとShadow DOMにES Modulesが加わったものが主流であり、HTML Templatesは直接使わず、HTML Importsは非推奨になっているとのこ… https://t.co/8m0tDBvTTr"
Web Components のリアル/ Realistic Web Components - Speaker Deck
lit-html 入門と lit-html だけで作る Todo アプリ - Qiita

Extensible Web

The Extensible Web Manifesto | Extensible Web Community Group
extensibleweb/manifesto: The Extensible Web Manifesto
manifesto/README.ja.md at master · extensibleweb/manifesto
Extensible Web Manifesto
Extensible web
【エキスパートガチトーク】Web技術の未来を「Extensible Web」から探る! (前編)─HTML5は問題だらけ? | HTML5Experts.jp
【エキスパートガチトーク】Web技術の未来を「Extensible Web」から探る!(後編)─技術の進化は必要か? | HTML5Experts.jp
Webの未来を議論!「Extensible Web Summit Berlin」イベントレポート | HTML5Experts.jp
開発者によるWeb標準化を可能とする「Extensible Web」とは? | HTML5Experts.jp
Extensible Web、WebAssembly、ORTCなど、なぜいまWeb標準は低レイヤへ向かうのか - Publickey
Extensible Web の夜明けと開発者が得た可能性の話 - Block Rockin’ Codes
Extensible Web を支える低レベル API 群 - Block Rockin’ Codes
[フロントエンド] The Extensible Webという考え方 - YoheiM .NET
Webエンジニアはどれだけ「Extensible Web」に興味あるか - albatrosary's blog

DOM

W3C

Language Bindings for DOM Specifications
ECMAScript Language Binding
ECMAScript Language Binding
ECMAScript Language Binding
ECMAScript Language Binding
Document Object Model (DOM) Specifications
IDL Definitions
IDL Definitions
IDL Definitions
Document Object Model (DOM) Level 2 Core Specification
Document Object Model (DOM) Level 3 Core Specification
(メモ)W3C DOM 4.1、勧告候補への移行のコンセンサスが取れず遅延する - 水底の血

本の虫

本の虫: DOM mouse eventの座標がカオスだ
本の虫: DOM level 3のマウスイベントにおけるカーソル位置の詳細
本の虫: ブラウザの座標再び

Twitter

Rockridgeさんのツイート: "Shadow DOM v0の知識がある人向けに、v1がどのような点で違うのかを実例付きで示したガイド。 / “What's New in Shadow DOM v1 (by examples) — [Dev] hayato.io” https://t.co/KBZff1EHnG"
Jxckさんのツイート: "ShadowDOM の v0 も OriginTrials だったらよかったのかなと一瞬思ったけど、そしたら使われず v1 への改善も無かった可能性があるかな。 OriginTrials は RC 的な位置付けで、 v0 を出し update/deprecate してくべきか。"
なかのん&マジックさんのツイート: "WHATWGのDOM Standardsの仕様書、読んでてまったく意味分からないんで書いてある通りにコーディングしてみたらなんとなく分かってきた。もうPascalかなんかで書いたらよくない? この仕様書。"
なかのん&マジックさんのツイート: "初めて、自信が全く持てないレビューしてる。ShadowDOM + DOM Eventsムズい……"

DOM Standard 日本語訳
DOM1仕様書
ECMAScript Language Binding
ECMAScript Language Binding
Document Object Model - Wikipedia
IDL35
IDL 4.0
Shadow DOM v1でHTMLの内容と構造を分離する
GeckoのDOMイベント処理の実装 (Gecko Inside ver.)
DOM リファレンス - DOM | MDN
DOMのまとめ - Qiita
JAVAスクリプトが書き出すHTMLにスタイルを当てる際の注意 - CSS小技集
DOM操作の最適化によるJavaScriptチューニング(前編) | HTML5Experts.jp
DOM操作の最適化によるJavaScriptチューニング(後編) | HTML5Experts.jp

DOM Parsing and Serialization

DOMParser - Web API インターフェイス | MDN
DOM Parsing and Serialization
DOM Parsing and Serialization (日本語訳)

ODF

組版

JLREQ

日本語組版処理の要件(日本語版)
日本語組版処理の要件(日本語版)
html5j 電子出版部 勉強会「JLREQとCSS」参加レポート — Python製ドキュメンテーションビルダー、Sphinxの日本ユーザ会
村田 真さんのツイート: "#html5jpub EPUBではむりやりページを作り出しているし、見開きもやっている。しかし、袋小路だと思う。電子書籍リーダの相互運用性という一点をとっても、CSSでページや見開きをやってほしい。"
maihaさんのツイート: "ジャスティファイしない場合は、文節など意味のある単位で自動改行されたほうがいい。左揃えで行末を揃えない場合にももっとよみやすくなるといい。 #html5jpub"
Satoshi Kojimaさんのツイート: "日本語のJustifyには行長計算が必要。行長可変なWebブラウザだと無理(ものかのさん) 確かにその通り。だが普通の人にはそれなりに読みやすいはず。さらに改善する仕様のドラフトは存在している。 (村上さん) #html5jpub"
渋川よしきさんのツイート: "&nbsp;ってのはノンブレークで改行しないスペースだけど、問題なければスペースを表示しないんだけど、ここで改行してもいいよっていう真逆の文字ってあったりするのかな?"
渋川よしきさんのツイート: "お、ゼロ幅スペースあるじゃん。 https://t.co/wKfUDSLBjN"
JIS X 4051からJLREQへ - JAGAT
渋川よしきさんのツイート: "文字をWebGLで描画とか死亡フラグ。JLREQを読んでみよう。日本語を表現するってめちゃ難しいよ。ましてや自分がしらない言語とかね。僕はWebAsmが普及してもDOMを置き換えることは絶対ないって思ってる。"
JLREQの今日と明日、そしてCSS日本語組版 | ICT CONNECT 21
html5j電子出版部 勉強会「JLREQとCSS」まとめ - Togetterまとめ
W3C「日本語組版処理の要件(JLReq)」の改訂作業がGitHubで from Shinyu Murakami on 2016-12-23 (public-html5jp@w3.org from December 2016)

ALREQ

W3C I18n Activityさんのツイート: "Text Layout Requirements for the Arabic Script just published as First Public Working Draft. https://t.co/gAPaALZyzz Still plenty to do! Looking for comments and contributors. https://t.co/vg9IIU7D0F (Or help with other languages: https://t.co/wAVGziqMox)… https://t.co/YhzpsCOQxR"
Text Layout Requirements for the Arabic Script
Issues · w3c/alreq
Language matrix

TeX

Apache FOPを使ってみる~Knuthの分割アルゴリズム - X-plus
Wayback Machine
TeX 以外の組版・レイアウトシステム - TeX Wiki
日本語組版あれこれ - おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか
TeXのアルゴリズムの再実装 - プログラミングの30年間を振り返る
monge.dvi
Line breaking — Xxyxyz
The Tectonic Typesetting System
tectonic-typesetting/tectonic: A modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.
TeXやLaTeXで図の挿入に時間がかかるときに挿入を省略する方法 - Qiita
TeXの脚注をなんとかする - golden-luckyの日記
日本語化プロジェクト 〜TeX Live と learnlatex​.org〜 / localize - Speaker Deck
keiichiro shikano λ♪さんはTwitterを使っています 「PostScriptを知っていると.bstが読めて便利」 / Twitter
.bst file - Google 検索
日本語 LaTeX の新常識 2021 - Qiita
某ZR流パラメタトークン思考法 - マクロツイーター
TeX tuneup 2021: 7年ぶりの TeX アップデート | ラング・ラグー

MathML

KaTeX

KaTeX – The fastest math typesetting library for the web
Khan/KaTeX: Fast math typesetting for the web.
mizchiの叫び「MathJaxはやめろ」
信頼できる情報筋によるとさんのツイート: "mathjax というやつは世の中に現存するJSの中でも最も行儀が悪い振る舞いをするものの一つです。気軽に導入していいものではない。というか積極的に避けねばならない。あいつはXML的木構造を破壊しながら自身の特殊構文に継ぎ直してる。"
Ryou Ezoeさんのツイート: "例の@mizchi の連投、本人はKaTeX使ったことがないだろ。KaTeXはCJK文字への対応が悲惨すぎて使い物にならない。あとエラー通知に例外を使うし完全に無効化できない。"
Ryou Ezoeさんのツイート: "KaTeXは自分だけが数式を記述する限定的な用途で使うもの。大勢のどこの馬の骨かもわからないユーザーが数式を記述する場合にKaTeXなど実績の違いで到底使い物にならない。"
Ryou Ezoeさんのツイート: "ちなみにユーザーに自由にtexを書かせると何が起きるかと言うと、お絵描きしだすし日本語も当然使い出す。KaTexでは無理。"
Ryou Ezoeさんのツイート: "私は$力=質量 \times 加速度$とか書きたいし$\text{力}=\text{質量} \times \text{加速度}$とは書きたくない。だいいちこれでは意味が違ってしまう。"
本の虫: KaTeXを使ってみた感想
七誌さんはTwitterを使っています: 「KaTeXですが、REPL云々は関係なくて、単にHTMLの先頭に &lt;!DOCTYPE html&gt; を書くだけでいけました。 KaTeXはコードがシンプルで良いですね。 MathJaxでは動的生成したTeXでunderbraceに日本語を使うと "t is null" という謎のTypeErrorになりましたが、KaTeXではそういう問題はありません。 https://t.co/rS39gQW43y」 / Twitter

MathJax

AsciiMath

piqcyさんのツイート: "LaTeXより簡単に数式が書ける記法のAsciiMathが登場。MathJaxと連携してレンダリングを行う。 プログラムで数式を書く感じでかける。行列が[[a,b],[c,d]]みたいな感じで書けるのはよい。 https://t.co/MdDncvRLRc"
hardmaruさんのツイート: "AsciiMath is a simple markup language for math. Easier to use than LaTeX. https://t.co/T2ONWTDxPY https://t.co/VjuJGfn9ol"
AsciiMath
asciimath/asciimathml: A new home for asciimathml

七誌さんのツイート: "MathJaxで表示させると右クリックでMathMLとTeXの両方のコードが表示できるので、MathJaxに全部任せるのが無難っぽい。まあ、変換だけが目的ではないので、ある程度は中身を知っておかないといけなかったから、自作は無駄ではなかったんだけど。"
七誌さんのツイート: "少し前までMathJaxとWYSIWYG入力の折り合いをどう付けるのか困っていた。Idrooの数式入力はかなり頑張っているけど、同じようなものを再実装するのは回り道過ぎる。しかし最近はプログラムで数式を生成してMathJaxで表示するだけで、当面の用は足りる気がして来た。"
七誌さんのツイート: "数式処理とコンパイラはASTをこねくり回すのが似ているので、どうにかうまく両立させられないものかと思っている。"
LaTeX入門 - TeX Wiki
MathJax
MathJaxによる数式表示
MathJaxの使い方
MathJax - Wikipedia
Easy Copy MathJax
黒木玄 Gen Kurokiさんのツイート: "#MathJax MathJaxのCDNサーバーが4月30日に止まるらしい! 一つの対処法はhttps://t.co/T9iVtP1wEMの代わりにhttps://t.co/qtQEQneRDsを使うように変更すること。詳しくは→ https://t.co/2yV0j7zSGs"
MathJax CDN shutting down on April 30, 2017
cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!
蘇摩さんのツイート: "slackで数式表示するための拡張,math-with-slackを入れてみたのですが,かなり良いです. https://t.co/jEH8Fk0L0G https://t.co/UVDVbEuKYm"
fsavje/math-with-slack: Rendered math (MathJax) with Slack's desktop client
だめぽラボ@技術書典9さんはTwitterを使っています 「MathJaxは昔から\newcommand使えなかったっけ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「10年前のMathJaxでの\newcommandの実装です https://t.co/4M6tjsb03A」 / Twitter
MathJax/newcommand.js at v1.1-latest · mathjax/MathJax
だめぽラボ@技術書典9さんはTwitterを使っています 「MathJaxと(本物の)LaTeXの違いの一つに、「(MathJaxでは)\newcommandのスコープが数式環境を貫通する」というのがあるんだよね。一方KaTeXは\gdefを実装した」 / Twitter
ワトソンさんはTwitterを使っています 「MathJax は昔から \newcommand が使えて,しかもそのスコープ(有効範囲)がアレなせいで,Mathtodon ができた頃に迷惑 definition を含む投稿で他者のツイートの見た目を好きなようにいじって遊ぶやつ(通称 \newcommand テロ)ができたんじゃなかったっけ.」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「そんなこともあった……かもしれない……(かなり忘却している)」 / Twitter

Mathematical Markup Language - Wikipedia
MathML - Wikipedia, the free encyclopedia
MathML 日本語情報
W3C Math Home
MathML | MDN
MathML 要素リファレンス - MathML | MDN
MathML 耐久テスト - Mozilla | MDN
MathMLマニュアル
WebKitの数式(MathML)でSafariはボランティアの努力を採用し、数式を表示できる。Chromeは同じものを不採用として批判を浴びる。 | 電子書籍、電子出版のCAS-UBブログ
Rockridgeさんのツイート: "次期Safari 10.0ではMathMLの表示品質を改善したほか、数式にハイパーリンクを埋め込めるようになった。 / “Improvements in MathML Rendering | WebKit” https://t.co/YcLOYp5YxX"
Rockridgeさんのツイート: "Fx51:mathml.disabledの設定をtrueにすることで、MathMLを無効化できる。 / “1173199 – Add a pref to allow disabling MathML (Tor 13548)” https://t.co/yHRWPH4614"
「One Note for Windows 10」で文字列を数式に変換可能に - PC Watch
Rockridgeさんのツイート: "Chromeの次世代レイアウトエンジンでは、MathMLのサポートが復活するようだ。 / “Review of Igalia's Web Platform activities (H1 2017) - Frédéric Wang” https://t.co/LZvEj1sAVA"
MathMLの未来を考える―(1)現状の整理 | 電子書籍、電子出版のCAS-UBブログ
MathMLの未来を考える―(2)『MathML数式組版入門』の大学図書館への寄贈活動について | 電子書籍、電子出版のCAS-UBブログ
ここ最近のMathMLについてのメモ - 水底の血
Ziphil/ZenithalMathWeb: Web rendering engine for mathematical formulae
KindleでMathMLの現実

ウイドウとオーファンって、なかなか深い | 電子書籍、電子出版のCAS-UBブログ
䭄さんのツイート: "多言語組版処理システムは一人の人間がつくるものじゃないよ。"
SATySFi - Google 検索
『数式組版』を組む技術:基本版面(1)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:基本版面(2)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:基本版面(3)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:脚注|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:柱とノンブル|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:出力ルーティーン(1)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:出力ルーティーン(2)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術:PDFの生成(1)|きえだゆうすけ(p_typo)|note
『数式組版』を組む技術 Advent Calendar 2019 - Adventar
七誌さんはTwitterを使っています: 「アラビア文字の組版についての資料を見付けた。 https://t.co/W6JDp7Rhlw アラビア語だけでなくペルシア語、ウルドゥー語、現代ウイグル語についての記載もある。 「筆者は専門家ではありません」とのことだけど、詳細にまとめられていて凄い。 多言語組版研究会というのがあったのですね。」 / Twitter
moji >> アラビア系文字 > 「アラビア系文字の基礎知識」
Arabic.pdf
日本語組版に関連するCSS規格の策定状況について - Speaker Deck

MS

Excelの奇妙なパスワードとマクロウイルス - Cybozu Inside Out | サイボウズエンジニアのブログ
Hack Patch!: CEMIについて
ExcelのセルがAI対応へ進化 - PC Watch
Office 2013でODF 1.2/PDF 1.7がサポート | マイナビニュース
Microsoft、Excelカスタム関数としてJavaScriptのサポートを発表
Office 2013でODF 1.2/PDF 1.7がサポート | マイナビニュース
Shirouzu Hiroaki(白水啓章)さんのツイート: ".xlsファイルは開くだけで、開いた日付がNTFSタイムスタンプ形式で格納されるようだ。(末尾-404~-396の8byte) ちなみに、ファイルの更新日付は変更されない。 このパターンだとアーカイブビットでも見ない限り、変更を検出できない。 (mmap系のファイルだと良くある話だが)"
拡張子「.iqy」の添付ファイルに注意! ウイルス感染狙うメールが1日だけで29万件も拡散 - INTERNET Watch
Satoshi NakagawaさんはTwitterを使っています 「Joel on Software に Joel が Excel チームにいたときに Bill Gates に直接レビューを受けて 1900年の日付について質問されるエピソードがあって、Lotus 123 との互換性問題まで完全に答えてたけど、ああいう感じで完全に事実を把握してるエンジニアがいいエンジニア。 https://t.co/FvGm5fARLe」 / Twitter
My First BillG Review – Joel on Software

窓の杜

【Excel】他人から受け取った表の構造がわからない!エクセルで数式やデータの入力規則が設定されたセルを特定するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
【Excel】「ME1234」のような商品コードを「ME」と「1234」に分けたい!エクセルで区切り文字がないデータを分解するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
「Excel」にセルの選択を一部解除する機能が導入 ~「Office Insider」2018年1月版 - 窓の杜
【Excel】クリック操作だけで簡単に売上の前月比計算ができる!エクセルのピボットテーブルで効率よくデータを分析するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
【特別企画】Excelのお株を奪う? 「EmEditor」は連番入力や氏名の分割・結合も自動化できる! - 窓の杜
エクセルで表を印刷する際にミスを減らせる3つのステップに注目(3月第4週) - 窓の杜
“SUM()”関数を独語版「Excel」で使うには……行き過ぎたローカライズの悲劇に終止符を打つアドインが“Microsoft Garage”から登場 - やじうまの杜 - 窓の杜
【Excel】表を再利用するため数値を削除したら数式まで消してしまった!エクセルで簡単に数式以外のデータだけを削除するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
エクセルで数式が入力されているセルだけを見つける方法に注目(5月第4週) - 窓の杜
「LibreOffice」に1件の脆弱性、ODF文書に埋め込まれたSMBリンクを介して情報が漏洩 - 窓の杜
【Excel】「㈱」「㍿」「株式会社」などの表記がバラバラ!エクセルの名簿で会社名の表記を統一するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
エクセルで普通では検索できない“?”などの文字を検索する方法に注目(7月第2週) - 窓の杜
【Excel効率化】作業フローなどに使う図形をすばやく書きたい!手書きで書いた図をエクセルで使える図形に変換するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
Excelの結合セルもまるごと移動! 「RelaxTools Addin」に選択セルの移動コマンドが追加 - 窓の杜
Microsoft、新しいExcel関数「XLOOKUP」を発表 ~「VLOOKUP」や「HLOOKUP」の後継 - 窓の杜
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「golangの正規表現は NFA のため、重い表現の時に線形増加で済む、と。 (重くない場合は差が無い) 一般的に多い DFAだと(組み合わせ爆発しやすいため?)指数増加と。 https://t.co/rpgljTgixm」 / Twitter

できるネット

【エクセル時短】関数よりも便利!? 知る人ぞ知る「フラッシュフィル」はこんなときに威力を発揮する | Excel | できるネット
【エクセル時短】大きな表を会議で見るなら必須! ムダにスクロールしないウィンドウ操作の鉄板ワザ3選 | Excel | できるネット
【エクセル時短】VLOOKUPの応用ワザ。2つの条件で値を検索するために組み合わせる関数とは? | Excel | できるネット

Wikipedia

OpenDocument - Wikipedia
OpenDocument - Wikipedia
Extensible Markup Language - Wikipedia
XML - Wikipedia

Qiita

Pythonでパワポの説明資料(報告書)を生成する - Qiita
パワーポイント内のテキストをgrepする - Qiita

Twitter

Yuki Yugui Sonodaさんのツイート: "割と良くできたExcel文書を見て、文書作成にExcelを使う人の気持ちが初めて分かってしまった。Wordと違って出力用紙設定の幅に依存してないから、主に画面で見る目的の割と幅の広い画像・表入り文書に便利なんだな。 で、その文書は初めから社内Wikiに書きゃ良かったと思うんだけど"
SODA Noriyukiさんのツイート: "「メモリーダンプみたいなものをそのまま保存」って、Smalltalkのプログラムの保存(システムイメージのスナップショット)もそんな感じだし、Xerox文化~って感じがする>RT"
渋川よしきさんのツイート: "ほんこれ。Excel嫌いすぎる人は、ウェブですぐに超えるものを作れると思ってる。数式使いたい、ドラッグでまとめて入力、コピペとか言われた瞬間に死ぬ。… "
qsonaさんのツイート: "社内で表計算ソフトウェアを利用したマスタデータ管理の仕組みを作ったときに「なんで表計算ソフトなの?管理画面つくればいいのでは?」と聞かれることが数回あったが、「表計算ソフトは100点だとは思っていないが80点以上ある、80点を超えるソフトウェアを作るのはとてもむずかしい」と説明している"
Teppei Satoさんのツイート: "まさにその通りで、80点の管理画面付きデータ管理を量産できるのがkintoneです。… "
qsonaさんのツイート: "80点で良いし80点のものを自分で作るのってすごい大変なんですよね。。 社内でヘボいツールが出来るたびに、kintoneを適用すべき場面なんだろうなあって思っているんですが、次に見かけたらちょっとpushしてきますw… "
楠 正憲さんのツイート: "ほぼほぼOffice Suiteがブラウザで動くようになって、印刷の問題が解決し、ドライバの問題もなくなって、台数ならPCよりもスマホのエコシステムが大きくて、ようやっとデスクトップLinuxの障壁がほぼほぼ霧散したのに、デスクトップUX自体が陳腐化してしまって誰も自由化することに興味を持たない時代"
勝(まさる)さんのツイート: "Office OnlineのPowerPointで図を描いてみると、幻想だとわかる。"
勝(まさる)さんのツイート: "出張先のホテルで、パワポ修正しようとOffice Onlineに食わせた後、図を調整しようとしてもまともに線すら引けなくてどうにもできず、修正前のままプレゼンしたのは懐かしくも苦い思い出。"
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「google spreadsheetでΣはsum()だがΠは何だ、とぐぐったところproduct()だった。なるほど」 / Twitter

Announcements and Press Releases - Open Document Format (ODF) 1.2がISO/IEC(国際標準化機構/国際電気標準会議)によって国際標準26300:2015として発行されました
オフィス文書のためのオープンな文書形式(Open Document) v1.0改正原案作成委員会 | IPSJ/ITSCJ
[mixi]ODFのJIS化 - ODF (OpenDocument Format) | mixiコミュニティ
[mixi]ODF V1.2 が OASIS 標準になりました。 - ODF (OpenDocument Format) | mixiコミュニティ
村田真のXMLブログ
村田真のXMLブログ
Extensible Markup Language (XML) 1.0 (Fifth Edition)
Extensible Markup Language (XML) 1.0 (第五版)
クラウド会計ソフト「freee」のExcel用アドイン提供開始、独自のfreee関数で勘定データを自動で取り込み - INTERNET Watch
「LibreOffice 6.2」リリース、NotebookBar UIが正式機能に | OSDN Magazine
Tableauの関数を全て試してみる〜表計算関数編その1〜 #tableau | DevelopersIO
ドキュメント技術とプログラミング言語の相似について - golden-luckyの日記
なんでドキュメントといったらXMLが出てくるのか - golden-luckyの日記
SXML
XMLをLisp評価器で実行する - golden-luckyの日記
XMLをつぶす機械を作る機械を作る - golden-luckyの日記
XMLのつぶし方 - golden-luckyの日記
Index of /office/OpenDocument/

EditorConfig

EditorConfig
EditorConfig
EditorConfigで文字コード設定を共有して喧嘩しなくなる話。(Frontrend Advent Calendar 2014 – 14日目) | Ginpen.com
EditorConfig でエディタの設定も共有しよう - デブハゲ
.editorconfigが便利すぎて失禁した - mon_sat at Co-Edo(半年前の自分への教科書 / 別院)
ぶんちょうさんはTwitterを使っています 「editorconfig大混沌時代 これで信用できるのタブ・スペースの数くらいしかなくない?」 / Twitter
Gada / ymtszwさんはTwitterを使っています 「@yutopp 何だったら今どきの言語だと公式orコミュニティスタンダードで決まってることが多いので、hard/softもスペース幅もeditorconfigをみる余地があんまりない気がします。 trailing space消すとかファイル末尾にtrailing newlineつけるとかはもう殆どの言語共通だから言うまでもないし」 / Twitter
ぶんちょうさんはTwitterを使っています 「@gada_twt その言語の標準をeditorconfigの記述に相乗りするのが今どきっぽいのですが、同じ言語のツールでもサポートの度合いが違い、厳しい…」 / Twitter
ぶんちょうさんはTwitterを使っています 「なにがeditorconfigや!今日からきみはtabspaceconfigや」 / Twitter

GNU Poke

Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GNU Poke 1.0がリリース。インタラクティブにバイナリデータを扱うためのエディター。バイナリエディターとプログラミング言語の中間的な存在。 https://t.co/s7A8Kjw7xS」 / Twitter
GNU poke - Release notes for poke 1.0
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「バイナリデータを取り扱うための言語を持っている。」 / Twitter

LSP

ドッグさんはTwitterを使っています 「LSP サーバからワークスペースの情報をダンプして,サーバ起動してなくてもクエリかけられるようにするためのインデックスフォーマットの仕様.LSP サーバのリクエスト/レスポンスを持っとく感じなのかな.まだ v0.5.0 | 'Language Server Index Format ' https://t.co/vMivzi0osE」 / Twitter
LSIF Specification
ドッグさんはTwitterを使っています 「LSP ってクライアントデバッグ用のリファレンス実装とか無いのかな」 / Twitter
ドッグさんはTwitterを使っています 「https://t.co/iaEHawteQ3 調べてみると個人でそういうのつくってる人はいるな」 / Twitter
bubba/lsp-test: A functional test framework for LSP servers
言語サーバープロトコルの概要 - Visual Studio | Microsoft Docs
visualstudio-docs.ja-jp/language-server-protocol.md at live · MicrosoftDocs/visualstudio-docs.ja-jp

リファクタリング

第36回 リファクタリングについて:Android Studio最速入門~効率的にコーディングするための使い方|gihyo.jp … 技術評論社
リファクタリング(IDE チュートリアル) - RAD Studio
IDEの機能比較:ローカル変数の抽出 - しおしお
NetBeans IDE - 編集とリファクタリング
コードの作成とリファクタリング (C++)
Eclipse JDT のリファクタリング機能を探る
マーチン・ファウラー氏「リファクタリング 2nd Edition」で20年ぶり内容刷新、サンプルコードはJavaScriptに。Web主体で書籍はエッセンシャル版の位置づけ - Publickey
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「VSCodeで変数名を変更する機能使ってみたら別の変数まで書き換わってて、スコープも確認せずにやってるクソ機能だった……(結構やりなおし発生)」 / Twitter
ASTを活用してコードの自動修正に挑戦してみよう - Cybozu Inside Out | サイボウズエンジニアのブログ
WideStudio/MWT Home page
メンテナンス性とモジュール化のためGitHub OctoKit JavaScript REST SDKをリファクタリング

コード整形

Artistic Style - Index
Artistic Style download | SourceForge.net
島 敏博さんのツイート: "C言語,C++言語用自動整形ツール、astyle https://t.co/pJvvj3Yn66 はこういう整形ができて素敵 --align-pointer=type ポインタの*、参照の&を、型側に寄せるか変数名側に寄せるかを指定するオプション。*も&も型の一部なので私も型側 https://t.co/e60bKZQ0PO"
ちゃーしゅーねこさんのツイート: "代入の=の位置を縦にそろえるの嫌う人結構いますけど(別に僕は嫌いじゃない)、gofmtだと行末コメントが複数行にあると縦にそろえられる件はどうお考えなのだろう"
なかのん&マジックさんのツイート: "行の途中の何かを基準に無駄にスペース入れてしまうと、その位置では左すぎる行を挿入しなくちゃいけなくなった時に、本来は変更不要な行までdiffに含まれてきて、レビュー時のリスクが高まるんだよな。行内diffまで表示してくれるレビューツール使ってたらマシだけど、結局、blameにゴミが入る。"
インデントのスタイルについて - in neuro

コード検索

Kazuho's Weblog: コマンド一発でソースコード検索&表示できる「peco」改が凄い!
Geoff's site: The Silver Searcher
ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
コード検索ツール「Sourcegraph」、オープンソース化される | OSDN Magazine
なかのん&マジックさんのツイート: "Mozillaの現在のソースコードビューアはJavaとObjective-Cには非対応なものの、かなり使いやすい。けど、ローカルに立てて他のプロジェクトに使えるのかどうかちょっとよく分からんかった。 https://t.co/IdJxSXsv6f"
/ - mozsearch
なかのん&マジックさんのツイート: "JSとC++の境界もまたいでくれるのでありがたい。 https://t.co/a9ZYoojYyE"
Symbol _ZN18nsIPlaintextEditor10InsertTextERK12nsTSubstringIDsE,#insertText - mozsearch
chikoskiさんのツイート: "みんな巨大なJSのコード読むのどうやってんだろう。1万行以上 / 100ファイル以上の場合"
Makoto Mizukamiさんのツイート: "読んだふりをする (違 / 私の場合は, grep しながら興味と合致しそうなところを探すことが多いですかねえ. それこそ good practice があれば試してみたい.… "
chikoskiさんのツイート: "私の場合は、The Sliver Searcher(agコマンド)で探して、lessで読む感じ。真面目に読むときは、継承関係や参照関係を図に書きながら読むことが多いのですが…コード検索エンジンが使える場合は、それも使います。タグジャンプはしないかな"
なかのん&マジックさんのツイート: "イベントリスナを探すの超めんどうくさいな……addEventListener(の後に改行あるケースもあるし、イベント名が変数な可能性もあるし。"

全文検索

簡潔データ構造

簡潔データ構造 - Wikipedia
Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
簡潔データ構造の第一歩 - Koike's Lemma
文書解析のための簡潔データ構造 | Preferred Research
https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&cad=rja&uact=8&ved=0ahUKEwjKtab2i7HQAhUGmpQKHbOqDcEQFghIMAY&url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2Findex.php%3Faction%3Dpages_view_main%26active_action%3Drepository_action_common_download%26item_id%3D65880%26item_no%3D1%26attribute_id%3D1%26file_no%3D1%26page_id%3D13%26block_id%3D8&usg=AFQjCNEplWOqDZosSHI_og4VS9Ateuh5WA&sig2=eUziEC640ySMd51wseszFQ&bvm=bv.139250283,d.dGo
wavelet行列で高速な「もしかして友だち?」検索 | 株式会社サイバーエージェント
[Javaの小枝] 週刊 簡潔データ構造を作る 番外編 5分でわかるLOUDS - Qiita
NII表紙.indd
Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)

アスペ日記

気ままなブログ

高速文字列解析の"別"世界 - 気ままなブログ
Wavelet Treeをもう一度 - 気ままなブログ
Wavelet TreeのTop-Kの改善 - 気ままなブログ
FM-Index - 気ままなブログ

スライド

FM-indexによる全文検索
Oktavia全文検索エンジン - SphinxCon JP 2014

Qiita

ハクビシンにもわかる全文検索 - Qiita
[C++]コンパクトなBWT - Qiita
SA-IS - Shogo Computing Laboratory
SA-IS(Suffix Array - Induced Sorting)を実装した - Qiita

Twitter

Rockridgeさんのツイート: "Searchfox(Firefoxのソースコードの全文検索ツール)がWindows版特有のRust/C++コードのインデックス化に対応した。 / “PSA: searchfox now indexing Windows Rust…” https://t.co/GqjfUhdW8p"
Makoto Kato ︎︎さんのツイート: "https://t.co/rIW92muoIF ってGoogle社内でも使われているソースインデクサ使ってるんだろうけど、あの会社の人たちあれで満足してるの? https://t.co/KK3JpDgl2f の圧倒的な検索能力を見てしまうとねぇ。。。"
Code Search
Searchfox
Makoto Kato ︎︎さんのツイート: "ソースコードインデクサ作るのにclang-plugin使うというアイデアはホント正しい"
Justin SearlsさんはTwitterを使っています 「日本人のプログラマーへ、助けてください!Postgresでは日本語の検索のフィーチャーを作るなら、ベストプラクティスが何ですか?恥ずかしくても、普通に西洋のプログラマーはローマ字の検索だけ分かります。😬」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「indexingはn-gramが一番シンプルでいいと思います。Thinderbirdのindexerもそうした。CJT考えたらdeep learningで辞書作るのはコスト高すぎる」 / Twitter
StudentさんはTwitterを使っています 「自作RDBMSが話題ですが、全文検索のDBはインデックスはクエリにマッチするデータを指している訳ではなくカバレッジも100%じゃないという性質があって、lexicalとsemanticの2種類のインデックスを相補的に使った上でランキングで間違ったデータをフィルタするみたいな世界なんですけどすごくないですか」 / Twitter

ぬるぽへさんのツイート: "前々から何度も言ってるんだけど自分が今までに閲覧したサイトの全てから光速に検索できてほしい"
ウェーブレット行列とFM-indexで全文検索を書いてみた - くじらにっき++
Oktaviaとは何か? — Oktavia
Shibu's Diary: [JSX][FM-index]httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる!
Microsoft、Bing検索エンジンの主要コンポーネントをオープンソース化 | マイナビニュース
Groongaでb Bit MinHashを使って高速に類似検索 - CreateField Blog
ストップワード とは 意味/解説/説明 【stop words】 | Web担当者Forum
Windows サーチに拡張インデックスモードを追加 ~「Windows 10 19H1」Build 18267 - 窓の杜
メモリ効率のよい全文検索をRustとWebAssemblyで実現する
Hugoのブログに全文検索をつけた | κeenのHappy Hacκing Blog
Search | κeenのHappy Hacκing Blog
AmazonはElasticsearchのフォークをOpenSearchにブランド変更
魔窟と化した全文検索サーバーとふっかつのじゅもん - Cybozu Inside Out | サイボウズエンジニアのブログ

正規表現

PCRE2

Perl Compatible Regular Expressions - Wikipedia
Perl Compatible Regular Expressions - Wikipedia, the free encyclopedia
PCRE - Perl Compatible Regular Expressions
Index of /pub/pcre/
PCRE2 specification
perlre - perldoc.perl.org
PCREの範囲の正規表現を可視化してくれるサイト - 唯物是真 @Scaled_Wurm
PCRE2-10.31
pcre2unicode specification
unicode - libpcre2 Code Unit Width - Stack Overflow
PCRE2 Open Source Library for Perl Compatible Regular Expressions
PCRE2 specification
pcre2 specification
Project Zero: (^Exploiting)\s*(CVE-2015-0318)\s*(in)\s*(Flash$)

Oniguruma

Oniguruma - Wikipedia
kkos/oniguruma: regular expression library

blog

正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう | 徳丸浩の日記
DSAS開発者の部屋:最近の Python-dev (2017-02)
正規表現の略記法 \d と \s と \w – ものかの
Unicodeで「漢字」の正規表現 – ものかの
Unicodeプロパティを使ったPerl正規表現 - Hatena Developer Blog
HTMLのpattern属性とJavaScript正規表現のunicodeオプション - Hatena Developer Blog
[JavaScript] 正規表現はコンパイルしたほうが処理速度が速いのか? - ログろいど
危険な正規表現 | MOYO Laboratory
Onigmoを最大49%高速化した話 | κeenのHappy Hacκing Blog
正規表現技術入門を読んだ | κeenのHappy Hacκing Blog
YARV Maniacs 【第 3 回】 命令ディスパッチの高速化
Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.
正規表現からLLVM IRを生成する - めもちょー
その正規表現エンジン、インタプリタで満足してる?! | κeenのHappy Hacκing Blog
Mozilla、今後はV8の正規表現エンジンをFirefoxにそのまま取り込むと表明。そのための互換レイヤを開発 - Publickey
遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ
The Unicode Blog: Enhancements to Unicode Regular Expressions
Proof-directed program transformation: A functional account of efficient regular expression matching | Journal of Functional Programming | Cambridge Core
本の虫: なぜC++0xの正規表現は、ECMAScript準拠なのか
本の虫: C++の正規表現ライブラリ: std::regex
本の虫: JavaScript規格の正規表現リテラルの文面の疑問点

POSTD

Sublime Textの「あいまい一致」をリバースエンジニアリング | プログラミング | POSTD
部分文字列とRegExpの領域の冒険 | 未分類 | POSTD
40行以内で正規表現エンジンを構築 | プログラミング | POSTD

GitHub

eriknyquist/librxvm: non-backtracking NFA-based regular expression library, for C and Python
nadrane/build-your-own-regex: This is a test spec driven guide to help you build a simple regex implementation
microsoft/BlingFire: A lightning fast Finite State machine and REgular expression manipulation library.

Zenn

みさわさんはTwitterを使っています 「正規言語は和集合や差集合、共通部分に関して閉じていて、正規言語は正規表現で記述可能なので、正規表現に &amp; や ! を加えることで表現能力が広くなることがないから、よくある実装でも入ってないのかな。 否定とかはキャプチャやらとの関係が面倒になりそうというのもあるが https://t.co/zNqImp6rGi」 / Twitter
みさわさんはTwitterを使っています 「ちなみに&amp;や!が実装された正規表現エンジンとして、例えば brics などがある。 https://t.co/Ip1GqXQJ5i」 / Twitter
RegExp (dk.brics.automaton)
j5c8k6m8さんはTwitterを使っています 「@Mi_Sawa 情報ありがとうございます。本書に追記させていただきました。 https://t.co/NCxAWpXm53」 / Twitter
論理演算可能な正規表現エンジンを作ろう
kinabaさんはTwitterを使っています 「世の"正規表現"は正規言語を超えたてたり実装がオートマトンじゃなかったりというあまり面白くない理由はさておき、正規表現→NFAの変換が|と*だけなら線形時間(なんななら正規表現文字列の添字を状態としてNFA作れる)けど、&amp;や!は二乗や指数で膨れるので実装の面倒くささレベル上がるというのがある」 / Twitter
kinabaさんはTwitterを使っています 「ブール演算できる正規言語処理ライブラリもっとカジュアルに使われて欲しいというのは非常に同意するものであるのですけど、現状、正規表現等の対象が文字列に特化しすぎなせいで応用が少ないのがまず問題かなあと。みんなもっと整数列とか一般のデータ列に正規表現マッチ気軽にかける世界になりたい」 / Twitter

Qiita

正規表現のJITコンパイラを実装する - Qiita
Brzozowskiのアルゴリズム - なぜDFAを2回反転すると最小化できるのか - Qiita

Wikipedia

正規表現 - Wikipedia
Regular expression - Wikipedia
Regular tree grammar - Wikipedia
Thompson's construction - Wikipedia

Twitter

並列化

Shinji KonoさんはTwitterを使っています 「正規表現自体が並列処理に向いてない説」 / Twitter
ラーメン大好きしろくまさんさんはTwitterを使っています 「@shinji_kono 先頭から舐めていくステートマシンですからね… 同時に何百個も文を解析するなら並列化できるが。」 / Twitter
Shinji KonoさんはTwitterを使っています 「@Kumappus ところが、計算クラス自体はNCで並列処理向きらしいんですよ。」 / Twitter
ラーメン大好きしろくまさんさんはTwitterを使っています 「@shinji_kono えー…?(頭の上を小鳥がピヨピヨ回ってる状態)」 / Twitter
Miura HidekiさんはTwitterを使っています 「バックトラックを並列化できるかなー?」 / Twitter

OS作れないマンさんのツイート: "生成されるパターンに順序を付けて、文字列を整数で表現する考え方を @sinya8282 さんから聞いた気がする。 https://t.co/L3OjrTA2Ps"
kb10uyさんのツイート: "正規表現エンジン、パターンマッチできるということは逆にパターンからマッチする文字列を生成できるよな普通に考えて"
島鉄雄さんのツイート: "そのページ冒頭の電話番号の正規表現が複雑過ぎてビビる… 正規表現は結果であって、そこに至る途中経過がバッサリ無いのが問題だろう。 だから、電話番号は正規表現じゃなくて、BNFで記述してパーサジェネレータを使うべきだろうという事を理解した。 可読性が高いし、速度もそれ程問題無いはず。… https://t.co/MDhAwxkmTl"
tc39/proposal-regexp-unicode-property-escapes: Proposal to add Unicode property escapes `\p{…}` and `\P{…}` to regular expressions in ECMAScript.
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「golangの正規表現は NFA のため、重い表現の時に線形増加で済む、と。 (重くない場合は差が無い) 一般的に多い DFAだと(組み合わせ爆発しやすいため?)指数増加と。 https://t.co/rpgljTgixm」 / Twitter
regexpとの付き合い方 〜 Go言語標準の正規表現ライブラリのパフォーマンスとアルゴリズム〜 - Eureka Engineering - Medium
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、FastCopy の UNIX WildCard 実装も NFA 。 (ただ、イプシロン遷移対応が面倒だった。あとUTF16対応も)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Readable Regular Expression が欲しいところ。 似たことを考える方は多い様子。 (expresso なんてGUIツールあるのね) https://t.co/KorHIXXCGX」 / Twitter
Readable regular expressions without losing their power? - Software Engineering Stack Exchange
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに include/exclude は UNIXワイルドカード形式サポートだけど、ビットシフトによる非決定性有限オートマトン(NFA)を使って作ってるので、さほど遅くならないはず。 (ビットシフトだと、NFA弱点の多状態を同時進行できる)」 / Twitter
yoh2さんはTwitterを使っています 「昔見掛けた、単純なくせにひどく時間がかかる正規表現ってこんなのだったかな。なにか違う気がする。 .*?.*?.*?.*?.*? 最短一致させるためのバックトラックが延々と走るのがミソだったような。」 / Twitter
抹茶氏さんはTwitterを使っています 「@yoh2_sdj ReDoS で調べてみて」 / Twitter
伊津野 英克さんはTwitterを使っています 「誤解を招くという意味で言えば、正規表現って誰が最初に訳したんだろ。もはや普及しすぎて変えられないけど、完全に誤訳だもんなぁ……」 / Twitter
uncorrelatedさんはTwitterを使っています 「正規分布と同じノリですね」 / Twitter
Miura HidekiさんはTwitterを使っています 「正規表現を文字列だけではなく汎用的なグラフ構造(シーケンスも含む)に対応して、そのパターンに対するアクション(グラフの書き換え)という言語は出来うな気がする。Prologみたいな感じ」 / Twitter
Miura HidekiさんはTwitterを使っています 「Edisonとかはそんな感じか」 / Twitter
Rui UeyamaさんはTwitterを使っています 「再帰的バックトラックを使わないNFA。こんな効率のいい正規表現のアルゴリズムがあったとは……。 http://swtch.com/~rsc/regexp/regexp1.html」 / Twitter
Regular Expression Matching Can Be Simple And Fast
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「正規表現文字列以外のマッチングモード引数がない言語だと、(?i) という文字列で ignore case になる実装はあるらしい。 https://t.co/CPh83px65l」 / Twitter
Regex Tutorial - Turning Modes On and Off for Only Part of The Regular Expression
Shiro KawaiさんはTwitterを使っています 「正規言語の範疇だからDFAで充分やろ←コンパクトになるとは限らない 遷移を手書きしてたら似たような状態が倍々で増えて行くぞ」 / Twitter
suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「#TypeScript 正規表現を型安全にするライブラリ作ってみた😌 正規表現にマッチしている、つまり結果がnullなら、結果のgroupがundefinedじゃないのは自明だし、groupの中にはyearとかmonthなどがあるのも自明なので、それをTSコンパイラに分からせるやつです。 https://t.co/uBqYbpnYyw」 / Twitter
suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「ちなみに、これは裏側で型レベルで正規表現を解析してAST化し、それを更に解析してmatchメソッドの戻り値型のヒントにしています。 https://t.co/jsaeN6PeQu」 / Twitter
Russ CoxさんはTwitterを使っています 「Recommended: Shift-based DFAs, by @pervognsen. https://t.co/ZBw3Kj7QYF Tried it out for replacing Go's utf8.Valid. Don't get to see this very often: https://t.co/WydmztLl7I」 / Twitter
Shift-based DFAs

ViVi & vine - regexp
ja
The Man Who Fell From The Wrong Side Of The Sky:2017年5月24日分
https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html
Online regex tester and debugger: PHP, PCRE, Python, Golang and JavaScript
ヘルプシステムで正規表現を使う - 増井俊之
正規表現とセキュリティ / Regular Expressions and Their Security-Related Aspects - Speaker Deck
アプリからファイアウォールにまで使われる正規表現を標的にした「ReDoS攻撃」とは? - GIGAZINE
JFLAP Minimize DFA - Google 検索

grep

ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
第287回 Ubuntuで超高速grep「The Silver Searcher」を使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
The Silver Searcher のススメ - Qiita
grepより高速に検索できるag(The Silver Searcher)のインストール方法 - Qiita
超高速grep「The Silver Searcher(ag)」からhighwayに乗り換えた - Shoyan blog
grepの高速版「ag」 (The Silver Searcher) - メモ
agとptとripgrep,どっちがどうでどれを使えばいいのか調べた予習 - Lambdaカクテル
agとUnite.vimで快適高速grep環境を手に入れる · THINKING MEGANE
FadisさんはTwitterを使っています 「FreeBSDからGPLなソフトウェアを排除する努力が続いている話。標準のデバッガがlldbになりgdbがports行きになったほか、GNU grepを置き換えるBSD grepの実装、それによって不要になったlibgnuregexの削除が挙げられている https://t.co/2LiJMqJOe1」 / Twitter
FreeBSD Continues Work On Ridding Its Base Of GPL-Licensed Software - Phoronix

find

ドッグさんのツイート: "grep に対する ag みたいな,find のユーザフレンドリ版.find のユースケースの80%ぐらいを確保しつつ find より速くて出力が色付きで見やすい https://t.co/lZ8KiQdH4a"
sharkdp/fd: A simple, fast and user-friendly alternative to find.
jhawthorn/fzy: A better fuzzy finder
tavianator/bfs: A breadth-first version of the UNIX find command

編集距離

4人のロシア人の方法

「4人のロシア人の方法」で編集距離を高速化する - EchizenBlog-Zwei
Method of Four Russians - Wikipedia
MoFR

レーベンシュタイン距離 - Wikipedia
Big Sky :: レーベンシュタイン距離を使ったあいまい grep コマンド「lsdgrep」作ってみた
いまさら編集距離 (Levenshtein Distance) を実装するぜ | takuti.me
編集距離(レーベンシュタイン距離)の求め方 - 具体例で学ぶ数学
レーベンシュタイン距離のアルゴリズムを理解する
【技術解説】似ている文字列がわかる!レーベンシュタイン距離とジャロ・ウィンクラー距離の計算方法とは - ミエルカAI は、自然言語処理技術を中心とした、RPA開発・サイト改善・流入改善レコメンドエンジンを開発
編集距離アルゴリズムを使って文字列を変換する (1/4):CodeZine(コードジン)
レーベンシュタイン距離の編集操作を統合してグラフ化する - Qiita
編集距離についての説明及びPythonでの実装 - Qiita
編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー
SymSpell対BK木:100倍速い文字列のあいまい検索とスペルチェック | POSTD
bit vectorで編集距離の計算を高速化する - Retrieva TECH BLOG
七誌さんはTwitterを使っています: 「単語の類似度と言えばレーベンシュタイン距離なので記事を読んでいた。 Pythonのデコレーターは処理系へのアノテーションではなく、関数をラップする糖衣構文だと知って驚いた。 このメモ化の手法はLISPっぽい。 編集距離(レーベンシュタイン距離)を理解し、実装する https://t.co/m1jBS6A5po」 / Twitter
編集距離(レーベンシュタイン距離)を理解し、実装する - Qiita

ソート

Blitsort

mattnさんはTwitterを使っています 「マージソートを繰り返してく安定ソート。場合によってはクイックソートより速いらしい。 / “GitHub - scandum/blitsort: Blitsort is an in-place stable adaptive rotate merge sort” https://t.co/XnzA8vscHR」 / Twitter
scandum/blitsort: Blitsort is an in-place stable adaptive rotate merge sort
mattnさんはTwitterを使っています 「マージソートの場合は左辺が常に完結するけど、完結させずにローテートさせていくらしい。」 / Twitter
mattnさんはTwitterを使っています 「普通のマージソートの場合はこの完結が次第に大きくなるけど、このソートの場合は L1 キャッシュに乗る程度で繰り返されるので速いと。なるほどー。」 / Twitter
mattnさんはTwitterを使っています 「ローテーションは block swap というアルゴリズムを使うらしい。 https://t.co/Q5LVVhbjyR」 / Twitter
scandum/rotate: A collection of array rotation algorithms.
mattnさんはTwitterを使っています 「インタフェースが qsort ぽく、エレメントのサイズと比較関数を渡せる様になってる。実用的。 https://t.co/hGuKF2eoc1」 / Twitter
blitsort/blitsort.h at f84083834ac78994fc92473f286337f62e2a0bee · scandum/blitsort

Kazuho Okuさんのツイート: "なるほどMSBからradix sortすればcache localityが確保できるのか #spkai"
Kazuho Okuさんのツイート: "cache digestsの計算はradix sort使ったほうがいいんだろうな。存在すら忘れてた #spkai"
404 Blog Not Found:algorithm - bucket sort - 比較しなければソートは相当速い
404 Blog Not Found:algorithm - bucketsort.[ch] - 汎用かつlibcの*sortより高速な
積炭酸さんのツイート: ".NET ReflectorでC#のArray.Sortの実装見てるんだけどおもしろいね.再帰の深さ制限したクイックソートを使っているようだ."
ミクミンP/Kazuhiro Sasaoさんのツイート: ".NET Framework 4.5 以降は標準実装のソートアルゴリズムがイントロソートになったのか https://t.co/yPIyT5uAro 最悪でも O(n log n) 。 4.0まではクイックソートで最悪 O(n^2) https://t.co/EvD4ZyGcmf"
Array.Sort Method (Array) (System)
Array.Sort Method (Array) (System)
積炭酸さんのツイート: "ついでにSTLのstd::sort(Dinkumware)も見てみたけど,やっぱり似たようなことしている.範囲の大きさを見てヒープソートに切り替えたり,挿入ソートに切り替えたりしている."
イントロソート - Wikipedia
Introsort - Wikipedia
Shirouzu Hiroaki(白水啓章)さんのツイート: "「クヌース先生の本にqsortも分割してnが小さくなってきたら、挿入ソートに切り替えると書いてある」という話、昔、RingServerミーティングの道すがらShow(@shownakamura)さんから「qsort→挿入ソートという切替が、常時、挿入ソートになるミスが混入してて困った」というネタと共に聞いた記憶。… https://t.co/3fgdn2W6i8"
satさんのツイート: "昨日だかにバブルソート(O(n^2)のほうがクイックソート(O(n*log(n)))より速いケースいついて少し触れたので、小さな記事を書いてみました。バブルソートのかわりに挿入ソートを使っていますが、両方O(n^2)なので s/挿入/バブル/ と読み替えてもだいたいOKのはず https://t.co/H5nJZhPbzq"
ソートの計算量と現実のプログラム - Qiita
satさんのツイート: "「バブルソートのかわりに」以降は忘れてください…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、WindowsSDKのqsortはループ実装かつ、ピボット配列が62個の固定長で確保されている(64bit版)。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "qsortの最悪ネスト数はn=最大ピボット数では?と思ってしまうが、2分割するたびに個数の少ない方から先に処理するというトリックで、最大log2N を実現。 さらに小さなエントリは挿入ソート切り替えのため、log2 2^64 = 64から2減らして、62個の配列でOKという話。… https://t.co/RA77dPcHC1"
高速な比較安定ソートアルゴリズム「颯式」の紹介 - Qiita

スペルチェッカ

GNU Aspell - Wikipedia
欧文スペルチェッカー GNU Aspell — 名無しのvim使い
Rockridgeさんのツイート: "Fx55:Googleドキュメントなどアプリ側でスペルチェッカーが働く場合は、本体側のスペルチェッカーを動作させないことで無駄な処理を省いた。 / “1330912 - Don't init spell checker for …” https://t.co/CPLktJo8M0"
ブルームフィルタ - Wikipedia
Bloom filter - Wikipedia
確率的データ構造・ブルームフィルタについてのまとめ - kakts-log
ブルームフィルターとは
Shiro Kawaiさんのツイート: "Bloom filterはCommon Lispで実装されたものを以前仕事で使ったことあるけど気をつけて型宣言すれば非常に速いっす。Allegro CLではビットベクタのインデックスの範囲チェックを省くのに型宣言での値の範囲指定がクリティカルだったような覚えが… https://t.co/0VaNFjJg88"
Common Lispで動くブルームフィルタ作った - Lambdaカクテル
C++でブルームフィルタを実装する方法 | プログラミング | POSTD
渋川よしきさんのツイート: "Wordの文法チェックについてすごい書かれている。.netでもCOMでもいいからAPI化してほしいって10年ぐらい思ってる。… "
確率的データ構造の比較:カッコウフィルタ対ブルームフィルタ | プログラミング | POSTD

CSV

CSVファイルの一般的書式 (RFC4180 日本語訳) - アルプス登山の玄関口・笠井家
rfc4180
CSVの国際標準 RFC 4180をいまさら読みなおしてみた - MONEX ENGINEER BLOG │マネックス エンジニアブログ
RFC4180だけにとどまらないCSVフォーマットのおすすめお作法 – 株式会社ルーター

blog

本の虫: なぜedはクソなのか
Web Components と Electron でつくる Neovim フロントエンドの未来 - はやくプログラムになりたい
Emacs 風のキー入力部 - Tociyuki::Diary
Emacs 風テキスト・エディタ向けの端末キー入力手順 - Tociyuki::Diary
Emacs 風のキー入力部 (2) 単独 ESC 文字の受け入れ - Tociyuki::Diary
行の折り返し表示 その 1 - Layout クラス - Tociyuki::Diary
行の折り返し表示 その 2 - Line を求める - Tociyuki::Diary
行の折り返し表示 その 3 - キャッシュ - Tociyuki::Diary
テキスト・エディタの Undo - Tociyuki::Diary
テキスト・エディタのカーソル移動 - Tociyuki::Diary
テキスト・エディタのエコー領域 - Tociyuki::Diary
テキスト・エディタの文字列補完 - Tociyuki::Diary
テキスト・エディタの上下タイリング・ウィンドウ - Tociyuki::Diary
テキスト・エディタのウィンドウ - Tociyuki::Diary
テキスト・エディタのミニバッファ - Tociyuki::Diary
テキスト・エディタのインクリメンタル・サーチ - Tociyuki::Diary
テキスト・エディタのマルチ・バッファ - Tociyuki::Diary
テキスト・エディタの行の折り返し表示 その 4 - キャッシュ更新の改善 - Tociyuki::Diary
テキスト・エディタの interactive 引数指定の正規表現 - Tociyuki::Diary
[速報]マイクロソフト、Webブラウザで動作する「Visual Studio Online」発表。VSCodeベース、IntelliCode、Live Share、拡張機能にも対応。Microsoft Build 2019 - Publickey
テキストエディタを作る – GitHub 出張所 – プログラム関係のブログはここに
Goで作るテキストエディタ - Sansan Builders Blog
ターミナル用 UTF-8 テキストエディタを Rust でスクラッチからつくった - はやくプログラムになりたい
コードとビジュアルの双方向編集なエディタを試作して ビジュアルプログラミングについて考えてみた - mizdev
Incremental Static Regeneration で実現する次世代のサーバーアーキテクチャ - mizdev
七誌さんはTwitterを使っています 「実際に使ってみたけど、メッセージが来た直後に取得すると結構な頻度で失敗する。0.1秒ほどウェイトを入れると問題なくなった。」 / Twitter
クリップボードの履歴をとるアプリの作り方 | 鳩でもわかるC#
クリップボードの内容の変化を知る方法 | 鳩でもわかるC#
テキストエディタのはなし - Message Passing

GitHub

rhysd/NyaoVim: Web-enhanced Extensible Neovim Frontend
rhysd/neovim-component: <neovim-editor> WebComponent to embed Neovim to your app with great ease
vim/vim: The official Vim repository
welcome home : vim online
antirez/kilo: A text editor in less than 1000 LOC with syntax highlight and search.
DigitalMars/me: Micro Emacs in C
GrenderG/tte: tte (tiny text editor) is a terminal based text editor written in C from scratch.
adsr/mle: a small, flexible console text editor (C)
martanne/vis: A vi-like editor based on Plan 9's structural regular expressions
lpan/viw: VI Worsened, a lightweight and fun VI clone.
hellerve/e: A dead simple editor
maildrop/a2pr-j

POSTD

15年目のVim | POSTD

OSDN

ブラウザ上で動作するHTML編集コンポーネント「CKEditor 5 v12.2」リリース | OSDN Magazine
ブラウザ上で動作するリッチテキストエディタ「CKEditor 5 v12.3」リリース、文字数カウント機能などが加わる | OSDN Magazine
米Microsoft、ソースコードエディタ「Visual Studio Code 1.37」をリリース | OSDN Magazine
米Microsoft、「Visual Studio Code 1.38」を公開 | OSDN Magazine

Qiita

ctrlp.vimの使い方まとめ - Qiita
自作エディタをつくる Advent Calendar 2016 - Qiita
VSCode公式の機能で、リモートサーバにSSHして編集する【Insiders Preview】 - Qiita
HTML内でIDをつけた要素はJavaScriptのグローバル変数に格納される - Qiita
メニュー使っていますか? - Qiita
いま熱い最新スクリーンエディタmicro ことはじめ - Qiita

Wikipedia

vi - Wikipedia
vi - Wikipedia
nvi - Wikipedia
nvi - Wikipedia
Vim - Wikipedia
Vim (text editor) - Wikipedia

Twitter

シェル

解答略さんはTwitterを使っています: 「個人的には、zsh, awk, sed, textutilsといったUNIX系のCUIツールを現代的な視点で全て刷新してほしい。人間工学を取り入れつつ、頻出コマンドを全て1文字にしてタイプ数を現行シェルの半分以下に削減し、mapやfilterといった関数型言語の知見を取り入れた最強のツールを流行らせてPOSIXを滅ぼしてくれ」 / Twitter
解答略さんはTwitterを使っています: 「vimのノーマルモードでは、部外者に理解不能のキーコマンドを連打して画面をどんどん書き換えるけど、あんな感じでシェルを操作したい。」 / Twitter
解答略さんはTwitterを使っています: 「3年ほど前に「vimのようなコマンド入力でシェルを操作する拡張」を自作した。もうこれ無しでは生きれない。 僕以外の人類、みんなめっちゃ頑張ってコマンドラインにタイピングしまくってて笑う。あんまりTAB補完連打してたら小指壊すで https://t.co/aMkYfSyLgB https://t.co/PfrhQab6Zb」 / Twitter
解答略さんはTwitterを使っています: 「リポジトリはこれ。snippet.zshをsourceして、bindkeyをいくつか設定すれば動く。awkもperlもsedも使わず、素のzshだけで動くように作ってあるし、多分どこでも動く。ソースコードは短いけどキレイじゃないので、こういうの詳しい人がいたらどんどんフォークして改良版作って https://t.co/9cZL5zqrFA」 / Twitter
kaitou-ryaku/zsh-simple-snippet

グローバル変数

なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「https://t.co/4M2Vow6Yzw に報告してあるけど、今のGeckoのエディタって、変更直前にSelectionを変更、各メソッドはSelectionを取得してその範囲を編集ってやってる。」 / Twitter
1555919 - Make editor not update Selection directly
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「これ、分かりやすく言うと、グローバル変数を予め設定しておかないと動かないメソッドだらけって話。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「しかも、このグローバル変数にあたるSelectionの変更がとにかく遅い。DOMのRangeやSelectionの仕様が速度を全く考えていない仕様なのでそこのパフォーマンスの悪さは仕方ないものの、とにかく遅い。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「なので、editorをSelectionと切り離してしまえば速度も上がるし、コードも綺麗になるし、Chromeとの互換性も簡単に実現できるようになる(ただしものすごい行数の変更が必要)。」 / Twitter

Undo/Redo

ファイルシステム

Kazuho OkuさんはTwitterを使っています: 「ほんと、ディスクなんて大抵空き容量あるんだからさあ、その空き容量使って変更を巻き戻しできるようにしてよ」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「unco は ld_preload であるがゆえに色々制限あるけど、ユーザランド fs でディレクトリ単位で任意の時点にロールパック可能とかキレイに作れるんじゃないのという」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「@smbd 惜しい感じなんですよね。スナップショットだとちょっと粒度が大きいというか。あっコマンド間違えた、取り消し!みたいなことがしたい」 / Twitter
かげさんはTwitterを使っています: 「@kazuho すごい粒度の細かい自動コミット(ワンストロークごとコミットみたいな。そこまで言わなくても改行一回デリート一回コミットでも良い)内蔵の開発環境が欲しいです」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「fsのスナップショットじゃなく、ディレクトリやファイルのスナップショットがほしい、と言えばいいのかな。ボリュームバックアップとTime Machineの違いと同じ」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「https://t.co/Z71pZUzeP0 これですね。すごく良い https://t.co/cbAwUyS7hE」 / Twitter
text.dvi
fjのYog教祖様さんはTwitterを使っています: 「@kazuho ElephantFS「btrfsやzfsは下がってな。こいつは俺でないと相手できねぇ事を言ってやがる。」」 / Twitter

じーくどらむすさんのツイート: "「階層構造を活かしたUndo」について考えていたが、これ実現したら結構使えそう。Undoって時系列で1本しか無いけど、しばらくたって「あの部分だけUndoしてぇー」って時に、そこの木だけにフォーカスしてUndoが可能。"
じーくどらむすさんのツイート: "ただし、RedoできるのはUndo実行時の木にフォーカスしている時のみ、アクションのChainが複数の木にまたがる場合はChainが分解される、などの仕様で色々と歴史の部分改ざん問題を回避する必要がある。"
なかのん&マジックさんのツイート: "ちょっと前に、GeckoのUndo/Redo周りを見てたけど、今の一本道なスタックでもキツいのに……"
なかのん&マジックさんのツイート: "まあ、どっちみち、ブラウザでやろうと思うと、消したハズのDOMノードをずっとundo/redoのスタックに積んでいかないといけないとか、ちょっとメモリに優しくない(JSでオブジェクトをつかんだまま、ツリーに戻って来たものを参照するかもしれないから)。"
なかのん&マジックさんのツイート: "undoが壊れるエディタとかまじで存在してて引く。"
Kazuho OkuさんはTwitterを使っています: 「何度でも言いますが、21世紀なんだし、エディタだろうがファイルシステムだろうがウェブ上のシステムだろうが、計算機上のすべてのUIはアンドゥ可能であるべきだし、そうじゃないシステムには unco 投げつけるべきなんですよ」 / Twitter

リサイザ

なかのん&マジックさんのツイート: "まだNightly 62での集計だけど、FirefoxのHTMLEditor固有の機能である、画像やら<table>やらのリサイザを使ってる人、予想通り少数ながら、予想外に使ってる人は使ってるって感じの数字だぞ?? https://t.co/OIcPy4cqO7 #もずでぶ"
Measurement Dashboard
なかのん&マジックさんのツイート: "1が意味するのは、実際にリサイザが表示されたHTMLEditorで、一回ハンドルをドラッグしてリサイズしたってこと。10の人なんかは10回リサイズやってるってこと。"
なかのん&マジックさんのツイート: "さすがにposition:absolute;の編集機能はほとんど使われてないな。 https://t.co/RJrdEtaHDo"
Measurement Dashboard
なかのん&マジックさんのツイート: "<table>エディタの方もサンプル数からするとまあ予想通りか。 https://t.co/RCCCCbN7zo"
Measurement Dashboard
なかのん&マジックさんのツイート: "Beta 62、Release 62での数字を見てからの判断になるけど、デフォルト非表示は問題なさそうなユーザ数だけど、リサイザのユーザ数を見るとややリスキーではあるな。"

解析木

DrumatoさんはTwitterを使っています: 「パーサがいきなりASTを作らずに一度具象構文木(解析木)を作ってから意味動作でASTにする実装のメリット,何があるだろう.」 / Twitter
市川 真一さんはTwitterを使っています: 「テキストエディタとかで、解析木生成パーサを流用する場合に対応する括弧へのジャンプが実装できそうな気がしています https://t.co/RKqMVsbb3C」 / Twitter
星にゃーんさんはTwitterを使っています: 「複雑な文法を持つ言語の場合パーサにいきなりASTを作らせるのが難しい場合がある(例えば演算子を自由に定義できる言語)、コンパイラが具象構文木を持ってるのでそれを出力するだけでコードフォーマッタができる、とか? https://t.co/9p2Yb1n7MK」 / Twitter
星にゃーんさんはTwitterを使っています: 「この二つは具象構文木である必要があるかどうかは微妙。ASTに加えてコメントとカッコの情報を持っていれば充分な気もする」 / Twitter
星にゃーんさんはTwitterを使っています: 「お気持ちでパーサを眺めると、具象構文木を生成する構文解析と具象構文木から抽象構文木への変換の合成と思うことができ、そうするとこの問題はどのぐらい両者を分離するかの程度問題と捉えることができる…?」 / Twitter
DrumatoさんはTwitterを使っています: 「とても共感できる意見をいただきました, 個人的に思ったのは,具象構文木からASTに変換する処理はトークンストリームから作るより随分シンプルなコードになるはずなので,そういう利点を持っていそう. 字句解析と構文解析を分けるかどうかとか,構文解析と意味動作を分けるかとかいう話とベクトルは一緒か」 / Twitter

検索

Takashi KawasakiさんはTwitterを使っています: 「いつも思うんだけど、こういう検索機能、ファイル名も検索対象に含めてほしいんだよね。例えば、プロジェクトに含まれるファイルのファイル名を全置換したい場合、ファイル名とそれを参照しているファイルの中のファイル名を同時に置換したいことが多い。 https://t.co/LiIZmFoKhq」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「Javaのネームスペース名変更とか軽く死ねる。」 / Twitter

平易なエディタ

Kazuho OkuさんはTwitterを使っています 「Viとかnanoみたいなキーバインディングは調べて覚えろ的なスパルタじゃなくて、コンソールで使える軽量の、メニューがついてるエディタってないのかな。軽量の!!!!だからね。EmacsはNGワードだからね!!!」 / Twitter
Kazuho OkuさんはTwitterを使っています 「この件 @cwyang さんに教えてもらった mc をモノクロモードで使ってるけど、キーバインド覚えなくても使えていい感じ https://t.co/n6hWy8oNFO https://t.co/5w4DnpSnrS」 / Twitter

LISP 構造エディタ

SODA NoriyukiさんはTwitterを使っています 「昔のLispではよくある拡張だったはず。Z80上のLispでもあったと思う。」 / Twitter
Shinji KonoさんはTwitterを使っています 「UTILISPでは )))) は ] と一つで書ける。」 / Twitter
Takuo WatanabeさんはTwitterを使っています 「@n_soda 括弧の数を数えなくて便利だと思って使っていると,後からデバッグや変更・再利用したいときに面倒な思いをします.結局Emacsで括弧を最後まで閉じる関数を書きました.」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@wtakuo 今みたいなスクリーンエディタによる支援がなかった時代には有用だったんですが、現代では不要ですよね。 そういえば当時のLispには構造エディタ https://t.co/sEXFvuCjoZ なんてものもありました…」 / Twitter
情報学広場:情報処理学会電子図書館

Emacs

ネイティブコンパイルEmacsの登場 | 日々、とんは語る。
Miura HidekiさんはTwitterを使っています 「でも、あまり速くなっていないな。おそらくバイトコードをそのままCコードに機械的に置き換える奴だろう」 / Twitter
Miura HidekiさんはTwitterを使っています 「ソース見たら、簡単な型解析を行っているようだ。おもしろい https://t.co/dbeT2DtaEW」 / Twitter
emacs.git - Emacs source repository
Miura HidekiさんはTwitterを使っています 「SSAなんて不穏なワードを発見した。奴ら本気だ」 / Twitter

Monaco

Google、VSCodeの代替を狙う「Eclipse Theia」コードエディタをクラウド統合開発環境として採用。Google Cloud Shellに統合を発表 - Publickey
Makoto Kato ︎︎さんはTwitterを使っています 「cloud shell editorはTheia使ってるってことはエディタ部分はmonacoってことだよな」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「GitHub CodespaceもGoogle Cloud Shell Editorもmonaco使ってるし、Geckoの自動テストにmonaco入れたほうがいいのかなぁ。https://t.co/TS7F0hjf9C が修正されたんで、致命的な問題はなくなったように見える (GeckoView除く)」 / Twitter
Fix composition logic for Firefox by belcherj · Pull Request #106873 · microsoft/vscode
Makoto Kato ︎︎さんはTwitterを使っています 「Eclipse TheiaってもともとTypeFoxが作ったエディタで、中身はVSCodeのエディタエンジン、Manacoを使ったものだけど、みんな分かってないのが笑えるというか、OSSとか発表されたらまずコード見るでしょ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「s/Manaco/Monaco/」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「いろんなものがMonacoによって駆逐されてしまうのかなぁ...」 / Twitter
Makoto Kato ︎︎さんのツイート: "Visual Studio Codeだって、そもそもVisual Studio Onlineのために作ったmonacoをElectronアプリにしてってところからなんだし、そもそも先祖返りしただけではと"
Makoto Kato ︎︎さんのツイート: "今まで存在したVisual Studio Onlineがなかったことになった件について"
Makoto Kato ︎︎さんのツイート: "Visual Studio OnlineはAzure DevOpsに名前変わって、Visual Studio Onlineが新たに発表されたのはわずらわしいので、アップルみたく"新しいVisual Studio Online"って名前だったらな"
Makoto Kato ︎︎さんはTwitterを使っています 「Monaco (VSCode)のビルド、LinuxよりもWindowsの方が簡単にビルドできるの、さすがMicrosoft感する。(Windows Termianlみたくrazzleコマンドでビルド環境設定できたらよりMicrosoft感)」 / Twitter

Vim

Masaki HaraさんはTwitterを使っています 「Vim: 最終行が末尾改行を含む JetBrains: 最終行が末尾改行を含まないが、最終空行には移動できない (IdeaVimの場合?) VSCode: 最終行が末尾改行を含まない」 / Twitter
Masaki HaraさんはTwitterを使っています 「汎用エディタとしてのVim, Ruby/Go用としてのJetBrains, Rust/TypeScript用としてのVSCodeを併用してるんだけど、3者ともに末尾改行の扱いが違うのでたまにミスる」 / Twitter
Kazuho Okuさんのツイート: "ログをテキストファイルにコピペする際に、vim起動して i して Cmd-V して遅くてウギャーってなるの1日に1回くらいある 正解は pbpaste > file なんだけど"
島鉄雄さんのツイート: "Emacs (substring "abcd" 0 1) ⇒ "a" (substring "abcd" 1 1) ⇒ "" Vim 'abcd'[0:1] ⇒ ab 'abcd'[1:1] ⇒ b これからも分かるように Vim は文字と文字の間という概念が無い。 だから文字を挿入する時に、文字の前に挿入する(insert)か、後に挿入する(append)かというコマンドが存在するのである。"
島鉄雄さんのツイート: "Emacs と Vim の違い Emacs のカーソルはポイントと言って文字と文字の間に位置しているから行末は文字の後ろに移動する。 Vim は違って文字の上に乗っているから行末でも文字の後ろには行かない。 Emacs → テクスチャの UV 座標指定 Vim → ファミコンなどのキャラクタベースの座標指定 と言える"
10/27,28はOSC Tokyoさんのツイート: "個人的によく使う、少しadvancedなvimコマンド3選 ・カッコの中を消す: di( ・複数行をコメントアウト: C-vで行頭を選択しI// ・空行単位の移動: {、}"
Vimのパッチ存在確認処理を速くした - プログラムモグモグ
SODA NoriyukiさんはTwitterを使っています 「emacsの場合 CTRL-_ (CTRL-/) が undo なので、この「直前に編集した場所に戻る」目的で CTRL-_ CTRL-p CTRL-_ とかしたりするな。undoの副作用でカーソルを戻して、二回目のundoでそのundoをキャンセルするという。 CTRL-p のところは連続undoを阻害する目的なので副作用の少ないコマンドなら何でもOK」 / Twitter
monaqaさんはTwitterを使っています 「コーディングのとき、一旦別の場所に飛んでコード片をコピーしてから、元いた場所にすぐ戻ってペーストする…そんな場面、よくありますよね。Vimなら g; と押すだけで"直前に編集した場所"にジャンプできます。g;/g,は"チェンジリスト"に登録された箇所を行き来できる便利コマンドです。 #vimtips_ac」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Vimで表示上の行(screen lines)間を移動したいときはgj/gk。もしかしてと思ってg0と入力したらちゃんと表示行の先頭に飛べた。日本語で長い段落書いていると助かる / “Moving by screen lines instead of file lines | Vim Tips Wiki | Fandom” https://t.co/0Pbs8Go1QS」 / Twitter
Moving by screen lines instead of file lines | Vim Tips Wiki | Fandom
smegheadさんはTwitterを使っています 「@igrep vim操作の一貫性は良いですね。 g$は良く使います。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「Vim 使いだけど基本的に ESC じゃなくて C-[ 使うから実は ESC あんま要らない」 / Twitter

Windows

マイクロソフトサポートさんのツイート: "メモ帳で「F5」を押すと、現在の日付と時刻が挿入できます。ちょっとした会議のメモなど、日付を入れておきたい文書の時に便利ですよ。 #MSHelpsJP"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸は(空白インデントモードだと)インデントを1段解除するには「空白をひたすら削除」or「行選択してから SHIFT+TAB」(or そのマクロ化)しかない様子。 Python推奨な空白インデントだと、軽快に書きづらい点の解消は難しそうかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸サポートの方に、マクロでショートカット呼び出しの方法は聞いたので、それを試してみよう。それでもしっくり来ない場合は、他のエディタにお引越しするかな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸のサポート掲示板、コメントが付く速さと内容(開発の人が書いている?)は見習うべきものがあるなぁ。"
Masaru IritaniさんはTwitterを使っています: 「同じ編集の繰り返しを自動的に検出してくれる AI-assisted Refactoring は、リファクタリングの時間も誤りも削減してくれる素晴らしい機能ですね。 https://t.co/nrx4QynCcw」 / Twitter
Visual StudioさんはTwitterを使っています: 「We're expanding the application of #AI to accelerate learning and improve development agility with two new capabilities: whole line completions and refactoring. Read more: https://t.co/6Tn1X1tELr https://t.co/Z8USvIvO6Y」 / Twitter
Re-imagining developer productivity with AI-assisted tools | Visual Studio Blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「久々にWZを見た、、、最初の頃使っていた。 ただ1プロセス・マルチスレッドのため、バグがあると他の編集中ファイルも巻き添えに全て死ぬので、1年くらいで利用中止したっけ、、、」 / Twitter

@d_toybox

histric-1

なかのん&マジックさんのツイート: "実際に書いたこと無いんだけど、実装してる側からすると、アプローチがマズいものが多々ある。"
なかのん&マジックさんのツイート: "Geckoは基本的にはエディタの動作のグレーゾーンはBlinkに合わせて行くので、bugzillaにバグ報告もらえたら一番確実。数ヶ月後に修正されてることが多いので、そのときに、サイト側のハックを削除できるようになる。"
なかのん&マジックさんのツイート: "Blinkのエディタの動作は手堅くて良いんだよね。単純にmakes senseな事が大半で、やりやすい。"
なかのん&マジックさんのツイート: "私が担当してるジャンルだと、イベント周りのBlinkの動作は気に入らないこと多いんだけど、エディタ周りは、なるほどねって感心すること多い。"
なかのん&マジックさんのツイート: "仕事では今でも秀丸でソースコード書いてるけど、色々と不満もあってどうしたもんかとは思う。ただ、編集能力にはほとんど不満はなくて、素早くファイルを開いたり、タブを検索できないという、ファイル間のナビゲーションの不満が大きい。"
なかのん&マジックさんのツイート: "昔、ダメもとでスマートロケーションバーの機能を提案してみたんどけど、案の定、却下されてて、なんというか絶望感しかない。"
なかのん&マジックさんのツイート: "秀丸の開発者さんは複数のファイルを同時に編集しないのかな?と不思議に思うぐらいに、この辺に改良がみられないんだよなぁ。"
なかのん&マジックさんのツイート: "は? 一つのEditorBaseに複数のスペルチェッカーを登録できるの?"
なかのん&マジックさんのツイート: "editorとspellcheckerと謎のテキストコンテンツを管理してくるクラス、変に別モジュールに分割されててややこしい。"
なかのん&マジックさんのツイート: "うん? resizeイベントって要素ごとに発火してたっけ……? / 強力なポップアップブロックが追加された「Chrome 64」安定版リリース - GIGAZINE https://t.co/Y8dxXb29U7"
なかのん&マジックさんのツイート: "それはさておき、Geckoのresizeイベントは発火しちゃいけないloadイベント前に発火しちゃってないのかな。この前その仕様知ったものの、まだ調べてないや。"
なかのん&マジックさんのツイート: "Firefox for Androidで読み込み終わると同時に再読込が始まるページがあるの、resizeイベントがどうこうってのを見かけた記憶がある。"
なかのん&マジックさんのツイート: "エディタでは、しばらくやれないけど、重大なバグがあって、Enterキーとかでパラグラフが分割されるとき、Geckoだけ後方にある要素が既存の要素になってて、他のブラウザは前方にある方が既存の要素になる。このせいで、undo/redoにちょっと無理あるし、どうにかしないと。"
なかのん&マジックさんのツイート: "BlinkはBlinkでundo/redoが直感からズレるケースがあるの見つけてるけど、まあ、そんなことやるWebアプリは無いやろなっていうレベル。Blinkはどうも、新しい要素をその次にある要素と紐付けて保存してるらしい。"
なかのん&マジックさんのツイート: "細かく見てると気に入らない動作もあるし、凄い変なバグも見つかるんだけど、総じてBlinkのエディタは良くできてるというか、手堅いなっていう印象。"
なかのん&マジックさんのツイート: "Geckoのエディタは、自動テストが無かった頃に作られてから放置されてたんで、単純に使わなかった時の挙動がとにかく怪しい。"
なかのん&マジックさんのツイート: "とりあえず、ブラウザのエディタの何がしんどいって、undo/redoの前に、ユーザーの編集以外に、JSでDOMツリーを変更されてる可能性があるわけだ。基準をどうするのか考えないと、変なところに要素を作ったり、移動したりすることになる。"
なかのん&マジックさんのツイート: "Twitterのツイート欄にWebページの内容を貼り付けると、一瞬だけスタイルそのままのリッチテキストが表示されて、すぐにプレーンテキストになるでしょ。ああいう感じで、機能制限やブラウザ感の差異吸収のために、結構、JSでエディタの内容っていじられるのよね。"
なかのん&マジックさんのツイート: "Geckoの長年の不要なkeypressイベント(仕様で後からほかのブラウザの事情から不要と定義されたんだけど)に対処している、reactのソースコードを見つけて、ホントに申し訳ない。数ヶ月以内になんとかしたい。"
なかのん&マジックさんのツイート: "Webアプリ開発者の負担を減らすために、IMEの未確定文字列がある場合にもkeydownとkeyupは発火するべきってのも、同時にリリースしたい。"
なかのん&マジックさんのツイート: "とりあえず、keypressの方は最低限、どこを書き替えないといけないかを洗い出したけど、自動テストでeditorの挙動が全く引っかからなかったんで、自動テストでテストされてない機能が他にもありそうで、見通しはまだまだ。"
なかのん&マジックさんのツイート: "まあ、Thunderbirdを壊さないように、また、FirefoxのUIのコードの書き換えを最小限にするためにトリッキーなことしてるから、自動テストで引っかかりにくいんだけど。"
なかのん&マジックさんのツイート: "ブラウザのHTMLエディタは私が誤解してないなら、IEが最初に実装して、Netscape/Mozillaが独自に追走、そしてWebKit/BlinkがIEの動作をより研究して実装って流れだと思う。なので、Geckoの動作が一番違ってて厳しい。"
なかのん&マジックさんのツイート: "Geckoの動作をとっととBlinkと同じにすれば良いやんって思った人は互換性とか分かってなさ過ぎなのでお願いします。"

histric-2

道化師さんのツイート: "それにしてもWebブラウザ上で動かすタイプのテキストエディタ、よくやるよなぁ。textarea が直接的な拡張に対応してないが為にみんなクッソ涙ぐましい努力して実装してるよね・・・。"
なかのん&マジックさんのツイート: "正直なところ、テキストエディタをプログラミング勉強中に頭ひねって作ってた身としては、ブラウザのHTMLエディタがなんであんな高速に動いてるのか不思議だったりする。あんだけ、DOMオブジェクトを生成・破棄繰り返す上にエディタ的には余計なイベントやら、ミューテーションの通知投げてるのに。"
なかのん&マジックさんのツイート: "そーいや、生のDOMをガリガリ使えるWeb開発者さんは、Geckoのエディタのコードを見ると(汚くてしんどいけど)面白いと思う。やってることは、C++でDOMツリーをDOMイベントドリブンで修正してるだけやから。 https://t.co/9IjIAH2jYm"
HTMLEditRules.cpp - mozsearch
なかのん&マジックさんのツイート: "ちなみに、Geckoのテキストエディタも、HTMLエディタの機能削減版なだけだったりする。<textarea><div>value</div></textarea>みたいな感じ。"
なかのん&マジックさんのツイート: "やっぱ、あらためて見ててもSelectionとRangeが遅いなぁ。エディタが編集してる最中はSelectionの変更を最小限にすべきなんだけど、mutation observerとの絡みがあって、ざっくりと削減もできないんだよなぁ。誰だ、あんなの考えたヤツは。"
なかのん&マジックさんのツイート: "DOMツリーの変更とSelectionの変更は全て、EditorBaseのラッパメソッド(新設)を通すようにして、Selectionの変更メソッドは新しい範囲をキャッシュするだけにする。DOMツリーの変更ラッパメソッドはSelectionのキャッシュを実際にSelectionに行う、って形だとかなり改善できるかとは思うけど、つらい。"
Makoto Kato ︎︎さんのツイート: "CheckSelectionStateForAnonymousButtonsが呼ぶ… "
Makoto Kato ︎︎さんのツイート: "常にではないが… "
Makoto Kato ︎︎さんのツイート: "それ、formdata.jsmかなんかがfennecだけ動いてて、そいつがselection listener使ってるから余計重い話ある… "
Makoto Kato ︎︎さんのツイート: "abspos editorが実はFirefoxでは使う方法がデフォルトでは存在しないのに、そいつがSelection Listenerで常にReflow発生させてる話があって、あれprefs追加しようと思ったの忘れてた。content editableでチョイ速くなるはず"
Makoto Kato ︎︎さんのツイート: "あれ、Thunderbirdだけしか使う方法ないんだよね"
なかのん&マジックさんのツイート: "https://t.co/fCjJEth8BE これです??… "
なかのん&マジックさんのツイート: "うう。HTMLエディタではスペルチェッカー動いてないのを忘れてたorz"
FormData.jsm - mozsearch
なかのん&マジックさんのツイート: "エディタ周りのセキュリティリスクをどうにかうまくコントロールできないもんかなぁ。今、ぼんやりと考えてる設計は、DOMツリーに修正加えながら色々とやるんじゃなくて、何を削除して、何を追加するのかを先に全部計算して用意しておき、一気に変更する時だけひたすら慎重にやるって形。"
なかのん&マジックさんのツイート: "リッチテキストエディタをブラウザ上で作ってる人、日本人で居ないかな?"

histric-3

なかのん&マジックさんのツイート: "このページ、書いた人が横スクロールは使いにくいという判断をしていて興味深い。 / 自作ゲーム大年表 https://t.co/e571kwMUVA"
自作ゲーム大年表
なかのん&マジックさんのツイート: "今、まさに、writing-modeでスクロールバーが一方向に対してだけ存在してる要素は、垂直方向のwheel操作でスクロールできるようにする実験的なパッチがFirefoxのNightlyに入ろうとしてるところ。 https://t.co/4wUSMlkXbx #もずでぶ"
なかのん&マジックさんのツイート: "実際のデバイスで色々とやってみないと提案されている挙動が直感的かどうか、また、本当に使いやすいのか分からないので、縦書きのページのリストを募集中です。 https://t.co/WCrhIcNZ6k"
なかのん&マジックさんのツイート: "クロスブラウザなリッチテキストエディタを一から書いてみたさあるんだよな。ブラウザ側をやってると、「なんでそんな実装になってんの?」みたいに思えちゃうんで、ちょっと、現実の開発者さん達と知識や発想の乖離が起きててやりづらさを感じてきてる。"
なかのん&マジックさんのツイート: "Thunderbird使ってて思うのは、bodyテキストという好ましくないものが、引用部分でEnter押した時にデフォルトでそのモードになっちゃうところかな。ただ、人間の見た目的に問題少ないのと、まあ、機械的にもそこはよきに計らいやすい。"
「この世界の片隅に」はいいぞさんのツイート: "Nのnviにimctrl, imkeyオプションを実装しました。Tera Term / RLoginのエスケープシーケンスを使って、input methodを自動的にオン・オフできます。nvi-m17nのcannactrl, fepkeyオプションと同じように動きます。… https://t.co/GGHXnWQ2Ab"
なかのん&マジックさんのツイート: "HTML5的には<b>とかみたいにスタイル情報を持ってる要素を英語でなんと呼んでたっけ……"
なかのん&マジックさんのツイート: "特に呼び名が無さそうだな。意味付けが行われたせいか。HTML4.01だと"Font style elements"とインライン要素限定感あるグルーピングされてるな。"
なかのん&マジックさんのツイート: "ところで、エディタやってると、インライン要素とかブロック要素っていう用語が時代遅れなの分かってて使い続けないといけないのつらい。まあ、Blink/WebKitみたいにGeckoのエディタもdisplayの値を参照しろって話ではあるんだけど、その変更はかなりキッツい。"
なかのん&マジックさんのツイート: "しかも変更した所で、実際のwebアプリでの互換性向上はほとんど無い……"
なかのん&マジックさんのツイート: "今後のGeckoのエディタのために数ヶ月もデザインの変更に付き合ってくれてる会社や同僚には感謝の念しかない。日本の会社じゃまず無理そうだ。"
なかのん&マジックさんのツイート: "Site Isolationのためにメモリを減らそうとすると、今、やってる範囲では、TextEditor/EditorBaseのメモリ削減はサイトによってはそれなりに効果ありそうなんだけど、そのためには一時的に(かつスタックで済む)メンバは普段は持たない事が肝要だけど、今回のデザイン変更で一気に解決しそうな感じ。"
なかのん&マジックさんのツイート: "とりあえず、実際にコード触ってる人間以外に意味の無い、EditorBaseとTextEditorはマージして、メンバのalignmentを調整して1バイトでも削減すべきなんだろうな。"

histric-4

なかのん&マジックさんのツイート: "編集で(一時的に)壊れてる<table>を修復するっていうAPIがあるんで、それのリファクタリングのためにテストを書いてみると、壊れた<table>ではそれを検出した途端にエラーを返すという謎な挙動になってて、結局何もしていない……"
なかのん&マジックさんのツイート: "昔のGeckoのエディタのAPIを使ってた人って、本当にAPIなんだっていう感覚で書いてるんじゃなくて、実装の一部、C++じゃないとしんどいところをC++で書いて、JSでいけるところはJSでって感じにしただけなんだろうなぁってのをあらためて。"
なかのん&マジックさんのツイート: "まあ、大元のXPCOM APIをバンバン作ってた頃って、技術的にはアドオンのAPIとして使えますよって感じだけど、実際はアドオン自体が管理すらできない代物だったから、その意識が無かったってのも大きいんだろうな。"
なかのん&マジックさんのツイート: "呼び出し元のお気持ちに忖度したり、呼び出し時の状況に依存したりしなかったりするようなもの、APIとして最低だわ。"
なかのん&マジックさんのツイート: "例えば、foo(Element* bar)みたいな形のAPIが、barがnon-nullな要素だったらその要素基準で処理が行われて、null (undefined)だったら現在のSelectionの情報から勝手に探すよ、みたいなの多すぎ。バグでnullが渡された場合、呼び出し元のデバッグが困難になるからやったらあかん。"
なかのん&マジックさんのツイート: "使い勝手のためにそうしたいのなら、別のAPIでSelectionからそのElementを返すようなものを用意すれば良いし、その形なら、後で他の動作も選択肢に入れやすくなるし、何より呼び出し側のコードが明示的になって綺麗になる。"
なかのん&マジックさんのツイート: "「頭の良い」APIは将来、その挙動を変えないと破綻するって時に変えて、そのユーザが全滅するというオチ。"
なかのん&マジックさんのツイート: "秀丸、FirefoxのURLバーみたいに相対的に近いところにあるファイルに手軽にアクセスできるUIがあれば最高なのと、grepが速ければなぁ……(使ってるけど)"
なかのん&マジックさんのツイート: "macOSでVSCode使ってみてるけど、微妙に「あれができない」みたいなのにぶちあってて……"
なかのん&マジックさんのツイート: "それにしてもThunderbirdでのみ使ってるeditorのAPIをとにかく自動テストで固めないと、思わぬタイミングでregression報告が来るのキツいな。"
なかのん&マジックさんのツイート: "まあ、もう、editorのコードを自動テストの追加できないぐらいにドラスティックな変更かけることはもはや無いとは思うが。"
なかのん&マジックさんのツイート: "とりあえず、今ある仕様案にはかなり強い設計に書き換わってる。"
なかのん&マジックさんのツイート: "とにかく、標準仕様策定の主導権を握れないと、自分のところのプロダクトの設計では実装しづらいものが仕様として概ね固まってしまうと、大きな書き換えを余儀なくされるので、「まだか」って標準仕様界隈からはつつかれるんだよな。"
なかのん&マジックさんのツイート: "ただ、仕様案が固まってからの実装だと、設計自体を最適化しなおせるんで、選考実装してるブラウザが細かいバグを修正するために大きく書き換えてるのを生暖かく見てられるのはある(見られてることもある)。"
なかのん&マジックさんのツイート: "今のところ、どのテキストエディタも「ファイルを開く」という操作を非常に軽んじてUI設計しているのが私個人の利用方法と合わないんだよな。"
なかのん&マジックさんのツイート: "おお、VScodeのCtrl+Pの存在に気付いてなかった。秀丸で欲しかったの、この機能。作業速度が体感で倍ぐらいになってる。… "
リベラル.3goさんのツイート: "F1でも同じです… "
なかのん&マジックさんのツイート: "F1だとコマンドの一覧出てきますね……… "
リベラル.3goさんのツイート: "コマンドパレットは 何も入力がないとファイル一覧 >を最初に入れるとコマンド一覧 # を最初に入れるとシンボル一覧 になります。 F1は > が最初から入力された状態 Ctrl + pは何も入力がない状態 Ctrl + tは # が最初に入力された状態 で起動します 他にできることは ?を入力すると出ます… https://t.co/3NH66khMzH"
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「ガッツリとした高速化は他の方々が先に入れてくれて、その後、ひたすら細かい最適化を3年間入れ続けてきたけど、その中でも効果があったのは、 1. virtual callを極力減らす 2. エディタが必要なオブジェクトはpublicメソッドが呼ばれた時に一度だけrefcount増やして保証する」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「3. 再生成するインスタンスは極力再利用する 4. 変更されない文字列はヒープに確保してnsString間でコピーが発生しないようにする(nsAutoStringは必ずコピーが発生するので遅い)」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「1はXULアドオンの廃止が無ければできなかった。他はとにかくメモリをいじるなって所につきる感じ。4はnsAutoStringの設計が悪いように思えるのでそのうちに見てみる。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「ちょっと見てみたけど、4は半分間違いみたい。コピー元がrefcountableな文字列ならコピーを行わないようになってた。ただ、inlineのバッファで文字列を持ってる状態でnsStringに渡すとコピーが発生するのでホットパスでのnsAutoStringは気をつけないとダメっぽい。」 / Twitter

分散処理に詳しいオタクさんはTwitterを使っています 「Emacsのお気に入りな機能にM-tの単語入れ替え機能があって、間違って INFO(LOG) とか入れてしまった時に一発で LOG(INFO) にスワップできます(そんな入力ミスをするな)」 / Twitter
κeenさんはTwitterを使っています 「面白い。確かにハイライトすべきなのが構文とは限らなくて、構文から導き出される文脈こそ欲しい情報だからそれをダイレクトにハイライトした方が便利だね。 Syntax highlighting is a waste of an information channel • Buttondown https://t.co/oPSizrlUjo」 / Twitter
Syntax highlighting is a waste of an information channel • Buttondown
でこれきさんはTwitterを使っています 「viはcopyのことをyankと読んでemacsはpasteのことをyankと呼ぶのだなあというところから、そういえばvimの人は"で指定するものをレジスタと呼ぶけどviの人はバッファと呼んでいて、vimの人はmaはマークaをつけると言いviの人はマークレジスタaに現在位置を入れると言うのだなという方にさまよっていた」 / Twitter

C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに:コードを読む時間が一番長いという問題 - @IT
「IntelliCode」がさらに進化し、行全体を候補として提案。まるでAIとペアプロしているように - Publickey
大規模ソースコードの読み方
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「計画を立てる時につい「何をするか」に注目してしまう。そうではなく先に断片でいいから「(中間)成果物」を挙げる。そしたら、それらをつなぐ「変換」を挙げる。そうしてプロセスを組み立てる。これを表現するのが PFD。中間成果物が選べない人はプロセスを「分割統治」できていない。」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「計画の立て方 1.成果物を列挙する(生成プロセス決まる) 2.PFD (Process Flow Diagram) を書く 3.生成プロセスの時間を見積もる 4.リソースを配分する 5.リソースごとにトポロジカルソートする 6.バランスやクリティカルパスで調整 完成」 / Twitter

国際化

MS

リソース DLL

Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsのLCIDは、地域を指定した個別ロケールIDと親(総称的・ニュートラル)IDとが用意されていて、親IDリソースだけ作れば、個別ロケール環境に応じて自動フォールバック可能。 だが、繁体字だけは親IDがVS2017から選択できず、リソース言語IDを直接0x7C04に編集する必要あり…後付けなのかな?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、直接編集した後に VS2017 で参照すると、こんな表示に。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10上のHK/TWの両環境で、正しくフォールバックされることを確認。 (ただし、Win10から対応した可能性も残る)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7(HK)からも、0x7c04なリソースにフォールバックされることを確認。 苦労して MUIの枠組みを使わなくても感(笑)"

Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "フランス語Windowsだと、ASCII部分のキーアサインも随分違うのね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ダウンロードフォルダは Téléchargement、デスクトップは Bureau と表記されていた。へぇ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ドイツ語Windowsだと、YとZだけが入れ替わっている。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "イタリア語で、第二キーボードを日本語にするときは「Giapponese」。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "アラビア版Windowsは、全てが鏡像の世界…単に「文字が右から左に」というレベルではなかった(笑) ボタン配置もタスクバーもごみ箱も、すべて逆さま。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そう言えば、最初はWindowsも文字列だけ右から左にしようしたが、矛盾が吸収できず結局、全て逆さまにした、という話を大昔に読んだ気がする…が元ネタが思い出せない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7(英語)でも(フォント=MS Shell Dlg)同時多言語表示できることを確認。 (昔はUNICODE版でもフォントが無く▮▮表示に。ちなみにANSI版等でUNCODE変換が失敗した場合は??表示に)… "

Gakuさんのツイート: "Win32APIのGetNumberFormat 関数を使って環境にあわせたロケールの数字形式に従って書式化されてはいかがでしょう。 https://t.co/lRY3KP9zxF… "
GetNumberFormat 関数
Shirouzu Hiroaki(白水啓章)さんのツイート: "ありがとうございます。 このへんを眺めていたところでした。 https://t.co/7crsCHMuNG 日時その他もなかなか頭が痛いですが(笑) https://t.co/Uqho9drVT6… "
Locale and Culture - Globalization | Microsoft Docs
GetUserPreferredUILanguages function (Windows)
Multilingual User Interface (MUI) Support - NyaRuRuが地球にいたころ
MUI
Multilingual User Interface API - Google 検索
日本語のWindowsは礼儀作法にうるさい?――英語環境で動作するコードが日本語環境でNGなワケ:その知識、ホントに正しい? Windowsにまつわる都市伝説(86) - @IT
英語版と日本語版、どっちのOS環境が使いやすい?:山市良のうぃんどうず日記(23) - @IT
Shirouzu Hiroaki(白水啓章)さんのツイート: "今更ながら(多言語リソース/DLLを直接使う場合に比べて)MUIの枠組みを使うメリットが手間の割に見えないな。 https://t.co/Q7RfWu0eUZ"
Multilingual User Interface | Microsoft Docs
言語パックをストアから入手可能に ~「Windows 10 Insider Preview」Build 17074 - 窓の杜

Mozilla

Rockridgeさんのツイート: "MozillaはFirefox本体のリリースとロケールのリリースを分離することや、ロケール変更を即時に反映させることができるように、基盤整備を進めている。 / “Gecko Locale Selection remodel co…” https://t.co/Ii5ZBZAucY"
Rockridgeさんのツイート: "Fx55:日時の表示フォーマットについて、OSのロケールではなくブラウザのロケールを基準にするようになった。参照:https://t.co/Jyo42LH9H9 / “1339650 - Introduce mozIntl.Da…” https://t.co/cHPNVoaNvb"
Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonに「翻訳記憶」のダウンロード機能が実装された。翻訳記憶は承認済み翻訳の集合体。ダウンロード機能はこれを別プロジェクトなどで再利用可能にするものだ。 / “Reuse…” https://t.co/9SWanizaYw"
Rockridgeさんのツイート: "Firefox(デスクトップ版・Android版)やThunderbirdなどの日本語ローカライズに関する進捗を確認できる。 / “Mozilla Localization Team Japanese” https://t.co/S5TET0Hbso"
Mozilla Localization Team Japanese
Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonに最大文字数の超過を防止する機能が追加された。残り文字数も表示される。また、検索の速度もアップしたそうだ。 / “FTL, RTL, Tetris and othe…” https://t.co/dIuDwTxr0G"
Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonで、外部から利用可能なAPIの開発が進められている。将来的にバックエンドとフロントエンドを明確に切り分けるつもりらしい。 / “Exposing Pontoon D…” https://t.co/widocPNsDu"
Rockridgeさんのツイート: "将来的に、Firefoxは個別のローカライズ版がビルドされるのではなく、単一のビルドにWebExtensionsベースの言語パックを載せる形へと移行する。ある意味で昔に近い形態といえるか。 / “Switching langua…” https://t.co/DDHKuoSz5v"
Rockridgeさんのツイート: "ローカライズ用リポジトリの統合(cross-channel)を達成した現在も、Firefoxのリリース日から遡ること2週前の水曜日がローカライズの期限となっており、それを過ぎると翻訳が製品版に反映されないらしい。 / “On c…” https://t.co/bjoeaZpje0"
Rockridgeさんのツイート: "Fluentをベースにした新しいローカライズ用フレームワークへの移行が開始された。 / “Migration of Preferences strings to Fluent” https://t.co/Ej6qNMQYcG"
Rockridgeさんのツイート: "GeckoのローカライゼーションAPIのスキームが2017年中に刷新され、基盤整備ができたので、2018年はFluentベースの新しい仕組みでローカライズが行われていく。まずは設定画面のUIから。 / “Multilingual…” https://t.co/H6NRzlPjC5"
Mozilla L10N Glossary · mozilla-japan/translation Wiki
Rockridgeさんのツイート: "ローカライゼーションに関するMozillaの汎用スタイルガイド。 / “Mozilla general style guide · GitBook” https://t.co/YiTw3aDvzG"
Mozilla general style guide · GitBook
Rockridgeさんのツイート: "Firefoxの設定画面のUIについて、Fluentベースの新しい仕組みでローカライズできるよう移行作業が行われている。Firefox Nightly 61で完成か。 / “L10n Report: March Edition …” https://t.co/mISsaGn87G"
L10n Report: March Edition | Mozilla L10N
Rockridgeさんのツイート: "Fx62:UIテスト用に疑似ローカライズ機能が搭載された。翻訳を待たずして特定のロケールに切り替えた場合のUIをチェックできる。参照:https://t.co/BM1xMtda9X / “Pseudolocalization i…” https://t.co/g0908Rpuqo"
Rockridgeさんのツイート: "Fx64:新しい言語パックをインストールした場合、関連する辞書もインストールされるようになった。 / “1479008 - Install related dictionaries when a new langpack is …” https://t.co/BJS1VcxVLS"
⁨L20n⁩ • Home
Mozilla in Japanさんのツイート: "本日、新たにFluent 1.0をリリースしました!新時代のローカライゼーションを体験してください😎 https://t.co/l0Zdxldgim… "
Makoto Kato ︎︎さんのツイート: "FluentはFirefox OSの残骸の一つだけどね"
chikoskiさんはTwitterを使っています 「今の所の案: - 対応する言語を 14 に絞る。これで 95% がカバーできる - 重要なコンテンツを機械翻訳で提供する。これらは編集できないものとする。 - 英語版が変更されるたびに、翻訳版も更新する - コミュニティによる編集を通じて、機械翻訳の質を向上するシステムを提供する」 / Twitter
chikoskiさんはTwitterを使っています 「"8 languages cover 90% of the accept-language headers received from MDN users (en, zh, es, ja, fr, ru, pt, de)" とあるので、日本語は翻訳対象に残るんじゃないかと想像してます。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「MDNのローカライズの件が、ああなりそうなところで、これやるんですかねー https://t.co/NyCvL3LghN」 / Twitter
【オンライン開催!】【第28回!】みんなで MDN を翻訳しよう!翻訳コミュニティ定例ミートアップ! 2020年11月21日(土)開催 - Mozilla Japan コミュニティ | Doorkeeper

gettext

gettext - Wikipedia
ISO 639 - Wikipedia
ISO 3166 - Wikipedia
GNU gettext utilities
GNU gettext utilities
GNU gettext utilities
GNU gettext utilities
C言語系/memos/gettext - Glamenv-Septzen.net
gettext によるメッセージ処理
GNU <CODE>gettext</CODE>ユーティリティ:
GetTextを用いたローカライズ方法 - Conyac
Manual - Documentation - Zend Framework
本の虫: Boost.Localeがクソすぎる
自然言語(ロカール)の選択
Exgettextの話
Shirouzu Hiroaki(白水啓章)さんのツイート: "gettextを真面目に使うなら、en.poも作った方が良いという話。 (ただ、識別子を考えなくて良いというメリットが…) https://t.co/4Kh6eLHFE9"
gettextを使う場合の注意点 – FLAMA技術Blog
gettextとバージョン管理システムの相性の悪さを解消する案 - ククログ(2013-11-14)
i18nしてますか?(gettext+PHPその1):海外でも通用するエンジニアになる:エンジニアライフ
PHP国際化プログラミング - gettextを使った国際化
GNU gettext utilities
Gettextによるウェブアプリケーションの国際化と地域化 (1/4):CodeZine(コードジン)
gettext のコマンドラインツールを使おう: SuperTuxKart を例に - Qiita

catgets

Man page of CATGETS
catgets(3)
X/Open catgets API - Oracle Solaris でのアプリケーションの国際化とローカライズ
IBM Knowledge Center - catgets() — メッセージ・カタログからのメッセージの検索
メッセージカタログ(catgets)
標準 C 言語国際化プログラミング - メッセージ

Internationalization API

Standard ECMA-402
ECMA-402.pdf
ECMAScript Internationalization API Specification
ECMA-402.pdf
Standard ECMA-402-archive
ECMAScript® 2016 Internationalization API Specification
ECMAScript® 2017 Internationalization API Specification
ECMAScript Internationalization API Specification
tc39/ecma402: Status, process, and documents for ECMA 402
ibm-js/ecma402: ECMA-402 JavaScript Internationalization API "shim"
ECMAScript® 2019 Internationalization API Specification
Intl - JavaScript | MDN
WebKit、Safari 10でECMAScript国際化API「ECMA-402」をフルサポート。 | AAPL Ch.

Twitter

Fadisさんのツイート: "小数点は.とは限らなくて,を使う地域も存在する。一方JSONは小数点に.を使うことを要求している。従って、ロケールを指定せずにscanf/printf系の関数でJSONの数値を読み書きしてる実装は全てバグっている"
Fadisさんのツイート: "C言語の規格はscanfの浮動小数点数の符号の後eの前までのフォーマットについて何も規定してないから、ロケール設定すれば期待通りの動きをするかどうかは環境次第か"
Fadisさんのツイート: "POSIXとMSDNのドキュメントのレベルでロケールの影響を受ける事が書かれてる"
Fadisさんのツイート: "@n_soda あっ 確かにmainに入った時点では環境変数で設定されたロケールは反映されてないですね"
SODA Noriyukiさんのツイート: "@fadis_ 多国語対応するために setlocale(LC_ALL, "") を追加した瞬間にバグるの、怖いですねえ…"
SODA Noriyukiさんのツイート: "@fadis_ 正確に書くと「setlocale(LC_ALL, "") ないし setlocale(LC_NUMERIC, "") を呼んでいるプログラムはバグっている」ですね。 setlocale() を一切呼ばなければ、デフォルトである "C" locale になりますから。"
渋川よしきさんのツイート: "i18nをどこでやるのか、という問題もある : 良いエラーメッセージの書き方 by @castanea on @Qiita https://t.co/vwOe5ovAxY"
良いエラーメッセージの書き方 - Qiita
渋川よしきさんのツイート: "汎用のツリー差分取得エンジンみたいなのが欲しい"
Atsushi Enoさんのツイート: "DOMツリーを辿るとき、われわれはだいたいpreceding-siblingを左側に、following-siblingを右側に向かって読みに行くと思うけど、イスラエルのハカーとXPath実装の話をしていて話が全然合わなくて、ふと気づいて聞いてみたら彼らはわれわれと逆順にツリーを… https://t.co/80MlUkUdnx"
Rui Ueyamaさんのツイート: "アラビア語やヘブライ語ではカレンダーは右ではなく左にめくると次の月になる、というバグが報告されて、そこまで逆なのかよーと思いながら直したことがあった。そもそもアラブはイスラム暦なのではないか?と思って聞いてみたらグレゴリオ暦でもOKというので、国際化わからんすぎると思った思い出。"
Rui Ueyamaさんのツイート: "昔UIやってたころにmmddyyyyとddmmyyyyの違いでぐぐる検索の日付指定検索がカナダで何週間も使えない(アメリカでは使えた)というバグを作ってしまったことがあるので、国際化って英語圏vs非英語圏っていう話でもないんだよな。カナダでそんな問題になってるとはよくわかってなか… https://t.co/HLl0sopUfi"
hnw (@hnw) | تويتر
Shirouzu Hiroaki(白水啓章)さんのツイート: "数値のカンマ・ピリオド(ドイツ・スペイン・ポルトガル・イタリア語圏では意味が逆に)、英米式だと勘違いする人が居るのね…うーむ。 https://t.co/KgTSYYX8qI https://t.co/nStoBGLDMh"
カンマとピリオド | 貿易よもやま話
Shirouzu Hiroaki(白水啓章)さんのツイート: "「インド、バングラデシュなど南アジアでは…「12,34,567.89」となります。…桁の区切り方が独特で、最初は3桁で区切りますが、その後は2桁ごとに区切ります。」 「カシオがこのインド形式の桁区切りをする電卓(3桁式との切り替え可能なもの)を現地で発売したところ、大人気になったそうです」"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「FastCopyだと 30分で75,256MB == 75MBしかコピー出来ていない」と勘違いしてしまったとのこと。 "I noticed FC had only copied 75,256 MB ( euh ...75 megabytes) in half an hour." https://t.co/KgTSYYX8qI"
Shirouzu Hiroaki(白水啓章)さんのツイート: "誤解は無くなりそうですが、さすがに「75G256M」は気色悪い気が…(笑) (似た表記をしているアプリケーションはあるのかしらん?)… "
Dan Kogaiさんのツイート: "いや慣れの問題でしょう。今だって1m83cmのような表記はいくらでもあるし… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "簡体中文環境での利用が第1位で、アラビア語(エジプト)が第4位という驚きの結果。 やはり測定は大事。"
Shuuji Kajitaさんのツイート: "海外で△が通じないという話、研究室で緊急調査した結果がこちら。×は通じるけれど、○と△は通じなかったり誤解される危険性が高そうです。… "
Localization standards reader 4.0
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「kdiff3のショートカットキー、国際化されていないのしんどい(Ctrl + Shift + 数字を使うの素人仕事すぎ)。」 / Twitter
くいなちゃんさんはTwitterを使っています 「フランスでは、小数点にピリオド「.」ではなくカンマ「,」を使うので、「1.5」は「1,5」と表すのはご存じの通りですが、すると座標の「(1.5,2.5)」は「(1,5,2,5)」となって混乱しないのか疑問に思って調べてみました。 どうやら座標はセミコロン「;」を使って、「(x;y)」と表すようですね!」 / Twitter
Shinji KonoさんはTwitterを使っています 「xボタンで決定は洋ゲーやってる人には常識。⚪︎に肯定的な意味はないらしい。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「国際単位系(SI)では、小数点はピリオドでもカンマでも可だが、桁区切りはスペースのみ。 一方でISOではフランス式(カンマ小数点)が公式。だが、英語圏が英式への変更を働きかけと。 https://t.co/FRzQQ5vB79」 / Twitter
小数点 - Wikipedia
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「国際単位系(SI)の起源はメートル法=フランスだけど、一方で他国基準の国際統一に、最も抵抗しそうな国がフランスかも?という疑念もあったり(笑) ---- 「一方でISOではフランス式(カンマ小数点)が公式。だが、英語圏が英式への変更を働きかけ」」 / Twitter

クックパッドの海外展開プロダクト開発ノウハウとは(前編)~検索結果に言語や宗教が影響する。Cookpad TechConf 2017 - Publickey
クックパッドの海外展開プロダクト開発ノウハウとは(後編)~ORは「オワ」か?「オレゴン州」か? 問題。Cookpad TechConf 2017 - Publickey
Mozilla、ローカライズのための仕様とツールを提供する「Fluent 1.0」を公開 | OSDN Magazine
リストのローカライズに便利なIntl.ListFormatコンストラクタ | フロントエンドBlog | ミツエーリンクス

セッション管理

Restart Manager

Windows 10プレビュー版、アプリの再起動設定が簡単に - PC Watch
スタート画面の[電源]メニューに新オプション ~プレビュー版Windows 10 Build 21359 - 窓の杜
「Windows 10 20H1」Build 18965が“Fast”リングに ~OS再起動後にアプリを再開するオプションを新設 - 窓の杜
Windows 10 バージョン1709からのシャットダウン/再起動の新仕様、どうしよう?:その知識、ホントに正しい? Windowsにまつわる都市伝説(109)(1/2 ページ) - @IT
RegisterApplicationRestart function (winbase.h) - Win32 apps | Microsoft Docs
デスクトップアプリのリスタートマネージャー5(テストツール) – nishy software (ja)
Windows Vista のリスタート/リカバリ処理の開発 – tsmatz
Masaru Iritaniさんのツイート: "#WindowsInsiders Skip Ahead ビルド 18855 ではメモ帳で保存し忘れた内容が再起動後に自動で復元されるようです 📝… "
kkamegawaさんのツイート: "Restart ManagerはVistaがリリースされた時に標準アクセサリー全部サポートしているべきだったと今でも思ってます…そうすればみんな使ってくれたかもしれないのにーと。… "
Masaru Iritaniさんのツイート: "元々は Vista の新機能だったのですね。ありがとうございます、勉強になりました。… "

なかのん&マジックさんのツイート: "秀丸、昔のアプリっぽく、実にOS自体のクラッシュからの復旧が弱いなぁ……"
なかのん&マジックさんのツイート: "まあ、現職のままで新しいアプリをがっつり趣味で開発するってのは無いけど、やるとしたら、定期的にバックグラウンドのスレッドでセッション情報を書き出し続けるように基本的なところで設計するかな。"
なかのん&マジックさんのツイート: "昔じゃ考えられへんけど。"
ミックさんはTwitterを使っています 「アメリカの物流は超低品質なのでAmazonの荷が届かないことは日常茶飯事だが、感心するのはここで決して「追跡調査」という異常系に踏み込まないこと。「届いてない」ボタンを押すと速攻で同じ荷が発送される。異常系を正常系で回収するオペレーションの方がTCOが低くスケーラビリティがあるのだろう。」 / Twitter
“PCの調子がおかしいな”と感じたときに役立つ「信頼性モニター」 - 窓の杜
Rockridgeさんのツイート: "Fx62:ハングをモニタリングするためのスレッドを整理することで、消費メモリの増加を防ぐとともにパフォーマンスの低下を抑制した。 / “1448040 - clean up hang monitor threads” https://t.co/Neaj0sLEC2"
2019年1月22日 We don't want to track; just count ―Fedora,ユーザ数の計測にUUIDを採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
UUID version 6の提案仕様 - ASnoKaze blog
Crash/Deprecation/Intervention Reporting について - ASnoKaze blog
時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog
マイクロサービスの次に来るものは何か? Biligin Ibryam氏の提唱するマルチランタイム・マイクロサービス - QCon Londonの講演より
世界でたったひとつの識別子として活用される「UUID」はどのように生成されているのか - GIGAZINE
Netflix Presents Telltale、アプリケーションヘルスモニタリングツール
分析用ログデータに対する品質保証としての異常検知 - クックパッド開発者ブログ
なぜ複雑なシステムでは障害が発生しやすいのか - GIGAZINE
AndroidアプリにおけるUIの状態保存と復元について調べてみた | Money Forward Engineers' Blog
Kubernetesクラスタ上で動かすSidekiqに対してヘルスチェックを導入した話 | Money Forward Engineers' Blog
mattnさんはTwitterを使っています 「机上では1550京年だけど、衝突判定するのにも時間が掛かるので、衝突はするかもだけど判定はもっと時間掛かりそう。」 / Twitter
UUIDを重複させるにはどれだけ時間がかかるのか試してみた
OdashiさんはTwitterを使っています 「UUIDはほぼ衝突しないから安全というの、UUIDの仕様の外でいくらでも衝突に繋がるバグを埋め込まれるので、実用的には特段エラーのチェックから逃げられるわけではない」 / Twitter
OdashiさんはTwitterを使っています 「チェック自体は必要だがダブるケースについての常設のワークフローを組む必要はないくらいのアレ」 / Twitter
Slackが新しいロール管理アーキテクチャを詳しく説明

コード補完

Twitter

渋川よしきさんのツイート: "エディタに対するIDEのアドバンテージは、エディタはたいてい補完候補をまとめて一度に送る設計になっていることが多いから、候補が増えるとレスポンスが重い、IDEはインクリメンタルにそれができる余地が多少広いぐらいって補完システム作ってる人が言ってた"
渋川よしきさんのツイート: "ただ、そういうインクリメンタルにしようとすると、IDEの補完のシステムを作り込むのはさらに難しそうだし、簡単に作るとエディタと変わらなくなっちゃう。"
Fadisさんのツイート: "C++におけるコード補完は残念ながらあまり幸せになれない。近代的なC++erならテンプレートを活用して再利用性の高いコードを書いている筈だけど、未知の型Tにどんなメンバを持っているかは、そのメンバを利用する事によって決定する為、それを利用する前に予想する術は無いんだ"
Fadisさんのツイート: "conceptを理解できるコード補完ならあるいは…"
かずき@MHW が好きさんのツイート: "VSの場合凄く長い名前のものを書くときは CCLM とかみたいに打つと ContainerControlledLifetimeManager みたいなものにマッチする(単語区切りの先頭をうつだけでいい)ので、長い名前のもをうつ機会が多い場合は、覚えておくといい"
Mune-sanさんはTwitterを使っています 「CLion、ファイルか関数が長くなるとオートコンプリートにものすごく時間がかかるよになるんじゃないかという気がする。 長いったって二千行くらいなんだが。」 / Twitter
Mune-sanさんはTwitterを使っています 「SupportのSpeed Up Code Analysisが効いた。 異常な遅さは消えたようだ。ただし、一部の解析は手動で起動しなくてはならなくなった。 https://t.co/mvfxCWbzx5」 / Twitter
Performance Tuning Tips - Help | CLion
Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 最近のIDEの補完は実際にコンパイル走らせるので、マクロが未定義だとかエラーいっぱい出るオチになると思います」 / Twitter

自動補完 - Wikipedia
インテリセンス - Wikipedia
Intelligent code completion - Wikipedia
[ コード補完機能等の利用 IDE 関係操作 ] - Mr.XRAY
JavaScriptのコード補完できていますか? - Aqutras Members' Blog
簡単にプログラミング環境が構築できる「Cloud9」の始め方(前篇) | 株式会社イテレイティブ
支援機能(IDE チュートリアル) - RAD Studio
コード補完からムダを省き、Javaプログラミングを地味に効率化 | I am programmer and proud
本の虫: VC10のインテリセンスについて
本の虫: MSVC++コンパイラーの中に入っているWebブラウザー
本の虫: Inside IntelliSense
本の虫: インテリセンスのリビルド
本の虫: VS2010のsquiggleについて
コーディングをAIが支援してくれる「Visual Studio IntelliCode」、Javaに対応。GitHubにあるコードを機械学習 - Publickey
Big Sky :: gocode やめます(そして Language Server へ)

ナビゲーション

LSIF

無職やめ太郎(本名)さんはTwitterを使っています 「GitHub上でもコードジャンプとか出来たらいいのにな」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Yametaro1983 それをどのブラウザーでもできるようにするために https://t.co/OecVGi2uEh っていうのが策定されてるんですよ。ソースコードの定義情報まとめるJSONファイルになっているそうで」 / Twitter
LSIF.dev

cscope

第 8 章 cscope: 対話的な C プログラムの検査 (Sun Studio 12: C ユーザーズガイド)
Cscope Home Page
memo/Cscope.md at master · tsuyopon/memo
if_cscop - Vim日本語ドキュメント
cscope CapmNetwork
ヘッダファイルなどをVimのキー操作一発で探す (3/3):いまさら聞けないVim(9) - @IT
cscope - Wikipedia
[cscope][emacs] cscopeをほぼ全ての言語に対応する方法 - goinger的日記
CscopeとSilentBobによるソースコードの解析 | OSDN Magazine
Linuxカーネルソースコードを読むツール (1):cscope編 - Fixstars Tech Blog /proc/cpuinfo

コード ナビゲーション(IDE チュートリアル) - RAD Studio
ソースファイルのナビゲーション - Oracle® Solaris Studio 12.4: IDE クイックスタートチュートリアル
NetBeans IDE Javaエディタでのコード支援: NetBeans IDEのリファレンス・ガイド
本の虫: GNU Globalが面白そうだ
OS作れないマンさんのツイート: "GNU globalでコードリーディングは便利なんだけど、今自分がどの関数を読んでて、さっきまで何処にいたか、みたいなコールスタック(のようなもの)を記録して可視化する仕組みが欲しくなる。"
OS作れないマンさんのツイート: "リーディングスタック、現実的な範囲で作るとすると、手動によるマーキングが必要になりそう。まあそのくらいは許すとして、あとはマークをどの階層に配置するかの推論をしなければならない。"
ぬるぽへさんのツイート: "rtagsこれです(https://t.co/a9FbbVGqtf) アドホックな文字列処理じゃなくてclangのパーサを内部に抱え込んでて、それで型とかマクロとかを処理してタグしてくれる 最新のコミットはこわれてるのでビルドしたかったらreset --hard HEAD^してね"
ぬるぽへさんのツイート: "@liva_jy rtagsいいよ、マクロで定義された識別子も追える"
_さんのツイート: "ところでいつかrtagsについて宣言までしか飛んでくれなくて不便ということを言ったのですが、あれは間違っていて普通に定義までジャンプできました そしてマクロを駆使して定義された関数や変数も定義にジャンプできてめっちゃ便利"
最強のC/C++インデクサー "Rtags" を本気で使う - Qiita

SQL

その他

ast.htm
II-22-2. インデックスの種類と特徴 | 日本OSS推進フォーラム
データベース性能を向上させる「インデックス」を理解する:「データベーススペシャリスト試験」戦略的学習のススメ(26) - @IT
基礎から理解するデータベースのしくみ(8) | 日経 xTECH(クロステック)
YugaByte DB | YugaByte DB
2019年10月17日 "データレイク"のスタンダードをめざす ―Databricks,「Dalta Lake」をLinux Foudnationに寄贈:Linux Daily Topics|gihyo.jp … 技術評論社
NEDOが25億円投じ日の丸RDBを開発中、「国産にも勝機あり」と自信を見せる理由 | 日経 xTECH(クロステック)
[1712.01208] The Case for Learned Index Structures
LIS026115.pdf
Go vs Rust : 特徴量DBに適するのはどっち!? (2020-04-14 実験追記) - ABEJA Tech Blog
PostgreSQLには「中途半端なサイズ」のデータを格納しないほうがいい - GIGAZINE
簡単にP2Pの分散型ストレージやKVSを試せる「Hypercore Protocol」を使ってみた - GIGAZINE
PoloDB: a lightweight NoSQL database | by Vincent Chan | Medium
日記 (2020 年 11 月)
サイボウズの新しいインフラ基盤を支えるストレージの本番適用に向けた取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ
第655回 オブジェクトストレージ,MinIOを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第657回 オブジェクトストレージ,MinIOを使用する[クライアント編]:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
データベースの文字数制限が191文字になっている理由とは? - GIGAZINE
オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド連載一覧:CodeZine(コードジン)
TypeScript * GraphQLのバックエンド設計プラクティス
閉包テーブルモデル - Google 検索
シャーディング - Google 検索

WinFS

WinFSでWindowsのデータ/ファイル管理はどう変わる? - @IT
WinFSでWindowsのデータ/ファイル管理はどう変わる? - @IT
WinFS - Wikipedia
Microsoft Developers Conference 2006 ― T2-206 新たなファイルシステム"WinFS"の方向性とその概要 - NyaRuRuが地球にいたころ
Windows PowerShell, WinFS, IQueryable - NyaRuRuが地球にいたころ
WinFS について (1) - NyaRuRuが地球にいたころ
WinFS について (2) - NyaRuRuが地球にいたころ
WinFS について (3) - NyaRuRuが地球にいたころ
WinFS について (4) - NyaRuRuが地球にいたころ
WinFS についてのビル・ゲイツ氏の最も新しい言及 - NyaRuRuが地球にいたころ

B+ Tree

μTree

okamo(aged 5 yrs.)さんはTwitterを使っています 「μTree スループットだけでなくtail latencyを改善するPMEM向けB+tree。従来手法ではstructural refinement operation(merge split)とinterference overhead(葉のロック)がtail latencyの要因になっていた。designはまだ読めて無いけどこの辺り頑張っているみたい https://t.co/r94NOfdHnE」 / Twitter
uTree: a persistent B+-tree with low tail latency: Proceedings of the VLDB Endowment: Vol 13, No 12
okamo(aged 5 yrs.)さんはTwitterを使っています 「ざっくりいうとPMEMはDRAMに比べてwriteが遅いから、PMEM場ではエントリをlinked listで管理して、tree構造はDRAMに持つ、がアイデア? kvペアのエントリをリストで管理してるのでput操作でPMEM上のSROは発生しない。リスト操作なので葉ノードロックも無くPMEM上の更新の並列性が上がる。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「ツリー構造はシステム落としたら失われるので再構築についても頑張っているみたい。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「DRAMに比べて遅いはこれの通り」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「そりゃないって、、、って数値だな https://t.co/VbGwzLPmIR https://t.co/WyngufgRO5」 / Twitter
Intel® 64 and IA-32 Architectures Optimization Reference Manual - 64-ia-32-architectures-optimization-manual.pdf
okamo(aged 5 yrs.)さんはTwitterを使っています 「2.3GB/sというのはインタリーブしてnstore使った時の256B以降のスループットか(スループットといっても1thread) https://t.co/npJqjn9AWE https://t.co/z2QCS945o5」 / Twitter
fast20-yang.pdf
okamo(aged 5 yrs.)さんはTwitterを使っています 「ntstore(non temporal store)」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「評価の一部はこんな感じ https://t.co/fTYNjssc6h」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「細かい技術詳細は追えていないが、PMEMをDRAM like performance というのは誤りでindex構造だけとってももDRAMとPMEMのハイブリッドで作るのがトレンドかな。全てをPMEMに直接叩き込んで高速化、は今後の研究対象にはならなそう、本当にDRAM like performance なものがでれば世界はかわるが、、、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「low latencyという側面ではこの論文もあるけどこっちはネットワーク越しのkvsなので、タスクスケジューリングとか他のトピックも入っている。ちなみにデータストア自体はLSM treeである。 https://t.co/6O45Vfrp4e」 / Twitter
p1091-lersch.pdf
okamo(aged 5 yrs.)さんはTwitterを使っています 「分析の対象はFAST&amp;FAIRで、こちらはPMEM直にデータをloggingなしに永続化する研究。メモリオーダリングも気にして頑張ってflush, mfence減らしてる。 https://t.co/RyWzKGiWiA」 / Twitter
DICL/FAST_FAIR: Endurable Transient Inconsistency in Byte-Addressable Persistent B+-Tree
okamo(aged 5 yrs.)さんはTwitterを使っています 「トレンドかな、とか言ったけど直接PMEMへの論文もあるはず、これはそうだった気がする、細かい内容を忘れてしまった https://t.co/JlwAdK2GjU」 / Twitter
p1078-liu.pdf

B-treeインデックス入門 - Qiita
B TreeとB+ Treeの違い - Carpe Diem
第4章 木構造とハッシュ―平衡二分探索木「赤黒木」で知る豊かなデータ型:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
10.pdf
B木 - naoyaのはてなダイアリー
B TreeとB+ Treeの違い | Engineer Log
なぜBTreeがIndexに使われているのか - maru source
[第6回]Bツリー・インデックスの構造 | 日経 xTECH(クロステック)
第7回 性能改善の鍵,インデックスの特性を知る~B-treeとハッシュ (1)B-tree :SQLアタマアカデミー|gihyo.jp … 技術評論社
インメモリー・データベースの注意点 | Think IT(シンクイット)
B-Tree by Java -- B木のすごく簡単な実例
RDBMSで使われるB木を学ぼう (1/3)- @IT
71.pdf
Oracle B-treeインデックスとビットマップインデックス
06gun_03hen_03.pdf
SQLデータベースにおけるバランス検索木(Bツリー)
Oracle の B*Tree インデックスの内部構造についてお勉強中(その1) - drk7jp
データベースの基礎 第2章
従来のデータベースをメモリに載せるだけではだめなのか? インメモリとカラム型データベースの可能性を調べる(その2) - Publickey
II-22-2. インデックスの種類と特徴 | 日本OSS推進フォーラム
一番わかりやすい木構造 - NAVER まとめ
漢(オトコ)のコンピュータ道: オトコのソートテクニック2008
C library btree - Google 検索
markc/miniDB: A small fast isam/btree library for key/val access
www.mit.edu/afs.new/sipb/user/gamadrid/nscript/btree.c
B+Treeのページレイアウトと可変長タプル - Write and Run
B-Treeを図示するときの細かいテクニック - Write and Run
クエリエクスキューターの気持ちになる - Write and Run

R-Tree

okamo(aged 5 yrs.)さんはTwitterを使っています 「DAOSのファイルの中身はKey Array Store使ってるのか。extentとepochをR-treeの拡張で管理している、と。 https://t.co/rpfLV5Kxnq」 / Twitter
daos/README.md at master · daos-stack/daos
okamo(aged 5 yrs.)さんはTwitterを使っています 「まぁなんか聞いたらそうりゃそうか、って感じだな。どう管理するか悩んでたけど、、、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Random write/read飛びまくりだけど、大体そういう性能になってんのかな」 / Twitter

MVCC

MVCC(多版型同時実行制御)
MultiVersion Concurrency Control - Wikipedia
理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
4. MVCCとストレージ構造 · PostgreSQL Internals
MVCCトランザクションの動きが実装できた - きしだのはてな
PostgreSQL のトランザクション & MVCC & スナップショットの仕組み
multi-versionの基礎 - 急がば回れ、選ぶなら近道
InnoDBの分離レベルによるMySQLのパフォーマンスへの影響 | Yakst

Window 関数

[SQL] 最強の分析ツールと言われるWindow関数について私が学んだこと | DevelopersIO
window関数を使いこなす 〜分析のためのSQL〜 - Qiita
ウィンドウ関数
Window関数 | Let's Postgres
窓関数 (SQL) - Wikipedia
分析関数の衝撃(前編) (1/2):CodeZine(コードジン)
PostgreSQLの分析関数の衝撃(7) ――window関数の変わった使用例 (1/4):CodeZine(コードジン)
SQLの便利な関数 〜ウィンドウ関数〜 | GROUP DEV BLOG | TECHNO MOBILE
分析関数 (Transact-SQL) | Microsoft Docs

SQLite

MS

「DB Browser for SQLite」“SQLite”のデータベースを管理できるソフト - 窓の杜ライブラリ
DB Browser for SQLite - 窓の杜ライブラリ
DB Browser for SQLite
sqlitebrowser/sqlitebrowser: Official home of the DB Browser for SQLite (DB4S) project. Previously known as "SQLite Database Browser" and "Database Browser for SQLite". Website at:
「PupSQLite」SQLiteのデータベースをGUIで操作できる高機能管理ソフト - 窓の杜ライブラリ
「SQLite」データベースの管理ツール「PupSQLite」がメジャーバージョンアップ - 窓の杜

OSDN

WALの強化などが行われた「SQLite 3.11」リリース | OSDN Magazine
組み込み向けデータベースライブラリ「SQLite 3.14」リリース | OSDN Magazine
SQLデータベースエンジン「SQLite 3.7」リリース、性能などを改善 | OSDN Magazine
「SQLite 3.20」リリース | OSDN Magazine
SQLデータベース機能を提供するライブラリ「SQLite 3.24」リリース | OSDN Magazine
ウィンドウ関数が加わった「SQLite 3.25」公開 | OSDN Magazine

Qiita

SQLite C言語向けAPI チートシート - Qiita
C言語でSQLiteを使う - Qiita
C言語でsqlite - Qiita
渋川よしきさんのツイート: "このライブラリのいいところは生DBから必要な情報を抜いてくるので、DBのフル機能が使えるし、GUIのツールも活用できる。 : GOのORM sqlboiler 使ってみた  on @Qiita https://t.co/Fei2tYSOS8"
GOのORM sqlboiler 使ってみた  - Qiita

Wikipedia

SQLite - Wikipedia
SQLite - Wikipedia, the free encyclopedia
インメモリデータベース - Wikipedia

Twitter

Fadisさんのツイート: "sqlite-3.17.0がリリースされました。今回の変更点はパフォーマンスの向上やコンパイルオプションの改良などデータベースの使い方は変わらない変更が中心だが、ひそかにsha1を求める組み込み関数が追加されている https://t.co/YKG4Kw5Wqm"
Fadisさんのツイート: "複数のテーブルを結合して1つのテーブルとして見えるようにするUNION仮想テーブル、インタラクティブインターフェースの補完の挙動を変更するcompletionテーブル等の機能が追加されたsqlite-3.20.0がリリースされました https://t.co/MreLLp1dXc"
Fadisさんのツイート: "SQLite 3.22.0からの新機能zipfile。zip形式のアーカイブの中身をSQLクエリで漁れるようになる。つまり、SELECTでファイル一覧を取得し、INSERTでファイルを作り、DELETEでファイルを消し、UPDATEでファイルを書き換える https://t.co/HFqpH8aRVv"
The SQLite Zipfile Module
Shirouzu Hiroaki(白水啓章)さんのツイート: "設定類をiniではなくてsqliteにすると複数起動時の相互反映がやりやすい。 一方で、I/F を用意しない限り、ユーザ変更できなくなる縛りが出るので難しいところ。"
鯉江さんのツイート: "相互反映というのがイメージがわかないですが、起動したときにアトミックに更新するのはできても、異常終了したときにに更新するのはできないので、そんなに便利ではないような。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "現在のFastCopyは複数起動して、それぞれで設定を変えても、最後にiniを上書きした方しか残らないのですよね。 ただ、何も考えずに取り込むと矛盾した項目が取り込まれる可能性もあって、なかなか簡単ではないのですが。… "
Fadisさんのツイート: "SQLite 3.24.0がリリースされた。主な変更点は、UPSERTをできるようになった、文字列にSQLiteのキーワードが含まれているかを調べる関数の追加、VACUUMするとデータベースの全てのデータが削除されるモードSQLITE_DBCONFIG_RESET_DATABASEの追加他 https://t.co/pBRdV82iTL"
本の虫: SQLiteの行動規範がキリスト教徒の戒律を全文引用していて香ばしすぎる
Kazuho Okuさんのツイート: "SQLiteのCoCを批判するのにキリスト教の悪口を持ち出すのマジ最悪手というか、欧米白人中心のコミュニティで非キリスト教徒が少数派であるのと同様に、日本国(あるいは日本語話者)内でキリスト教徒が少数派であることを考えれば、目糞鼻糞以下の行為ですよ"
Kazuho Okuさんのツイート: "Thank you SQLite for choosing religion as a new tool to offend minority developers"
Krøstianさんのツイート: "Apparently SQLite has a code of conduct that weirdly comes across as a "fuck codes of conduct". Will not participate in that community in any way.… https://t.co/p4U9zRzpb3"
Jan-Piet MENSさんのツイート: "I will not contribute to SQLite: “First of all, love the Lord God with your whole heart, your whole soul, and your whole strength.” https://t.co/gmi3eicc5Q #codeOfConduct"
Code Of Conduct
およげmatsuuくんさんのツイート: "ワハハクソでしたな。批判の嵐だったのでSQLiteは結局Mozilla Community Participation Guidelinesを行動規範として採用した模様。 / “本の虫: SQLiteの行動規範がキリスト教徒の戒…” https://t.co/xdpdskN5sZ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "sqlite(C言語)で、inner join・サブクエリを含むSQL文が一発で動いてホッとしたのだが、そもそもコンパイル時に文法エラー及びテーブル定義との不整合エラーを検出できる仕組みが欲しいところ。"
日比野 啓 (Kei Hibino)さんのツイート: "呼ばれたような気がする… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Haskellなら、HRRがありますね! https://t.co/eG4HCggy77… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SQLite3 では TEXTカラムに binary形式で保存できるが、その場合LIKE検索は出来ない様子。(少なくとも Python sqlite3 では)」 / Twitter
FadisさんはTwitterを使っています 「SQLite 3.33がリリースされたらしい。SQLite 3.33では新しく他のテーブルをSELECTした結果を使ってUPDATEを行うUPDATE FROMがサポートされる。またページ番号をintで扱っていた所が32bit符号なし整数に揃えられ、281TBまでのデータベースが作れるようになる https://t.co/cQXfWMJOpW」 / Twitter
SQLite 3.33 Released With PostgreSQL-Inspired UPDATE FROM, Database Files Up To 281 TB - Phoronix
井山梃子歴史館さんはTwitterを使っています 「SQLiteにjson突っ込むか… https://t.co/z3IFzg4k2Q」 / Twitter
SQLite as a document database
井山梃子歴史館さんはTwitterを使っています 「jsonのフィールドにインデックス貼れるの面白いな」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Richard Hipp (SQLite開発者) インタビュー。彼は軍艦の診断システムを開発中、Informixが頻繁にクラッシュするのに頭にきてデータベースを書き始めた。いまやSQLiteは世界でもっとも使われているコードである。彼曰く「自由とは自力で実装できること」話し上手で痛快。 https://t.co/26Qqh2N4Oc」 / Twitter
The Untold Story of SQLite With Richard Hipp - CoRecursive Podcast
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ちなみにSQLiteはおそるべき信頼性をもっており、分岐被覆率100%を達成している。テストケースは数十万個あり、これらをさらにパラメータ化している。テストは多様なアーキテクチャ (big endianなCPUも含む)・OS上で行われ3日間ぐらいかかるとのこと。」 / Twitter
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「なお、Hipp自身によるSQLiteの発音は「えすきゅーらいと」ではなく「えすきゅーえるあいと」。彼はSQL以外にもプログラミング全般に一家言もっていて聴きがいがある。新山から見るとヒーローの一人といってもいい。」 / Twitter

SQLite Home Page
SQLのインデックスとそのチューニングについてのオンラインブック
MongoDBの様なNoSQLに勢いがあるのは何故ですか?SQLと比べてどんな利点や欠点がありますか? - Quora
SQLite4: SQLite4
SQLiteで組み込みDB体験 (1/3):CodeZine(コードジン)
Placesデータベースの読み書き処理を大きく減らす裏技(Firefox 49以降) - Mozilla Flux
SQLiteバイトコードを追う — 鱒身(Masu_mi)のブログ
SQLite入門
ファイルシステムよりも35%高速に | インフラ・ミドルウェア | POSTD
How Does a Database Work? | Let’s Build a Simple Database
cstack/db_tutorial: Writing a sqlite clone from scratch in C
SQLiteデータ型の仕様とセキュリティ問題 – yohgaki's blog
ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cybozu Inside Out | サイボウズエンジニアのブログ
Kazuho Okuさんのツイート: "顧客ごとにSQLiteなファイル作ってデータ入れることで、RDBMSにおけるマルチテナンシー問題を回避してるってことなんかな / “ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cyboz…” https://t.co/R8eGK1LWe7"
Kazuho Okuさんのツイート: "アクセス頻度が低いサービスが大量にある場合、アプリケーションサーバ立てるよりCGIのほうが便利だし、RDBMSサーバ立てるよりSQLiteのほうが便利"
SGソフトウェア開発ブログ: [SQLite]CでSQLiteのユーザ定義関数を作る その1
「SQLite」データベースに脆弱性--「Chromium」ベースのブラウザにも影響 - ZDNet Japan
SQLite/Chromium脆弱性“Magellan”は「Electron」にも影響 ~修正版が公開 - 窓の杜
SQLiteが「大量の小さなクエリ」の処理を得意とする理由とは? - GIGAZINE

Extensible Storage Engine

FadisさんはTwitterを使っています 「マイクロソフトがExtensible Storage Engine(ESE)をオープンソース化した話。ESEは*NIX畑で言うBerkeleyDBのような役割を果たす組み込みデータベースで、Windows2000で登場して以来今日に至るまで様々なマイクロソフト製品で利用されてきた。(例: Windows Updateの更新履歴) https://t.co/2jw1s2fJRc」 / Twitter
Microsoft Makes The Extensible Storage Engine Open-Source - Phoronix
Toshitaka MiuraさんはTwitterを使っています 「@fadis_ formerly known as JET Blueだと。 JETエンジンにRedとBlueがあったというのは知らなかったな。 Redの方がMS-Accessのエンジン部、BlueはExchange ServerやWindowsデスクトップサーチやIEのキャッシュで使われてて、機能も違うし交換もできないと。 ややこしいな。」 / Twitter
Toshitaka MiuraさんはTwitterを使っています 「@fadis_ メモ。 https://t.co/aQBj0b1A5V https://t.co/X0ICRHfdXu」 / Twitter
【レビュー】多くのMicrosoft製品で使われているESEデータベースを閲覧できる「ESEDatabaseView」 - 窓の杜
Extensible Storage Engine アーキテクチャ | Microsoft Docs
マイクロソフト、NoSQLデータベース「Extensible-Storage-Engine」をオープンソースで公開。25年以上、ExchangeやActive Directoryなどで利用 - Publickey

blog

Publickey

PostgreSQL 11が正式リリース。ハッシュパーティショニングやJITコンパイルによる高速化、ストアドプロシージャでのトランザクションサポートなど - Publickey
スケーラブルな分散SQLエンジン「Presto」の開発団体「Presto Software Foundation」が発足 - Publickey
PostgreSQL 12β1が公開。Bツリーインデックス周りの性能向上や、インデックスの並列処理による再構成が可能に - Publickey
Oracle Exadataの最新版となる「Exadata Database Machine X8」登場、自動チューニング機能「Automatic Indexing」など、機械学習による自動運用を強化 - Publickey
AWS、SQL互換の新問い合わせ言語「PartiQL」をオープンソースで公開。RDB、KVS、JSON、CSVなどをまとめて検索可能 - Publickey
PostgreSQL 12が正式リリース。Bツリー周りの改善による性能向上、JSONパスによる抽出可能など - Publickey
オープンソースのグラフデータベース「Neo4j 4.0」正式版リリース。リアクティブアーキテクチャを新採用 - Publickey
PostgreSQL 13正式版リリース。B-Treeインデックスの重複排除、同一テーブル内でのVacuum並列処理など新機能 - Publickey
RDBで直面した性能問題、グラフデータベースでなぜ解決できたか?[PR] - Publickey
Amazon S3がこれまでの「結果整合性」から「強い一貫性」サポートへ。データを更新直後でも最新データの読込みが保証されるように - Publickey
Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応 - Publickey
tagomorisさんはTwitterを使っています 「OpenTracingベースのトレースの便利さをちゃんと理解したの割と最近だけど、これはよくできたUIとセットでないと実現が難しいやつかなとも思うので、一般化するのは早過ぎるのかもしれないとも思う。 そのうちOSSでVisualizeできるところまでいってからかな。」 / Twitter
tagomorisさんはTwitterを使っています 「この話は何かというと、もちろん、モニタリングまわりの機能まで含めたサービスをやってるGoogleがSQLにコメントを自動で入れるという大昔からの知恵をいま出してくるのが面白かったという話 https://t.co/m57avpjwmu」 / Twitter
Introducing Sqlcommenter: An open source ORM auto-instrumentation library | Google Cloud Blog
みょうがさんはTwitterを使っています 「@tagomoris こういうことやってくれる gem があった気がする・・・」 / Twitter
tagomorisさんはTwitterを使っています 「@mrkn これっすね https://t.co/v7u0UXuf6j」 / Twitter
Ryuta KamizonoさんはTwitterを使っています 「sqlcommenter_railsただのmarginaliaを依存で入れてくれるだけの代物だった https://t.co/wbXuT9DMGH」 / Twitter
sqlcommenter/sqlcommenter_rails.rb at master · google/sqlcommenter
AWS Backupの新機能、Amazon RDSのデータベースを任意の時点に戻せる「継続的バックアップ」と「Point-in-timeリカバリ」が登場 - Publickey
オラクルがOracle Autonomous Data Warehouseを強化。SQLを知らないビジネスユーザーでもデータ分析を容易にする自動化とUIなど追加 - Publickey
MySQLの新製品「HeatWave」はInnoDBの最大400倍高速、テラバイト級を超える大規模データを分析可能なインメモリデータベース。スクエニやSCSKがその性能を検証[PR] - Publickey
MySQLの新サービス「HeatWave」、SQLそのままで最大3000倍高速に。DMM.comが検証[PR] - Publickey
MongoDB 5.0が登場。時系列データ対応、実行中のシャーディング変更に対応など - Publickey

KaiGaiの俺メモ

スキャン速度10GB/sへの挑戦~その④ 完結編~ - KaiGaiの俺メモ
秒速で10億レコードを処理する話 - KaiGaiの俺メモ
Asymmetric Partition-wise JOIN - KaiGaiの俺メモ
Dive into Apache Arrow(その3)- SSD-to-GPU Direct SQL対応 - KaiGaiの俺メモ

豪鬼メモ

DBMの設計と実装

DBMの設計と実装 その0 全体の計画 - 豪鬼メモ
DBMの設計と実装 その1 ハッシュ関数 - 豪鬼メモ
DBMの設計と実装 その2 APIの草案 - 豪鬼メモ
DBMの設計と実装 その3 ハッシュロック - 豪鬼メモ
DBMの設計と実装 その4 ハッシュデータベースの構造 - 豪鬼メモ
DBMの設計と実装 その5 ハッシュデータベースの書式 - 豪鬼メモ
DBMの設計と実装 その6 ハッシュデータベースの再構築 - 豪鬼メモ
DBMの設計と実装 その7 ファイルの抽象化 - 豪鬼メモ
DBMの設計と実装 その8 ファイルクラス毎の性能 - 豪鬼メモ
DBMの設計と実装 その9 B+木の構造 - 豪鬼メモ
DBMの設計と実装 その10 LRUキャッシュ - 豪鬼メモ
DBMの設計と実装 その11 ツリーデータベースの書式 - 豪鬼メモ
DBMの設計と実装 その12 ツリーデータベースの実装 - 豪鬼メモ
DBMの設計と実装 その13 スキップリストの構造 - 豪鬼メモ
DBMの設計と実装 その14 スキップデータベースの書式 - 豪鬼メモ
DBMの設計と実装 その15 スキップデータベースの検索 - 豪鬼メモ
DBMの設計と実装 その16 オンメモリデータベース - 豪鬼メモ
DBMの設計と実装 その17 ゾーンI/O - 豪鬼メモ
DBMの設計と実装 その18 アトミックなレコード処理 - 豪鬼メモ
DBMの設計と実装 その19 バックアップ - 豪鬼メモ
DBMの設計と実装 その20 セカンダリインデックス - 豪鬼メモ
DBMの設計と実装 その21 実装作業に向けて - 豪鬼メモ

histric

histric-1

データベースライブラリTkrzwの初版リリース - 豪鬼メモ
Tkrzw: a set of implementations of DBM
DBMのダイレクトI/O対応 - 豪鬼メモ
DBMを使った検索エンジンの作り方 - 豪鬼メモ
DBMで単語辞書を作ろう - 豪鬼メモ
DBMのローカルシャーディング - 豪鬼メモ
LRU削除キャッシュDBM - 豪鬼メモ
Wikipediaから作るN-gramフレーズ頻度DB - 豪鬼メモ
Wikipediaの共起語を使ってシソーラス検索をしよう - 豪鬼メモ
Wikipediaを解析して共起語抽出をしよう - 豪鬼メモ
ラテン文字のマッチング用正規化 - 豪鬼メモ
バッチで文字列探索する際の性能 - 豪鬼メモ
文字列探索法の比較 - 豪鬼メモ
ダイレクトI/O用のキャッシュ実装 - 豪鬼メモ
各種データベース実装と各種ファイル実装の性能比較 - 豪鬼メモ
I/Oのバッチ化によるDBの性能改善 - 豪鬼メモ
はじめてのDBM - 豪鬼メモ
はじめてのDBM - Google スライド
マルチレコードトランザクション機能 - 豪鬼メモ
トランザクションのACID特性と自動リストア機能 - 豪鬼メモ
壊れないデータベースと壊れにくいデータベース - 豪鬼メモ
CRCをデータベースに内蔵する - 豪鬼メモ
マルチシャードのトランザクション - 豪鬼メモ
圧縮アルゴリズムの事前調査 - 豪鬼メモ
圧縮データベースの性能評価 - 豪鬼メモ
各種エラー検出符号のエラー検出率 - 豪鬼メモ
ハッシュデータベースの互換的フォーマット変更 - 豪鬼メモ
BtrFSのスナップショットによるオンラインバックアップ - 豪鬼メモ
再構築しない復旧処理 - 豪鬼メモ

TkrzwのC言語インターフェイス - 豪鬼メモ
C++/Java/Ruby/Pythonの並列I/O用ファイルインターフェイス - 豪鬼メモ
C++標準futureとスレッドプールの性能比較 - 豪鬼メモ
非同期APIでデータベースを操作する - 豪鬼メモ
非同期APIの性能評価 - 豪鬼メモ
Go言語勉強中 - 豪鬼メモ
TkrzwのGo言語インターフェイスをリリース - 豪鬼メモ

クックパッド開発者ブログ

クエリログを使ったAurora MySQLの負荷テスト - クックパッド開発者ブログ
負荷試験用 Web コンソールの開発 - クックパッド開発者ブログ
ドキュメントベースの型安全なモバイルアプリ行動ログ基盤の構築 - クックパッド開発者ブログ
Amazon Elasticsearch ServiceをつかったRDSのスロークエリの集計と監視 - クックパッド開発者ブログ
Amazon RDS/Auroraをクローンするシステムを作った話 - クックパッド開発者ブログ
MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ

技術日誌

Effective SQL 読書会(4)に参加 - Yabu.log
Effective SQL 読書会(5)に参加 - Yabu.log
プログラマのためのSQL 読書会(25)に参加 - Yabu.log
プログラマのためのSQL 読書会(26)に参加 - Yabu.log
プログラマのためのSQL 読書会(27)に参加 - Yabu.log
dbtech showcase Tokyo2018に参加 - Yabu.log
プログラマのためのSQL 読書会(28)に参加 - Yabu.log
プログラマのためのSQL 読書会(31)に参加 - Yabu.log
「RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み」を読んだ - Yabu.log
約2年間続いた読書会で「プログラマのためのSQL」を読み終わりました - Yabu.log
失敗から学ぶRDBの正しい歩き方 読書会(1)に参加 - 誰にも見えないブログ
Transaction,Concurrency ControlとAntichain - Yabu.log
CMU 15-445/645 (FALL 2018)Database Systems - 01 Relational Data Modelノート - 誰にも見えないブログ
CMU 15-445/645 (FALL 2018)Database Systems - 02 Advanced SQL - 誰にも見えないブログ
Transactionのinterpretation(herbrand semantics)について - Yabu.log
失敗から学ぶRDBの正しい歩き方 読書会(6)に参加 - 誰にも見えないブログ
Scheduleをpolygraphに変換してVSR validationを行う方法 - Yabu.log

はてなブログ

Database Concurrency Control Papadimitriou 読書会 第15回 議論メモ - ぱと隊長日誌
トランザクション理論における polygraph と History の VSR 判定 - ぱと隊長日誌
Berkeley DB (Hash) の実装 - knqyf263's blog
Rustで古典的なDisk-Oriented DBMSを実装した話 - Write and Run
SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる
トランザクション中の文の失敗の扱いの違い - Write and Run
WEB+DB PRESS Vol.122に特集「Rustで実装!作って学ぶRDBMSのしくみ」を書いた - Write and Run
DDLからコード生成するツールを作ったよ! - ハッピー抹茶工場
MVCCとInnoDBでの実装について - shallowな暮らし
ストレージエンジンの話 ~InnoDBのredo logをざっくり理解する~ - shallowな暮らし
InnoDBのMVCCのガベージコレクションについて - shallowな暮らし

PostgreSQLパーティションプルーニングの動作を確認する | Future Tech Blog - フューチャーアーキテクト
Scala用のタイプセーフなSQLビルダを作ってみた - たけぞう瀕死ブログ
SQL Server 2019 プレビューで UTF-8 をサポート – Cloud and Server Product Japan Blog
PostgreSQLは20年間どのようにfsyncを間違って使っていたか - 聴講メモ -
WEB+DB PRESS plus の DB 本 3冊を読んで index を学んだ · Yuichi Takada
Aurora - クラウド時代のDBアーキテクチャ - 発明のための再発明
A Critique of ANSI SQL Isolation Levels再読 - 急がば回れ、選ぶなら近道
DBMSをGoで実装してみた - Sansan Builders Box
カラムナフォーマットのきほん 〜データウェアハウスを支える技術〜 - Retty Tech Blog
Go用SQLスロークエリ解析ツールAqueryを書いてISUCON10の本選に出たらfailした | teqblog
【BigQuery】 AlphaSQLでスキーマ安全なデータ基盤を構築する | by Matts966 | JDSC Tech Blog | Dec, 2020 | Medium
yohさんはTwitterを使っています 「SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる https://t.co/kPb1OquVCq 「ロックを取る順番が一意になるようにクエリや実行計画を揃えるというのがこの手の問題に対する一般的な対処法」 今んところ人類はどこまで行ってもこの問題から逃れられんのか...」 / Twitter
Apache Calcite + Truffle でクエリエンジンを作ってる話
DSAS開発者の部屋:2019年01月
WASD Inc.という会社でCTOをやっています|Yudai Shinnoki|note
Python/R/SQL コード対応表 | みぞおちブログ
【Rails】トランザクションを張るときにSQLキャッシュで気にすべきこと | Money Forward Engineers' Blog
GoogleがポイントインタイムリカバリでCloud Spannerを強化
OpenAPIでスキーマ駆動開発してみた | Money Forward Engineers' Blog
スキーマ駆動開発 (OpenAPI) 導入後の改善 - Adwaysエンジニアブログ
チョットワカル Row-Based Replication・その1 | エンジニアブログ | GREE Engineering
shallow1729さんはTwitterを使っています 「正確にはMySQLのphantomの扱いを分かってなかった。MySQLのやり方でphantom read防ぐのむずくね?ってなってたけど案の定best effortだった。 例えば以下のブログの例 https://t.co/ib2VrePhZO」 / Twitter
Understanding MySQL Isolation levels: repeatable-read | Official Pythian®® Blog

スライド

20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
RDBMS in Action - Speaker Deck
HSEとは何か - Speaker Deck
FadisさんはTwitterを使っています 「カーネル/VM online part1での発表「HSEとは何か」をYouTubeで見れるようにしました #kernelvm https://t.co/uSMzFNBJMl」 / Twitter
Kazuho OkuさんはTwitterを使っています 「mpool自体のアラインメントは自動的に取ってくれるんだろうか。mpoolの使うロジカルボリューム?がerase block境界に配置されないと悲しいことになると思うけど #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「@kazuho mpoolの作成時にブロックサイズを指定するとmblockやmlogの配置がアラインされるようになっています。デフォルトは32MBです」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あーHSE自体はfsは触らずにmpoolだけ使うのか。納得」 / Twitter
まちカドおるみんさんはTwitterを使っています 「そういえば SSD のコントローラーというとこういうプロジェクトもあるらしいですね &gt;&gt; The OpenSSD Project https://t.co/TD8u6zOdn7 #kernelvm」 / Twitter
The OpenSSD Project
Yasuo ItabashiさんはTwitterを使っています 「この手の問題は上層が指定したcapabilityやattributeを持つ下層を透過的に選択したり、下層のstatusを上層に通知する仕組みがあると良いと思う。シンプルにバイパスさせると環境依存が増えてOSの旨味をスポイルされるので。 #kernelvm」 / Twitter
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm mpoolは作成するときにブロックサイズが指定できる、というか指定しないと意味がない。でもSSDのブロックサイズを公表しているとは限らない…」 / Twitter
しゅうすい🐧さんはTwitterを使っています 「Event Sourcingとか、DBのトランザクションログとか、ジャーナルログとか、何となく雰囲気似てる感じがする」 / Twitter
しゅうすい🐧さんはTwitterを使っています 「コピーGCみたいなことするのか」 / Twitter
まちカドおるみんさんはTwitterを使っています 「どっちかというと DB の wal」 / Twitter
まちカドおるみんさんはTwitterを使っています 「というか journaling と wal ってほぼ同じものが違う場所で使われてるだけな感じある」 / Twitter
DBアタマアカデミー:連載|gihyo.jp … 技術評論社
第2回 トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(2):DBアタマアカデミー|gihyo.jp … 技術評論社
sat🌿さんはTwitterを使っています 「強いストレージデバイスのすごいところのひとつは上に乗っかってるLinuxのI/Oスケジューラとかファイルシステムとかに相当するものをフルセットで持っててカーネルが「俺何もしなくていいんじゃね?」ってなるところ」 / Twitter
FadisさんはTwitterを使っています 「昔は カーネル「ディスク君がスムーズに書けるように私が書き込み順を調整してやろう」 だったのが今や SSDのコントローラ「そういうの全部こっちでやるんでユーザ空間から来た書き込みは即座に渡してください」 だもんな」 / Twitter
僕がDIを否定する理由 - kbigwheelのプログラミング・ソフトウェア技術系ブログ
やはりあなた方のDependency Injectionはまちがっている。 — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something
本当に倒すべきだったのは jQuery ではなくテンプレートエンジンだった - fsubal
フロントエンドにおける「関心の分離」は間違っていた - fsubal
How COMMIT Works in CockroachDB - Speaker Deck
GraphQL を利用したアーキテクチャの勘所 / Architecture practices with GraphQL - Speaker Deck
Rustでon-diskなB+Treeを 作ったときの細かな話 - Speaker Deck
MySQLとインデックスと私 - Speaker Deck

GitHub

mysql80_no_usui_hon/book_ebook.pdf at master · hmatsu47/mysql80_no_usui_hon
YugaByte/yugabyte-db: YugaByte DB is the open source, high-performance SQL database for building internet-scale, globally-distributed apps.
The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C++
非公式MySQL 8.0オプティマイザガイド by yakst

POSTD

リレーショナルデータベースの仕組み (1/3) | POSTD
リレーショナルデータベースの仕組み (2/3) | POSTD
リレーショナルデータベースの仕組み (3/3) | POSTD

infoQ

NoSQL データベースのアジャイルなデータモデリング
MicrosoftがEdgeにSQLを導入、Azure SQL Database Edge
COMN(Concept and Object Modeling Notation)によるNoSQLデータベースのデータモデリング
OCIはMicronaut Data 1.0を特徴とするMicronaut 1.3をリリースした
分散時系列、ドキュメント圧縮、インデクスを改良したRavenDB 5
KSQLがConfluent Cloudで利用可能に
Elasticsearch 7.7は非同期検索、セキュアなキーストアなどをもたらす
JepsenがMongoDBのデータ整合性の主張に異議を唱える
Kafka、MongoDB、Maxwell's Daemonを使用したSQLデータベース監査システムの構築
GraphQLデータフェデレーションを実装したHasura Remote Joins
Netflixは大規模なGraphQLフェデレーションを実装
Amazon S3が強力な読み取り後書き込みの一貫性を提供する
Couchbaseで言語と開発者に使いやすいデータ構造を使用
Pinterestが階層化ドキュメントを効率的に検索するアーキテクチャについて解説
NetflixがDomain Graph Service Frameworkをオープンソース化: Spring BootのGraphQL
Lightstepは新しいChange Intelligence機能でトレースとメトリックを結び付ける
Netflixは迅速なアプリケーション開発のためにGraphQLマイクロサービスを擁した
Couchbaseが自身の分散ACIDトランザクションアーキテクチャを詳細に説明
Google Logicaは、SQLクエリをより再利用でき、読みやすくすることを目指す
Prisma ORMツールスイートが実運用対応に
Logz.ioがログデータ内のパターンを自動特定する機能をリリース
オラクル オープンソース Coherence インメモリデータグリッド
AceSQL、オープンソースのJDBC-over-HTTPドライバをリリース

OSDN

パーティション強化、JITコンパイラなどが加わった「PostgreSQL 11」リリース | OSDN Magazine
「PostgreSQL 11.2」リリース、fsync()失敗時の処理を修正 | OSDN Magazine
SQL互換のHTAP向け分散データベース「TiDB 3.0」リリース | OSDN Magazine
「PostgreSQL 11.5」リリース、4件のセキュリティ問題を修正 | OSDN Magazine
「PostgreSQL 12」リリース、性能面でさまざまな強化が行われる | OSDN Magazine

Wikipedia

関係の正規化 - Wikipedia
List of order theory topics - Wikipedia
分散処理に詳しいオタクさんはTwitterを使っています 「SQLの実行中にそのクエリ自身によってタプルの位置を移動させてしまってスキャンが同じ行を複数回処理してしまう問題をハロウィーン問題と言って1976年のハロウィーンにSystem Rで見つけたそうな。 https://t.co/p5Ic5efqh3 ハッピーハロウィン!」 / Twitter
Halloween Problem - Wikipedia
ログ先行書き込み - Wikipedia
Change data capture - Wikipedia
ライトアンプリフィケーション - Wikipedia

Qiita

golang で 2 Way SQL - Qiita
ひとりRDBMS実装 Advent Calendar 2019 - Qiita
[#JTF2020 解説版]理解して拡げる 分散システムの基礎知識 - Qiita
自分用メモ: ウェブ設計チェックリスト - Qiita

Twitter

Multiversion concurrency control

ogiwaraさんはTwitterを使っています 「SIはMultiversion CCの特殊な場合として捉えられるよね 普通のCCは1VCCで一番最後の書き込みを必ず読まなきゃいけない」 / Twitter
ogiwaraさんはTwitterを使っています 「てことはlocal書き込みがそもそもMVCCに落とし込めるのか」 / Twitter
ogiwaraさんはTwitterを使っています 「これがデータベースの理論 面白いね https://t.co/Bvea0YJEC8」 / Twitter
Multiversion CC - Google 検索
Multiversion concurrency control - Wikipedia
並行性制御 - Wikipedia
Concurrency control - Wikipedia
トランザクションの並行処理制御
Snapshot isolation - Wikipedia
Snapshot isolation - Wikipedia
Making Snapshot Isolation Serializable 再考 - 急がば回れ、選ぶなら近道
Snapshot Isolation のおもちゃ - Tociyuki::Diary
PostgreSQL Isolation について - SIerだけど技術やりたいブログ
ogiwaraさんはTwitterを使っています 「そもそもMVCCを変形すれば1VCCに落とせるぽいね、定義上」 / Twitter
ogiwaraさんはTwitterを使っています 「MVはあくまで便宜上の表記だから」 / Twitter
ogiwaraさんはTwitterを使っています 「いや、それは言い過ぎだね より過去のを見ることができるから SIはMVCCと1VCCで表せるってだけ」 / Twitter

三大定理

足跡45(マストドンにいるかも)さんはTwitterを使っています 「CAP定理、ノーフリーランチ定理、あと1つ付け加えてステートメントがよくわからん3大定理にしたい」 / Twitter
Masaki HaraさんはTwitterを使っています 「@ashiato45 無限の猿定理とかどうでしょう? 厳密な定義もありますが、CAPやno free lunchもあとでそのコンセプトに基づく定理が与えられてるはずなので並べてもいいかなと」 / Twitter
足跡45(マストドンにいるかも)さんはTwitterを使っています 「@qnighy 個人的にはステートメントがよくわからん上でわからんまま濫用されがちというところにポイントをつけたいので無限の猿がよさそうな気がしています」 / Twitter
足跡45(マストドンにいるかも)さんはTwitterを使っています 「ステートメントよくわからん3大定理、qnighyさんのおかげでCAP定理、ノーフリーランチ定理、無限の猿定理の3つに決まりつつある」 / Twitter

histric

histric-1

SODA Noriyukiさんのツイート: "SQLの一番いいとこって(cost-based optimizerを利用していて、さらに適切にanalyzeも実行してる場合限定だけど)やりたいことを宣言的に書くと、効率のいいデータアクセス手続きを処理系側で推定して実行してくれるところだと思う。人手でアルゴリズム書く言語と比べると、間違いなく進んでる。… https://t.co/OzWxCE1oso"
SODA Noriyukiさんのツイート: "エンジン側に最適化させるためにはSQL一文でやりたいことを表現する必要があるので、副問い合わせも当然必要になる。"
KaiGai Koheiさんのツイート: "本日の発表資料を公開しました。 ■ GPUとNVMEでPostgreSQLの限界に挑む ~クエリ処理速度10GB/sを越えて~ https://t.co/Z02tkRieLW #dbts2018"
DB Tech Showcase Tokyo 2018: C23『GPUとNVMEでPostgreSQLの限界に挑む』実況と反応まとめ - Togetter
20180920_DBTS_PGStrom_JP
Fadisさんのツイート: "先日リリースされたPostgreSQL 11についてPhoronixがEPYCサーバでpgbenchを走らせた結果。クエリのJITコンパイルを有効にしても単純な読み書きでは殆ど性能が向上しない(これが役立つのはクエリが複雑な場合)、というそんな気はしてた傾向が数字で出ている https://t.co/QkjyuUQHsK"
Some Initial PostgreSQL 11.0 Database Benchmarks - Phoronix
渋川よしきさんのツイート: "相手がメリットだと思っていること、例えばとっつきやすさなどに寄り添わないと、説得はおろか、まずは相手が読んでくれることもないので、強すぎる言葉でエントリーを書くのは書くだけ損でメリットなしって思う派。 https://t.co/4qlOr0M5Q7"
O/Rマッピングは百害あって一利なし! - Qiita
渋川よしきさんのツイート: "ORMって、クエリービルダーとオブジェクトマッパーと大きく2つ機能があって、後者は面倒だから自動化したい、前者は直接書きたい派とかもあって、2 WAY SQLみたいなのもあるし、それとは別にActive Recordとかもあるので、まず要素分解して各個議論しないと、意味がない気はしてる。"
渋川よしきさんのツイート: "↑という分類も正しいかどうかはあんまり自信がないぐらい、僕自身はORMに馴染みがないので、誰か"
渋川よしきさんのツイート: "SQL直書きしたい派も、データ突っ込むのは別に雑でもいいけど、大量のデータをうまく取り出す必要が多くて、SELECTクエリーは手書きでじっくりチューニングしたい派、というのも観測している"
じょうさんのツイート: "コツコツと作ってたSQLのLanguge Serverをようやくリリースしました🎉 まだまだやることはたくさんありますが、ご興味ある方はぜひ試してみてください🙏 https://t.co/m836vJMNk3… "
joe-re/sql-language-server: SQL Language Server
KaiGai Koheiさんのツイート: "斜め読み。これ、k-selectionのためにソートを使ってるけど、上位k件の抽出だけならsorting blockの下の方に入る事が確定した時点で計算を打ち切って構わないので、それで更に最適化できないかしら。… "
Billion-scale similarity search with GPUs - Speaker Deck
Tatsuo Ishiiさんのツイート: "PostgreSQL 12でOIDがなくなる件、システムカタログにはoidという列が残るが、普通の列になってしまったので、うっかり今までのように、 SELECT oid, * FROM pg_class; とかやると、結果に"oid"という列が2回出てきてびっくりする。 管理系のツールや自作管理スクリプトに色々影響するような気がする。"
KaiGai Koheiさんのツイート: "なんだか SELECT * で展開されない”隠し列”みたいな属性が欲しくなりますね。 そうすると、行レベルアクセス制御用のACLを仕込んだり、別の応用も効きそうですし。… "
myuiさんのツイート: "https://t.co/dc0D7d83pd NVM over networkに特化したstorage formatらしい"
The Apache Crail (Incubating) Project: Overview
渋川よしきさんのツイート: "DDDの文脈で集約という言葉が出てくるんですが、集約だけだとただデータの集まりだから、MSつけて欲しいなって思っていたのを思い出した… "
Hiroaki Nakamuraさんのツイート: "確かにと思って改めて調べてみると https://t.co/PsfGfnwMYf databaseはデータの集合という意味なんですね。なのでそれを管理するシステムということでMSが必要になると。… "

histric-2

KaiGai Kohei 🌻さんのツイート: "ProjectionPathが入ってから、CustomScan側でtargetListの計算をして返すのが不便になったなぁ。。。 これ、実行計画を作った後でplanner_hookを使って書き換えるしか無いような気がするが。"
KaiGai Kohei 🌻さんのツイート: "ただ、元々GpuProjectionは42次元のベクトル間距離の計算を高速化(普通はSQLで書かない)するために実装したモノで、効果のある利用シーンが限定的という事を考えると、シンプルに被参照列だけをCPU側に返すような実装でも良いのかもしれず。"
KaiGai Kohei 🌻さんのツイート: "SSD2GPUのドライバを改良して、データがPage Cacheに載っている場合の性能を改善。PCIeスイッチ無しだとこの辺が頭打ちだと思うので、まぁまぁ、ゴキゲンな感じ。 SSDはIntel SSD DC P4510 (U.2, 1.0TB) を4本束ねてます。… https://t.co/2wmhS9HMfW"
KaiGai Kohei 🌻さんのツイート: "Page Cacheに載っている場合の性能デグレ小さくなり、かつ、タプル毎の visibility check をGPU側でできるようにしたら、書込み頻度の高いテーブルであっても、堂々とSSD2GPUを使って集計処理を回す事ができるんだが。"
KaiGai Kohei 🌻さんのツイート: "現状、MVCC検査の必要ない(ALL_VISIBLE=1である)ブロックのみSSD2GPUの対象にしている。本来、ALL_VISIBLEというのは強すぎる制約であって、t_infomaskのコミットフラグだけ見て可視・不可視を判断できれば良いが、commit logの参照が必要になるとダメ。"
KaiGai Kohei 🌻さんのツイート: "visibility mapみたく、『このブロックは t_infomask の情報だけでMVCC可視性チェックできます』なフラグがあると助かるんだが。"
Masahiko Sawadaさんのツイート: "実行計画のHINT句つくるツール作ってみた。PostgreSQL用です。 クエリを受け取ると(実行計画を取得して)そのクエリの実行計画を作るためのHINT句を返します。これで実行計画の固定化は簡単にできるようになりそう。 https://t.co/salhirHlf0… https://t.co/YrttCYrpCI"
MasahikoSawada/phint: Planner hint generator for PostgreSQL
KaiGai Kohei 🌻さんのツイート: "本日のセミナー資料です:PostgreSQLは最新ハードウェアでどこまでやれるのか?~GPUとNVMEで実現する超高速ログデータ処理基盤~ SSD-to-GPU Direct SQLが列ストレージ(Arrow_Fdw)上で動くようになりました。ベンチマーク結果も併せてどうぞ。 https://t.co/OlSPuYIAuL"
20190418_PGStrom_on_ArrowFdw
Fadisさんのツイート: "PostgreSQL12のベータが公開されたらしい。PostgreSQL12ではJSONに対するJSON pathを使ったクエリが可能になり、他のカラムの値を使って自動的に値が決定されるカラムが作れるようになり、クエリを実行する際のテーブルの漁り方をプラグインで変更できるようになる https://t.co/PCak0C0WtX"
PostgreSQL: PostgreSQL 12 Beta 1 Released!
にわか@OS自作さんはTwitterを使っています: 「DBMS自作入門って、 トランザクション管理みたいなのは、諦めて 最低限のSQL(挿入や削除やテーブル作成)コマンドや、データベースのファイルも2列(2属性)で固定してやれば意外とできそうじゃない? 素人なので、甘い考えです。」 / Twitter
yuyabuさんはTwitterを使っています: 「@89O5H1QpDQCbCkc TPC-CやTPC-Hのベンチが動くところまで作ってみたいですね」 / Twitter
:tom__bo:さんはTwitterを使っています: 「SQLからrelational algebraの式(?)を導出して、さらにそこからいい感じの可視化をしてほしい」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています: 「昨日同僚と飲んだときに、自分はO/Rマッピングは嫌だし、かといって文字列でSQL書くのも嫌なので、単に型安全になるような、SQLの抽象構文木を書ければいいんだ(そのためのAPIがあれば十分なんだ)という趣旨のこと言ったんだけど、「SQLの抽象構文木」というのがイマイチ伝わらなかった感じ。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています: 「メソッドチェインでクエリを書くこと、だと思われて、それはめんどくさくない?的なことを言われたのだけど、メソッドチェインかどうかは本質的ではなくて、木が欲しいのだという気持ちを伝えたかった(でも、プログラム(SQLも)は木というイメージがそもそも伝えるのに時間が必要な気がする)」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています: 「抽象構文木という用語の選択かどうかの問題というより、プログラムが解釈される前には普通は木になるよね、ってイメージがあるのはそこまで標準的でない、というか。」 / Twitter
FadisさんはTwitterを使っています: 「PostgreSQL 12がリリースされた。PostgreSQL 12ではJSONB型の値に対してJSON pathを利用したクエリが可能になる他、インデックスの再構築を書き込みをブロックせずに行える REINDEX CONCURRENTLYが追加される https://t.co/ASLdFMfXGc」 / Twitter
PostgreSQL 12 Released As Newest Update To "World's Most Advanced Open-Source DB" - Phoronix
FadisさんはTwitterを使っています: 「データベースの操作はROLLBACKする可能性があるので、RDBMSは変更がCOMMITに至らなかった場合に元に戻せる必要がある。PostgreSQLはこれを簡単に実現する為に多くの操作をログの追記で表現する。結果ログが際限なく増えるので、もう戻らない時点のログを捨てるVACUUMで性能と容量を取り戻す必要がある」 / Twitter
K.Namba/ご注文は910ですか?さんはTwitterを使っています: 「@fadis_ VACUUM してない PostgreSQL は 死ぬ」 / Twitter
FadisさんはTwitterを使っています 「RDBMSのカラムにJSONを突っ込む事を恥じる必要はありません。何故ならISO/IEC 9075:2016からSQLにはカラムに突っ込まれたJSONをいじる為の関数が追加されていて、カラムに突っ込んだJSONの一部を使った検索などが綺麗に書けないのはお使いのRDBMSがふぁっきん古いのが原因だからです」 / Twitter
FadisさんはTwitterを使っています 「Micron、SSDや不揮発メモリで高い性能を発揮するKVS、HSEをオープンソースで公開。HSEはファイルシステムではなくSPDKのblobstoreのような機能を提供するLinuxカーネルドライバmpoolを使って、カーネルのページキャッシュを直接読み書きすることでオーバーヘッドを回避する https://t.co/emxbU2ejsC」 / Twitter
Micron Announces An Open-Source Storage Engine Designed For SSDs, Persistent Memory - Phoronix
FadisさんはTwitterを使っています 「今の所SSDにしか対応してないっぽいから、SSD向けが強調されてるけど、不揮発メモリデバイスだとページキャッシュをデバイス自体で置き換えられるわけで、これどう考えてもNVDIMMの時代にNVDIMMの性能を活かせるデータベースを作る為の土台だよな」 / Twitter

histric-3

画力・博士号さんはTwitterを使っています 「関係代数がわりと堅牢に確立されているのにSQLなどはあんまりカッチリと関係代数に “準拠” してないの(実装の都合なども加味しているのだろうけれども気持ちとしては)なんでやねん感はある」 / Twitter
画力・博士号さんはTwitterを使っています 「(まあでも例えばπ計算もそれに準拠している並行計算の言語で実用に供するものはそうそう見ないだろうし,関係代数もそういう “理想気体的な立ち位置” かな)」 / Twitter
t_yanoさんはTwitterを使っています 「SQLなあ。500行のSQLとかは今や論外であるのはいいとして、俺は多くの人がSQL(というか集合データ)に抱えてる不満って、テーブルをジョインしたら既存のエンティティにマッピングできなくて専用のValueObjectをたくさん作らなくちゃいけないとか、1:Nクエリが発生するとか、」 / Twitter
t_yanoさんはTwitterを使っています 「そういう部分にあるように見えてて、それってSQLというかRDBと集合データ側の問題ではなくて、集合データをそのままダイレクトに扱うのが難しい(オブジェクト指向?)言語側の問題だったりするんじゃねえの?って疑問は常に持っときたいんよね。」 / Twitter
t_yanoさんはTwitterを使っています 「結局インピーダンス・ミスマッチが存在するってことなんだけど、ミスマッチがあるからミスマッチの向こう側のRDBとかSQLとか集合データ構造が悪いわけじゃなくて、例えばLEFT JOIN一発で取ってこれるデータをなぜ1:Nクエリにしなくちゃいけないのか、ってとこに疑問を持ちたいんよ。」 / Twitter
t_yanoさんはTwitterを使っています 「だってリレーショナルデータベース側では、LEFT JOINしてWHERE区で絞ってシンプルに集合命令でスパッとデータ抜けちゃうわけで、スパッとデータ抜けるけどそれをうまく扱えないのは、スパッとデータ抜ける側の問題ではないよなーと。 特にこう解決しろって話じゃなく。」 / Twitter
t_yanoさんはTwitterを使っています 「めちゃくちゃパワフルな集合データベースを、それを使う側の言語?が集合データをうまく扱えないって構造だと思っていて、そういう自覚を持っておきたいんよ。 1クエリで取ってこれるデータを3回とか4回のクエリに分割しなくちゃいけないのは、RDB側じゃなくて、データを使う側の都合だよなと。」 / Twitter
t_yanoさんはTwitterを使っています 「だって、RDB側には、1クエリでデータを取ってきてさらにそれを処理できる機能があるんだから。その機能がないのはRDB使ってる言語・環境側なんであって。」 / Twitter
t_yanoさんはTwitterを使っています 「実際には、その機能がないというより、そのやり方が、言語のパラダイムに合わない(オブジェクト指向っぽくならない)から、誰もやらない、という方が正確だろうか。 ResultSetをグルグル回せばそのまま処理できるもんな。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「へぇ、、、 あとmramのような細粒度アクセス可能な不揮発デバイスが広がると、脱b-tree系も有り得るのかな? (nvdimm-pとか裏にnandがある系は、ブロックアクセスでないと厳しそう?)」 / Twitter
中村 実さんはTwitterを使っています 「DB世界にはDBの内部構造に機械学習を使うというアプローチがボチボチものになり始めているように感じる。B-tree型インデックスをアクセス状態からMLを使って最適化するとか並列実行されているプラン間の資源をMLを使って最適化するとか。スキーマ推定とかはもともとMLありの分野だ。」 / Twitter
Y​S​R​@​も​の​べ​の​H​E​完​走​!​!さんはTwitterを使っています 「@kmizu 一応、あまりにアカン書き方だと警告が出たりはしますが、実行計画とにらめっこしていると、「実行計画の構図をそのままコードに落とし込んで動かねーかな」とは思ったりしますねw」 / Twitter
Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深い。 ---- fsyncへの2つの間違った期待 1: fsyncが失敗した場合、次のfsyncのタイミングで失敗したdirty pageは再度書き込まれる 実際には…最初のfsyncに失敗したらデータはpage cacheから削除される。…(略)…ext4は、dirty dataをpage cacheにcleanとして残すし、xfsは捨てる。… https://t.co/Smkhs9VzAi"
Shirouzu Hiroaki(白水啓章)さんのツイート: "fsync成功まで、アプリケーション側はデータを捨てずに fsyncリトライではなく write or memcpyのリトライをしないといけない、と。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "fsyncリトライが成功しても、未反映データが書き込まれていない(可能性のある)OSは、 Linux/MacOS/NetBSD/OpenBSD, 常にfsyncが失敗を返すのはFreeBSD、という感じかな? https://t.co/yrZMYDgOce"
Fsync Errors - PostgreSQL wiki
Fadisさんのツイート: "データがストレージに書き込まれる事を保証するためにfsyncやO_SYNC付きでのopen等を行っているソフトウェアに対してLD_PRELOADでそれらの関数をフックして書き込みを同期しない実装に置き換える事で、パフォーマンスと引き換えに書き込みの保証を失うライブラリ libeatmydata https://t.co/KmAOMLHtsk"
libeatmydata - disable fsync and SAVE!
チェシャ猫さんはTwitterを使っています 「なるほど、SAT ソルバをバックエンドに使って似たようなものが出来ないかと考えてた時代もあったけど公式からツールが出たのか。 https://t.co/s5LdqWN6hQ」 / Twitter
DynamoDBのテーブル設計に最適!NoSQL WorkbenchのData modelerで今度こそDynamoDBを使いこなす! | Developers.IO
🐶さんはTwitterを使っています 「RDBMS が GraphQL 直接話せたらいいのでは?」 / Twitter
7594591200220899443さんはTwitterを使っています 「まあ実際にはそういうドキュメントDBみたいなのは死屍累々なのだが」 / Twitter
7594591200220899443さんはTwitterを使っています 「直接は関係ないけどRDBMSの前段にWAFかましたりまともな今時の認証認可をかましたりしていきたいというだけのニーズに対して現在我々の手に入るソリューションって必要以上に牛刀じゃんという問題意識はある。」 / Twitter
7594591200220899443さんはTwitterを使っています 「素のDBをポーンと外向けで出すのは怖いねっていうのの対策がいきなりじゃあRailsでAPI立ててやっていくみたいな話にまでいきなりでかい話になる必要は本来ならないべきのはずなんだよなあ」 / Twitter
成瀬さんはTwitterを使っています 「またSQLQLの話してる…」 / Twitter

histric-4

KOBA789さんはTwitterを使っています 「マイクロサービス化によってビジネスロジックのトランザクションが単一 DB のトランザクションに閉じなくなってしまうことが増えてて、ナイーブな分散トランザクションを無自覚に書いている場合などがある(本来ならトランザクション境界を跨がないようにサービス分割するのがベターですが……)」 / Twitter
成瀬さんはTwitterを使っています 「TDでも定期的に「distributed transactionを実装しようとするな!」っていう仕事が発生しがち」 / Twitter
YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「TypeORMと比べてどうなんだろう / 1件のコメント https://t.co/y0Qj7Reo5c “最近話題の TS 製 ORM「Prisma 2」でログイン処理を試してみたら超快適だった” https://t.co/LQdBDrHY97」 / Twitter
最近話題の TS 製 ORM「Prisma 2」でログイン処理を試してみたら超快適だった
dowanna @PrAha Inc. CEO兼エンジニアさんはTwitterを使っています 「ええっ!?30万件近いデータの入ったemployeesデータベースがDocker imageとして公開されているのかい!? クエリやインデックスやパフォーマンスチューニングの練習に使える最高の環境がdocker runするだけで手に入るのかい!? すごいねマスオくぅん! https://t.co/Q8jKGs2I3F」 / Twitter
genschsa/mysql-employees - Docker Hub
成瀬さんはTwitterを使っています 「重要なのはIaaS/PaaSよりも、RDBとオブジェクトストレージがサービスとして提供されているかな気はする」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「SQLの隠蔽のレベルは(現実にはやや目をつぶって理想論で言えば)あれでいいと思うけど。 SELECT文みたいな宣言的プログラミングは、プログラミング言語の未来へ向けた方針としては正しいし、隠蔽せずに人間がイチイチ手でやるより、コストベース最適化に任せた方がいいことの方が多いと思う。」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「SQL や OpenGL などを見ていてもわかるように、本質的に複雑なものをプログラマから「隠蔽」しようとしたとき、結果としてエスパー能力が要求されるようになるので幸福度が増すとは限らない、みたいな教訓がある」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「すべての場合にうまくいくわけじゃなくて、実行計画を眺めてあれこれする必要が出ることがあるのが残念というのはその通りだけど、まあ仕方ないんじゃないかな。 宣言的プログラミングによる隠蔽は、処理系が行える自由度も高くて、ad hocな隠蔽に比べるとずっときれいだと思う。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「判る一方で個人的には、メタプログラミングと同様、宣言的プログラミングは抽象度に対する頭の良さを要求されて辛いこと多いなぁ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「僕もルールベース最適化時代はSQL嫌いだったんだけど、ある程度以上の年齢の情報系の人の中には、その時代のSQLに対する認識のまま止まっている人がいるような気が昔からしてる… コストベース最適化になってからのSQLは、(いろいろ足りない部分はあるにせよ)未来の言語って感じなんだけどなあ。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「今のRDBなら、ANALYZEを実行してデータ分布の統計情報をとっておきさえすれば、RDBのコストベース最適化に任せるだけで、ほぼ最適な実行計画を選んでくれて(データ分布の変化にも追従するので)人間より賢いはず。MySQLはよく知らないけど少なくともOracleやPostgesQLなら(例外がないわけではないけど」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「https://t.co/JWCRXMy3QS 「最適化に任せるべき」は私も同意なんですが、前提として「最適化が十分に賢いこと」という前提があるんですよね。 たとえばC言語なんかは下手にアセンブリ書くよりコンパイラの方が賢いことが多いから素直に書けというのに説得力があるけど……」 / Twitter
らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「RDB / SQLも「書き方次第で (観測可能な振舞いが同じなのに) パフォーマンスが変わる」みたいな状況ではまだまだ「foo /= 2; よりも foo &gt;&gt;= 1; の方が良い」みたいな時代と変わらないような気がして、もっと最適化が人間より十分賢くなってくれないと人間はエスパーをやめられないのだろうなと」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@lo48576 手続き言語だとコンパイラがかなり無理しないと最適化ができませんが、SQLの場合、アルゴリズムはデータ分布に応じてアルゴリズムをRDB側で勝手に選択することができるので、ふつうの言語の最適化よりもはるかに強力です」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@lo48576 変な実行計画が選ばれることがないわけではないですが、その一番多い理由は、単にRDBの使い方を理解してないだけ(ANALYZEを実行しておらず、RDBにデータ分布を伝えていないとか)なんじゃないでしょうか。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「簡単に早く作るにはOODBの方が向いてると思うけど、 データを長生きさせるっていう意味では、応用と関係なくデータモデルだけでスキーマが決まるRDBの方が向いてると思う。 応用との距離がある分、インピーダンスミスマッチは仕方ない。 事務アプリ系はデータの方が長生きするからRDBの方が好きかな。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kfujieda OODBはプログラミング言語と密着してるべきなので、標準化は茨の道ですね。 仕組み的にはRPCのserializerにインデックス足しただけなわけで、言語ごとに一つは標準的なOODBがあってもいい気はします。」 / Twitter
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「GraphQLは、おっしゃる通りDDDではクエリモデルを扱うものという位置付けにするのが良いでしょう。(続) #Peing #質問箱 https://t.co/ei7KiT6D0k」 / Twitter
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「GraphQLを更新系に使用すると、DB構造を把握してかなり直接的に更新する形になります。そのような方法は、ドメインオブジェクトDB構造を意識させない形で実装して制約を表現する、という実装とは衝突してしまい、相性が悪いため、DDD前提であれば更新系には使用しない方が良いでしょう。」 / Twitter
松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「一方、参照系としてはCQRSが必要になる参照系のパフォーマンス課題を解決する1つの方法としては検討可能です。ただし、少しでも複雑な内容が入ったら更新系と結合テストをして整合性が壊れないように気を使う必要があります。導入に時はテストをどうするかと言う点も考慮しましょう。」 / Twitter
やまささんはTwitterを使っています 「XAトランザクションは見果てぬ夢だったなあ。Googleが「分散トランザクションはスケールしない。巨大システムは冪等性を持つマイクロサービスを組み合わせて作るんじゃ」みたいなことを言い出してから潮目が変わったと思う。」 / Twitter
btnrougeさんはTwitterを使っています 「超重要なJTAを忘れていた。もっとも、表に現れるのはJDBC接続プールの設定か、Java EE 7以降の Transactional アノテーションくらいだけれど。」 / Twitter
btnrougeさんはTwitterを使っています 「J2EE 1.2の主要機能は、Servlet、JSP、EJB、JMS、JDBC、JNDI、それからJavaMail。これらがJ2EE 1.2として標準化された背景にはしかるべき理由 = "Why" がある。APIの改善や代替技術の登場により "How" は変わったけれども、こいつらが当初から持っている "Why" は変わっていない。」 / Twitter
やまささんはTwitterを使っています 「ProtobufやStubby(gRPC)も基本的にはCORBAの再発明でしかないのだが、トランザクションに関わる機能がごっそり削ぎ落とされていることに気付いてなるほどと感心した思い出」 / Twitter

カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「SQLたくさん勉強して得られた結果、宣言型言語が嫌いになりました。実行順序を考えなくていいのがメリットのように言う人いるけど、結局は実行エンジン(planner)のお気持ち当てゲームしないといけなくて、それなら最初から実行順序を明示できたほうが結局は簡単。宣言型言語のパフォチューは大変不毛。」 / Twitter
カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「&gt; お気持ち当てゲーム SQLプランナー「わたしの考えてること、分かる?」」 / Twitter
カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「アルゴリズムとデータ構造を勉強して、最適な順序を記述 v.s 実行エンジンさまのお気持ちを推測して、最適なSQLを記述 (実行計画の変動によりきまぐれにお気持ちが変わるオプションつき)」 / Twitter
カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「実行計画を固定させる機能とか見ると、「宣言型とは?」という疑問が湧くことがある。必要性はすごく分かるんだけど、本末転倒な感じを受ける。」 / Twitter
カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「宣言型はデバッグも面倒なんだよな。SQL、正規表現、LaTeX、ワークフロー、・・・。宣言型は適用範囲を見極めて使ってほしい。最近の宣言型偏重ブームは懐疑的に見てしまう。」 / Twitter
ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「テーブル設計本で100%出てくる正規化の例。実はアレは例であって実際にはやってはいけない設計。 取引明細テーブル 商品テーブル で取引明細テーブルには商品名カラムは持たず正規化して商品テーブルに持つと。これが現実の設計だとダメなケースが多いんです。 #駆け出しエンジニアと繋がりたい」 / Twitter
ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「データのライフサイクル 過去データの取り扱い システムの利用者 業務面 法令面 この辺りを考慮して設計を考えると、正規化してはダメな理由がみえてくる。勿論、業界や業務によって正解はことなる。だから一般論だけ学んでもダメ。 #駆け出しエンジニアと繋がりたい」 / Twitter
ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「マスタテーブル側の時系列の持たせ方も関係してくるし、Webシステムならパフォーマンスも考慮しなくてはダメだし。そんな事を諸々考えてテーブル設計できる人になれば、価値は高いよね。本当に。 #駆け出しエンジニアと繋がりたい」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「RDBを座学すると大抵ハッシュテーブルの話も出てくるけど実際にRDBでハッシュテーブル使ってることあるんだろうか」 / Twitter
KOBA789さんはTwitterを使っています 「@__pandaman64__ JOIN のときの一時テーブルでは使ったりします」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@KOBA789 データ構造どっちを使うかはDBMSがよしなに決めてくれる感じですか」 / Twitter
KOBA789さんはTwitterを使っています 「@__pandaman64__ 実行計画によって使うデータ構造が決まるのでそうですね」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「@KOBA789 かしこい」 / Twitter
KOBA789さんはTwitterを使っています 「@__pandaman64__ もちろん実装によって様々ではありますが」 / Twitter
Mine02C4@半チンさんはTwitterを使っています 「@__pandaman64__ オンメモリだとハッシュインデックスになったりする(MySQLとか)」 / Twitter
Masahiko SawadaさんはTwitterを使っています 「UPDATEのサブプランは変更していない列を含んだタプルを出力として返す必要があると。しかも、継承テーブルの場合だと、子テーブルごとに異なる列を持てる。オーバーヘッド大きそう。 #pgunconf」 / Twitter
Masahiko SawadaさんはTwitterを使っています 「PG14だとUPDATEの下に子テーブル毎にサブプランを作るのではなくて、一つのサブプラン(Appendノードの下に子テーブルのスキャンがぶらさがっている)を作るだけで良くなったのか。子テーブルのスキャンの出力としてその子テーブルのOIDを含めると。 #pgunconf」 / Twitter
Masahiko SawadaさんはTwitterを使っています 「Txのcommit時はcommit WALをfsyncしてclog内の対応するbitの"commit済み"に更新するのだけど、その間にcheckpointが入り込むとredoポイントがcommit recordの後になりclogはbitが更新されるる前にディスクに書きまれる可能性があるからTxはcheckpintが間に入り込まないようにしているのか。なるほど!」 / Twitter
Masahiko SawadaさんはTwitterを使っています 「これに似た問題はcommit WALとclogの関係だけじゃなくて、PostgreSQLの実装だとprepare WALと2相コミットのファイルの関係でも該当する。」 / Twitter
Masahiko SawadaさんはTwitterを使っています 「MySQL(innodb)にはclogみたいなものは(多分)ないからこれを心配する必要はないけど他の追記型のDBはどうやって対策しているんだろう。」 / Twitter

FadisさんはTwitterを使っています 「Linuxの新しいファイルシステム Reiser5 に新機能Burst Buffersが入ったらしい。高速小容量と低速大容量のデバイスを組み合わせてfsを作り、一時的な大量の書き込みを高速なデバイスに流し、暇な時に低速なデバイスに移すことで、高速大容量なデバイスっぽく振る舞う https://t.co/tOpwbckEyf」 / Twitter
Reiser5 File-System Working On New Features Like Data Tiering, Burst Buffers - Phoronix
2018年6月20日 次世代メモリをターゲットに開発が進むログベースファイルシステム「NOVA」:Linux Daily Topics|gihyo.jp … 技術評論社
30分で論文流し読みシリーズ 7「File Systems Unfit as Distributed Storage Backends: Lessons from 10 Years of Ceph Evolution」 - 覚書
ファイルシステムを自作しています. - alphakai’s tech blog
CAS操作 - Google 検索
CAP定理 - Google 検索
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「CAP定理って証明されたと言われているけど、あれの証明を読んだ人によると、怪しいそうだ。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「肯定的な方向で解決してくれると世界が変わるプログラミング上の問題と言うと、CAP定理を否定するDB実装とか、P=NPを証明できるアルゴリズムの発見とか」 / Twitter
やまささんはTwitterを使っています 「XAトランザクションは見果てぬ夢だったなあ。Googleが「分散トランザクションはスケールしない。巨大システムは冪等性を持つマイクロサービスを組み合わせて作るんじゃ」みたいなことを言い出してから潮目が変わったと思う。」 / Twitter
やまささんはTwitterを使っています 「ProtobufやStubby(gRPC)も基本的にはCORBAの再発明でしかないのだが、トランザクションに関わる機能がごっそり削ぎ落とされていることに気付いてなるほどと感心した思い出」 / Twitter
自作DBMS Advent Calendar 2020 - Adventar

diff

icdiff

Susumu MiwaさんはTwitterを使っています 「diff を side-by-sideで表示してくれる。GNU diff の --suppress-common-line -y --color よりは見やすい / “icdiff: side-by-side highlighted command line diffs” https://t.co/ALkpM2ABtt」 / Twitter
icdiff: side-by-side highlighted command line diffs
jeffkaufman/icdiff: improved colored diff

diff to html (diff2html) program - Stack Overflow
diffの動作原理を知る~どのようにして差分を導き出すのか|gihyo.jp … 技術評論社
文書比較(diff)アルゴリズム
diff - Wikipedia
www.ioplex.com/~miallen/libmba/dl/src/diff.c
diff-pdf - PDFファイルの差分を表示 MOONGIFT
objdumpのdiffをいい感じに取る方法のメモ - ももいろテクノロジー
Linux基本コマンドTips(102):diffコマンド(基本編)――テキストファイルの差分を出力する - @IT
Linux基本コマンドTips(103):diffコマンド(基本編その2)――テキストファイルの差分をcontext形式などで出力する - @IT
Linux基本コマンドTips(104):diffコマンド(応用編)――テキストファイルの差分を出力する - @IT
Linux基本コマンドTips(105):diffコマンド(応用編その2)――テキストファイルの差分を出力する - @IT
Linux基本コマンドTips(107):patchコマンド――テキストファイルに差分を適用する(基本編) - @IT
Linux基本コマンドTips(108):patchコマンド――テキストファイルに差分を適用する(応用編) - @IT
LinuxコマンドTips(109):【patch】コマンド――テキストファイルに差分を適用する(応用編その2) - @IT
第97回 GNU diffからBSD diffへ切り替え:BSD界隈四方山話|gihyo.jp … 技術評論社
CUIで見やすい git コミットグラフ: git-foresta 作った - Qiita
Tree Edit Distanceと自然言語処理への応用 | Preferred Research
JavaScriptでテキストの差分を見るライブラリ - Qiita
linuxのdiffコマンドでファイルごとdiffを取るときに空のファイルを無視する方法 - 誰にも見えないブログ
コーディングスタイルと文章の認識 - in neuro
ドッグさんはTwitterを使っています 「"abc, abc" から "abc, " を削除した時,diff では "bc, a" を削除したと見なされるのは diff のアルゴリズム上仕方ないのかな多分」 / Twitter
HashiCorp Terraformに簡潔な差分フォーマッターと機密データの難読化が加わる
Terraform 0.14 Adds a New Concise Diff Format to Terraform Plans

ビルドシステム

トポロジカルソート

強連結成分

強連結成分分解の意味とアルゴリズム | 高校数学の美しい物語
連結グラフ - Wikipedia
強連結成分分解 | グラフ | Aizu Online Judge
目指せグラフマスター
Microsoft PowerPoint - ad11-12.pptx
Microsoft PowerPoint - 6.6-6.7配布
ALG2012-B.ppt
グラフとネットワーク 第 10回 連結性:モデル化
強連結成分分解 (Tarjan) | libalgo

AWK 本記載の循環検出付き改良版 Tarjan のトポロジカルソート - Tociyuki::Diary
Tarjan のトポロジカルソート - Tociyuki::Diary
Kahn 系統のトポロジカルソート - Tociyuki::Diary
トポロジカルソート - Wikipedia
ネットワーク・トポロジー - Wikipedia
tsort - Wikipedia
有向非巡回グラフ - Wikipedia
二項関係 - Wikipedia
順序集合 - Wikipedia
全順序 - Wikipedia
深さ優先探索 - Wikipedia
Depth-first search - Wikipedia
Spaghetti Source - トポロジカルソート
Topological sort
アルゴリズムと データ構造
第 7 章: グラフ (graph) — WTOPIA v1.0 documentation
隣接行列 - Wikipedia
グラフ理論の基礎 | 高校数学の美しい物語
オイラーグラフの定理とその証明 | 高校数学の美しい物語
隣接行列,接続行列,ラプラシアン行列 | 高校数学の美しい物語
グラフを表すデータ構造(隣接行列と隣接リスト) - 具体例で学ぶ数学
Microsoft PowerPoint - ad11-09.pptx
Microsoft PowerPoint - 数理計画と最適化101210prn.ppt
オイラーグラフとハミルトングラフ
スペクトラルグラフ理論入門
隣接行列 — WTOPIA v1.0 documentation
グラフ構造で位相空間のイメージをつかむ - Qiita

CMake

MSVC

Use CMake Converter — CMake-Converter 1.2 documentation
visual studio - How to support both vcxproj to cmake on a project? - Stack Overflow
cmake-converter · PyPI
cmake_converter Documentation
Visual C++ での CMake プロジェクト | Microsoft Docs
visual-studio vcproj2cmake convert - How to support both vcxproj to cmake on a project? - CODE Q&A Solved

MSBuild

MSBuild

MSBuild (Visual C) | Microsoft Docs
MSBuild (Visual C) の概要 | Microsoft Docs

MSBuild

MSBuild | Microsoft Docs

MSBuild

チュートリアル: MSBuild の使用 | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
MSBuild | Microsoft Docs
チュートリアル: MSBuild プロジェクト ファイルのゼロからの作成 | Microsoft Docs
MSBuild プロパティ | Microsoft Docs
MSBuild 項目 | Microsoft Docs
MSBuild でのビルド ログの取得 | Microsoft Docs
MSBuild でのログ | Microsoft Docs

MSBuild リファレンス | Microsoft Docs

MSBuild リファレンス

MSBuild の条件構造 | Microsoft Docs
MSBuild の予約済みおよび既知のプロパティ | Microsoft Docs
MSBuild プロジェクトの共通項目 | Microsoft Docs
MSBuild .Targets ファイル | Microsoft Docs
MSBuild 既知のアイテム メタデータ | Microsoft Docs
Msdn forums - MSBuild
WPF MSBuild リファレンス | Microsoft Docs
エスケープする特殊文字 | Microsoft Docs

MSBuild プロジェクト ファイル スキーマ リファレンス | Microsoft Docs

MSBuild プロジェクト ファイル スキーマ リファレンス

Choose 要素 (MSBuild) | Microsoft Docs
Import 要素 (MSBuild) | Microsoft Docs
ImportGroup 要素 | Microsoft Docs
Item 要素 (MSBuild) | Microsoft Docs
ItemDefinitionGroup 要素 (MSBuild) | Microsoft Docs
ItemGroup 要素 (MSBuild) | Microsoft Docs
ItemMetadata 要素 (MSBuild) | Microsoft Docs
OnError 要素 (MSBuild) | Microsoft Docs
Otherwise 要素 (MSBuild) | Microsoft Docs
Output 要素 (MSBuild) | Microsoft Docs
Parameter 要素 | Microsoft Docs
ParameterGroup 要素 | Microsoft Docs
Project 要素 (MSBuild) | Microsoft Docs
ProjectExtensions 要素 (MSBuild) | Microsoft Docs
Property 要素 (MSBuild) | Microsoft Docs
PropertyGroup 要素 (MSBuild) | Microsoft Docs
Sdk 要素 (MSBuild) | Microsoft Docs
Target 要素 (MSBuild) | Microsoft Docs
Task 要素 (MSBuild) | Microsoft Docs
TaskBody 要素 (MSBuild) | Microsoft Docs
Task 要素の使用 (MSBuild) | Microsoft Docs
When 要素 (MSBuild) | Microsoft Docs

MSBuild コマンド ライン リファレンス | Microsoft Docs

MSBuild コマンド ライン リファレンス

MSBuild プロジェクトの共通プロパティ | Microsoft Docs
MSBuild での複数のプロジェクトの並行ビルド | Microsoft Docs
Import 要素 (MSBuild) | Microsoft Docs
方法: 複数のプロジェクト ファイルで同じターゲットを使用する | Microsoft Docs
ターゲットのビルド順序 | Microsoft Docs
方法: 最初にビルドするターゲットを指定する | Microsoft Docs
MSBuild ターゲット | Microsoft Docs
Project 要素 (MSBuild) | Microsoft Docs
ToolsVersion 設定のオーバーライド | Microsoft Docs
MSBuild ツールセット (ToolsVersion) | Microsoft Docs
標準ツールセット構成とカスタム ツールセット構成 | Microsoft Docs
MSBuild のマルチターゲットの概要 | Microsoft Docs
MSBuild ターゲット フレームワークおよびターゲット プラットフォーム | Microsoft Docs
MSBuild 応答ファイル | Microsoft Docs
Binary Log · Microsoft/msbuild Wiki

MSBuild タスク リファレンス | Microsoft Docs

Visual C++ に固有の MSBuild タスク

Visual C++ に固有の MSBuild タスク | Microsoft Docs
MSBuild の条件 | Microsoft Docs
Target 要素 (MSBuild) | Microsoft Docs
方法: タスクで発生したエラーを無視する | Microsoft Docs
BscMake タスク | Microsoft Docs
CL タスク | Microsoft Docs
CPPClean タスク | Microsoft Docs
LIB タスク | Microsoft Docs
Link タスク | Microsoft Docs
MIDL タスク | Microsoft Docs
MT タスク | Microsoft Docs
RC タスク | Microsoft Docs
SetEnv タスク | Microsoft Docs
VCMessage タスク | Microsoft Docs
XDCMake タスク | Microsoft Docs
XSD タスク | Microsoft Docs
MSBuild リファレンス | Microsoft Docs
MSBuild タスク | Microsoft Docs
タスクの作成 | Microsoft Docs

ビルド システムの変更 | Microsoft Docs
チュートリアル: MSBuild を使用した Visual C プロジェクトの作成 | Microsoft Docs
方法: MSBuild プロジェクトでビルド イベントを使用して | Microsoft Docs
方法: MSBuild プロジェクトにカスタム ビルド ステップを追加 | Microsoft Docs
方法: カスタム ビルド ツール MSBuild プロジェクトを追加する | Microsoft Docs
方法: プロジェクトのプロパティにカスタム ツールを統合 | Microsoft Docs
方法: ターゲット フレームワークおよびプラットフォームのツールセットを変更 | Microsoft Docs

Visual Studio 2015

MSBuild リファレンス
MSBuild プロジェクト ファイル スキーマ リファレンス
MSBuild Task Reference
MSBuild Conditions
MSBuild Conditional Constructs
MSBuild の予約済みおよび既知のプロパティ
Common MSBuild Project Properties
Common MSBuild Project Items
MSBuild Command-Line Reference
MSBuild .Targets ファイル
MSBuild Well-known Item Metadata
MSBuild Response Files
MSBuild の追加のリソース
WPF MSBuild Reference
Special Characters to Escape

コマンドライン

コマンドラインで C/C++ コードをビルド | Microsoft Docs
C/C++ プログラムのコンパイル | Microsoft Docs
リンク |Microsoft ドキュメント | Microsoft Docs
Visual Studio Devenv コマンド ライン スイッチ | Microsoft Docs
NMAKE リファレンス | Microsoft Docs

GitHub

Microsoft/msbuild: The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
Microsoft/MSBuildSdks: MSBuild project SDKs
Microsoft/MSBuildLocator: An API to locate MSBuild assemblies from an installed Visual Studio location. Use this to ensure that calling the MSBuild API will use the same toolset that a build from Visual Studio or msbuild.exe would.

CMake

CMake
Licensing | CMake
Download | CMake
CMake / CMake · GitLab
Documentation | CMake
CMake - KitwarePublic
CMake FAQ - KitwarePublic
CMake Reference Documentation — CMake 3.10.3 Documentation

Command-Line Tools

cmake(1) — CMake 3.10.3 Documentation
ctest(1) — CMake 3.10.3 Documentation
cpack(1) — CMake 3.10.3 Documentation

Interactive Dialogs

cmake-gui(1) — CMake 3.10.3 Documentation
ccmake(1) — CMake 3.10.3 Documentation

Reference Manuals

cmake-buildsystem(7) — CMake 3.11.1 Documentation
cmake-commands(7) — CMake 3.11.1 Documentation
cmake-compile-features(7) — CMake 3.11.1 Documentation
cmake-developer(7) — CMake 3.11.1 Documentation
cmake-generator-expressions(7) — CMake 3.11.1 Documentation
cmake-generators(7) — CMake 3.11.1 Documentation
cmake-language(7) — CMake 3.11.1 Documentation
cmake-server(7) — CMake 3.11.1 Documentation
cmake-modules(7) — CMake 3.11.1 Documentation
cmake-packages(7) — CMake 3.11.1 Documentation
cmake-policies(7) — CMake 3.11.1 Documentation
cmake-properties(7) — CMake 3.11.1 Documentation
cmake-qt(7) — CMake 3.11.1 Documentation
cmake-toolchains(7) — CMake 3.11.1 Documentation
cmake-variables(7) — CMake 3.11.1 Documentation
cmake-env-variables(7) — CMake 3.11.1 Documentation

CMake/Windows-MSVC-C.cmake at master · Kitware/CMake

Learning CMake

Learning CMake
Learning CMake
Learning CMake

Ninja

Ninja — CMake 3.11.1 Documentation
Building with CMake, Ninja and Clang on Windows - Stack Overflow
CMakeでNinja向けファイルを生成する - なんとな~くしあわせ?の日記
10.2.3で CMake with Ninjaを使う - Community Blogs - Embarcadero Community
cmakeゆとり用 - 藻ログ

blog

CMakeを使ってみた(1)経緯と簡単なアプリケーション - wagavulin's blog
CMakeを使ってみた(2)もう少しまともなプロジェクト - wagavulin's blog
MakefileをCMakeLists.txtに置き換える - Narrow Escape
CMakeとProtocol BuffersとVisual Studio 2015 – sgryjp.log
CMakeを使ってOpenCVを楽にセットアップする方法 (for Visual Studio 2010) - 意識の高いLISPマシン
Qt4のプロジェクトを CMakeLists.txt (Cmake) で作る - 座敷牢日誌
Cmakeの使い方 – インストールと実行 | Sumire Lab Docs
CMakeの基礎とTheolizerの組み込み方 | Theolizer®
参°ぼっくす: cmakeの使い方
CMake の練習
モジュールセットファイルの構文
ビルドシステムとしてCMakeを導入する - FPGA開発日記
cmake チートシート - Qoosky
cmake での shared library/static library のテストプロジェクト
CMake を利用したライブラリの作成 - def yasuharu519(self):
CMake に入門&対処事例
超初心者の Visual C++ , CMake とともに。 – o6asan's soliloquy-part2
Makefileなんて書いてられない・・・CMakeでいってみる - alpaca2unix blog
CMakeで生成されたファイルを一気に削除 - Ry0 Note
CMake - CMakeLists.txtで用いられるFIND_PACKAGEについて(63275)|teratail
出力ディレクトリを指定する - Faith and Brave - C++で遊ぼう
CMakeによって生成されるVisual C++プロジェクトの構成 - Faith and Brave - C++で遊ぼう
CMakeで設定されているすべての変数を出力する - 座敷牢日誌
CMake と SWIG を使って C++ と Python と ROOT に対応させる - 宇宙線実験の覚え書き
Android C++開発 [1] : CMakeプロジェクトの作成 - つくるの大好き。
CMakeをSchemeにする -- S式のtokenize - .mjtの日記復帰計画
cmake tutorialその1:プロジェクトバージョン設定、C++規格指定、out-of-sourceビルド - 誰にも見えないブログ
cmake tutorialその2:ライブラリ、テスト、Usage Requierment - 誰にも見えないブログ
cmake-tuorialその3:実行環境の確認 - 誰にも見えないブログ
cmake tuorialその4:ファイル生成,インストーラーのビルド等 - 誰にも見えないブログ
cmakeチュートリアルその5 - 誰にも見えないブログ
cmake tutorialその6 - 誰にも見えないブログ
自作Cコンパイラのビルド基盤をMakeからCMakeに移行してます(途中) - 誰にも見えないブログ
cmakeでinstallしたtargetを削除する方法 - 誰にも見えないブログ
cmake tutorial その7(最終回):EXPORT,find_package()など - 誰にも見えないブログ

GitHub

How to write CMakeLists
HelloWorld for cmake
ijt/cmakelists_parsing: Python module for parsing CMakeLists.txt files
CMake 3.8.0以降のCTestの文字化け対策 · Issue #37 · yossi-tahara/Theolizer
CMakeをより便利にするライブラリ "CMakeSupports" がオープンソースになりました
flokart-world/cmake-supports: A collection of utilities for creating projects with CMake scripts.
Effective Modern CMake

Qiita

CMake Advent Calendar 2014 - Qiita
CMakeLists.txt から始めよう - Qiita
CMake言語の基本構造 - Qiita
CMakeの構文調べてみた - Qiita
CMake: 条件分岐 - Qiita
CMake: コメント - Qiita
ごく簡単なcmakeの使い方 - Qiita
CMakeで大きめのプロジェクトを構成するためのメモ - Qiita
CMake: ポリシー - Qiita
CMake: 便利なコマンド・変数 - Qiita
CMake の情報と 3.1.0 での変更点 - Qiita
CMake+Ninja 使ってるヤツは直ちに CMake-3.9 に乗り換えろ - Qiita
CMakeの使い方(その1) - Qiita
CMakeの使い方(その2) - Qiita
たのしい組み込みCMake - Qiita
CMake: target_link_libraries(PUBLIC/PRIVATE/INTERFACE) の実践的な解説 - Qiita
CMakeスクリプトを作成する際のガイドライン - Qiita
CMakeでマルチプラットフォーム開発 (ラズパイ用クロスコンパイル含む) - Qiita

Wikipedia

CMake - Wikipedia
CMake - Wikipedia

Twitter

渋川よしきさんのツイート: "C++で開発する時にまずやったのは、CMakeListsを自動生成もしてくれるパッケージマネージャをGoで作ることだった。"
渋川よしきさんのツイート: "C/C++のMakeっぽいものを作ろうとする人はかなり環境を限定しないとムリだよね。CMakeはこの世の闇をすべてその身に宿すことで世界に仮りそめの秩序をもたらす存在(modulesフォルダ以下を眺めながら) https://t.co/Wpv4tZBNbK"
渋川よしきさんのツイート: "CMakeのレイヤーはそのままで、CMakeラッパーというのが最近よく観る流れ。"
mitsutaka.takedaさんはTwitterを使っています: "https://t.co/PCM6K74XHy https://t.co/mRUQvdD8ar cmakeビルド時にinclude-what-you-useでチェックすればOK。直すのも自動化用のスクリプトがあるあらしいが未確認 https:
ロックフリーのkumagiさんのツイート: ".cファイルを新たに追加した時に漏れ無くビルドシステムに追加するようにする方法、cmakeならGLOBでゴリッとできるやんと思ったけどcmake的にGLOBは非推奨らしく(cmake初回時にしか実行しないから?)結局大抵の真面目なプロジェクトはGLOB使わずいちいちファイル名列挙しておりこの世に神はいない。"
Kazuho Okuさんのツイート: "CMakeは色んな環境で動いて色んなビルドツール用のファイルを生成できるというのが売りであって、あとは見るべきところないと思ってる"
Makoto Kato ︎︎さんのツイート: "*NIX環境で使われるautotoolsのほうが技術的負債だよ。Windows本体ののビルド環境はコンパイラまでレポジトリに入ってるからね。"
Ryou Ezoeさんのツイート: "autotoolsの競合はだいたい失敗している。CMakeとかひどい有様。いまMesonが流行りだがどうなることやら。… "
Makoto Kato ︎︎さんのツイート: "結局ChromeもFirefoxもコンパイラをダウンロードするってのが一番正しいということにたどりついたわけだし、まぁ多様性がありすぎるってのは変なバグを発生させる原因だと思うんだよね。。。"
Ryou Ezoeさんのツイート: "OSやブラウザーのような大規模なソフトウェアにはできるが、一般にはやりづらい。… "
Makoto Kato ︎︎さんのツイート: "Firefoxがビルドできないという話をIRCとかで見るたびに、どこから持ってきたのかわからない変なオプション使ってたり、タイポあったりするので、自動でできる限り設定されるべきなんだよね、いろんなデフォルトビルド設定は"
FadisさんはTwitterを使っています 「CMake、地道に便利機能が追加されていってて「RHEL7|CentOS7に入っているCMake 2.8(2013年時点の最新)でも動くようにせよ」という要件が万物を台無しにしがち」 / Twitter
中村さんはTwitterを使っています 「CMakeは共有できるベストプラクティス集みたいなのがないから、大々的に使えない。海外の記事のリンクとか渡しても困るだろうし。(bazelはもっと情報ないきもするが)」 / Twitter
Katsuhiro SuzukiさんはTwitterを使っています 「cmakeはすごく強力なんだけど、動かなかったときにさっぱり意味が分からなくて、デバッグが辛い。 autoconf/automakeは後ろのシェルスクリプトやMakefileが透けて見える(ただしm4に手を出し始めると地獄)、cmakeは癖が強すぎて「俺は何をしてるんだろうか……??」という気分になる。」 / Twitter
てらモス♋️さんはTwitterを使っています 「cmakeは各プロジェクトが独立にそのプロジェクトに必要な外部ライブラリを見つける為のFindXXX.cmakeを管理しているという絶望的なクソ設計を誘導する面が最悪だというお気持ちを表明しておきます(´・ω・`)」 / Twitter
✧*。ヾ(。ᐳ﹏ᐸ。)ノ゙。*✧さんはTwitterを使っています 「何でも CMake にやらせようとした、でも面倒になったのか途中から Python とか呼び出しはじめて、ソースの依存関係が壊れてたり out-of-source build できなくされてたりするプロジェクトに遭遇したとか」 / Twitter
てらモス♋️さんはTwitterを使っています 「cmakeは各プロジェクトが独立にそのプロジェクトに必要な外部ライブラリを見つける為のFindXXX.cmakeを管理しているという絶望的なクソ設計を誘導する面が最悪だというお気持ちを表明しておきます(´・ω・`)」 / Twitter

CMake-3.11.0
cmake-converter 0.0.2 : Python Package Index
peg-cmake - npm
Policies/CMake and Source Compatibility - KDE Community Wiki
cmake の使い方 - PukiWiki
cmakeコマンド構文の質問 [build-process] | CODE Q&A [日本語]
初めてのOpenCV開発 ― CMakeを使ったOpenCVのカスタマイズ【OpenCV 3.1.0】 - Build Insider
CMake チュートリアル — Cmake-Tutorial
Learning CMake
CMakeの使い方.pdf
CMake を使ったクロスプラットフォーム開発環境 : LINE Engineering Blog
クイックCMakeチュートリアル - 公式ヘルプ | CLion
libressl cmake - Google 検索

Ninja

本の虫: 新しいビルドシステム、ニンジャ
Big Sky :: 高速なビルドシステム「ninja」
Linux kernelをninjaでビルドする - Gentoo metalog
kati とか依存関係とか strace とか - 200MB-300MBのbuild.ninjaファイル
ninja-build/ninja: a small build system with a focus on speed
Ninja, a small build system with a focus on speed
The Ninja build system
ninja-build/ninja-build.github.io: github pages
FAQ · ninja-build/ninja Wiki
build.ninja
michaelforney/samurai: ninja-compatible build tool written in C
本の虫: C++標準化委員会の10月の興味深い文書
shinichiro hamajiさんのツイート: "アンドロのヌルビルドがまだ遅いぽいの悲しい。3年前にねじ込めてれば、一回3秒ほどだったか、トータルでは結構な時短だった気がするんだよなあ https://t.co/LJwEeotrl8 https://t.co/md5k1YDMMj… "
mayahさんのツイート: "ninja 速くするアイデアは色々あるけど大体 nico に ninja はシンプルなままでいたいと言われて却下されるんだよな… ninja fork の機運か?"
Introduce binary manifest format by shinh · Pull Request #1093 · ninja-build/ninja
Add a flag to remain persistent. by jmgao · Pull Request #1389 · ninja-build/ninja
shinichiro hamajiさんのツイート: "本題関係ないけど、今はninjaが1.5GBあるのか…katiやってたときは500MBくらいだったぽい [generated by kati, 412MB] [generated by soong, 1078MB]… "
tzikさんのツイート: "ninjaの並列化proposalが出てる。https://t.co/ZggyThRvXk 。マルチスレッドなプログラムは一般にforkと相性悪いけど、.protoがあるし、forkする部分を別プロセスに分離してるのかな。"
Parallelized Ninja for faster Android builds - Google グループ
tzikさんのツイート: "並列化してるのはhttps://t.co/88NHGe7UXmのパースとかグラフ生成とかの部分で、コマンドの実行時にはスレッドプールはいらなそう。現状joinせずにそのままforkするフェイズに入っているけど、スレッドたちをjoinしさえすればよさげ。"
cmake経由でmake実行時に-jオプションを渡す(未解決) - 誰にも見えないブログ
Ninjaの速さを体感するともはやMakeには戻れない - Qiita
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaが話題になっている。やることはありきたりだが、細かい最適化を積み重ねて早くしている。 https://t.co/aWEtQ9gokP」 / Twitter
Tech Notes: The Success and Failure of Ninja
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaは常駐を考えずに設計された。常駐する理由はキャッシュのためだ。でもカーネルはすでにファイルをキャッシュしているから不要だろ。 https://t.co/aWEtQ9gokP」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaは依存関係のグラフ構築だけをやる。ユーザー向けの機能は別のフロントエンドにまかせる。この仕組みはうまく言った。 https://t.co/aWEtQ9gokP」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そんなのは誰でも考えつくがなぜninja以外のビルドシステムはうまくやれていないのか。厳密に分離するのは強い意志が必要だからだろう。みんな軟弱な思想で混ぜてしまう。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Windowsへの移植が大変だった。ninjaはカーネルがファイル情報をキャッシュしてくれて速いということを当てにしていたのだがWindowsはぽんこつにもそうではない。 https://t.co/aWEtQ9gokP」 / Twitter
ミローネ言語の開発用にビルドツールninjaを使っている感想など - ベインのブログ

kati

DSan

Dependency Sanitizer - Google ドキュメント
Diff - f0a465c2cb5921762d7d17d65cd7352d0f64c261^1..f0a465c2cb5921762d7d17d65cd7352d0f64c261 - platform/build - Git at Google
shinichiro hamajiさんのツイート: "動機も似てて、kati+ninja+gomaで並列度上げてビルドするとはじめて発生するバグとかが出てきて、調べてみると依存関係壊れてるだけで俺悪くないやんけ、てことがたまにあったので根本的に解決したくなったっていう話"
shinichiro hamajiさんのツイート: "あとmakeは普通に書くと依存関係を適切に設定するのを絶対に間違えてしまうようなツールなので、Androidみたいに宣言的に記述するDSLにして定型パターンは間違えにくいようにするのは理に適っていると思う……がそのトレードオフとしてあの遅さを得たわけだった"

kati について - 兼雑記
kati とか依存関係とか strace とか - システムプログラミングぽい最適化
SetProcessAffinityMask 関数
はじめてのにき(2018-02-22)
google/kati: An experimental GNU make clone
StringPiece というライブラリの話 - 兼雑記
C++1z 文字配列をコピーせず参照してbasic_stringライクな操作をするstring_view - Faith and Brave - C++で遊ぼう
はじめてのにき(2018-08-17)
SetAffinityForMultiThread before execve. by yoshisatoyanagisawa · Pull Request #154 · google/kati
はじめてのにき(2018-10-31)
Improve regen performance by setting cpu affinity by danw · Pull Request #156 · google/kati
ラムダ式とMakefileマクロ - Qiita
日記 (2020 年 2 月)

autoconf

Shiro KawaiさんはTwitterを使っています 「autoconfは、開発者がrepoを抱えててtarballで配布→各ユーザが手元でコンパイルするが環境がバラバラ、という条件の下でうまく設計されたシステムだけど、repoが公開されてて誰でも引っ張ってこれる/コンパイルする人の環境をある程度想定できる、という時代には合わないかもなあ」 / Twitter
Kenji RikitakeさんはTwitterを使っています 「本件、基本的な方針として * 今までgitからのbuildだとautoconfしてconfigureを都度作っていたのをやめて、tarball同様に、OTPチームの作ったconfigureを使用するようにする ということだそうです。 #erlang」 / Twitter
Shiro KawaiさんはTwitterを使っています 「考えてみれば、GaucheをrepoからコンパイルするにはGaucheが必要なんだから、そしたらGauche自身のconfigureもGaucheで書けるじゃん、ということに気づいてしまった。でもbdwgcやatomic_opsでautoconf使うから無理に切り替えることないけど。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「正確には、autoconf相当のものをGaucheで書ける、だな。configure自体はGaucheの無い環境でも走らないとならないので。」 / Twitter

infoQ

BazelがAndroidオープンソースプロジェクトの新しいビルドシステムになる
Npm 7がワークスペースと決定論的ビルドをサポートで一般提供

make cmake convert - Google 検索
GENTOO INSTALL 週間さんはTwitterを使っています 「コンテナ時代の自動ビルドツール。各種言語と各種CIの橋渡しになるらしい。ビルド用のMakefile、シェルスクリプト、Dockerfileなどの代替。ほう / “GitHub - vladaionescu/earthly: Build automation for the container era” https://t.co/WwRQmgkQ4l」 / Twitter
vladaionescu/earthly: Build automation for the container era
Kazuho OkuさんはTwitterを使っています 「実際のところ、gmakeに足りないのって ・依存チェックをもっと書きやすくする (pkgconf およびテストプログラム) ・前回の設定を覚えておいて、次回のmakeで使える くらいの気がするんだよねぇ。 ついでにいうと、CMakeみたくCLionとかでプロジェクトファイルとして使えると良い(ハードル上げる)」 / Twitter
Rui UeyamaさんはTwitterを使っています 「しかしこれconfigureとかlibtoolが逆に移植をめんどくさくしている感じがする。2020年現在はもう変な野良Unixみたいなのほとんど存在しないわけだし、こういうツールは意味あるんだろうかと思ってしまう。」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「make はコマンド変わった時にリビルドする機能が追加されるとだいぶ良くなる気がしてる」 / Twitter
sccache - Google 検索
ドッグさんはTwitterを使っています 「パッケージのコンパイル時 feature flag が増えて特定の組み合わせでしかテストしてない時,他の組み合わせでも最低限コンパイルは通ることぐらいは確認してくれる機能が cargo check あたりの拡張でほしいな」 / Twitter
Kazuho's Weblog: komake: Make の -j オプションに潜む罠とその解決策
NixでZenn CLIをビルドする
平岡 拓也さんはTwitterを使っています 「ライブラリの依存解決とか、より良い解決方法を持っている他言語エコシステムとかに触れたりしないと、問題を認識出来ない感はあると思う(´・_・`) Rustのcargoとかは相当良いけど、それを知るまでは僕はライブラリがすぐに動かない事は問題ではあるにせよ、当たり前だと思っていた。」 / Twitter
MakeをPythonのタスクランナーとして使う | Honai's Blog
だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellコードに加えた変更がビルド時間にどのような影響があるか判定するツールが欲しい。10回ぐらいビルドを走らせて平均と分散を計算するみたいなやつ」 / Twitter

Git

OSDN

「Git 2.9」リリース、「git diff」や「git log」での表示変更などが行われる | OSDN Magazine
「Git 2.8」リリース、「CRLF」改行コードへの対応強化や細かい機能追加などを含む | OSDN Magazine
「Git 2.7」リリース、多数の機能強化などが行われる | OSDN Magazine
「Git 2.6」リリース | OSDN Magazine
「Git 2.5」がリリース | OSDN Magazine
「Git 2.3.3」リリース、バグ修正が中心のメンテナンスリリース | OSDN Magazine
「Git 2.2」リリース、細かな機能強化や性能改善が行われる | OSDN Magazine
ワークフローを強化した「Git 2.1」がリリース | OSDN Magazine
「Git 2.0」リリース | OSDN Magazine
バグ修正が中心のリリースとなる「Git 1.9.3」が公開される | OSDN Magazine
1.9系のメンテナンスリリース「Git 1.9.1」がリリース | OSDN Magazine
分散バージョン管理システム「Git 1.9」が公開 | OSDN Magazine
「Git 1.8.5」がリリース | OSDN Magazine
分散バージョン管理システム「Git 1.8.3」がリリース | OSDN Magazine

xdelta - Wikipedia
こっそり始めるGit/GitHub超入門 - @IT
Git
git/git: Git Source Code Mirror - This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.
libgit2
libgit2/libgit2: The Library
渋川よしきさんのツイート: "git gcが内部でバイナリサイズのサイズ縮小で使っているアルゴリズムはこれかな?これをクリーンルーム実装しない限り、gitを非GPL v2にするのは難しいのでは。v3にしてくれないかねぇ。 https://t.co/2P1PCsxKV1"
NOKUBI Takatsugu野首貴嗣さんのツイート: "今のGnuPGはgpg-agentと通信すれば任意のアプリケーションから使えるようになっているので昔よりは扱いやすいはず"
アトラシアン、Gitクライアント「SourceTree for Windows 2.0」リリース。UI改善、高速化、Git Virtual File Systemサポートなど - Publickey
Introduction · Tig - Text-mode interface for Git
jonas/tig: Text-mode interface for git
.gitについて - Qiita
渋川よしきさんのツイート: "大学でgitを教えるかどうか、議論があるけど、あれのオブジェクトモデルはOSのファイルシステムをユーザランドで実現して、新から旧のスナップショットへのリンクを持っただけの素直な実装なので、Goならわかるシステムプログラミングを授業で扱ってくれたら一挙両得でお得ですよね #ステマ"
ブラウザ上で完結するGit組み込みエディタ作っている - mizchi's blog
ファイル更新に耐性のあるテキストタグ手法を考える - .mjtの日記復帰計画
高梨陣平さんのツイート: "Gitのメインな機能のみを500行のPythonで実装して学ぶとても便利な記事。 さらにHNのほうではGitの中身を学ぶための参考情報がこれでもかと紹介されている。Git以外の似た記事のまとめも https://t.co/ZbbGpYR6AT… https://t.co/tIEj1aX50t"
danistefanovic/build-your-own-x: 🤓 Build your own (insert technology here)
Hacker News 100さんのツイート: "Write Yourself a Git (2018) https://t.co/G0XX7ql6iV (https://t.co/y0Hyhl4vxU)"
Write yourself a Git!
Write yourself a Git (2018) | Hacker News
GitHubのプッシュ障害をほぼゼロにしたProject Cyclop

libarchive

ZIP

ZIP (ファイルフォーマット) - Wikipedia
日本語を含むZIPファイルを文字化けせず解凍する方法 - Qiita
gaborcsardi/zip: Platform independent zip compression via miniz
ZIPを少しセキュアに暗号化するツールを作った - Qiita
とみながたけひろさんのツイート: "事情によりzipファイルの構造を調べなおしているんだけど、zipファイルに記録されるタイムスタンプって特にタイムゾーンとかの定義がないのね。2バイトで精度2秒というところからするとFATと同じくローカルタイムでいいのかな"
とみながたけひろさんのツイート: "なーんも考えずにzipファイルで1時間ごとのバックアップを取る、みたいなことをしていた場合、夏時間のある国や地域ではタイムスタンプが大変なことになるんだな"
りなたむ || RYOTA NAKAMURAさんのツイート: "暗号化ZIP終焉のお知らせ。 15文字程度のパスワードならRTX2080i 4基で15時間程度で突破されるとのこと。 AzureのNC24rがTesla K80 4基構成で¥443.52/時間なので、単純計算で8000円程度かければ解読できちゃうみたいですねぇ・・・… https://t.co/fpV4SRUtnZ"
hashcatさんのツイート: "Support for PKZIP Master Key added to #hashcat with an insane guessing rate of 22.7 ZettaHash/s on a single RTX 2080Ti. All passwords up to length 15 in less than 15 hours with only 4 GPUs! Excellent contribution from @s3inlc and @EU_ScienceHub https://t.co/kVUDBrQWM3… https://t.co/9PNj3wC5Ux"
ZIP形式のままでもっと圧縮する - fujieda's tech blog
「非再帰的ZIP爆弾」は10MBのファイルが281TBに膨らむ - GIGAZINE
霞ヶ関でパスワード付きzipファイルを廃止へ 平井デジタル相 - ITmedia NEWS

zlib-ng

nikqさんはTwitterを使っています 「https://t.co/zVqd7rhVBY zlibがいろいろ更新がされなさ過ぎて次世代リポができてた」 / Twitter
zlib-ng/zlib-ng: zlib replacement with optimizations for "next generation" systems.
nikqさんはTwitterを使っています 「zlibよりも最新のCMakeフレンドリに変更されている」 / Twitter
Rui UeyamaさんはTwitterを使っています 「zlibを使ったデータ圧縮をマルチスレッド化するというの、実は普通に可能らしい。ので実装してみた。 https://t.co/r6HcZB3EGG」 / Twitter
mold/compress.cc at main · rui314/mold
Rui UeyamaさんはTwitterを使っています 「実はrawのzlib compressedなデータはそのまま連結するだけでマージできるので、小分けして別々に圧縮してから連結して、ヘッダとトレイラをつければ完成。境目で辞書がリセットされちゃうので、圧縮率がちょっとだけ犠牲になるけど。」 / Twitter

tar

ドッグさんはTwitterを使っています 「macOS の tar(bsdtar)よりも Python の tarfile ライブラリのほうが圧縮率が10倍以上良かった話.理由は,後者は対象ファイル群をソートしてアーカイブしてから圧縮するため.圧縮するファイル群が時系列であまり変化しない内容だったのでソートすると効率的に圧縮できた https://t.co/fkHzyR4EpD」 / Twitter
Why are tar.xz files 15x smaller when using Python's tar library compared to macOS tar? - Super User
ドッグさんはTwitterを使っています 「GNU tar なら tar --sort=name でできるのか.他にも --sort=inode も指定できる.こっちは場合によって disk の seek の回数が減ってアーカイブの速度が上がるっぽい」 / Twitter
Rui UeyamaさんはTwitterを使っています 「tarファイルを出力するコード、人生で何回も書いている気がする。歴史が古すぎていろんな亜種があるんだけど、とりあえず読めればいい程度のものを書き出すのは実は簡単。 https://t.co/8GYMV54xd6」 / Twitter
mold/tar.cc at main · rui314/mold
ぬるぽへさんはTwitterを使っています 「あと、posixではtarじゃなくてほんとはpaxコマンドを使うんだよっていう小ネタのためだけに存在すると思っていたpaxが、tarの99文字以上ファイル名拡張とかのフォーマットの方としてはちゃんと働いていることを知った https://t.co/YvpdCj2Qzr (gnu拡張もある」 / Twitter
pax

LZMA

FadisさんはTwitterを使っています 「LZMAベースの圧縮形式には圧縮は死ぬ程遅いけど展開は早いっていう特徴があって、殆どの人は圧縮頻度に対して展開頻度が極めて高くなるカーネルやinitramfsの圧縮においてはこの特徴が強すぎる」 / Twitter
FadisさんはTwitterを使っています 「7-Zipのオリジナルの開発者がLinux版を作り始めたらしい。LZMAを用いる可逆圧縮アーカイバ7-Zipには従来Windows向けの実装しか無かったため、7-Zipで圧縮したアーカイブを送ってくるWindows野郎に対応するために*NIX畑ではp7zipが別の開発者によって実装されていた。 https://t.co/6SwN0GCguR」 / Twitter
Upstream 7-Zip Adds Preliminary Linux Support - Phoronix

bzip2

FadisさんはTwitterを使っています 「Linuxカーネルからbzip2によるinitramfsの圧縮を削除する提案がなされている。bzip2による圧縮はgzipについで古くからサポートされてきたが、xzやzstdといった近年サポートされた圧縮形式と比較して展開が遅い割に圧縮率が低く、誰も選ばない形式になっていた https://t.co/kSDW8iiFcJ」 / Twitter
Patch Proposed For Removing BZIP2 Support From The Linux Kernel - Phoronix

シリアライザ・木構造

FUJI GoroさんはTwitterを使っています 「CBORがMessagePackに対して敵対的フォークを行ったことを批判しているエントリ。IETFの優位性を示したかったのではないかと。さらに、仕様的にもCBORはMessagePackと比較して不必要なまでに複雑になっていると。 / “diziet | MessagePack vs CBOR (RFC7049)” https://t.co/WTlJh2Bnnm」 / Twitter
diziet | MessagePack vs CBOR (RFC7049)
成瀬さんはTwitterを使っています 「XMLはattributeが余計だったんだと思っている。あれがあるせいでtraverseが面倒になってるよね」 / Twitter
Hiroshi NakamuraさんはTwitterを使っています 「@nalsh Namespaceですよ。木と木を混ぜるの大変。でも文書の木の管理としては未だに代替がないような。フォーマット定義に使うのがおかしかった。」 / Twitter
_ko1さんはTwitterを使っています 「XML Schema みたいな木構造の定義(文法)って良いと思うけどそんなに流行らなかったというか、結局必要で JSON Schema とかでてきていると思うけど、なんか決定版つくんないのかな(結局小さくまとまらずにBNF?)」 / Twitter
_ko1さんはTwitterを使っています 「@oza_x86 ASN.1 じゃなくて XML じゃなくて protobuf なのは、Google への信頼感でしょうか」 / Twitter
ozaさんはTwitterを使っています 「@_ko1 観測してる感じですと(いわゆるマイクロサービス化などの文脈で) 性能が求められる場面で golang と一緒に grpc が使われるようになって,一緒に protobuf も使われるよつになってきてるという風に見えてます この2-3年でエコシステムが盛り上がったのかなと(めっちゃ主観です」 / Twitter
Non AMP SXG による Prefetch 対応と AMP 提供の停止 | blog.jxck.io
本サイトの AMP 提供の停止とここまでの振り返り | blog.jxck.io
Firefoxは危険なJavaScriptに対応しない - Qiita
Protobuf definition best practices | by Ammar Khaku | Medium

技術評論社

2018年12月26日 Fedora,圧縮ファイルフォーマット「zchunk」を実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
2019年5月31日 Fedora,RPMパッケージの圧縮アルゴリズムをxzからZstdに変更へ:Linux Daily Topics|gihyo.jp … 技術評論社
2020年4月28日 バイナリパッケージの信頼性と再現性を検証するArch Linuxの独自プロジェクト「Rebuilder」:Linux Daily Topics|gihyo.jp … 技術評論社
2021年1月15日 Flatpak 1.10がリリース,新たなリポジトリフォーマットを実装:Linux Daily Topics|gihyo.jp … 技術評論社
第654回 snapパッケージング入門:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第656回 EPUBリーダーをsnapパッケージ化する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第658回 自作のsnapパッケージをコンテナ化する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第659回 systemd-nspawn+pbuliderでパッケージのビルド環境を整える:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第660回 自作のsnapパッケージをSnap Storeに公開する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

GitHub - libarchive/libarchive: Multi-format archive and compression library
libarchive - C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats @ GitHub
libarchive-3.2.0
LIBARCHIVE-FORMATS(5) - File Formats - YOS OPENSONAR
Dropbox、改良型Brotliを使用して同期パフォーマンスを改善
Rockridgeさんのツイート: "MozillaがFirefoxユーザーに対し送信するスニペットのデータ容量を削減した話。画像の最適化はさほど効果がなかった一方、画像のリンクへの置き換えやGZipからBrotliへの切り替えは大きな効果があったという。 / “U…” https://t.co/JTa932baYW"
圧縮ファイルの展開速度を最大1万倍超高速化するデータ構造を広島大が考案 | マイナビニュース
Huffman Coding with Gap Arrays for GPU Acceleration | 49th International Conference on Parallel Processing - ICPP
Facebookの圧縮アルゴリズムZstandard 1.5におけるパフォーマンス向上

Nix Package Manager

井山梃子歴史館さんはTwitterを使っています 「コンピュータ科学の銀の弾丸だ https://t.co/CMU7VaSexG」 / Twitter
NixOS - Nix 2.3.10 manual
井山梃子歴史館さんはTwitterを使っています 「@mt_tilde Indirection」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Nix使ってRustバイナリビルドするやつできた(依存関係キャッシュもしてくれる) https://t.co/39r3zpWiFh」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「バージョン指定もできるようにした https://t.co/4PK7FoIbL6」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「いろいろビルドしてみるか」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「Nixのマニュアル何言ってるか分かんないし果てには「自然演繹で定義するね!」って言いだしててキレそう」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「NixOS - Nix Pills https://t.co/BU1eAXbwvq propagatedBuildInputsってそういう意味だったんだ…」 / Twitter
NixOS - Nix Pills
井山梃子歴史館さんはTwitterを使っています 「NixOS - Nixpkgs 20.09 manual https://t.co/FpLJIB1Je4 これで読むの3回目ぐらいだけどそれでもいまいち分からんな」 / Twitter
NixOS - Nixpkgs 20.09 manual
井山梃子歴史館さんはTwitterを使っています 「depsHostHostが推奨されない理由が分からんな」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「buildInputsでいっか!w」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「default.nixを書いたのですが,このパッケージだけ含むシェルってどう作るんだ」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「依存関係を追加しても既存のはキャッシュしてくれてうれしい crate2nix最高」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「tracing-error/color-eyreで実質バックトレース」 / Twitter
2021年6月29日 Is NixOS Reproducible? ―NixOS,最小イメージのビルドを100%再現可能に:Linux Daily Topics|gihyo.jp … 技術評論社

JSON

extensible data notation

edn(extensible data notation)を使う - Qiita
edn-format/edn: Extensible Data Notation
clojure.edn - Clojure v1.10.2 API documentation
GP Tech Memo: Clojureのプリンタ/リーダとedn
read-string - clojure.edn | ClojureDocs - Community-Powered Clojure Documentation and Examples
read - clojure.edn | ClojureDocs - Community-Powered Clojure Documentation and Examples
Learn edn in Y Minutes
EDNのパーズと構築 (Gauche ユーザリファレンス)
いまどきのClojureのはじめかた - 紙箱
Clojure - Deps and CLI Guide

JSON

Standard ECMA-404
Standard ECMA-404-archive
Final draft ECMA-404 2nd edition
RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format
JSON
JSON仕様(ECMA-404) を眺めてみる | Money Forward Engineers' Blog
JSON、ECMA標準となる。仕様文書「ECMA-404」が公開 - Publickey
事実上最後のJSON仕様「RFC 8259」と「ECMA-404 2nd Editon」公開。UTF-8エンコード必須に - Publickey
JSON: The JavaScript subset that isn't — Timeless
Subsume JSON
gibson042/ecma262-proposal-json-superset: Proposal to make all JSON text valid ECMA-262
非エンジニアに贈る「具体例でさらっと学ぶJSON」 | Developers.IO
JSONの歴史 - Speaker Deck
個人的なシリアライザの特徴表(作成中)
OSSタダ乗りおじさんさんはTwitterを使っています 「JSに限った話をすると JavaScript においてはJSONで通信する価値が高すぎて class で宣言されたものはシリアライザ・デシリアライザが必要になってその実装にバグが潜むことが多く、冷静に考えるとそもそもいらないことが多いので思考停止でまず class で宣言するのをやめろと言ってる」 / Twitter
厳格なJSONパーザーの作り方 - RoundWide Systems
seriot.ch - Parsing JSON is a Minefield 💣
nst/JSONTestSuite: A comprehensive test suite for RFC 8259 compliant JSON parsers

JSON Merge Patch

shinichiro hamajiさんのツイート: "設定にJSONを使いはじめた https://t.co/QFepaqFIJB 今のところのモチベーションはバックエンドの管理などにしようかと。YAML嫌いTOMLそれほど使われてない、ということでmenohでも使われてるJSONになった。JSON merge patch というのが RFC にもなってて素敵だと気付いた https://t.co/QvHZB2nErt"
Declare capability of backends by JSON configs by shinh · Pull Request #281 · pfnet-research/chainer-compiler
RFC 7396 - JSON Merge Patch
ゆきさんはTwitterを使っています: 「Range Patch https://t.co/tuwPJ0bw5a JSON構造に対して直接パッチリクエスト送れる感じ? #yuki_id」 / Twitter
draft-toomim-httpbis-range-patch-00 - Range Patch
設定ファイル(JSON)のdiffをjson patchでやってみようという試み - podhmo's diary
RFC 7386: JSON Merge Patch - 一汁三菜
JSONマージ・パッチによるJSONドキュメントの更新
RFC 7386 - JSON Merge Patch 日本語訳
JSON Merge Patch

JSON Lines

jqコマンドでJSONをJSONL(JSON Lines)に変換する - rochefort's blog
JBoss EAP 7でJSON Lines形式のログをFluentdに渡す – ナッツウェル 技術研究室
Centralized Logging for WildFly with the ELK Stack · WildFly
JSON(Array形式でフラットな)をMarkdownのテーブルに変換
JSON Lines
JSON Lines Examples
JSON Lines
raphaelstolt/json-lines: Library for the JSON Lines text file format.
JSON streaming - Wikipedia
json-lines 0.3.1 : Python Package Index
jsonlines — jsonlines documentation
json-lines
JSON Lines | Hacker News
Sho ShimauchiさんはTwitterを使っています 「CLIでのjsonのパースにjqを使うのは定番だが、 @aodag が python -m json.tool でもパースできるということを教えてくれた。jq入れなくていいので状況によってはかなり便利だな。しかも3.8からはjsonlに対応している https://t.co/HSuoDeVkN9」 / Twitter
json --- JSON エンコーダおよびデコーダ — Python 3.8.5 ドキュメント
jsonl - Google 検索
qwerty2501さんはTwitterを使っています 「正直json linesもやや助長ではあるので、ヘッダーに型情報をもったcsvみたいなのが欲しいかも知れない」 / Twitter

JSON-RPC

JSON-RPC
JSON-RPC 2.0 Specification
RFC 7807 - Problem Details for HTTP APIs
JSON-RPC - Wikipedia
JSON-RPC - Wikipedia
JSON-RPCについて
JSON-RPC over HTTPなサーバを作る - Qiita
JSON-RPCって何? - Qiita
JSON-RPCというWebAPI設計に役立ち、、そうなそうでもないかもな規格 - Qiita
Go で始める JSON-RPC 入門 – osamingo – Medium
REST APIに消耗したらJSON RPCを試そう - タオルケット体操
意外と便利なJSON RPC - TechTalkManiacs
Widebullet〜API Gateway with JSON-RPC〜 - Mercari Engineering Blog
Google Developers Japan: Google API における JSON-RPC および Global HTTP Batch エンドポイントのサポート終了について
渋川よしきさんのツイート: "TypeScript並みに値も使った型チェックが便利になったら、SwaggerとかRESTとか頑張るよりも、JSON-RPCの方がよくね?という気がしている。type findMethod = { method="findByStatus": params: {id: number} }とか書いておけばいいじゃん(クライアントがJS系の場合に限る)。"

jq

jq
jq コマンドを使う日常のご紹介 - Qiita
【マメ知識】アプリが生成した、可読性の悪いjsonファイルの可読性をよくする方法 - Qiita
jq コマンドが強力すぎてヤバい件 | CUBE SUGAR STORAGE
jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 | Developers.IO
良い感じに詰めて整形してくれる JSON pretty-printer「jpp」を作りました - たにしきんぐダム
JSONを扱いやすくするコマンド(jq, gron)のメモ - 脱力系日記

C

yaji

yajl
lloyd/yajl: A fast streaming JSON parsing library in C.
Yajlって速いの? - Qiita

yyjson

ドッグさんはTwitterを使っています 「新たな fastest をうたう JSON ライブラリが…(実装は C) | 'ibireme/yyjson: The fastest JSON library in C' https://t.co/efOoFOxMk6」 / Twitter
ibireme/yyjson: The fastest JSON library in C
ドッグさんはTwitterを使っています 「浮動小数点数のパースは精度と速度のトレードオフがあるからなかなか大変そうだ…」 / Twitter
ドッグさんはTwitterを使っています 「https://t.co/wrcOZC1N3L デコード側の実装ざっと眺めた感じ別にそこまで変わった実装ではないな(見落としてるだけかもしれないけど).浮動小数点数パース周りの最適化頑張ってるっぽいのと,minify された JSON とインデントされた JSON で実装分けてるのはなるほど」 / Twitter
yyjson/yyjson.c at master · ibireme/yyjson
ドッグさんはTwitterを使っています 「やはり最適化には table lookup ベースのアルゴリズムが大事なんだなぁ」 / Twitter

Big Sky :: C言語から分かりやすいAPIで扱える JSON パーサ「cJSON」
DaveGamble/cJSON: Ultralightweight JSON parser in ANSI C
Big Sky :: C言語から使えるJSONパーサ、jansson がとても直感的で良い
Jansson — C library for working with JSON data
akheron/jansson: C library for encoding, decoding and manipulating JSON data
Big Sky :: C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。
parson
kgabis/parson: Lightweight JSON library written in C.
Big Sky :: C言語から使えるJSONパーサ、JSMNを試してみた。
The most simple JSON parser in C for small systems
zserge/jsmn: Jsmn is a world fastest JSON parser/tokenizer. This is the official repo replacing the old one at Bitbucket
jq
stedolan/jq: Command-line JSON processor

blog

設定情報をエレガントに管理する方法(解決なし) - まめめも
JSON Schema をクックパッドマートの商品登録画面に導入した話 - クックパッド開発者ブログ
JSON先進署名フォーマット「JAdES」解説 【第1回】JAdESの概要と特徴 | GMOグローバルサインブログ
JSON::Types ってのを書いた - unknownplace.org
論文メモ: Mison: A Fast JSON Parser for Data Analytics | κeenのHappy Hacκing Blog

Zenn

設定ファイル言語 cumin を自作している

Qiita

null だけの JSON は合法か? - Qiita
package.json は .yaml で準備して json に直すワンライナーでエクスポートする - Qiita
RFC 準拠的な JSON 形式について - Qiita
JSON にもコメントを書きたい - Qiita
microsoft/node-jsonc-parser: Scanner and parser for JSON with comments.
JSON Schema や JSON から Go の struct を生成する - Qiita

Twitter

間違い

7594591200220899443さんはTwitterを使っています 「1.797693e+308を受け付けるのはRFCでMUSTだがゴミみたいな拡張文法を入れるのはMAYなのであって、作者のパーザが完全に誤っていることと他の実装が拡張文法を持っていることを同列に語ろうとするこの記事には賛同しかねる https://t.co/PP4f6meRl5」 / Twitter
JSONパーサにファジングしたら収拾がつかなくなりました - WAF Tech Blog | クラウド型 WAFサービス Scutum 【スキュータム】
7594591200220899443さんはTwitterを使っています 「ここがfuzzの限界なのでありfuzzerはRFCを読んだりできないからある状態が「違ってる」までしかわからず、正しいか間違っているかを判定できない。その判定を人間が間違えば無価値になる。」 / Twitter
7594591200220899443さんはTwitterを使っています 「世のJSON実装に何も問題がないとは申しませんがこの作者の実装にはそれらとは一線を画す重大な問題(RFC違反)があった。そこを判定できなかったところまで含めて、この作者の至らなさだと思う。」 / Twitter

順序

Kazuho OkuさんはTwitterを使っています 「オブジェクト指向なのかリレーショナルなのかの違いであって、基本的にはキメの問題だし、どっちが便利かはユースケースによるよなぁ」 / Twitter
TetsuさんはTwitterを使っています 「JSON詳しい方にお聞きしたいのですが、Aみたいなデータを返すREST APIの流派があるんでしょうか?? サーバサイドでもフロントエンドでも、なんかAPI呼んでAが返ってきたら使いづらくて仕方ない気がするのですが… ※私はBにすべきだと思うが「Aがモダンでスタンダード」的な主張とぶつかっている https://t.co/O9NGvmXyRu」 / Twitter
BasukeさんはTwitterを使っています 「@kazuho Aにidを入れない理由がわからないかな。gzipしちゃえばほぼコストゼロだしJSONはマップも順番は維持されるわけだから両者ハッピー。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@basuke 主キーが複合キーである場合、JSON Objectのキーにはできませんから、RDBに寄せるなら一貫性の観点から配列を使い方が良いと思います」 / Twitter
BasukeさんはTwitterを使っています 「@kazuho 僕も自分の立場なら迷わず配列」 / Twitter
Tatsuhiko MiyagawaさんはTwitterを使っています 「@basuke @kazuho 順序に意味があるなら後者(配列)ですが、ないなら前者ですかね。キーのユニーク性が担保されるし、順序によってデータのハッシュ値が変わることがない(キャッシュフレンドリー)。ケースバイケースではありますが」 / Twitter
Jun MukaiさんはTwitterを使っています 「@basuke @kazuho JSONのオブジェクトは仕様上unorderedなので、順序に意味がある場合なら前者はありえないと思います」 / Twitter
BasukeさんはTwitterを使っています 「@jmuk @kazuho まあ、そうなんだけど、事実上スクリプト言語はいまみんな辞書型の順番保持するし、もめるくらいならそっちでいけと。」 / Twitter

Kazuho OkuさんはTwitterを使っています: "別の言い方をすると、RFC 4627のJSONは、後続の文字列が何であろうと正しく終端判定できたんだけど、RFC 7159ではそういうことができなくなり、JSONを埋め込む側に別途、終端判定に必要な情報をもたせることが必須になった https://t.co/WZdyoNvlBD"
Kazuho OkuさんはTwitterを使っています: "RFC 7159 において picojson の API を維持する件については、 input iterator をインクリメントするタイミングを遅延させることでいけそうなイキフン https://t.co/A8exerdIs5 https://t.co/zRpMaxV26R"
Kazuho Okuさんのツイート: "2**53内ならJSONで数値として表現できるっていうけど、デコーダによって異なる値として解釈されるような表現は可能なの、ちょっと怖いなと思った https://t.co/G7q03sCkc4"
Kazuho Okuさんのツイート: "[0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100e100] つーJSONパースするとrubyだけ[0]になる(他は100)"
Kazuho Okuさんのツイート: "JSONの話というのは、Ruby固有の問題というよりは、2**53以内の整数ならJSONで相互運用性を保てるというのが実は幻想で解釈の違いがあるんじゃないかという話です https://t.co/9ekr1VoXrb"
watsonさんのツイート: "JSON の定義とか、確かに https://t.co/x7Q0pSZkBj が便利そうだね( ˘ω˘) #tkrk11"
Jxckさんのツイート: "一方頻出 API である JSON.stringify/parse がアレだったのはアレだけど。"
Hiroaki Nakamuraさんのツイート: "DropboxはAPI v2を作るときにRESTは止めてJSONを入出力とするシンプルな方式に切り替えたそうです。 / "Scaling and securing the Dropbox API" https://t.co/Ne3QXJYqgI"
ドッグさんのツイート: "JSON を grep しやすい形式に変換するツール面白い.grep した後に元の JSON の出力に戻す(--ungron)こともできるし,そのまま JavaScript としても扱えるらしい | 'tomnomnom/gron: Make JSON greppable' https://t.co/3MJPqtoQz5"
tomnomnom/gron: Make JSON greppable!
Fadisさんのツイート: "従来の有限状態機械を使ったJSONパーサは分岐命令が頻繁に実行され、CPUの分岐予測ミスによるペナルティが無視できない問題になるため全く新しいJSONパーサを考えた、とか言い出す論文を目の当たりにしてJSONスゲェってなってる"
Mison: A Fast JSON Parser for Data Analytics - Microsoft Research
はやぶささんはTwitterを使っています 「むしろGo の struct から JSON Schema 生成するやつとかあり、JSON Schema を IDL として使うの自体が向いてないって感じだなぁ。コメントとかもかけないし。」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「21世紀になってもconfig language設計をナメてかかって、場当たり的にvariable substとか正規表現マッチを足していって一貫性がなくなったりするのを見るとすごく苛つく。 yamlに適当に評価ルールを上乗せしてくのは完全にアンチパターンだよ」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「plain json, plain yaml以外は受け付けないと割り切って拡張性はjsonnetみたいのに委ねるなり、starlarkを使うなり、それかチューリング完全な言語の上にDSLを定義するなりしたいものだ」 / Twitter
Yuki Yugui SonodaさんはTwitterを使っています 「単純な話、言語設計は難しくて、他の複雑なシステムの開発の片手間にやれるものじゃないんだろう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「JSONに邪魔なもの、カンマ、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「同感。 この二つが原因で、設定ファイルに採用しづらいのだよなぁ、、、」 / Twitter
Dan KogaiさんはTwitterを使っています 「// そしてコメント(💩が)」 / Twitter
チェシャ猫さんはTwitterを使っています 「YAML の型はエラーの原因になりがち。例えば 0.1 なら数値なのに 0.1.0 だと文字列になったりする。情報を文字列で埋め込もうとするとエクスプロイトの原因にもなる。 #SoftwareCircusFest」 / Twitter
Tsukasa #01さんはTwitterを使っています 「雑に JSON、より少し効率と処理の正確さを求める人のために CBOR をことあるごとに推していく所存。MessagePack 派の人には申し訳ないけど。」 / Twitter
FadisさんはTwitterを使っています: 「RFC4180ではCSVはMIME typeのパラメータで文字コードが指定された場合に限りその文字コードの文字を使用でき、ない場合はASCIIコードを使うことになっているので、sjisだろうとeucjpだろうとutf8だろうとCSVに0x7Fより上の文字を突っ込んだCSVを単独で交換するのはオススメできない」 / Twitter
伊津野 英克さんはTwitterを使っています 「CSVの問題は途中から解析ができないので分散パースができないこと。その点で NDJSON の方が優れている。」 / Twitter

JavaScript Object Notation - Wikipedia
JSON - Wikipedia
ASCII.jp:Windows 10でJSONを扱う (1/2)
JSON, YAML, ini, TOML ざっくり比較
JSON Schema | The home of JSON Schema
干潟の生物さんはTwitterを使っています 「CSVは曖昧だしJSONは数値が浮動小数点数だしYAMLはインデント辛いから時代はS式です。S式S式S式」 / Twitter
yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「JSON Scheme ではちゃんとinteger/floatは分けられてるんですよ。 https://t.co/kBDlKKEYBf」 / Twitter
Type-specific keywords — Understanding JSON Schema 7.0 documentation

infoQ

Facebook Retrieを使用した大規模なHaskellコードベースのリファクタリング
ミューテーションテストの紹介 - Dave Aronson氏のJSConf Hawaiiでの講演より
堅牢なテスト戦略により自信を持ってDropbox Syncをリライト

Twitter

@shinji_kono

Shinji KonoさんはTwitterを使っています 「NeXTが導入された当時は Hyper Textってのが流行り。それはHyper Cardに影響されていたかも。それを実現したのが、Objective Cのdictionaryの機構とDisplay PostScriptの組合せ。」 / Twitter
Shinji KonoさんはTwitterを使っています 「TextEditが例題として用意されていて、RichText でsaveできてた。で当時あったGopherとかのファイルサーバーとXeroxのSGMLと組合わせたのがHTML/HTTPだった。うまくNEXTSTEP依存を回避していたことと、これもできたばっかりだったDNSを使ったリンクがうまく機能してた。」 / Twitter
Shinji KonoさんはTwitterを使っています 「いろいろなpackage管理はコンテナで解決しつつあるんだが、GUI/IDE側がな。 コンテナとpackage管理は本来関係ないのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「GUI/IDEも構成管理ベースでイメージ配布になる気がする。もうなってるかも知れん。」 / Twitter
hkobaさんはTwitterを使っています 「flatpakが近いかも、です? https://t.co/HryP0y2Uzo」 / Twitter
第513回 新しいパッケージの仕組み,Flatpakを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Shinji KonoさんはTwitterを使っています 「@hkoba あぁ、brew cask みたいなのかな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「このあたり結構怒ってるんだよな。わざわざstaticなcontentsにhttpsつけさせて囲い込んでるのにCDNをありがたがる羊たち。 QT Jamstackではスタティックのコンテンツ配信が増えるので、CDNの効果が絶大です。… https://t.co/FgGGxklfGW」 / Twitter
Jamstackは新しいWebアプリのアーキテクチャ? - EY-Office
Shinji KonoさんはTwitterを使っています 「単なるプロバイダ側のキャッシュを神のように崇めてお布施する人たち」 / Twitter
Shinji KonoさんはTwitterを使っています 「Scratch 、自分もそうだけど、小学生も「なんかかっこわるい」って思ってるのがいる気がする。構文エラーが減るのは良いかもしれないけど。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Scratchが良いなら、製品でも使われてるはず。」 / Twitter

@masuda220

増田 亨.さんはTwitterを使っています 「エンティティ・集約・リポジトリがチームの理解を混乱させ、設計を迷走させる原因は、はっきりしている。 ドメイン駆動設計では、この三つはオブジェクト指向プログラミングの設計の議論。 それに対し多くの技術者は、この三つをテーブル設計とデータベースアクセスの話として解釈する。」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメイン駆動設計では、エンティティは識別情報を他の属性から明確に区別するための設計パターン。 集約はデータの集約ではなく、計算・判断の「ロジック」の集約を明らかにするための設計パターン。 リポジトリはオブジェクトの退避と再構築のための設計パターン。」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメイン駆動設計の超要約: アプリケーションの複雑さに立ち向かうために、 ビジネスルールに焦点を合わせて、 オブジェクト指向プログラミングに取り組む 別の道: 単純なアプリケーションを、 入出力に焦点を合わせて、 手続き的なプログラミングでちゃっちゃと作る」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメイン駆動設計の基本の設計パターンで ・値オブジェクト ・モジュール の二つは、チームの設計の基盤として確実に役に立つ。 それに対し ・エンティティ ・ドメインサービス ・集約 ・リポジトリ ・ファクトリ は、解釈が混乱しやすく、チームの設計を迷走させていることが多いのではないか?」 / Twitter
増田 亨.さんはTwitterを使っています 「ドメインサービスは、オブジェクトのモデリングと設計に豊かな経験と確かな判断力を持つ技術者には有用なパターン。 オブジェクト指向プログラミングの理解と実践が不足している技術者にとっては、手続き的なプログラミングに留まるためのアンチパターンになるだけ。禁止すべき。」 / Twitter
増田 亨.さんはTwitterを使っています 「エヴァンスはオブジェクト指向プログラミングでの開発経験があることを前提にドメイン駆動設計を書いた。 しかし、おそらく日本の読者の大半はクラスを使った手続き的なプログラミングの経験しかない。 DTOとエンティティを同じと考える読者にエヴァンスのドメイン駆動設計は意図は伝わらない。」 / Twitter

利用動向調査

7594591200220899443さんはTwitterを使っています 「へえー!「外部調査会社を利用したWebアンケート」でこの結果が出るんだ!すごいすごい!」 / Twitter
refeia🍥さんと他18人さんはTwitterを使っています 「え…… https://t.co/O3ZQv1iI8E https://t.co/oHDo161PqZ」 / Twitter
ITエンジニアの理想の開発環境に関するツール・サービス調査 90.1%のITエンジニアがWindowsと回答|パーソルキャリア株式会社のプレスリリース
7594591200220899443さんはTwitterを使っています 「ツイッターのおまえらがいかに異常な個体の集まりかということやで。」 / Twitter
7594591200220899443さんはTwitterを使っています 「皆さんと世の中に見解に相違がある時、皆さんが間違ってる方に賭けるか、世の中が間違ってる方に賭けるか、皆さんが間違ってる方が普通にオッズ低いんですよ。世の中の過半数がサクラエディタか秀丸なんです。辛いでしょうけど。世の中はそうなんです。」 / Twitter
7594591200220899443さんはTwitterを使っています 「それはそうと自分としてはプログラミングはヒューマンインタラクションの一種なのでプログラミングに適したUIというものはあって然るべきとは考える。それは必ずしもエディタとは限らないだろう。ResEditとかInterface Builderとかは成功しなかったかもだがあの方向性は消え去るのも惜しく思う。」 / Twitter
7594591200220899443さんはTwitterを使っています 「わざわざIDEとか使わなくても思念しただけで虚空からバグ取りの終わったプログラムが降ってきて欲しい」 / Twitter
Kazuho OkuさんはTwitterを使っています 「回答者属性みると40代50代のSEが中心で納得感」 / Twitter

histric-1

:craftsman/kawasimaさんはTwitterを使っています 「業務システムの設計に迷ったら、まずredmineではどうしているかを見に行くとよいです。テーブル設計、認可、マルチテナント、テスト、ユーザ設定可能なワークフロー、ユーザ削除時の対応、プラグインによる拡張などなど、参照実装としてすごく有用です。」 / Twitter
hikaliumさんはTwitterを使っています 「変数名の取り違え、型さえ合っていればコンパイラは無力なの悲しい(変数名の取り違えを防ぐコンパイラやlinter側での努力に関する研究ってあるのだろうか?(ソフトウエア工学とか心理学とか方面寄りになりそう?))」 / Twitter
KOBA789さんはTwitterを使っています 「@hikalium rust-analyzer とかだと仮引数の名前と実引数の名前に common suffix がない場合は仮引数の名前がエディタ上で補完されて名前付き引数のような見た目になったりしますね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「利用する側を先に作ることでインターフェイスを整理してから、実装やテストを書くことも多い気がする」 / Twitter
Takuto WadaさんはTwitterを使っています 「どちらかというと、メソッドのインタフェースをゴリゴリ変えたいからこそ先にテストを書くんですよね。「どうやって使わせようか先に思いつかない」のは私もそうで、だから自分が一番先に使う側に回って考えようというのがテストファーストです」 / Twitter
Kazuho OkuさんはTwitterを使っています 「アプリケーションコードからの使いやすさと、テストのしやすさと、内部実装の簡潔明快さはどれも重要で、実際はその3つのバランスをどう取るかだし、手を動かすことができるならば、あまり順番は重要じゃない気がするけど」 / Twitter
神速さんはTwitterを使っています 「DDDの話は何度聞いても「世の中の9割はそんなにクラス設計を上手くできない...」という点を感じていて、そういう意味では「ActiveRecordに密結合で短いコードにする」という割り切りの方が好みではある。無駄に多いクラスよりマシなので。」 / Twitter
sumimさんはTwitterを使っています 「コピー&ペースト(より正確にはカットとペースト)がSmalltalkのどんなキー操作にいつ頃アサインされたのかをざっと当時のコードを読んでこれ→https://t.co/BEAFBElfFl を書いたのですが、もう少し丁寧に調べてみたら少なくともSmalltalk-76の時点でLFではなくBLANK-TOPに割り振られていた事が判明… https://t.co/l6hAVNeLKn」 / Twitter
sumim: "#365 収録後トークの「コピー&ペーストはMacが最初」というのは少々いただけないです(アラン・…" - グルドン
sumimさんはTwitterを使っています 「カット・コピー・ペースト操作が [修飾キー]+X/C/V になったのがLisaからなのは明らかとして、コピー&ペースト操作のネタ元であるSmalltalkで(特にペーストの)キー操作はどうだったのか…というのはオレンジ本にも書いておらず長らく疑問に思っていたのですが、ようやくモヤモヤが晴れてスッキリ!」 / Twitter
アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@sumim そろそろ本にまとめることをお勧めします。」 / Twitter
mima_itaさんはTwitterを使っています 「javascriptは大抵mockやfakesで依存関係を偽装できるのでテストは簡単な部類。」 / Twitter
mima_itaさんはTwitterを使っています 「中間言語作る系のC#やJavaも頑張れば基本的に何とかなる。Cもプロダクトコード側が適切にライブラリに分割してあればコールバック関数を偽装して偽のライブラリを作成して何とかなったが・・・C++だけは今でも苦戦しそう。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「Jupyterって画像が表示できるREPLでしょ」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「画像が表示できて自然に複数行入力できて実行コードと結果をまとめてファイルに保存する機能がついたREPL」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「コンピュータ、out of the boxで動いてほしい」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「のでvimとかwmをカスタマイズとかはあまりノレない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「えーなんでここで schemes が non-NULL なの? 酔っ払ってるのかな https://t.co/PkAohxLU4s」 / Twitter
ItSANgoさんはTwitterを使っています 「@kazuho 関数を2回以上通っていませんか?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@ItSANgo ほんまや! 誰や static とかつけたやつ!!! ありがとうございます」 / Twitter
κeenさんはTwitterを使っています 「Rust Analyzerがマクロを克服しつつある。Rust内部のマクロ展開後の形式を人間可読な表示する機能をつけて、マクロ内で定義した関数の型を表示できるようになってる。マクロで生成したものは元のテキストがないからちょっと特殊で今まで表示崩れしていた。 Changelog #69 https://t.co/AZJkHGoirL」 / Twitter
Changelog #69
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IDE で関数単位で全return文にbreakをセット/解除するボタン欲しい。」 / Twitter
コードが読めるソフトウェア開発者 - As a Futurist...
7594591200220899443さんはTwitterを使っています 「コード読む力、大部分がVisualStudioの使い方だったりするんだよなあ」 / Twitter
7594591200220899443さんはTwitterを使っています 「ともかくEmacsだのVimだの使ってる場合じゃないとまでは言えますよ。書くのは好きにすりゃあいいけどさ。読むのに関しては。」 / Twitter
7594591200220899443さんはTwitterを使っています 「JetBrainsとMicrosoftに足向けて寝てるやつがプログラマを名乗るなという感がある」 / Twitter

市川 真一さんはTwitterを使っています 「@puni2marimo @uchan_nos オブジェクトの型を名前空間に import する宣言文を書くように設計すれば、それが実質的に前方参照みたいなものだし、1 回目の構文解析では未定義の名前が定義されるまではトークンを保持するだけで構文解析しないようにするだけでも結構いけそうな気もします。型を定義するキーワードも普通は規定済み」 / Twitter

Yasunori GotoさんはTwitterを使っています 「10年以上前かな? 当時の上司が「メインフレームのDBのトランザクション処理って、ネットワークDBでしかもアセンブラでゴリゴリ頑張って書いていたので、CPUの命令で400stepぐらいで済んでたらしいんだよね。今ならJava+RDBで1万stepぐらいは余裕でかっ飛んでいるよね!」って話してたの思い出した」 / Twitter
novtanさんはTwitterを使っています 「しかしだよ、処理効率が上がるたびにそれを食いつぶすテクノロジーを開発し続けてきているIT業界に本当に必要なのは「阿部寛のホームページ」への回帰なんではなかろうか。 / “IBM、世界初の2nm半導体技術を発表 バッテリー寿命は7nmの4倍 - ITmedia NEWS” https://t.co/ELGO5eJXnf」 / Twitter

OS

Introduction - 1.2 - ID:615146 | Intel® 400 Series Chipset On-Package Platform Controller Hub
Desktop operating system market share in Japan | StatCounter Global Stats
Desktop browser market share in Japan | StatCounter Global Stats
https://www.netmarketshare.com/welcome
メインフレームの異常処理 - Qiita
「フェイルバック(failback)」と「フォールバック(fallback)」の違い|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

その他

MS

Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「NTカーネルの仕様書を読んだことある人って、どれくらいいるんだろうか? 昔CD-ROMに焼いて配ったんで、それなりの数の人が目を通したはずだけど。今どきOS/2 NTと書かれてても何ソレ?ってスルーされちゃうかも知れず / “Windows-Research-Kernel-WRK-/NT_Design_Workbook…” https://t.co/TDaKERbmK3」 / Twitter
Windows-Research-Kernel-WRK-/NT_Design_Workbook/Get_Workbook at master · HighSchoolSoftwareClub/Windows-Research-Kernel-WRK- · GitHub
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「とりあえずke.docがカーネル全体について記述しているので、その辺から読むといいかも。そこから先は趣味ですがvmdesign.doc辺りを読むと、いきなりNTカーネルが当初i860向けに開発されたことなんかを知ることができて面白いですね。i386/486も似たようなPTEフォーマットで云々」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ぶっちゃけ30年前に書かれたカーネルの仕様書を読んで何になるのか?という話ではあるのだけど、四半世紀以上も生き残った商用ソフトウェアの初期仕様書を読める例って本当に少ないので、少なくとも考古学的な価値は高いんじゃないかな。読みやすさでいえばタンネンバウム先生のMinix本の方が上だけど」 / Twitter

Google

GIGAZINE

GoogleのIoT用プラットフォーム「Android Things」が終了へ、IoT向け汎用OSの野望は軌道に乗らず失速 - GIGAZINE
ついにGoogleの新OS「Fuchsia」が一般ユーザー向けに公開される - GIGAZINE
Google PlayでAndroidアプリを公開するにはAPKでなく「Android App Bundle」を使う必要があるとGoogleが発表 - GIGAZINE

Twitter

κeenさんはTwitterを使っています 「Googleの作ってるOS、Fuchsiaのセキュリティについての書き散らし。メッセージパッシングにすることで権限管理がやりやすいよねと。Fuchsiaはかなりの部分がRustで書かれている。 cr0 blog: A few thoughts on Fuchsia security https://t.co/TKQYWVkhwZ」 / Twitter
cr0 blog: A few thoughts on Fuchsia security
Makoto Kato ︎︎さんはTwitterを使っています 「Chrome OSの利点ってアップデートも含めだと思うのだが 、こういうChrome OSのforkをインストールしてって話はセキュリティの担保の保証が難しいので勧めるのはどうかと思う。(CloudReady自体はGoogleが買ったから別になるかもだけど) https://t.co/rasVmwhdZT」 / Twitter
Windows 11に見捨てられたPCをChromebook化して幸せに:小寺信良のIT大作戦(1/4 ページ) - ITmedia NEWS
Makoto Kato ︎︎さんはTwitterを使っています 「担保の保証ってなんで2重になってんだ。書き直しミスった」 / Twitter
一ノ瀬 いろはさんはTwitterを使っています 「@makoto_kato CloudReady のアップデートポリシーってどうなるんですかねぇ。 ホンモノのChromebookの方もアップデートは機種毎の期限付だし、こう言う目的には合わなさそうですが。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「@ichinose_iroha 現時点でなにも考えてないと思いますよ」 / Twitter
Taku KudoさんはTwitterを使っています 「chromebook以外使うのホント辛い。クラウドネイティブじゃないレガシーOSって、いちいち「保存しますか」的なダイアログが出てイライラする。」 / Twitter

Downloading the Source  |  Android Open Source Project
The Android Source Code  |  Android Open Source Project
Selecting Devices  |  Android Open Source Project
Codenames, Tags, and Build Numbers  |  Android Open Source Project
Android Compatibility Definition Document  |  Android Open Source Project
platform/ - Git at Google
platform/development.git - Git at Google
android/platform_development
Architecture Overview of Fuchsia OS - Speaker Deck
Chromebookのシェアが1%から13%に急増。2021年には24%へ - PC Watch
RustがAndroid OSセキュリティのための新しい基盤を提供
Google Nest HubでGoogle Fuchsiaがデビュー

Plan 9

Plan 9 Foundation
Plan 9 From Bell Labs - Plan 9 from Bell Labs 翻訳プロジェクト
Plan 9 from Bell Labs in Cyberspace! - Nokia Bell Labs
plan9foundation/plan9: Plan 9 History, from 1992-09-21 to 2015-01-10.

Illumos

illumos - Wikipedia
Illumos - Wikipedia
illumos
illumos

Theseus

ドッグさんはTwitterを使っています 「Rust で開発されてる live evolution や fault recovery を備えたモダンな OS.組込みシステムやデータセンターのエッジなどを想定してる.Intel NUC とかの実機でブートできるらしい | 'theseus-os/Theseus' https://t.co/QbGCc5YNJW」 / Twitter
theseus-os/Theseus: A modern experimental OS written from scratch in Rust to explore novel OS structure and state management techniques.
ドッグさんはTwitterを使っています 「知らなかったけど2017年から開発されてるのか.去年最新の紹介論文が OSDI '20 で出てた https://t.co/rJSsubxxEA」 / Twitter
theseus_boos_osdi2020.pdf

TRON

μITRON4.0仕様に準拠するためには | OsaruSystem
なぜTRON OSが「非常に優れていたが外圧で潰された」とか「組み込みで世界標準OSだ」とかいう誇張された伝説をいまだに信じている人が大勢いるのですか?に対するFurukawa Isaoさんの回答 - Quora
もなかさんはTwitterを使っています 「実身仮身ファイルシステムとか TRON 文字コードとか、構想先行の部分はあったけれども。 そして、割と上手く行かなかったのは構想先行の部分に偏っている、という雑感はある。」 / Twitter
Miura HidekiさんはTwitterを使っています 「実身仮身ファイルシステム、ナイーブに考えると何の制約もないグラフになるから実装大変だろうなって思う。」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 ファイルシステムにデータモデルをマップしていると(例えば大きなCG映画の製作過程)、木構造の制約がきつくて有向グラフに出来たら楽なのにと思うけど、実際やろうとしてみると性能や安定性、そして何よりユーザのメンタルモデルがついていけなくなる」 / Twitter
もなかさんはTwitterを使っています 「今の技術と使える計算機資源で、実身仮身ファイルシステムと TACL を実装するなら、どう作るだろう。 というのは、暇なときに、時々考える。 分散ハッシュとスマートコントラクトになるのだろうねぇ。ぶろっくちぇーん。」 / Twitter
もなかさんはTwitterを使っています 「DHT に基づく分散ストレージだけで、概ね作れちゃいそうだけど。 永続性の強いリンクを張り続けようとすると、復元できる履歴を保存する必要がある。 そうすると、ブロックチェーンのお出ましだわなぁ。」 / Twitter
四弦/超越基底:いぶきさん.kml (佐藤陽花)@分散処理/RT-OS/コンピュータ言語さんはTwitterを使っています 「@monamour555 今これに取り組んでいます 恐らく今冬か来年あたりには最初の学会発表できそうではあります」 / Twitter

Rust

フリースタンディングな Rust バイナリ | Writing an OS in Rust
Writing an OS in Rustを読んでの気がつき
Writing a Linux-compatible kernel in Rust
2021年4月15日 パニックお断り―Linus,"Rust for Linux"の盛り上がりに釘を刺す:Linux Daily Topics|gihyo.jp … 技術評論社
κeenさんはTwitterを使っています 「メモリ不足でパニックするのは標準ライブラリの設計ですね。言語仕様ではない。なので標準ライブラリ相当のものを自前で実装すればパニックしないことも可能です。」 / Twitter
κeenさんはTwitterを使っています 「これ、Rustにメモリ確保するような構文あったっけと思ってメーリスのスレッド追ったけどLinusは「Rustよく分からないけどもしそんな構文があるならダメだよ」くらいのニュアンスで言ってるっぽい。続くスレッドで標準ライブラリの作りの問題だからライブラリどうしようねと議論が続いてる」 / Twitter
κeenさんはTwitterを使っています 「Linusの続く返信これね。Rustの標準ライブラリの 多くの型の `new` 関数がC++の `new` 構文相当の挙動するのがよくないと言及してる。それをやめて `Result` にするような関数群を用意する方針になるだろうとも。 https://t.co/OZUE4ybuw6」 / Twitter
LKML: Linus Torvalds: Re: [PATCH 00/13] [RFC] Rust support
κeenさんはTwitterを使っています 「結構昔から組み込み方面でもパニックしないタイプのAPI群が欲しいという要望は上がってて、プランとかも上がってたけど結局進んでないなぁ。Rustの作りとしてアロケータが絡むAPIは分離されてるからそれを使わずに自分達で再実装するかRust側にno-panicサポートを要求するかになるんじゃないかな?」 / Twitter
嶋田大貴さんはTwitterを使っています 「Cコンパイラの生成したコードはヒープに勝手にメモリを確保したりしないけど、Rustみたいにメモリ管理込みの言語だとコンパイラがヒープ確保込みのコードを生成することになるだろうからメモリ不足状況下でパニックするのでは?ユーザーランドならいいけどカーネルでそれはダメやろ?ってことですね。」 / Twitter
嶋田大貴さんはTwitterを使っています 「mallocに失敗した時にシステムを停止させずにきちんとエラーリターンできるかどうかっていうのは組み込み系の人ならいつも気にしてるんじゃないのかな知らんけど。気にするとしんどいので代わりにstaticなアドレスに固定長でスペースを確保しておくとかしがち(可能なプラットフォームなら)だと思う。」 / Twitter
嶋田大貴さんはTwitterを使っています 「MMUのないプロセッサで任意の物理アドレスにアプリケーションをロードして走らせるようなプラットフォームだと static使えなかったりするんだよね。あ、嫌な思い出が・・・」 / Twitter
嶋田大貴さんはTwitterを使っています 「嫌な思い出が実は夢であって欲しいと brew arm で検索したらMacの情報しか出てこなかった。」 / Twitter
Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ
Rust言語によるOSと言語処理系ができるまで - 未完成な論を綴るブログ
BLisp言語のドキュメントを作成しcrates.ioに登録してみた - 未完成な論を綴るブログ
自作言語BLispがHackers Newsで話題になっていた - 未完成な論を綴るブログ
ytakanoさんはTwitterを使っています 「Linux Kernel in Rust、panicするアロケータを取り除いたと書いてある。 https://t.co/kqOdpmapuZ」 / Twitter
[PATCH 00/17] Rust support - ojeda
ytakanoさんはTwitterを使っています 「アロケータがOptionで返ってくると、データ構造のnewやinsertの返り値ももOptionにしないといけないような。」 / Twitter
入門 Reseaオペレーティングシステム

The Linux Kernel Archives
Interactive map of Linux kernel
Beyond Linux® From Scratch
UNIX®, an Open Group Standard
だめぽラボ@技術書典9さんはTwitterを使っています 「みんな[誰?]が欲しているのはPOSIXではなくLinuxだし、標準C++ではなく&lt;bits/stdc++.h&gt;の使えるG++だし、WebブラウザーではなくてChrome/Chromium」 / Twitter
Igalia - Open Source Consultancy and Development | Index
Birchill
/pub/FreeBSD/releases/amd64/amd64/ のインデックス
Operating Systems: Three Easy Pieces
NetBSD Internals
The ADvanced Systems Laboratory (ADSL): Publications
BAN.AI Public Access Multics
Ban.ai Public Access Multics | Hacker News
OSKitで遊ぼう - Kota Abe
NetBSDを手探りで移植したときの話 - Qiita
kosakiのブックマーク - はてなブックマーク
筑波大学情報科学類:情報システム実験:カーネルハック

Hardware

その他

BugStories
【藤山哲人と愛すべき工具たち】ネジ山が潰れた! ネジ頭が取れた! 悲劇を救う天使の工具 - PC Watch
“PC”の定義は何か まずはIBM PC登場以前のお話から (1/3) - ITmedia NEWS
CPUのキーワード(ブランド、命令セット、マイクロアーキテクチャ、拡張命令セット)の説明 - Qiita
第635回 Ubuntuでパソコンを光らせよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
リーク情報の用語解説 - 自作ユーザーが解説するゲーミングPCガイド
OEMとかリテールとかってなんだ? - 自作ユーザーが解説するゲーミングPCガイド
CPUサーマルグリスについて - 自作ユーザーが解説するゲーミングPCガイド
CPUサーマルパッドについて - 自作ユーザーが解説するゲーミングPCガイド
なぜもっとたくさんのコアを搭載したCPUを作らないのでしょうか?2000コアのGPUなんかそこら辺にありますが、なぜCPUでは同じようにできないのでしょうか?に対するHayashida Katsutoshiさんの回答 - Quora
SUBRISC - Google 検索
東工大、IoT向けCPUアーキテクチャ「SubRISC+」。エネルギー効率3.8倍 - PC Watch
Hara-Laboratory/subrisc: SubRISC: Simple Instruction-Set Computer for IoT edge devices
マイコン製品における出荷テストとは:ハイレベルマイコン講座【出荷テスト編】(1)(1/4 ページ) - EDN Japan
マイコン製品出荷時に実施されているテスト内容:ハイレベルマイコン講座【出荷テスト編】(2)(1/5 ページ) - EDN Japan
CPI Cycles ALU - Google 検索
ASCII.jp:Windows PCのヘッドセット端子にマイクは直接接続可能……ではない!? (1/2)
FadisさんはTwitterを使っています 「I2C(Inter Integrated Circuit)の後継規格がImproved Inter Integrated Circuit略してI3Cなのいいセンスしてる。しかしI2Cの人気は絶大なので相対的にあまり流行っていない」 / Twitter
FadisさんはTwitterを使っています 「I3CがI2Cと比べて良くなっている点としてはまずデバイスに動的にアドレスを振る方法と、デバイスをスリープ/復帰させる方法が標準化された。更にクロックの上下のエッジでデータを送り、クロックが変化していないけどデータ線の値が変化している状態も使って6clockで16bitを送り、30Mbpsを超えられる。」 / Twitter
細胞分裂による増殖が可能な人工生物が作り出される - GIGAZINE
自然に成長し分裂する「人工生命体」が開発される - ナゾロジー
中国、光子の1時間保存に成功。量子USBメモリ実現へ - PC Watch
Steve WeisさんはTwitterを使っています 「Discovering a CPU bug is the worst because after proving how smart you are, you are still stuck with a broken CPU. https://t.co/hYtqb147E3 https://t.co/Uns3PqUMg0」 / Twitter
Cores that don't count - hotos21-s01-hochschild.pdf
Apple・AMD・テスラ・Intelを渡り歩いた天才エンジニアのジム・ケラー氏へのインタビューが公開中、Intelで一体何をしていたのか? - GIGAZINE
半導体製造業の復活を試みる日本の取り組みに対する海外メディアの評価とは? - GIGAZINE
アメリカVS中国の半導体開発競争で鍵を握るオランダ企業の精密機械とは? - GIGAZINE
全世界のPC出荷は引き続き増加。半導体不足で今後は需要が鈍化の可能性も - PC Watch
Ascenium社は、CPUを再発明し、命令セットを完全に破壊しようとしている。|自作.com
中国での半導体製造、2021年にも日本を上回る見込み - PC Watch
20210724
ロボットプログラミングで遊んだ - 未完成な論を綴るブログ

Intel

その他

PC Watch

Intel、ポストCMOSとなる新半導体素材「MESO」 ~CMOS比30分の1の消費電力や5倍の演算性能、ムーアの法則継続にも - PC Watch
他人のPCで仮想通貨マイニングする攻撃を防ぐIntelとMicrosoftの技術 - PC Watch
Intel、仮想化処理などデータセンターのCPU負荷を軽減する「IPU」 - PC Watch

GIGAZINE

Intelの先進研究機関「Intel Labs」がどのような問題に取り組んでいるのかを中の人が解説 - GIGAZINE
Intelが自動車向けチップ生産を計画中、6~9カ月以内の生産開始が目標 - GIGAZINE
MicrosoftとIntelが勝手に仮想通貨を採掘する「クリプトジャッキング」からデバイスを保護する機能を発表 - GIGAZINE

Publickey

インテルから「oneAPI」登場。アプリケーション起動時にCPU/GPU/FPGA構成を自動判別、処理を適切なプロセッサに割り振る[PR] - Publickey
インテル、新デバイス「Infrastructure Processing Unit」(IPU)発表。スマートNICを拡張しストレージ仮想化やネットワーク仮想化処理などCPUからオフロード可能に - Publickey

マイナビニュース

完全版!! 「Core i7」極限検証 - 内部アーキテクチャ解析編 (13) Cache (3) | マイナビニュース
なぜTSMCだけEUVプロセスで高い歩留まりを達成できるのか? | マイナビニュース

EE Times Japan

AMDは2016、Intelは2014……。最新CPUチップの刻印が意味するもの (1/3) - EE Times Japan
前進し続けるIntel:製造委託は成熟したアプローチ - EE Times Japan

自作.com

Sapphire Rapidsの予備機能が明らかに。56コア、64GB HBM2E、MCMデザイン|自作.com
インテルとマイクロソフト、仮想通貨ジャッキング対策で提携|自作.com
インテルのSkylake Visionaryがクライアントチップ開発の指揮に復帰|自作.com
インテルがGlobalFoundriesを300億ドルで買収する交渉を開始|自作.com

instlatx64
Identify CPU features (beta)
インテル チップセット - Wikipedia
Template:Intel processors - Wikipedia
mjg59 | Microsoft aren't forcing Lenovo to block free operating systems
a4lg.com | x86 ファミリーとモデル一覧
IntelのCPUの末尾についているK, S, Tなどのアルファベットについて
BIOS Implementation Test Suite
bochs.sourceforge.net/techspec/PORTS.LST
ASRock Rack > E3C236D2I
Intel iAPX 432 - Wikipedia
intelのCPUロードマップ : 過去・現在・未来のLake – curional
RISCとCISCの境目がなくなる Pentium Proの逆襲 (1/3) - ITmedia NEWS
Microarchitecture Cheat Sheet - Google スプレッドシート
インテル、CPUの性能アンロックコードを販売 - Engadget 日本版
2022年からのIntelのデスクトップCPUの考察 - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - Intel コンシューマ向けのOptane SSDを終売へ―後継製品の予定もなし
Intel Lightning Mountain を追う | Coelacanth's Dream
20210327
IACAとは何ですか?どのように使用しますか? - Javaer101
Intel Invests $3.5 Billion in New Mexico Fab to Focus on Foveros Packaging Technology
インテル、民生用チップ向けに2021年第3四半期までABF基板が不足することを確認、CPU価格の上昇を予想 - 自作ユーザーが解説するゲーミングPCガイド

Intel

Microcode Revision Guidance (Apr 3, 2018)
Intel® Product Security Center
Intel® Desktop Chipsets
Intel Processors and Chipsets by Platform Code Name
ISA Extensions | Intel® Software
Hisaki Oharaさんのツイート: "ISA Extensions出てた。主にguest OS monitoringを実現するためのEPT-based Sub page permission、これ変態機能でしょう https://t.co/7yNl961Zl7"
Hisaki Oharaさんのツイート: "ISA ExtensionsのTable 1-1が死ぬほど便利。特定の命令セットがどの世代から入ったかまとめられている。つうかなんで今までなかったのか。あとさりげなくIcelakeの文字が。 https://t.co/7yNl961Zl7 https://t.co/sujkidSIX2"
Hisaki Oharaさんのツイート: "BPU (Branch Prediction Unit)は最近のOptimization Reference Manualには最低限のことしか書いていないのだけど、Branch Target Bufferといった言葉の意味を知る程度でよければ、Pentium IIとかIIIの時代… https://t.co/frQiiqVWPA"
Intel® Architecture Optimization
Hisaki Oharaさんのツイート: "いまどきのアーキテクチャでは激変しているはずなので参考以上で受け取っては駄目です。ただ、Google Project Zeroのblogを読む際の一助になるかもしれない。つうかこのファイル、https://t.co/SJAL9HrWvEからまだダウンロードできるようになっていると… https://t.co/rB3R5eKitY"
Benefitting Power and Performance Sleep Loops | Intel® Developer Zone
Intel® Architecture Instruction Set Extensions and Future Features Programming Reference
Intel® Software Development Emulator | Intel® Software
Intel® 64 and IA-32 Architectures Software Developer Manuals | Intel® Software
EM64T_VOL1_30083402_i.pdf
EM64T_VOL2_30083502_i.pdf
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
インテル® リソース・ディレクター・テクノロジー (インテル® RDT)
Intel® Product Specifications
Intel® Core™ Processors Technical Resources
Intel® Xeon® Processors Technical Resources
Intel® Chipsets
Intel® Server Chipsets
IPMI Technical Resources
製品の仕様情報 - Intel® Optane™ Memory Series
Intel® 64 and IA-32 Architectures Optimization Reference Manual
10th Generation Intel® Core™ Processor Instruction Throughput and Latency Docs | Intel® Software
8th and 9th Generation Intel® Core™ Processor Families Datasheet, Volume 1 of 2
Intel® Mobile Chipsets
Intel® Architecture Instruction Set Extensions Programming Reference | Intel® Software
Hardware List
Intel® Virtualization Technology for Directed I/O Architecture...
Affected Processors: Transient Execution Attacks & Related Security Issues by CPU
Memory Encryption Technologies
Intel® Architecture Instruction Set Extensions Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf
intel/optimization-manual: Contains the source code examples described in the "Intel® 64 and IA-32 Architectures Optimization Reference Manual"
Intel(R) 64 and IA-32 Architectures Optimization Reference Manual - 64-ia-32-architectures-optimization-manual.pdf
Flexible Return and Event Delivery (FRED) Draft Specification
Intel AVX512-FP16 Architecture Specification

デスクトップ

Coffee Lake

Intel

インテル® Core™ i5-9400 プロセッサー (9M キャッシュ、最大 4.10 GHz) 製品仕様
新しい保護機能をハードウェアに実装
8th Gen (S-platform) Intel® Processor Family Datasheet Vol.1
8th Gen (S-platform) Intel® Processor Family Datasheet Vol.2
8th Gen (S-platform) Intel® Processor Family Spec Update
Intel® 300 Series Chipset Platform Controller Hub (PCH) Datasheet, Vol 1
Intel® 300 Series Chipset Platform Controller Hub (PCH) Datasheet, Vol 2
Intel® H370 Chipset Product Brief
Intel® Z390 Chipset Product Brief
インテル® Wireless-AC 9260 製品仕様
インテル® Wireless-AC 9560 製品仕様

Coffee Lake - Microarchitectures - Intel - WikiChip
Core i5-9400 - Intel - WikiChip
Intel Core i5-9400 - CM8068403875504
Z390 GAMING X (rev. 1.0) Gallery | Motherboard - GIGABYTE Global
【後藤弘茂のWeekly海外ニュース】Intel「第8世代Core」に見る、微細化準備が整っても、製品を移行させない/させたくない理由 - PC Watch
Intel、第9世代Coreプロセッサに「Meltdown」対策をハードウェア実装 ~開発中の“単体GPU”のコンシューマ向け投入も明言 - PC Watch
Intel、次期CPUにSpectre対策機能をハード実装 - PC Watch
Intel、第9世代Core「Coffee Lake Refresh」を2021年末に製造終了 - PC Watch
Core i7-9700Kの新ステッピング、今度はリテールパッケージが入荷 - AKIBA PC Hotline!
Intelが脆弱性「Spectre」「Meltdown」をハードウェアレベルで対策したCPUを2018年後半にリリースすると発表 - GIGAZINE
新ステッピング「R0」のCore i7-9700Kが発売開始~既流通品と選択可能~ - エルミタージュ秋葉原
北森瓦版 - デスクトップ向けCore i 9000 seriesのS-specとsteppingを理解しよう
Intelで脆弱性緩和済みCPUリスト - Qiita
Spectre and Meltdown Hardware Protection Added to Intel's 9th Gen CPUs

Comet Lake

インテル® Celeron® プロセッサー G5925 (4M キャッシュ、3.60GHz) 製品仕様
Intel Celeron G5925 - CM8070104292013 / BX80701G5925 / BXC80701G5925
Comet Lake - Microarchitectures - Intel - WikiChip
Z490 UD AC (rev. 1.0) フォトギャラリー | マザーボード - GIGABYTE Japan
MPG Z490 GAMING PLUS
MAG Z490 TOMAHAWK
Z490-A PRO
TUF GAMING H470-PRO - スペック|マザーボード|ASUS 日本
TUF GAMING Z490-PLUS - スペック|マザーボード|ASUS 日本
PRIME B460M-A - スペック|マザーボード|ASUS 日本
Intel、10コア/5.3GHz動作の「Core i9-10900K」など第10世代Sプロセッサを展開 ~TB Max 3.0やThermal Velocity Boostサポートで高クロック動作 - PC Watch
Intel、よりセキュアな第10世代Core vProプロセッサ - PC Watch
BIOSTAR製IntelマザーがAMD Smart Access Memoryをサポートへ ~2021年1月より提供の最新BIOSで対応予定 - PC Watch
ASUS、最新のBIOSアップデートによりIntel Z490, H470 & B460マザーボードのサイズ変更可能なBAR(スマートアクセスメモリ)をサポート可能に - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - Radeon RX 6000 seriesのSmart Access Memoryの話題いろいろ
北森瓦版 - “Comet Lake-S”のPL1, PL2, Tauの値
intelの第10世代は、あらかたの脆弱性が対策済みなのですか? - Quora

Rocket Lake

Intel Core i511500 Processor 12M Cache up to 4.60 GHz Product Specifications
Intel Core i5-11500 - CM8070804496809 / BX8070811500 / BXC8070811500
CPUID for Intel Core i5-11500 (by tenpoku1000)
Rocket Lake - Microarchitectures - Intel - WikiChip
Z590 D (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
InstLatX64さんはTwitterを使っています 「#Intel Core i7-11700KF (Rocket Lake-S) A0671 CPUID dump (#CypressCove, #AVX512F/CD/BW/DQ/IFMA/VBMI/VBMI2/VNNI/BITALG/VPOPCNTDQ/GFNI/AES/VPCLMUL supported, #AVX512_VP2INTERSECT unsupported) Commit: https://t.co/7vEz7YzH9P https://t.co/hVTEgW2O6M」 / Twitter
Intel Core i7-11700KF (Rocket Lake-S) A0671 CPUID dump · InstLatx64/InstLatx64@1bbddaf
InstLatX64さんはTwitterを使っています 「#Intel Core i7-11700K (#RocketLake-S) A0671 CPUID dump, x64 InstLat dump added (thx, @IanCutress!) Good: critical byte-granularity cross-lane instructions behave the same way as on SNC/WLC Bad: tp of FP zmms are half of ymms = single 512bFPU Commit: https://t.co/jLHZfEFvCR https://t.co/STWAZddr7E」 / Twitter
OctalCore Intel Core i7-11700K (Rocket Lake-H/S) A0671 CPUID dump, x6… · InstLatx64/InstLatx64@2903c11
北森瓦版 - Multi-thread時の動作周波数を引き上げる“Rocket Lake-S”のAdaptive Boost
Intel、デスクトップ向け第11世代Core「Rocket Lake-S」の詳細を発表 ~CPUはIPCを大幅向上させたCypress Cove、GPUにXe Graphicsを採用 - PC Watch
Rocket Lake-Sこと第11世代Coreデスクトップ・プロセッサが正式発表 - PC Watch
【Hothotレビュー】新コア設計でゲーム性能が向上した第11世代Coreを徹底ベンチマーク - PC Watch
GeForce RTX 30シリーズで「Resizable BAR」対応開始 - PC Watch
ASUS、M.2 SSDをツールレスで固定できる新機構「M.2 Q-LATCH」 - PC Watch
Intel B460/H410マザーは第11世代Core対応できず - PC Watch
GCC と LLVM に Rocket Lake のオプションが追加 | Coelacanth's Dream

Tiger Lake

Intel、65W動作のデスクトップ版Tiger Lake「Core i9-11900KB」を追加 - PC Watch
intel 10nm Tiger Lake CPUが第11世代デスクトップ・プラットフォームに登場、WillowCoveコア搭載のBシリーズチップ、TDP65Wを実現 - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - 末尾“B”―TDP65Wでデスクトップ向けの“Tiger Lake”
インテル、超高クロックの65W BシリーズTiger Lake CPUを掲載|自作.com
Intelの愛好家グレードのCore i9-11900KB Tiger Lake CPUがベンチマークされた|自作.com

Alder Lake

Ocean Cove - Microarchitectures - Intel - WikiChip
Alder Lake - Microarchitectures - Intel - WikiChip
Intel、2021年にCore/Atom両系統のCPUを搭載したクライアントPC向けCPU「Alder Lake」を投入へ ~サーバー向けのIce LakeはPCIe Gen4に対応し、Sapphire RapidsではPCIe Gen 5に対応へ - PC Watch
【イベントレポート】Intel、次世代CPU「Alder Lake-S」をデモ。ノート向けで8コア/5GHz駆動のCore Hも投入 - PC Watch
Alder Lake搭載PCの実機や第11世代Core新SKUなど。Intel基調講演 - PC Watch
Alder Lake では BIOS から一方の CPUタイプを無効化可能 | Coelacanth's Dream
Alder Lake (Golden Cove + Gracemont) のキャッシュ詳細 | Coelacanth's Dream
Intel Alder Lake PCIe5.0の構成がcorebootで詳しく説明されていると報告|自作.com
Alder LakeのチップセットはPCIe Gen 5.0をサポートしない|自作.com
北森瓦版 - Core i9 12900K QSのCineBench R20スコアはRyzen 9 5950Xを上回る?

Raptor Lake

Intel Raptor Lakeデスクトップ&モバイルCPUファミリーがリーク、ハイブリッドコアのアップグレードとゲームキャッシュで2022年に発売の見込み - 自作ユーザーが解説するゲーミングPCガイド
Intel Z690「Alder Lake」マザーボードは2021年第4四半期、Z790「Raptor Lake」は2022年第3四半期、AMD AM5「Ryzen」マザーボードは2022年第2四半期に発売予定 - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - “Alder Lake”の次になる2022年のCore processorは“Raptor Lake”?

Meteor Lake

Golden Cove - Microarchitectures - Intel - WikiChip
Meteor Lake - Microarchitectures - Intel - WikiChip
Intel、2023年に7nmのコンピュートタイルを持つ「Meteor Lake」を投入。x86 CPUのIPも顧客に提供へ - PC Watch

Lunar Lake

GPUドライバーにIntel Lunar Lake、Jupiter Sound、DG3が発見された - 自作ユーザーが解説するゲーミングPCガイド
Intel Lunar Lake 'Next-Gen' Core CPUはLinuxパッチで初のサポートを得る、2023年までにMeteor Lakeの後継が期待される - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - Linuxのパッチに現れた“Lunar Lake”―“Meteor Lake”の後継で'23年頃

HorseCreek

SiFive、高性能RISC-VプロセッサIP「P550」を発表 - Intelが採用予定 | TECH+

【スペック一覧】デスクトップ向けIntelプロセッサー・ナンバー一覧表 - PC Watch

モバイル

8th, 9th Core

【笠原一輝のユビキタス情報局】第8世代Coreプロセッサの本当のコードネームはどれ? ~Kaby Lake Refresh、Coffee Lake、Cannonlakeの3つが同じ製品ブランドで同時展開 - PC Watch
【笠原一輝のユビキタス情報局】Intel、今年後半に8コアのCoffee Lake Refresh、2019年にComet Lakeを投入へ ~Xプロセッサの28コアはBasin Falls Refreshに - PC Watch
【笠原一輝のユビキタス情報局】Whiskey LakeとAmber Lakeの正体 - PC Watch
インテル® Core™ i5-8250U プロセッサー (6M キャッシュ、最大 3.40 GHz) 製品仕様
Intel Core i5-8250U Mobile processor - FJ8067703282221
iiyama STYLE-15FH038-i5-UHEX [Windows 10 Home] | パソコン工房【公式通販】
インテル® Core™ i5-8265U プロセッサー (6M キャッシュ、最大 3.90 GHz) 製品仕様
DELL CINEMAテクノロジー搭載のInspiron 15インチ5583ノートパソコン | Dell 日本
最新Intel NUC「BEAN CANYON」が計4モデル発売、Core i7/i5は4コア8スレッド - AKIBA PC Hotline!
Intel NUC「BEAN CANYON」の薄型モデルにCore i3搭載版が登場 - AKIBA PC Hotline!
製品の開発コード名 Whiskey Lake
Whiskey Lake-Uを搭載したNUCマザーボード、ASRock「NUC-8365U」 - エルミタージュ秋葉原
ASRock Industrial > NUC-8265U
製品の開発コード名 Amber Lake Y
デル、Amber Lake搭載の「XPS 13 2-in-1」を国内投入 - PC Watch
Amber Lake-Y搭載の7型2in1「OneMix 2S」 - PC Watch
Core m3-8100Y/256GB SSD搭載になった「GPD WIN 2」が発売 ~基板刷新で放熱性、オーディオ音質が向上 - PC Watch

Comet Lake

Intelが6コア12スレッドのモバイルPC向け第10世代Coreプロセッサ「Comet Lake」を発表 - GIGAZINE
ASCII.jp:Comet Lakeは事実上Coffee Lake Refresh インテル CPUロードマップ (1/4)|ロードマップでわかる!当世プロセッサー事情
Intel、"2種類目"のモバイル向け第10世代Coreプロセッサを発表 - PC Watch
Intel® Core™ i5-10210U Processor (6M Cache, up to 4.10 GHz) 製品仕様
デル、13.3型プレミアムノート「XPS 13」の第10世代Coreモデル - PC Watch
日本エイサー、Comet Lake搭載の15.6型ノートPC - PC Watch
A315-54-F58U/K | acer
Intel® 400 Series Chipset Family On-Package Platform Controller Hub. Datasheet, Volume 1 of 2
中小企業にもSOHOにもうれしい超絶コスパノートPC「ThinkBook 14」を徹底分析 (1/2) - ITmedia PC USER
インテル® Core™ i3-10110U プロセッサー (4M キャッシュ、最大 4.10 GHz) 製品仕様
最新Intel NUC「Frost Canyon」のCore i3搭載モデルが発売、税込38,500円 - AKIBA PC Hotline!

Lakefield

Atom

Intel Celeron (2010年) - Wikipedia
MinnowBoard.org
Intel Celeron J1900 - FH8065301615009
Intel Celeron J3160 - FH8066501715935
Intel Celeron J3455 - FH8066802986102
Apollo Lakeが長期稼働で信号劣化し品質基準を満たさず。ステッピング変更へ - PC Watch
Intel Pentium J5005 - FH8068003067415
Intel Celeron J4105 - FH8068003067403
ASRock > J4105-ITX
製品の仕様情報 - Intel® Celeron® J4005 Processor (4M Cache, up to 2.70 GHz)
Intel Celeron J4005 - FH8068003067416
インテル® ネクスト・ユニット・オブ・コンピューティング・キット NUC7CJYH 製品仕様
PRIME J4005I-C | マザーボード | ASUS 日本
ファンレスGemini Lake世代SoC intel Celeron J4005搭載Mini-ITXマザーボードがASUSから販売開始 | Ark Tech and Market News Vol.3002134
Intel、次世代省電力コア「Tremont」でシングルスレッド性能を改善 ~マイクロアーキテクチャを公開 - PC Watch
2019年9月18日 Linux 5.3がリリース,「AMD Navi」「Intel Speed Select」のサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
10nmプロセスがようやく。 インテルの2021年までのCPUロードマップがリーク
Intel Atom® Processor based on Tremont Microarchitecture Instruction Throughput and Latency - intel-atom-tremont-microarchitecture-throughput-and-latency.pdf
ASCII.jp:Ice Lake-SPは2021年第1四半期に遅延、Elkhart Lakeの機能追加に仰天 インテル CPUロードマップ (3/3)
ASCII.jp:最後のAtomとなるChromebook向けプロセッサーのJasper Lake インテル CPUロードマップ (3/3)
Intel、前世代からGPU性能が78%向上した「Jasper Lake」CPU - PC Watch
FadisさんはTwitterを使っています 「誰も使っていないプラットフォームのサポートの大掃除を進めるLinuxでIntelのMoorestown及びMedfieldマイクロアーキテクチャのサポートが廃止が決定したらしい。これらはAtomの中でも特に省電力を重視したSoCで、IntelがまだスマートフォンでARMと戦う気があった時代の産物 https://t.co/KlKx8M0ug6」 / Twitter
Linux Says Farewell To Intel's Smartphone Attempts With Clearing Out Moorestown / Medfield - Phoronix
FadisさんはTwitterを使っています 「「誰も使っていない」と判断した理由が「ここ数年このプラットフォームでLinuxが動かなくなるような変更が入った際にIntel以外から不具合の報告が上がったためしが無い」(つまりIntelは今もしっかり保守しているけどこのSoCを使っているユーザは存在しない)なのが哀愁漂ってる」 / Twitter
北森瓦版 - “Jasper Lake”を搭載する第11世代NUC―“Atlas Canyon”
製品の開発コード名 Elkhart Lake

【イベントレポート】Intel、次世代10nm CPUと22nm Atomを積層した混載CPU「Lakefield」 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelが3D積層のヘテロジニアスマルチコアCPU「Lakefield」の技術を発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】2020年代のIntel CPUのカギとなる新2.5D/3D積層技術 - PC Watch
【後藤弘茂のWeekly海外ニュース】チップレットレースで静かに突き進むIntelのパッケージ技術 - PC Watch
Samsung、異種混在CPU“Lakefield”搭載のモバイルノート「Galaxy Book S」 - PC Watch
【笠原一輝のユビキタス情報局】CoreとAtomを両搭載するIntelの新CPU「Lakefield」 - PC Watch
Products formerly Lakefield
InstLatX64さんはTwitterを使っています 「5-Core #Intel Core i5-L16G7 (#Lakefield) 806A1 CPUID dump added - Supported: SSE4.2, GFNI, CLWB, HYBRID - Unsupported: MOVDIR*, WAITPKG, CLDEMOTE, AVX, FMA, BMI, HTT, LZCNT, ADX, X2APIC, PAGE1GB, X2APIC, MPX, SGX https://t.co/f2lANECbdu https://t.co/0Lvti67aSq」 / Twitter
リークされたWindows 11のビルドは、IntelのハイブリッドCPU「Lakefield」のパフォーマンスを向上させます。 - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版 - “Ice Lake-U”、“Commet Lake-U”、“Lakefield”がEnd of Life (EOL) へ

Ice Lake

Ice Lake (client) - Microarchitectures - Intel - WikiChip
Sunny Cove - Microarchitectures - Intel - WikiChip
製品の開発コード名 Ice Lake
価格.com - CPU世代:第10世代 Core iシリーズのノートパソコン 人気売れ筋ランキング
herumiさんのツイート: "Cascade Lake-AP https://t.co/MdOLsFwmDv >プログラマーはMKL-DNNの最新版を利用することで、VNNIに自分のソフトウェアを対応させることができる。 Xbyakも1年以上前からVNNIに対応してます。というかMKL-DNNはXbyak経由でvpdpbusdを使ってるともいう。 https://t.co/x2N8zFJOE9"
mkl-dnn/jit_avx512_core_gemm_s8u8s32_kern.cpp at master · intel/mkl-dnn
Intel、次世代CPUアーキテクチャ「Sunny Cove」の概要を明らかに ~Willow Cove、Golden Coveと進化予定、Atomのロードマップも更新 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの次世代CPUマイクロアーキテクチャ「Sunny Cove」 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの10nm世代CPUコア「Sunny Cove」のカギとなるAVX-512 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelが10nmプロセスの「Ice Lake」を正式発表 - PC Watch
【笠原一輝のユビキタス情報局】Intelが新CPUを製品コードネームではなくマイクロアーキテクチャ名で説明したその背景 - PC Watch
Intel、10nmの第10世代Coreを出荷開始。プロセッサー・ナンバー変更 - PC Watch
【笠原一輝のユビキタス情報局】Intel、第10世代Core発表。10nmプロセスで、L1が1.5倍、L2は倍増に - PC Watch
【イベントレポート】次世代ノートPCでは1秒復帰/薄型狭額縁/AI機能/Core i5以上が標準に ~Intelのモダン化規格「Project Athena 1.0」を公表 - PC Watch
「Project Athena」でユーザーの声を汲み上げたモバイルPCを提供するIntel - PC Watch
【笠原一輝のユビキタス情報局】第10世代Coreの複雑怪奇なプロセッサナンバーを理解する - PC Watch
インテル® Adaptix™ テクノロジーが実現する自動チューニング
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 1
Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 2
10th Gen Intel® Core™ Processor Families Datasheet, Vol. 1
10th Gen Intel® Core™ Processor Families Datasheet, Vol. 2
IntelがIce Lake世代のCPUに施した「目立たないパワーアップ」とは? - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ネタ自体は面白いけど、GIGAZINEさん自身は bit と byte をあちこち混同して説明してるな。 ---- 「32bitを1単位として、「ymm1」レジスタの値をメモリに書き込んで」 「256bit分の領域を値で埋めることができたら…次のループに備えています。… add rax, 256」 https://t.co/6Zfi4RC5pl」 / Twitter
IntelのIce Lake世代CPUは「命令の種類による最大クロック制限」が緩和されている - GIGAZINE
InstLatX64さんはTwitterを使っています 「The only non-Core #SunnyCove, the Pentium 6805 also supports #AVX512: https://t.co/mrQjdBqlkV Source: https://t.co/WtIwBkuCx4 Well done! https://t.co/lmZFwjiWqO」 / Twitter
Intel® Pentium® Processor 6805 (4M Cache, up to 3.00 GHz) Product Specifications
Asus Laptop X515JA-BR661 Pentium 6805 тест с комментариями - YouTube

Tiger Lake

Willow Cove - Microarchitectures - Intel - WikiChip
Intel、新GPU「Xe」内蔵の「Tiger Lake」プロセッサを2020年投入 - PC Watch
【イベントレポート】Intel、10nm+のTiger LakeとXeアーキテクチャの単体GPU「DG1」を実機デモ - PC Watch
Intel次期CPU“Tiger Lake”にアーキテクチャレベルでセキュリティ機能追加 - PC Watch
Intel、次世代モバイルプロセッサ「Tiger Lake」の詳細を明らかに ~L2/L3が大幅増加、96EUのXe-LPを内蔵、LPDDR5やPCIe Gen4などに対応 - PC Watch
Intel、第11世代Coreプロセッサーを正式発表。「Intel Evo platform」のブランドも導入 - PC Watch
第11世代Core「Tiger Lake」の新要素まとめ - PC Watch
北森瓦版 - 今後のIntel製品にはどの10nmプロセスが使われるのか?
Intel、“AMDのノートはバッテリ駆動時に性能が大きく低下”と指摘 - PC Watch
Intel Sunny Cove - Agner's CPU blog
InstLatX64さんはTwitterを使っています 「#Intel #Celeron 6305 (#TigerLake-UP3) 806C1 (#AVX512 enabled, #AVX512_VP2INTERSECT, MOVDIRI, MOVDIR64B, CLWB, RDT_A) CPUID dump Thx, @ccc00911! https://t.co/9y3gXcmKJW https://t.co/KqURzj8psd」 / Twitter
InstLatX64さんはTwitterを使っています 「#Intel Ark seems wrong regarding SIMD support of #Pentium Gold 7505 and #Celeron 6305: https://t.co/YuspuMvlHQ https://t.co/wIUSyAIE0A」 / Twitter
Intel® Product Specification Comparison
Intel、最大8コアになったゲーミングノート向け第11世代Core - PC Watch
Intel、TDP 35Wの高性能CPU「第11世代Core H35シリーズ」を発表。VAIOの次世代ハイエンドノートと思しきマシンがチラ見せ - PC Watch
PC=職場という新しい認識にマッチした第11世代vPro搭載ノート - PC Watch
Intelが6~8コア対応のノートPC向けプロセッサ「Tiger Lake-H」シリーズを正式発表、搭載ノートPCも続々登場 - GIGAZINE
北森瓦版 - 最大8-coreの“Tiger Lake-H45”が正式発表される
インテル、8コアのTiger Lake-Hプロセッサを発表:より強力に、より低いクロックで|自作.com
Intelの低電圧モデル「Tiger Lake-U」から最大5GHzの「Core i7-1195G7」「Core i5-1155G7」が登場 - GIGAZINE
2021年のComputexでのインテル。新しいTiger Lakeプロセッサ、Beast Canyon NUC、5Gチップ|自作.com
インテル Core i7-1195G7、GeekbenchシングルコアCPUベンチマークで1700ポイントを獲得 - 自作ユーザーが解説するゲーミングPCガイド

AlderLake

Alder Lake-P のブートログ | Coelacanth's Dream
ALDERLAKE_L と Alder Lake-P/M | Coelacanth's Dream
Alder Lake-M 関連のパッチが Coreboot に投稿される ―― ADL-M は ADL-P の I/O 縮小版か | Coelacanth's Dream
Alder Lake-P/M のステッピング、PL1/PL2 参考値 | Coelacanth's Dream
低消費電力コアにもかかわらず、インテルのAlder LakeモバイルはTDP115Wまで押し上げられる|自作.com
北森瓦版 - Mobile向け“Alder Lake”のSKU―TDP5Wから55Wまでで展開される

【スペック一覧】モバイル向けIntelプロセッサー・ナンバー一覧表 - PC Watch
パソコン/タブレット/スマートフォン ノートパソコン Acer - PC Watch
PCパーツ ベアボーン Intel - AKIBA PC Hotline!
専用ベンチではRyzenが高性能でも、ゲーム性能ではCoreが勝つ理由とは ~Intelがベンチマーク説明会を開催 - PC Watch
北森瓦版 - Intel ノートPC形状のNUC M15 Laptop Kitを発表

レガシー

Pentium Pro

ASUS P/I-XP6NP5 - Specs | BIOS | Drivers | Manual | Download
ASUS 日本
Pentium Pro - Wikipedia
P6マイクロアーキテクチャ - Wikipedia
Socket 8 - Wikipedia
I2O - Wikipedia
I2O - Wikipedia
Dynamic Random Access Memory - Wikipedia

Ivy Bridge

Westmere - Microarchitectures - Intel - WikiChip
Sandy Bridge (client) - Microarchitectures - Intel - WikiChip
Ivy Bridge - Microarchitectures - Intel - WikiChip
「第3世代Coreプロセッサ・ファミリ」はどこが進化したのか - @IT
Intel Core i3-3220 - CM8063701137502 / BX80637I33220 / BXC80637I33220
GA-H77M-D3H (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
Desktop 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 1
Desktop 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
Desktop 3rd Generation Intel® Core™ Processor Family: Spec Update
Mobile 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 1
Mobile 3rd Generation Intel® Core™ Processor Family, Mobile Intel® Pentium® Processor Family, and Mobile Intel® Celeron® Processor Family - Datasheet, Volume 2
Mobile 3rd Generation Intel® Core™ Processor Family: Spec Update
Intel® 7 Series / C216 Chipset Family Platform Controller Hub (PCH) - Datasheet
Intel® 7 Series / C216 Chipset Family Platform Controller Hub (PCH) Family - Datasheet Specification Update

Haswell

Haswell - Microarchitectures - Intel - WikiChip
Intel Core i5-4200U Mobile processor - CL8064701477702
Intel® Core™ i5-4200U Processor (3M Cache, up to 2.60 GHz) 仕様
E1-572-A54D_H1 - E1-572-A54D_201306.pdf
製品サポート
価格.com - Acer Aspire E1 E1-572-A54D スペック・仕様
Intel® Core™ Processors (M/H-Processor Lines) Datasheet, Vol. 1
Mobile 4th Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
Mobile 4th Gen Intel® Core™ Processor Family I/O: Datasheet
Mobile 4th Gen Intel® Core™ Processors Spec Update
Desktop 4th Gen Intel® Core™ Processors Datasheet, Vol. 1
Desktop 4th Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
Desktop 4th Gen Intel® Core™ Processors Spec Update
Haswell世代のCPUにエラッタが見つかる、Haswellの新機能「TSX」を無効化へ | スラド IT
Intel® 8 Series/C220 Series Chipset Family Platform Controller Hub (PCH) - Datasheet
Intel® 8/C220 Series Chipset Platform Controller Hub: Update
14nmの不足の中で、Intelは22nm Pentium G3420に命を吹き込みます - 自作ユーザーが解説するゲーミングPCガイド
Intel Celeron G1840 - CM8064601483439 / CM8064601562181 / BX80646G1840
インテル® Celeron® プロセッサー G1840 (2M キャッシュ、2.80 GHz) 製品仕様
価格.com - 東芝 dynabook Satellite R35 R35/M PR35MGAD423AD71 価格比較
Intel Core i3-4005U Mobile processor - CL8064701478404

Broadwell

Broadwell - Microarchitectures - Intel - WikiChip
H97-PRO | マザーボード | ASUS 日本
Intel Core i5-5675C - CM8065802483201 / BX80658I55675C
製品の仕様情報 - Intel® Core™ i5-5675C Processor (4M Cache, up to 3.60 GHz)
5th Generation Intel® Core™ Processor Family Datasheet Vol. 1
5th Generation Intel® Core™ Processor Family Datasheet Volume 2
Desktop 5th Gen Intel® Core™ Processor Family Datasheet, Vol. 1
Desktop 5th Gen Intel® Core™ Processor Family Datasheet, Vol. 2
Desktop/Mobile 5th Gen Intel® Core™ Processor Family Spec Update
Intel® 9 Series Chipset Family Platform Controller Hub (PCH) - Datasheet
Intel® 9 Series Chipset Platform Controller Hub Spec Update
MSI、Intel 9シリーズマザーのBIOS更新でNVM Expressに対応 - PC Watch

Skylake

Intel

Intel® Core™ i3-6100 Processor (3M Cache, 3.70 GHz) 仕様
6th Generation Intel® Core™ Processor Family Datasheet, Vol. 1
6th Generation Intel® Processor Datasheet for S-Platforms — Datasheet – Volume 2 of 2
6th Generation Intel® Processor Family
6th Generation Intel® Processor Family Uncore Reference Manual
6th Generation Intel® Core™ Processor I/O Datasheet, Vol. 1
6th Generation Intel® Core™ Processor I/O Datasheet, Vol. 2
6th Generation Intel® Core™ Processor Family Datasheet, Vol. 1
6th Generation Intel® Core™ Processor Family Datasheet, Vol. 2
Intel® 100 Series Chipset Family PCH Datasheet, Vol. 1
Intel® 100 Series Chipset Family PCH Datasheet, Vol. 2
Intel® 100 Series Chipset Family PCH Specification Update

Errata

Skylake CPUで複雑な処理を実行させるとPCがフリーズするバグが確認される | スラド IT
IntelのSkylakeプロセッサに複雑な計算プログラム実行でシステムフリーズするバグが見つかる - GIGAZINE
【PC】Intel Skylake/Kaby Lakeに深刻な欠陥 Hyper-Threadingでシステムが予測不能な動作、データ損失などの可能性 すべてのOSに影響 | LH MAGAZINE
[WARNING] Intel Skylake/Kaby Lake processors: broken hyper-threading
Skylake/Kaby LakeプロセッサのHTTに不具合 | スラド Linux
IntelのSkylake&Kaby Lake世代のCPUにはハイパースレッディング有効でデータ欠損やプログラムエラーにつながる重大なバグがあると判明 - GIGAZINE
Skylake/Kaby Lakeでシステムクラッシュを引き起こすエラッタが発見。BIOS更新が必要 - PC Watch
北森瓦版 - “Skylake”と“KabyLake”にHyperThreading周りのエラッタが発見される
2017年6月29日 Debian開発者,Intel Skylake/Kaby Lakeユーザにハイパースレッディング無効化を警告:Linux Daily Topics|gihyo.jp … 技術評論社

News

北森瓦版 - “Skylake”で導入された“Speed Shift technology”
【CPU】 Skylakeの機能、Speed Shift TechnologyがWin10で有効に : ニッチなPCゲーマーの環境構築
質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (1/2) - ITmedia PC USER
第 6 世代インテル® Core™ プロセッサー (開発コード名 Skylake) の概要
古田雄介のアキバPickUp!:Skylakeに低GPU内蔵のPモデルが登場! (1/4) - ITmedia PC USER
Hot Chips 28 - Inside Skylakeと題したIntelの発表 (1) 消費電力管理に改良が施されたIntelのSkylake | マイナビニュース
【特集】「Skylake」完全攻略!!(追加検証) - 内部解析で第6世代Coreの謎に迫る | マイナビニュース
Intel、SpectreパッチでのOS再起動問題に対処したSkylake向けファームウェアを提供 - PC Watch
Intel microcode updates
Microsoft Update カタログ

マザーボード | H170-PRO | ASUS 日本
J10812_H170-PRO_web_only.pdf
Intel® Management Engine の重要なファームウェア・アップデート | サポート 公式 | ASUS 日本
Skylake (client) - Microarchitectures - Intel - WikiChip
Core i3-6100 - Intel - WikiChip
Intel Core i3-6100 - CM8066201927202 / BX80662I36100

Kaby Lake

GA-Z270X-UD5 (rev. 1.0) | マザーボード - GIGABYTE Japan
Kaby Lake - Microarchitectures - Intel - WikiChip
Core i3-7100 - Intel - WikiChip
Intel Core i3-7100 - CM8067703014612 / BX80677I37100 / BXC80677I37100
インテル® Core™ i3-7100 プロセッサー (3M キャッシュ、3.90 GHz) 製品仕様
Datasheet, Vol. 1: 7th Gen Intel® Processor Family for S Platforms
Datasheet, Vol. 2: 7th Gen Intel® Processor Family for S Platforms...
Datasheet, Vol. 1: Intel® 200 and Z370 Series Chipset Families PCH
Datasheet, Vol. 2: Intel® 200 and Z370 Series Chipset Families PCH
Intel® 200 and Z370 Series Chipset Families PCH Spec Update

Intel、Core 2 Duoなど旧CPUの「Spectre」対策を中止 - PC Watch
1502494_PC_AT_Technical_Reference_Mar84.pdf
Chromeは15年以上前のプロセッサではまもなく機能しなくなります|自作.com
化石レベルの古いCPUは切り捨て ~「Google Chrome 89」でx86版はSSE3命令が必須に - やじうまの杜 - 窓の杜
Flash対応を廃止。「Electron 12」が正式リリース ~SSE3命令が必須に - 窓の杜

GPU

その他

Intel Graphics - ArchWiki
drivers/gpu/msd-intel-gen - Git at Google
Makoto Kato ︎︎さんのツイート: "先週聞いた面白バグでDXGI_USAGE_SHADER_INPUTを使うかどうかでIntel GPUが激速くなるって話があったんだけど、これのRoot cause知りたい https://t.co/VgdEMJsdZA"
1528865 - Blitting picture cache tiles seems slower on Windows/ANGLE for the same hardware.
グラフィックボード・ビデオカードのビデオBIOSとGOPドライバについて - DXR165の備忘録
Intel Processor Graphics 調査メモ - DXR165の備忘録
実機でIntel Processor Graphicsメモリ検証 - DXR165の備忘録
Windows 10プレビューに“外部GPUの安全な取り外し”機能追加 - PC Watch
Windows 10プレビュー版、iGPU/dGPUを任意に切り替え可能に - PC Watch
【イベントレポート】Intel、ノートPC向けディスプレイの消費電力を削減する新技術 - PC Watch
CURD: A Dynamic CUDA Race Detector
FadisさんはTwitterを使っています 「初期のPC向けGPUは座標変換をCPUに任せていたけど、それだと座標変換で詰まるって事で座標変換もGPUで行うようになった。その後GPUがプログラマブルになると頂点計算する演算器とピクセル計算する演算器をパイプラインを止めない割合で積むのが難しくなり、両方を共通のプロセッサで行うGPUが登場した」 / Twitter
FadisさんはTwitterを使っています 「一方SGIのワークステーションは、浮動小数点数の計算が超速いDSP積んだからそこで全部なんとかしろ、というハードウェアだったので、PCのGPUは試行錯誤の末にSGIと同じ形にたどり着いた感がある」 / Twitter
Intel GPUドライバ、PCメーカー版と相互入れ替え可能に - PC Watch
Intel、内蔵GPUによるウイルスチェック機能を実装。チップ消費電力を半減 - PC Watch
統合型GPUでメモリ内のマルウェアをスキャン。Intelがセキュリティに関する新技術や取り組みを発表 - 4Gamer.net
IntelがマルウェアスキャンにGPUの使用を開始
Intel、Lakefield の GPU Programmer's Reference Manuals を公開 | Coelacanth's Dream

Driver

グラフィックドライバーを更新してハードウェアアクセラレーション機能と WebGL を使用する | Firefox ヘルプ
インテル® ドライバー & サポート・アシスタント
AMD Radeonの公式ソフトウェアおよびドライバー
NVIDIAドライバダウンロード
ドット絵を引き伸ばしてもボヤけない機能、Ice Lakeの内蔵GPUにも実装 - PC Watch

Intel

Hardware Specification - PRMs | 01.org
VAAPI | 01.org
Hardware Accelerated H.264 Video Encoding using VAAPI on the Intel® Atom™ Processor E6xx Series
インテル® プロセッサー・グラフィックス | iSUS
Intel® Processor Graphics | Intel® Software
インテル® グラフィックス・コントローラーの識別
Identify Your Intel® Graphics Controller
Quick Reference Guide for Intel® Core™ Processor Graphics | Intel® Developer Zone
Using hardware video decode on Mobile Internet Devices | Intel® Developer Zone
01org/intel-hybrid-driver

レガシー

Clarkdale

【多和田新也のニューアイテム診断室】CPU+GPUを統合したClarkdaleこと「Core i5-661」 - PC Watch
【後藤弘茂のWeekly海外ニュース】BecktonからClarkdaleまでの実態が明らかに - PC Watch
【後藤弘茂のWeekly海外ニュース】IntelがMoorestownとClarkdaleの新情報を公開 - PC Watch
【後藤弘茂のWeekly海外ニュース】Westmere系CPUのラッシュとなるIntelの2010年ロードマップ - PC Watch

Sandy Bridge

Intel Fanboy Blog: いまさらSandy Bridge 2: RWT Graphics編
Intel Fanboy Blog: Agner氏の最適化manualが更新された
Intel Fanboy Blog: いまさらSandy Bridge 1: RWT編
Intel Fanboy Blog: Sandy Bridgeの最適化マニュアル
Intel Fanboy Blog: 駄文: uop長とuop cache
Intel Fanboy Blog: 単一uopで128b/256bのLoadを実現するSandy Bridge
【後藤弘茂のWeekly海外ニュース】今どきのGPUコアへと生まれ変わるSandy Bridge - PC Watch

Ivy Bridge

【後藤弘茂のWeekly海外ニュース】Ivy Bridgeの強化ポイントはGPUアーキテクチャの改革 - PC Watch

Haswell

【後藤弘茂のWeekly海外ニュース】HaswellのGPUコア「Iris」はなぜ強力なのか - PC Watch
【後藤弘茂のWeekly海外ニュース】次世代CPU「Haswell」の2倍強力なGPUコア - PC Watch

Broadwell

【後藤弘茂のWeekly海外ニュース】IDFでIntelが14nmプロセス世代の「Broadwell」を公開 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelがデスクトップ/eDRAM版を含めた「Broadwell」ファミリを説明 - PC Watch

Skylake

COOL Chips XIX - コンピューティングの新たなフロンティア (1) SkylakeのGPUが示したIntelの新たな方向性 | マイナビニュース
COOL Chips XIX - コンピューティングの新たなフロンティア (2) SkylakeのGPUの構造 | マイナビニュース
歴代Intelグラフィックの劇的進化が第6世代Intel Coreプロセッサ「Skylake」のGPU詳細から浮き彫りに - GIGAZINE
【後藤弘茂のWeekly海外ニュース】Intelがチラ見せする「Skylake」世代のCPUの姿 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの次世代マイクロアーキテクチャ「Skylake」 - PC Watch
【後藤弘茂のWeekly海外ニュース】Skylakeは14nmプロセスに合わせたマイクロアーキテクチャか - PC Watch
【後藤弘茂のWeekly海外ニュース】Skylakeアーキテクチャの謎 その2 ~5命令デコーダと6命令uOPキャッシュ - PC Watch
【後藤弘茂のWeekly海外ニュース】実行モデルを変更したSkylakeのGPUコア ~より汎用的なGPUコンピューティングに向いた設計へ - PC Watch
【後藤弘茂のWeekly海外ニュース】GPUコンピューティング機能を強化したSkylakeのGPU ~タブレットの応答性が向上 - PC Watch

Kaby Lake

Intel、Kaby Lakeこと第7世代Coreプロセッサを正式発表 ~Skylakeからビデオエンジンが強化 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの「Kaby Lake」は“+”プロセス世代初のCPU - PC Watch

Ice Lake

【イベントレポート】Intel製Gen11 GPUは、ユニット3割増で1080pゲームも可能に。Adaptive-Syncにも初対応 - PC Watch
Intelの次期内蔵GPUは1TFLOPSの性能で3Dゲームにも対応 - PC Watch
西川善司の3DGE:第10世代Coreプロセッサに統合されたGPUの正体。性能はRyzen 7 3700Uの内蔵Vegaとほぼ同等で,Variable Rate Shadingにも対応 - 4Gamer.net

Tiger Lake

【やじうまPC Watch】Tiger Lake内蔵のXe GPUで「バトルフィールドV」がプレイ可能 - PC Watch
薄型ノートでゲーミングを可能にするIntel Xe GPUまとめ 〜ゲーム認証プログラムが日本国内でも開始 - PC Watch

Alder Lake

Linux Kernel に Intel Alder Lake-P をサポートするパッチが投稿される ―― ディスプレイエンジンに "XE_LPD" | Coelacanth's Dream

Xe GPU

DG1

【後藤弘茂のWeekly海外ニュース】IntelがディスクリートGPUのプロトタイプを発表 - PC Watch
【イベントレポート】Intel、同社初の単体GPU「DG1」搭載ビデオカードを初披露。開発者向けボードは第1四半期中に出荷 - PC Watch
【PR】Architecture Dayに見た、Intelの底力と変貌【新GPU「Xe」編】 ~GPUでもトップ性能を狙うIntelの秘技とは- PC Watch
Intel、22年ぶりのディスクリートGPU「Iris Xe MAX」を正式発表 - PC Watch
Intel、ゲーミング向けXeとなるXe-HPGの存在を明らかに ~Xe-HPGは外部のファウンダリで製造され、2021年に市場投入 - PC Watch
Xe LP採用ビデオカード「DG1-4G」スペック公開。対応マザボは2種類限定 - PC Watch
i740以来のIntelビデオカードがついに登場。まずASUSから - PC Watch
新しいインテルDG1ディスクリートGPUが登場。D-Sub出力とロープロファイルデザインの融合|自作.com
インテルの「Iris Xe DG1」は1080p対応の格安ゲーミングGPU|自作.com

DG2

2つの非同期パイプラインが追加される XeHP EU | Coelacanth's Dream
Intel Xe-HP EU に追加されるパイプラインと増加するスレッド、レジスタファイル | Coelacanth's Dream
intel Xe-HPG ゲーム ディスクリート グラフィック カード DG2 GPU を備えた詳細 - 4096 コア、16 GB の VRAM と 6 つのモデルまで - 自作ユーザーが解説するゲーミングPCガイド
512個のEU、4096個のコア、12GB GDDR6 VRAM、最大1800MHzのクロックを備えたIntel Xe-HPG DG2フラッグシップゲーミングGPUを発見 - 自作ユーザーが解説するゲーミングPCガイド
インテル® Xe-HPG DG2グラフィックスカードのPCBがリーク - 4096コア、16GB VRAM、NVIDIA RTX 3080に迫るゲーム性能を実現 - 自作ユーザーが解説するゲーミングPCガイド
インテルのフラッグシップGPU「Xe-HPG DG2-512」は、AMD Navi 22やNVIDIA GA104よりも大きく、ダイサイズは約396mm2。 - 自作ユーザーが解説するゲーミングPCガイド
インテルのGPU「DG2」のリーク仕様には重大な可能性が秘められている|自作.com
IntelのRaja Koduri氏が512個のEUを搭載したゲーミングGPU「Xe-HPG」を披露|自作.com
インテル、Xe-HPG GPUでAMDのFidelityFX SuperResolutionを実現する可能性あり|自作.com
インテルのDG2 GPU、初期のベンチマークでGTX 1050並みの性能を発揮|自作.com
北森瓦版 - Gaming向けとなるDG2は最大512基のExecution Unitを搭載する
北森瓦版 - 128 EUのXe-HPGのボードダイアグラム―Xe-HPGの登場は'21年末?
北森瓦版 - Raja Koduri氏が512 EUのXe-HPG (DG2) を明らかに
北森瓦版 - Intel DG2の性能はGA104やNavi 22と同程度?
インテルが確認。Xe HPGゲーミンググラフィックスカード「DG2」の試作品をサンプリング開始 - 自作ユーザーが解説するゲーミングPCガイド
Linux Kernel に Intel Xe-HP SDV, DG2 をサポートする最初のパッチが投稿される | Coelacanth's Dream

Intel、Display13 改め "XE_LPD" をサポートするパッチを投稿 ―― 今後は独立して各 IP が更新されるように | Coelacanth's Dream

Wikipedia

Intel HD Graphics - Wikipedia
Intel HD and Iris Graphics - Wikipedia
Intel GMA - Wikipedia
Intel Extreme Graphics - Wikipedia
Intel 845 - Wikipedia
Intel 830 - Wikipedia
Intel 815 - Wikipedia
Intel 810 - Wikipedia
Intel 740 - Wikipedia
Intel740 - Wikipedia
Accelerated Graphics Port - Wikipedia
実行ユニット - Wikipedia
High-bandwidth Digital Content Protection - Wikipedia

MIMD/SIMT

Hideyuki Tanakaさんのツイート: "てか僕はいまだにMIMDでなんでNVIDIAと同じぐらいの面積当たり演算性能出せてるのかがいまだに謎(´・_・`)いやまあ若干低いけど、それがそこまでのコストになんないならなんでNVIDIAがSIMTにこだわる必要があったんだろうとか。"
青子守歌さんのツイート: "@tanakh GPUだから・・・"
Hideyuki Tanakaさんのツイート: "@aokomoriuta そりゃまあそうですね…"
Hideyuki Tanakaさんのツイート: "結局クソでかいレジスタファイルは用意しないといけないし、面積インパクトとして独立したIPもってデコードして云々はそんなにでかくもなかったというのがアレなのかなあ。"
Jun Makinoさんのツイート: "フルデコードの倍精度浮動小数点演算器1つに比べてプロセッサコアは「小さい」のでMIMD にすることのシリコン面積的なオーバーヘッドはせいぜい 30%(数字は適当) という議論はまさに2014年3月にTさんとした。"

AMD

TAGE

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「2レベル適応型分岐予測で知識が止まっていて、TAGE知らなかった。 見た感じ、2レベル適応型をベースに、履歴ビット長を級数別で用意みたいな雰囲気…?なぜオカルト派的な話が出るのか不思議。 https://t.co/hqKVDOoXjX https://t.co/2l4pAU6FJa」 / Twitter
【後藤弘茂のWeekly海外ニュース】AMDがZen 2で採用した現在最強の分岐予測「TAGE」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUコア「ZEN」のニューラルネットワーク分岐予測機能 - PC Watch
R. ShioyaさんはTwitterを使っています: 「「原理的には相関がある分岐がロジカルに見つかるはず」なデジタル派と「分岐予測ってのは,とどのつまり流れなわけよ流れ」とか言ってるオカルト派みたいに分かれて話してた https://t.co/vgXW8DNZqx」 / Twitter
hrk先生さんはTwitterを使っています: 「@r_shioya TAGEは巧みな方法ですが、動作内容を理解してない人が多すぎ。オカルトと思っているのじゃないかな?分岐予測論文で比較対象として実装して提案手法の優位性をしめしている論文の少なくない割合の論文では実装が間違っている。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔々「2レベル適応型分岐予測」を知った時に、もう十分賢いから改善余地無さそうと思っていたけど、最後の数%ミスで数10%のパフォーマンス影響とは…」 / Twitter
R. ShioyaさんはTwitterを使っています: 「TAGE 自体に興味ある方は,BATAGE という改良版のこの論文が過去の予測器の経緯とかも含めてコンパクトにまとまってると思いますので読んでみてはと. https://t.co/ovCGPq4jkk https://t.co/WVYvMPQIwb」 / Twitter
An Alternative TAGE-like Conditional Branch Predictor
R. ShioyaさんはTwitterを使っています: 「@shirouzu オカルトについては別に書いた通りなんですが,今日日だと「1サイクル8命令フェッチ × 予測ミス判明まで最短15サイクル=120命令取り消し」みたいのが,2レベル適応型だと1000命令あたり10回ぐらいはおきるので,実質半分以上無駄に実行してるみたいになって,これでは全然精度たりないみたいな感じです」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya ご説明ありがとうございます。まさにそこが判らなかった点でした。 (パイプライン10数段のペナルティ=10数命令破棄だけのはずでは、と) なるほど、そういうことなのですね。とても興味深いです。」 / Twitter
Branch Prediction and the Performance of Interpreters - Don't Trust Folklore

PC Watch

Zen

【後藤弘茂のWeekly海外ニュース】AMDが次世代CPU「Zen」アーキテクチャの概要を発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代コア「Zen」などの概要が明らかに ~「Hot Chips 28」セッションにて、IBM製CPU「Power9」の概要も - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUコア「ZEN」のニューラルネットワーク分岐予測機能 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUマイクロアーキテクチャ「ZEN」の命令デコード - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの次世代CPU「ZEN」の整数ユニットはBulldozer系と全く異なる - PC Watch
【後藤弘茂のWeekly海外ニュース】相対的に大人しい設計のAMD次世代CPU「ZEN」の浮動小数点/SIMDユニット - PC Watch
【後藤弘茂のWeekly海外ニュース】ISSCCで明らかにされたAMD Zen CPUコアの実装 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが次世代CPU「Ryzen 7」ファミリを3月2日から発売 ~最上位のRyzen 7 1800Xで59,800円 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが新CPU「Ryzen 7」を発売。続けて「Ryzen 5」と「Ryzen 3」も投入へ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD「Ryzen 7」の半導体チップの姿 - PC Watch

Zen 2

【後藤弘茂のWeekly海外ニュース】AMDがチップレットアーキテクチャのクライアント版Zen 2を投入へ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが16コアRyzen 9を含むZen 2の概要とアーキテクチャを発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD Zen 2の高い性能効率を支えるフロントエンドアーキテクチャ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDがZen 2で採用した現在最強の分岐予測「TAGE」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD Zen 2は実行パイプライン拡張で浮動小数点性能が2倍に - PC Watch
【後藤弘茂のWeekly海外ニュース】処理能力が2倍に拡張されたAMD Zen 2のAVXユニット - PC Watch
【後藤弘茂のWeekly海外ニュース】ZEN 2ベースの64コアCPU「Rome」はなぜCPUとI/Oを分離したのか - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの7nmプロセス「ZEN 2」CPUコアのマイクロアーキテクチャ拡張 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD、7nmで最大64コアの「ZEN2」とNVIDIA Voltaを上回る「Radeon Instinct M60」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD、“Renoir”ことZen 2ベースAPU「Ryzen Mobile 4000シリーズ」の概要を明らかに - PC Watch
【後藤弘茂のWeekly海外ニュース】AMD Zen 2 CPUコアの物理的な姿が明らかに - PC Watch

Zen 3

【後藤弘茂のWeekly海外ニュース】AMD Ryzenの「Zen 3」と「Zen 4」アーキテクチャ - PC Watch
【後藤弘茂のWeekly海外ニュース】7nmプロセスに最適化したAMDのRyzen 4000 - PC Watch
【後藤弘茂のWeekly海外ニュース】7nmで作られた第3世代Ryzenのトランジスタ密度が低い理由 - PC Watch
【笠原一輝のユビキタス情報局】「Ryzen 7 5800U」はApple M1を上回る性能で、Intel並みの長時間駆動を実現 - PC Watch
AMD、Zen 3採用のデスクトップ向けAPUを発表。従来比50%高速なノート向けGPUも - PC Watch
AMD、Zen 3アーキテクチャに刷新したGPU内蔵の「Ryzen 5000G」 - PC Watch

【笠原一輝のユビキタス情報局】AMD PROで国内法人PCシェア倍増を目指すAMD ~チャネル市場向けAMD PROの計画も明らかに - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDやIBM、Armが「Hot Chips 31」でCPUアーキテクチャを公開 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが目指すマルチダイ統合最初の一歩“ZENのMCMアプローチ” - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDのマルチダイ戦略の先駆けとなるZeppelinアーキテクチャ - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDがISSCCでZENベースSoC「Zeppelin」の詳細を明らかに - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDのチップ設計手法を変えたInfinity Fabricのコントロールファブリック - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDの2017年以降の全チップの土台となる「Infinity Fabric」 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが12nmプロセスの第2世代Ryzenファミリを正式発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】AMDが第2世代RyzenやAPU版Ryzen、モバイル版Vegaなどを一挙発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】ZEN+Vegaとなった「Ryzen Mobile」ファミリの詳細 - PC Watch
第3世代Ryzen向けの新電源プラン、アイドル/低負荷時の問題が解消 - PC Watch
Ryzen 5000などにSpectreに似た投機実行の脆弱性 - PC Watch
AMD、高速L3キャッシュでゲーム性能を15%向上させる3D積層技術 - PC Watch
【笠原一輝のユビキタス情報局】AMD RyzenがIntelより優位な理由。プロセッサの競争軸を変えていく「3Dパッケージング技術」とは? ~AMDが3D Chiplet Technologyを発表 - PC Watch
AMD、Re-Size BAR対応のRyzen 5000シリーズ向け新BIOSを2月に公開 - PC Watch

GIGAZINE

「AMDのRadeon用ドライバー」はLinuxカーネル全体の1割を占めていることが判明 - GIGAZINE
最新グラボから旧式グラボまで対応の超解像技術「AMD FidelityFX Super Resolution」をAMDが解説 - GIGAZINE

自作ユーザーが解説するゲーミングPCガイド

AMD FidelityFX Super Resolution(FSR)が6月22日に正式に公開、RadeonとGeForceのGPUが対応 - 自作ユーザーが解説するゲーミングPCガイド
AMD、BIG/LITTLEプロセッサ間のタスク移行方式の特許を取得 - 自作ユーザーが解説するゲーミングPCガイド

自作.com

AMDのCPU「Zen 3」にSpectre類似の脆弱性が存在|自作.com
AMDはRyzen USB接続の問題の可能な修正を提案します|自作.com
AMD Ryzen 5000G Cezanne APU:現在OEM向けに出荷中、年内にDIY向けに発売予定|自作.com

北森瓦版

北森瓦版 - ASUS, MSIが“Zen”や“Zen 2”でResizeable BARに対応?
北森瓦版 - AMD Smart Access Memory (Resizable BAR) をRyzen 3000系でサポートへ

Coelacanth's Dream

Aldebaran/gfx90a への対応を進める ROCmソフトウェア | Coelacanth's Dream
AMD の次世代モバイルプラットフォームでは人感センサーをサポート | Coelacanth's Dream

Twitter

AGESA

suzakiさんはTwitterを使っています 「メモ。AMDのUEFI以前にPSP(Platform Security Processor) とAGESA(AMD Generic Encapsulated Software Architecture )が行っていることについての記事。 AMD UEFI Inside: What is really behind AGESA, the PSP (Platform Security Processor) and especially Combo PI? https://t.co/4bUtwxGeXR」 / Twitter
AMD UEFI Inside: What is really behind AGESA, the PSP (Platform Security Processor) and especially Combo PI? | igor'sLAB
suzakiさんはTwitterを使っています 「AMDのAGESA(AMD Generic Encapsulated Software Architecture )インターフェース仕様 AMD Generic Encapsulated Software Architecture (AGESA™) Interface Specification https://t.co/cxmRjqmYZ9」 / Twitter
AMD Generic Encapsulated Software Architecture (AGESA™)Interface Specificationfor Arch2008 - 44065_Arch2008.pdf

OpenBMC

suzakiさんはTwitterを使っています 「メモ。AMDで進むオープンソースのファームウェア。まず、OpenBMCから ”AMD Is Making Progress On Open-Source Firmware - Initially With OpenBMC” https://t.co/dpY5gqjWv2 Open-Source Firmware Conference (OSFC 2020)での発表で水ども公開さ入れている。 https://t.co/2QDUUsdDJX」 / Twitter
AMD Is Making Progress On Open-Source Firmware - Initially With OpenBMC - Phoronix
AMD's Journey towards Open Source OpenBMC firmware :: Open Source Firmware Conference 2020 :: pretalx

Fumihiro MatsuiさんはTwitterを使っています: 「そういえば某社CPUのRDRAND命令の起動後エントロピー少ない場合の挙動あれじゃね?の件どうなったんだろうっていまググったら既にパッチ(マイクロコードアプデ?)で対応されたみたいだった」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「@MikeHommey あえて空冷にしました。 https://t.co/LLDs9ArmPV 見た目よりも大きいので、PCIeスロットがソケットに普通より近いモデルではグラフィックカードと干渉します。また、高さもあるのでケースも選びます。私はLEDを設定するためのUSBケーブルが、グラフィックカードと干渉して付けられませんでした。」 / Twitter
Cooler Master: Wraith Ripper
うーさんはTwitterを使っています: 「もしやと思ってIA32_STAR[48:63]に設定する値(アプリ用のスタックセグメントセレクタ)に3を足してみたら(RPL=3)GPが出なくなった。多分AMDのCPUのバグだこれ。」 / Twitter
うーさんはTwitterを使っています: 「いや,バグじゃない。仕様通りだ。IntelのCPUで例外にならずAMDのCPUで例外になるというのが仕様通り。やられた。」 / Twitter
FadisさんはTwitterを使っています: 「AMDの少し古いCPUでLinuxカーネルから得るCPU情報を「乱数生成器なし」にする提案がなされている。対象のCPUは乱数生成器を持つが、このCPU向けの一部のBIOSがサスペンドから復帰する際に乱数生成器を正しく初期化せず、復帰後予測可能な値が出てくる問題が指摘されていた https://t.co/CmBOGEFq84」 / Twitter
AMD Bulldozer/Jaguar CPUs Will No Longer Advertise RdRand Support Under Linux - Phoronix
Takuto NaitoさんはTwitterを使っています 「AMD CPU BIOS の脆弱性の解説。What's SMM から始まって SMRAM の書き換え→SMMで任意のコード実行→任意のメモリ書き換え→HVCIのセキュリティを突破と Step by Step で説明してあって良記事 Code execution in SMM is a game over for all security boundaries.https://t.co/b4811g1NEJ」 / Twitter
Attacking the Golden Ring on AMD Mini-PC - danny odler - Medium
Kota Mizushima (on a diet)さんはTwitterを使っています 「「安定性はIntel」って言葉を(自作かじってるくらいの人が言ってるのを)未だにちょくちょく見かけるけど、どういう意味なのだろう?Intel 系にしかない命令セット使ったなら、そりゃIntelでしか動かないと思うけど、安定性とは如何に……」 / Twitter
け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu クリエーター系のツール群をA社が出してますが、3世代目になったA社のR CPUでも若干不安定という話もあるので、ハードのみならずソフトウェアの互換性でもその言葉に意味はあるかも。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@keisuke_n 若干不安定て https://t.co/7E7es9Ta4q 辺りでしょうか?ただ、これくらいしか、落ちる系の話見当たらないんですよね。「安定」って何かを考えた時に、デバイスドライバはまあ、M/Bとかも絡むので、ともかくアプリケーションレベルだと、安定しなかったらCPUの不具合だと思うのです……」 / Twitter
AMD・Ryzenに対してAdobeのソフトウェアは最適化されておらず相性が悪いというのは本当か?
け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu プレミア(映像編集)あたりで特によく落ちるということなのでSIMD関連(SSE/AVX)が一番の問題だったのかと思います。3000番台になってから特にSIMD関連のチューニングされたらしいとのことです。 ただ業務だと敏感になるところなのでIntelにしておきたいという本音はあるかと思います」 / Twitter
け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu 追記:3000番台になって落ちにくくなった。 CPUの挙動は結構バラバラ(特にタイミング)なのでたぶんA社がかなりクリティカルなアセンブリなコードを書いていてそれで意図しない動作になってしまっているのかと思います。まぁ実際はApple Siliconでは動いているようですけど(^^;。」 / Twitter
InstLatX64さんはTwitterを使っています 「My #Zen3 expectations -Documented non-Zen2 feats:#VAES,#VPCLMUL, PKU, PCIDE -Dual int store -300+ ROB -Better L1,L2 latency to compensate bigger L3 -4x256b, more symmetrical FPU (2x256b (v)shift, store, perm, div) -fewer ucoded insts -0 crosslane penalties My Zen2 complaint list https://t.co/j78IT9NdQx」 / Twitter
InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer’s Manual Volume 1: Application Programming" with shadow stack support https://t.co/5MgdnLZ0gg https://t.co/uZpXkdmLEH」 / Twitter
InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer's Manual Volume 2: System Programming" 24593.pdf to 3.36 with shadow stack support https://t.co/gzSS39wm69 https://t.co/oKqqTdz0wJ」 / Twitter
InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions" 24594.pdf to 3.31 with new features for #Zen3 https://t.co/tQvRMvLG86 https://t.co/f92iS17RQ2」 / Twitter
HXLさんはTwitterを使っています 「Zen 4 Support AVX512? https://t.co/ZwNql3MPxL」 / Twitter
北森瓦版 - “Zen 4”はAVX3-512とBFloat 16をサポートする
InstLatX64さんはTwitterを使っています 「#AMD released the Supervisor Entry Extensions 0.50 pdf with Enhanced SYSCALL/SYSRET (#ESC), Reserved Supervisor Shadow Stacks (#RSSS) and Re-Entrancy Protection https://t.co/QKShUOqs56 https://t.co/7O2CxXhjZS」 / Twitter
AMD Supervisor Entry Extensions, 57115 - 57115_0.50.pdf
InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer's Manual Volume 2: System Programming" 24593.pdf to 3.37 with #X2APIC, #APERF, SPEC_CTRL, PRED_CMD MSRs, etc. https://t.co/nndFzrwnqA https://t.co/sJGJtv7lGb」 / Twitter
AMD64 Architecture Programmer’s Manual, Volume 2: System Programming - 24593.pdf

Ryzen - Wikipedia
Developer Guides, Manuals & ISA Documents - AMD
GPUOpen - GPUOpen
Welcome to ROCm Platform — ROCm Documentation latest documentation
ASRock > FM2A68M-HD+
AMD A6-Series A6-7400K - AD740KYBI23JA / AD740KYBJABOX
本の虫: AMDのZen 2でRDRANDが-1を返すので最近のGNU/Linuxがブートできない問題
AMDプロセッサーにも脆弱性みつかる。Ryzen 7 / Threadripperまで2011年以降全CPU - Engadget 日本版
security-analysis-predictive-store-forwarding.pdf
AMD Programmer Manual Update Points To PCID Support, Memory Protection Keys - Phoronix
AMD Prepping PCID/INVPCID Support For KVM Guests On Zen 3 EPYC - Phoronix
AMD64 Architecture Programmer’s Manual, Volume 2: System Programming - 24593.pdf
swayからi3へ移行しました - w_o’s diary

Apple

Apple

ソフトウェア

各OSのリリース日とサポート終了日を表にまとめてみた - Qiita
iOS 12 のアップデートについて - Apple サポート
iTunes で iPhone、iPad、iPod が認識されない場合 - Apple サポート
iTunes の USB 関連の警告を解決する - Apple サポート
Use zsh as the default shell on your Mac - Apple Support
Apple ID - Apple サポート
Apple IDの復旧 - Apple (JP)
Apple ID の 2 ファクタ認証 - Apple サポート
セキュリティと Apple ID - Apple サポート
Apple ID のデバイスリストを調べて Apple ID でサインインしているデバイスを確認する - Apple サポート
定期購読内容を表示・変更・解約する - Apple サポート
プライバシー - Apple(日本)
Apple セキュリティアップデート - Apple サポート
Apple security updates - Apple Support
Apple Pay に対応しているアジア太平洋地域の銀行とカード発行会社 - Apple サポート
WebKit Downloads | WebKit
Getting the Code | WebKit
WebKit/webkit: Unofficial mirror of the WebKit SVN repository
Bugzilla Main Page
iTunes Store で購入したコンテンツの再生時に iTunes からコンピュータの認証を求められる場合 - Apple サポート
iTunes Store で -45054 エラーが表示される場合 - Apple サポート
iTunes でコンピュータの認証を解除する - Apple サポート
アップル、157ページに及ぶ詳細なセキュリティガイドを公開 - ZDNet Japan
Apple Platform Security

技術仕様

iPhone 6 Plus - 技術仕様
iOS UPnP/SSDP Multicast over USB Tethering | Apple Developer Forums
usb endosope | Apple Developer Forums
Tethering over USB protocols? | Official Apple Support Communities

修理

保証状況と修理サービスオプションについて - Apple サポート
製品の保証状況とサービス期間を確認する - Apple サポート
iPhone、iPad、iPod touch を修理に出す準備をする - Apple サポート
「iPhone を探す」のアクティベーションロックを無効にする - Apple サポート
修理 - Apple サポート 公式サイト

サポート

Welcome - Apple Support
ビンテージ製品とオブソリート製品 - Apple サポート
ARM ベースおよび Intel CPU の投機的実行の脆弱性について - Apple サポート
iPhone、iPad、iPod touch でメッセージを送受信できない場合 - Apple サポート

[HD] Steve Jobs - iPhone Introduction in 2007 (Complete) - YouTube
Appleプラットフォームのセキュリティ - apple-platform-security-guide-j.pdf
Apple(日本)
iCloud
復旧キーを生成する方法 - Apple サポート
Apple ID を管理
apple id 削除 サインアウトできない - Google 検索
iPhone、iPad、iPod touch を売却、譲渡、下取りに出す前にやっておくべきこと - Apple サポート
Apple - Support - System Status
MFi Program - Apple Developer
バッテリー - サービスとリサイクル - Apple(日本)
電源&ケーブル - iPhoneアクセサリ - Apple(日本)
Lightning - USBケーブル(1m) - Apple(日本)
USB-C - Lightningケーブル(1 m) - Apple(日本)
20W USB-C電源アダプタを購入 - Apple(日本)
環境 - Apple(日本)
iOS 14 や iPadOS に対応しているデバイス - Apple サポート

GIGAZINE

警察はiPhoneのパスコードをわざわざ破らなくてもあっさりiPhoneに侵入できるとの指摘 - GIGAZINE
Appleが新しくSafariに追加した「Face IDやTouch IDによるウェブサイト認証機能」はこんな感じで動作する - GIGAZINE
Appleがサードパーティーの修理業者にも正規の部品&修理ツールを供給 - GIGAZINE
「iPhone 11/11 Pro」は非正規のディスプレイ交換サービスを利用すると警告が出る - GIGAZINE
AppleはiPhoneのバッテリーをロックして非正規プロバイダーが交換できないようにしている - GIGAZINE
iPhoneの強固なセキュリティがハッカーの隠れ蓑になってしまっているという指摘 - GIGAZINE
「AppleやAmazonは電子廃棄物の津波を引き起こしている」という批判 - GIGAZINE
iPhoneユーザーのほとんどがiOS 14.5で有効になったATTからアプリによるユーザー追跡を拒否していることが明らかに - GIGAZINE
Appleの「ロスレスオーディオ」はAirPods ProやAirPods Maxでは利用できない - GIGAZINE
Appleがパスワード不要でFace IDやTouch IDだけでウェブサービスにログインできる「パスキー」機能を開発中 - GIGAZINE
AppleがApp Store以外からアプリを入手できないようにしているのは「ユーザーの安全のため」とするレポートを発表 - GIGAZINE
無料&広告なしで圏外でも使えるオープンソースの地図アプリ「Organic Maps」を使ってみた - GIGAZINE

Wikipedia

iOS version history - Wikipedia
History of iTunes - Wikipedia
Safari version history - Wikipedia
Apple motion coprocessors - Wikipedia
Secure Enclave - Wikipedia
iPhone - Wikipedia
iPhone 7 - Wikipedia
Apple A10 - Wikipedia
IPhone 8 - Wikipedia
Apple A11 - Wikipedia

Twitter

トワイライト - Le☆S☆Caさんのツイート: "iOSのSafariは更新マーク長押しでPCレイアウトに出来る、っていうの人に教わるまでずっと知らなかった https://t.co/LsEfkYZZav"
Tsuzuさんのツイート: "多分USB/Bluetoothテザリングに限ると思うけど"
Tsuzuさんのツイート: "待って、iOS12ってiPhoneはWi-Fiに接続しながらPCはテザリングとかいうやばいことができるようになってるんですか すごいですね(誰得"
まちカドおるみんさんはTwitterを使っています 「macOS が安定しているという意見を散見するんだけど、マジかって感じです。たぶんそれ環境が不安定になるまえにハードウェア換えるから不安定なの踏まないだけだよ、サポート中でもサポート終わりかけのときは Windows とは比べものにならないぐらい不安定になる。まあはよ買い替えろだけど」 / Twitter
まちカドおるみんさんはTwitterを使っています 「iMac 2011 は High Sierra までサポートされてたけれど、Mojave や Catalina 出る前から不安定だった。3 回に 1 回くらいは cold boot コケるし。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「macOS で sudo nvram boot-args="-v" すると splash screen の皮が剥れて黒背景に白文字のなんの色気もない verbose な boot log が画面に出てくるけれど、こっちのほうがまだコケたところわかるから安心できる」 / Twitter
まちカドおるみんさんはTwitterを使っています 「たぶん大多数のユーザーは黒地に見慣れない白文字がダーッて吐かれたら不安なことこの上ない、というのはわかる」 / Twitter

BCNランキング - BCN+R
中古スマホ・タブレット販売の【イオシス】|けっこう安い。
株式会社デジフォース
The Official Bluetooth SIG Member Website
Apple Storeで一括購入したiPhoneになぜかドコモのネットワーク利用制限が () - AKIBA PC Hotline!
【mį】iPhone6PlusのBluetoothは何台まで同時接続出来るの!? | ミヤチャンブログ
libimobiledevice - A cross-platform software library and tools to communicate with iOS devices natively
libimobiledevice/libplist: A library to handle Apple Property List format in binary or XML
Diego Giagio :: Personal Website - iPhoneEthernetDriver
dgiagio/ipheth: iPhone USB Ethernet Driver
Windows10でiPhone・iPadとiTunesが連携しない|Tascal PCサポート情報
Windowsにおいて、iTunesをインストールせずiPhoneイーサネットドライバのみをインストールする方法(USBテザリング可能に) – Luna Blanca
iPhoneで有線LAN接続はできる?
iPhone/iPadを有線LAN(Ethernet)で接続しよう | 毛流麦花
【知ってた?】iPhoneが勝手に「弱Wi-Fi」を拾わないようにする方法(iOS 11新機能) | できるネット
M1RACLES: M1ssing Register Access Controls Leak EL0 State
スティーブ・ジョブズは自分の子どもにiPadを禁止したのか?|中植正剛|note
「iOS 15」 「iPadOS 15」 対応機種まとめ。初代iPhone SEもサポート継続 | CoRRiENTE.top
アップル純正のMagSafeバッテリーが登場、AirTagアクセサリーの新色も - ケータイ Watch

USB

USB4

その他

USBプロモーター・グループがUSB4仕様を発表:時事ドットコム
最大転送速度は40Gbps、USB 4ではThunderboltとUSBが完全統合 | TechCrunch Japan
「USB4」の仕様が発表、より高速かつスマートな転送が可能に - CNET Japan
USBの次世代仕様「USB4」が発表。Thunderbolt 3ベースで最大転送速度は40Gbpsに - 4Gamer.net
「USB4」が普及すれば、規格乱立という問題が今度こそ解決する(かもしれない)|WIRED.jp
USB4は転送速度40Gbpsに100W給電対応!アレと同じ! - ハイパーガジェット通信 | SIMフリースマートフォン/iPhone/タブレット/充電器/便利グッズ
「USB4」でカオス状態が解消される!?「USB」の気になるアレコレを徹底解説! - 価格.comマガジン
USB 4はバスのプロトコルトンネリングをサポートし、40 Gbpsの転送をサポートします - 自作ユーザーが解説するゲーミングPCガイド
USB4とは?—Thunderbolt 3(DP・PCIe)を内包した新規格を事前予習|8vivid
USB 3.xでプラグをゆっくり挿すとUSB 2.0で接続されてしまうという話 | Interface – CQ出版
【USBコラム13】USB認証とUSB機器間認証は別物 | Interface – CQ出版

Thunderbolt

Thunderbolt

Thunderbolt Technology Community
IDF Session Presentation Template
Intel Presentation Template Overview
Thunderbolt 3 Overview Slides_Web_v3
Thunderbolt3_TechBrief_FINAL.pdf
PowerPoint Presentation

DP Alternate Mode

DisplayPort - Wikipedia
DisplayPort - Wikipedia
Snapdragon 835はDisplayPort Altモードに対応、USB Type-Cからの画面出力が可能 | ガジェット通信
VESA、8K解像度を見据えた映像出力インタフェース規格「DisplayPort 2.0」を発表 (2019年6月27日) - エキサイトニュース
DisplayPort 2.0 Published For 3x Increase In Data Bandwidth Performance - Phoronix
最大帯域幅77.4Gbpsで16KディスプレイやVRをサポートする「DisplayPort 2.0」が発表される - GIGAZINE
16K解像度に対応した新規格「DisplayPort 2.0」が重要な理由 | ギズモード・ジャパン
VESA、ケーブル1本で16K 60Hz/HDRの伝送が可能な「DisplayPort 2.0」 - PC Watch
次世代USB「USB4」ではDisplayPort出力対応が“必須要件” ~DisplayPort 2.0はThunderbolt 3並の速度へ - PC Watch
FadisさんはTwitterを使っています 「USB端子を通してDisplayPortの信号を吐くDisplayPort Alternate Modeの規格がバージョン2.0になったらしい。この変更でUSB4 Type-Cの端子が生えている場合にDisplayPort 2.0相当のレートで信号を吐けるようになり、8Kを超える画面や高解像度のHDRに対応できるようになる https://t.co/cuP50cq9oL」 / Twitter
DisplayPort Alt Mode 2.0 Brings Interoperability With USB4 - Phoronix
USB4互換で16K HDR対応の「DisplayPort Alt Mode 2.0」 - PC Watch
DisplayPortやUSB Type-Cで8K伝送、VESA「HBR3」。製品の早期開発用に認定プログラム - AV Watch
とみながたけひろさんはTwitterを使っています 「@n_soda @k_nitadori @DIME_HACKS USB-CのAltModeでDP使う場合、最大4lane使えるので、DP1.4(HBR3)流せば8.1Gbps*4流せます。まあそれでも4laneで4k*2k*60fps*30bpp*2あたりが限界ですが、いいやつだといまどきはDSC使っての圧縮ができるので更に頑張れます」 / Twitter
可食さんはTwitterを使っています 「USB Type-CハブのUSB Type-Cポートから映像出そうとして失敗してる人たまに見かけるけど、仕様で禁止されているのでどのハブを使っても無理 https://t.co/CaD9TNQD2Q」 / Twitter

ストレージ

日本サムスン、Thunderbolt 3対応の超高速ポータブルSSD - PC Watch
【レビュー】Thunderbolt 3接続ポータブルSSD「Samsung Portable SSD X5」実機レビュー - PC Watch
デル、世界最速/最小Thunderbolt 3 SSD。最高速度2,800MB/s - PC Watch
パナソニック、Thunderbolt 3対応のポータブルSSD - PC Watch
グリーンハウス、Thunderbolt 3接続の高速SSD - PC Watch
センチュリー、Thunderbolt 3接続の500GB~2TBポータブルSSD - PC Watch
Thunderbolt3 Portable NVMe SSD 512GB [CPNVTB3-512] |秋葉館.com Mac専門店
USB, ストレージ | GH-SSDTB3A | GREEN HOUSE グリーンハウス
Thunderbolt 3接続の高速外付けM.2 SSDケース - PC Watch

Intel

TB-TechBrief-02.indd
Thunderbolt™ Controllers Product Specifications
製品の開発コード名 Alpine Ridge
製品の開発コード名 Titan Ridge
Introducing Thunderbolt 4: Universal Cable Connectivity for Everyone | Intel Newsroom

AMD

AMD XConnect™テクノロジー | AMD
AMD,Thunderbolt 3接続の外付けGPU技術「XConnect」を正式発表 - 4Gamer.net
AMD、外付けGPUとノートPCをThunderbolt 3でつなぐ「AMD XConnect」 | マイナビニュース
AMD、Thunderbolt 3経由でノートPCに外部GPUを接続する技術「XConnect」 ~再起動不要で着脱可 - PC Watch

GIGABYTE

反撃の狼煙を上げるGIGABYTE、「ビデオカード部門とマザーボード部門の統合」で何が変わるのか? - AKIBA PC Hotline!
GC-ALPINE RIDGE (rev. 1.0) | マザーボード - GIGABYTE Japan
GC-ALPINE RIDGE (rev. 2.0) | マザーボード - GIGABYTE Japan
GC-TITAN RIDGE (rev. 1.0) | マザーボード - GIGABYTE Japan
GC-TITAN RIDGE (rev.1.0):どてやの戯れ言
GC-TITAN RIDGE (rev. 2.0) フォトギャラリー | マザーボード - GIGABYTE Japan
GC-MAPLE RIDGE (rev. 1.0) 主な特徴 | マザーボード - GIGABYTE Japan
GIGABYTEからThunderbolt 4増設ボード「GC-MAPLE RIDGE」が登場
GIGABYTE、7万円超のハイエンドIntel Z390搭載マザーボード ~X299マザーやThunderbolt 3増設カードも - PC Watch
GIGABYTE、Thunderbolt 4を2基増設できるPCIe 3.0 x4接続の拡張カード - PC Watch
Thunderbolt3 AIC 一覧 (2019年12月版): どてやの戯れ言
USB4製品の登場と次期Ryzenなど: どてやの戯れ言

PC Watch

【PR】【パソコン実験工房PC Watch出張所 - Supported by パソコン工房】今後要注目のThunderbolt 3にも対応できるDAW向けマシン - PC Watch
【イベントレポート】ASRock、Mini-ITXケースに入る世界初のThunderbolt 3ネイティブビデオカード - PC Watch
【イベントレポート】Intel第10世代Coreは、Thunderbolt 3をオンダイ統合 - PC Watch
Thunderboltに数分でハッキング完了可能な脆弱性。2011年以降のPCが対象 - PC Watch
Intel、USB4準拠の「Thunderbolt 4」を次期CPUに搭載 ~単体のIntel 8000シリーズのコントローラも - PC Watch
【山田祥平のRe:config.sys】ゆくポートくるポート - PC Watch
ベルキン、ACアダプタ不要のThunderbolt 3ドック - PC Watch
OWC、4K/60Hzの2画面出力が可能なThunderbolt 3ドック - PC Watch
OWC、Thunderbolt 3対応NVMe SSDケース「Envoy Express」 - PC Watch
Club 3D、USB4認証で40Gbps転送可能なケーブル - PC Watch
OWC、100W給電やUSB4にも対応のThunderbolt 4ケーブル - PC Watch
M1 Macにも対応した3ポートThunderbolt 4ハブが入荷、USB Type-Aもあり - AKIBA PC Hotline!

GIGAZINE

Thunderboltポート経由でPCのシステムメモリを直接読み書き可能となる脆弱性「Thunderclap」 - GIGAZINE
数分でPC内のデータにアクセス可能なThunderboltの脆弱性が判明、ソフトウェアによる修正は不可能 - GIGAZINE
IntelがUSB4に準拠したThunderbolt 4の概要を発表、次世代Intel CPUが対応予定 - GIGAZINE
ノートPCでの快適なゲーム環境を実現する「WD_BLACK D50 Game Dock」レビュー、周辺機器をThunderboltケーブル1本に - GIGAZINE

Thunderbolt - Wikipedia
Thunderbolt (interface) - Wikipedia
分かりづらいThunderbolt 3とUSB Type-Cの違いについてまとめた | HANPEN-BLOG
Thunderbolt3 AIC 一覧 (2019年12月版): どてやの戯れ言
Amazon.co.jp: 【USB-IF 認証済み】Cable Matters Thunderbolt 3ケーブル (20 Gbps) サンダーボルト3ケーブル/ USB-C 3.1 Gen 2 (10 Gbps) ケーブル USB2.0 / 3.0 / 3.1 対応 2m(ブラック): 家電・カメラ
More information on Thunderclap
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第15回 PCIパススルーその1「PCIパススルーとIOMMU」
日記 (2019 年 3 月上旬)
iommu - Google 検索
MSIのZ77A-GD80でThunderboltを試す | 日経 xTECH(クロステック)
Fadisさんのツイート: "Thunderclap: 多くのOSでデバイスがアクセスできるメモリを制限するIOMMUの扱いがMMUほど徹底されておらず、悪意あるデバイスがDMAを使ってメモリ上の触ってはいけないデータを読み書きできるよ、という脆弱性 https://t.co/W1OCHgK14b"
Thunderclap
Fadisさんのツイート: "Thunderclapはハードウェアに物理的なアクセスを要する脆弱性ではあるけど、最近のPCはThunderbolt3とかいうPCI-Express(もちろんDMA付き)が充電端子として生えている為「悪意ある充電スタンドが任意のコードを実行できる」というシナリオが容易に想像できるあたりが問題を深刻にしてるっぽい"
ASCII.jp:その名はTiger Lake、IntelがノートPC向け最新CPUを発表:CES 2020|CES 2020レポート
Kernel DMA Protection for Thunderbolt™ 3 (Windows 10) - Microsoft 365 Security | Microsoft Docs
More information on Thunderbolt™ security research published by Eindhoven University
ASCII.jp:IntelがThunderbolt 4の詳細要件とIntel 8000シリーズコントローラーを発表
ASRock > Thunderbolt 4 AIC
Thunderbolt 4 AIC:ASRock Thunderbolt™ 4 増設ボード | CFD販売株式会社 CFD Sales INC.
hanpenさんはTwitterを使っています 「@uchan_nos Thunderbolt 3コントローラーにはAlpine Ridge(古)とTitan Ridge(新)の大きく2種類があるんですが、Alpine Ridge採用デバイスはThunderbolt 3ホストにしか対応していません。USB接続は不可です。Titan Ridge採用デバイスはUSBホストとThunderbolt 3ホストの両方で使えます。」 / Twitter
Thunderbolt™ 3 Controllers Product Specifications
Thunderbolt 4について解説。USB4やThunderbolt 3と何が違うのか

USB Type-C

PC Watch

【山田祥平のRe:config.sys】転ばぬ先のType-C - PC Watch
【山田祥平のRe:config.sys】Type-Cポリスの憂鬱 - PC Watch
【山田祥平のRe:config.sys】何がなんでもType-C - PC Watch
【笠原一輝のユビキタス情報局】DisplayPort/Thunderbolt/ACアダプタを飲み込んだUSB Type-C ~5年後ノートPCの専用アダプタは消滅する? - PC Watch
【特集】USB Type-Cの挙動を探る(ディスプレイ編) ~Type-C搭載ディスプレイの映像出力&給電機能をチェック - PC Watch
【特集】ケーブル選びに失敗しないための「USB Type-C」基礎知識 - PC Watch
【山田祥平のRe:config.sys】ありがちのType-C、まさかのType-C - PC Watch
Cypress、USB4とPD 3.0対応のUSB Type-Cコントローラをサンプル出荷 - PC Watch
【藤山哲人と愛すべき工具たち】USB Type-C壁コンセントの組み込み手順を紹介。LAN付きテーブルタップへの改造も - PC Watch

blog

規格的にアウトなUSB Type-C変換アダプタが売られている話 | HANPEN-BLOG
USB-C – イヤホンジャックの変換アダプタは2種類あるので要注意
日本で買えるUSB-IF認証済みUSB Type-Cアクセサリのリスト
USB Type-C プラグがゆるくなったときの対策と直す方法|What to do when USB-C become loose. | フレークの素 | Web制作・システム開発のCreativeFlakeブログ
Thunderbolt 3とUSB Type-Cの関係性について調べた | HANPEN-BLOG
USB-TypeCで、地獄をみた話。 | モテモテテクノロジーブログ
「USB Type-C」問題と安全に使える製品のまとめ―規格の解説やチェック方法など | AndMem
プロフィール
USB 3.0/3.1/3.2の違い—速度・形状・4つの注意点を簡単にまとめたよ!|8vivid

Twitter

finoさんのツイート: "USB Type-Cくんのまとめ、拡散されちゃったんでアレだけど一応書きもらしとかツッコミあったやつ追記したらもっと長くなりました https://t.co/JWOg9xwFAi"
Fadisさんのツイート: "Type-C登場以前から電源周りに関してUSBの規格は無視され続けているが、問題はそこから供給される電力が大きなものになってきて、昔のようにいいかげんなままにしておくと危険なものになってきた事なんだよな"
UTiCd/うちかどさんのツイート: "USB PDのデュアルロール持ってるデバイスは、強制給電-自動選択-強制受電 くらいのスイッチ(もしくは内部設定)を付けておいてくれればって話よね・・・ 特にモバイルバッテリとノートPCを繋いだときにどっち方向に給電されるのか分からないの勘弁して欲しい"
岡田哲哉さんのツイート: "Mac同士をUSB-Cで繋ぐと「給電ガチャ」が楽しめますw(実験済み)… "
Kazuho Okuさんのツイート: "レビュー削除以前の話として、USB-C規格に不適合な製品を「USB-C対応」として販売することに法律上の問題はないのかな / “Amazonにステマレビュアー扱いされてレビューを全て削除された話 - すり身ライフ” https://t.co/ojX1JV4IDH"
Amazonにステマレビュアー扱いされてレビューを全て削除された話 - すり身ライフ
しめじさんのツイート: "Type-C、なんでレセクタプル側の内部に薄い基板付ける構造にしたのか、本当に分からん。折れたら機器の修理、交換だぞ… "
伯爵格雷 ✌️🐸✌️さんのツイート: "・モバイル版Chromeはアドイン出来ないし広告ブロッカー外付けだし何の価値ですか? ・どうせW1チップ搭載機に取り込まれるのだ諦めよ ・TypeCは中のベロが腐る ・高い(わかる)"
なかのん&マジックさんのツイート: "適度に故障からの買い換え需要を狙ってるのでは……microBでもデバイスのコネクタがグラグラしてくるからどっちみちって気もする。"
とみながたけひろさんのツイート: "規格上、ハブ通すとPDやaltモードが使えなくなって色々と不便(PDは使えたかも、自信なし)、というのを理解してもらうコストが高いとかかなあ… "
かごめPはマスタリング講座始めましたさんのツイート: "教えて偉い人! USB Type-cのハブが欲しいなあとぼんやり思っているんですが、市販のハブで「USB Type-CをUSB Type-C複数口に分配するハブ」が無いんです。USB Type-Cを複数口出せるハブが欲しいんだけど、そういうのって無いんです?規格上の問題?"
はんぺんさんのツイート: "PCメーカー各社はマジで ・USB 2.0 / 3.1 Gen.1 / 3.1 Gen.2 のどれなのか ・USB PDで充電できるのか ・何W以上のUSB PDなら充電できるのか ・DisplayPort Alt Modeの有無 ・最大の解像度とフレームレート ・DisplayPort MSTの有無 ぐらいは詳細スペックのどこかに書いといてほしい"
monochromeさんはTwitterを使っています 「規格上は遅くなることはないが、規格に準拠していない粗悪品があって、それだと実際に遅くなることがあるという話らしい」 / Twitter
也田嗔/旧式P [焼]さんはTwitterを使っています 「USB TYPE-Cはどっち向きでも挿せるけど、端子の並びは完全対称ではないので、実は表裏が存在する。 そのため、データの転送速度がなんか遅いなって時は表裏を変えると改善する場合がある。 #新年だからみんなに役立つこと言うぞ選手権 https://t.co/ZdggXFCaWq」 / Twitter
HiguchiさんはTwitterを使っています 「@latentacle @yumori0305 外部から失礼&amp;書き足したい補足説明 皆さん勘違いされてますけどUSBの企画に準拠したtype-cは転送速度が遅くなることはありません。企画に準拠していない粗悪品では遅くなる可能性がある、というだけで、間違えた知識になりませんように。」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「「1本のケーブルで全てを接続」、聞こえはいいけど何らかの不具合の時にHDD等がそれ経由で刺さっていると「試しに抜き差ししてみる」という手段が取りにくいのが厄介」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「どうせ据え置きで使うのだし、Type-Cしか挿さらないMacBook Proにドッキングステーション経由で色々繋いで使うよりは、アダプターなしでUSB Type-AやEthernetやHDMIが繋がるMac miniを使った方が良い気がするな」 / Twitter
hanpenさんはTwitterを使っています 「建前:USB Type-Cは裏表どっちで挿しても動く 現実:仕様書を読まないで作ると普通に片面でしか動作しないUSB Type-C製品が爆誕する」 / Twitter

USB Type-Cケーブルにはなぜたくさんの種類があるのか、どうやって見分ければいいのか? - GIGAZINE
「USB-C」が本領発揮できる環境が、ようやく整ってきた|WIRED.jp
100均(ダイソー)で売ってたUSB Type-Cのケーブルやアダプタをたくさん分解してみた:ウェブ情報実験室 - Engadget 日本版
USB Type-Cに「表裏」を取り戻させる悪魔のデバイスが爆誕 - GIGAZINE
USB Type-CをDisplayPortに変換するハブはどのように選べばよいのか? - GIGAZINE

USB 3.2

転送速度を2倍に引き上げた「USB 3.2」が策定 - PC Watch
USBの新仕様「USB 3.2」は対応端末ならマルチレーン動作可能で最大速度はUSB 3.1の2倍に - GIGAZINE
マルチレーンにより2倍の転送速度を実現する「USB 3.2」 | マイナビニュース
USB 3.2の仕様が正式公開 - PC Watch
北森瓦版 - USB 3.2の規格策定が完了―Dual-laneで最高20.0Gbpsに対応可能に
一ノ瀬 いろはさんのツイート: "“「USB 3.2 Gen.1x1」と書けば、USB 3.0と同じシングルレーンの5Gbps転送にしか対応しないのに「USB 3.2」と記載できる” / “「USB 3.2」で何が変わる? 知っておきたい2018年のPC注目技術…” https://t.co/Et6I5QlmTw"
「USB 3.2」で何が変わる? 知っておきたい2018年のPC注目技術 (1/3) - ITmedia PC USER
一ノ瀬 いろはさんのツイート: "USB-IF はわざと混乱を起こそうとしているのでは無いか。"
期待がすごい。20Gbps/sの激速なUSB 3.2、年内に対応製品登場へ | ギズモード・ジャパン
20Gbpsの転送速度を誇るUSBの次期規格「USB3.2」は2019年中にPCへの搭載が始まる見通し - GIGAZINE
20Gbpsに対応したUSB 3.2、2019年後半にデスクトップPC向けに登場予定 - Engadget 日本版
ASCII.jp:USB 4の発表で、USB 3.2はどうなった? (1/5)|ロードマップでわかる!当世プロセッサー事情
【イベントレポート】ASMedia、転送速度20Gbpsの「USB 3.2 Gen2x2」コントローラを展示 - PC Watch
【イベントレポート】JMicron、microSD Expressリーダなど「USB 3.2」関連製品 - PC Watch

USB Power Delivery

PowerIQ

第692回:PowerIQとは - ケータイ Watch Watch
Anker、急速充電の新技術「PowerIQ 3.0」発表 USB PD互換に - Engadget 日本版
Anker PowerPort Ⅲ Duo レビュー – すまほん!!
USB Type-AとType-Cを両方搭載、最大出力45WでノートPCも充電できるUSB PD充電器 - ケータイ Watch

Quick Charge

【山田祥平のRe:config.sys】QuickChargeがUSB Power Deliveryを包み込む将来 - PC Watch
Qualcomm、従来より低温で35%充電速度が向上した「Quick Charge 3+」 - PC Watch
Qualcomm、「Quick Charge 4+」でさらなる充電速度向上と温度低下を実現 - PC Watch
第812回:Quick Charge 4/Quick Charge 4+とは - ケータイ Watch
Qualcomm、4倍高速で100W超の充電可能な「Quick Charge 5」規格 - PC Watch

PC Watch

Anker、30WのUSB PD給電対応で低価格化した5ポートUSB充電器 - PC Watch
【山田祥平のRe:config.sys】USB PD時代のチャージャー選び - PC Watch
ASUS、USB PDやQC 3.0対応のモバイルバッテリ2種 - PC Watch
TI、200W給電対応のUSB Type-C/PDコントローラ ~USB接続で端末の急速充電から“電動工具”まで対応 - PC Watch
【山田祥平のRe:config.sys】USB Type-C充電統一への道遙か - PC Watch
【特集】複数の規格が入り交じるUSB Type-C。その挙動を探る【PC給電編】 ~MacBookとThinkPadで各社のケーブルをチェック - PC Watch
【特集】複数の規格が入り交じるUSB Type-C。その挙動を探る【スマホ編】 ~Type-C搭載スマホの充電速度をチェック - PC Watch
日本初のUSB-IF認証取得USB PD対応ACアダプタ - PC Watch
「Type-C=USB PD対応」ではない。高速充電には認証済みType-Cケーブルも必要 ~USB-IF認証取得の充電器「Energear」発表会レポート - PC Watch
【特集】これで失敗しない、USB PD充電器選び(解説編) - PC Watch
【山田祥平のRe:config.sys】世界中の電源プラグをUSB Type-Cに置き換えるサイプレスの野望 - PC Watch
【特集】これで失敗しない、USB PD充電器選び(ノートPC編) ~ThinkPadとMacBook Proで検証 - PC Watch
【特集】【特集】これで失敗しない、USB PD充電器選び(タブレット/スマホ/ゲーム機編) ~iPad ProとPixel 3、Nintendo Switchで検証 - PC Watch
【特集】これで失敗しない、iPhone/iPadを高速充電できるUSB PD充電器選び ~8製品×7アダプタの組み合わせでチェック - PC Watch
Anker、100W給電可能なUSB PD×2搭載の急速充電器 - PC Watch
【山田祥平のRe:config.sys】理想のマルチポートPDチャージャーを考える人間のわがまま - PC Watch
AnkerのUSB充電器で発煙の報告。回収へ - PC Watch
【山田祥平のRe:config.sys】それでもType-C、やっぱりType-C - PC Watch
【特集】ノートPCを充電できるUSB PDモバイルバッテリ、失敗しない選び方はこれだ! ~容量10,000mAh以上/最大出力30W以上の6製品を検証 - PC Watch
【山田祥平のRe:config.sys】Type-C PD、怖いながらもNew Normal - PC Watch
【山田祥平のRe:config.sys】Type-CがさらにややこC - PC Watch
【特集】徹底解明。VAIOが電源オフでもバッテリを使っている真の理由 ~VAIO開発者が語るUSB PD設計の難しさ - PC Watch
Anker、Type-C搭載で直接スマホを充電できる電源タップ。30W USB PD対応 - PC Watch
USB Type-Cの給電能力を240Wに引き上げる「USB PD EPR」 - PC Watch
【山田祥平のRe:config.sys】30WアダプタはUSB PD充電の新定番 - PC Watch

blog

多機能USB電力メーター AVHzY CT-2を使ってみた
USB Power Delivery Analyzer of MediaLogic
LightningなiPhone・iPadでUSB PD充電に失敗する場合がある
USB PD Revision 3.0のドキュメントがサイレント修正されていたらしい
USB PD 60W対応Anker PowerPort Speed PD 60 暫定レビュー
USB Power Deliveryの規格について調べた | HANPEN-BLOG
Nintendo Switchの純正ACアダプタはUSB PDの規格に準拠していないという話 | HANPEN-BLOG
乱立するスマホ向け急速充電の規格について調べた | HANPEN-BLOG
USB-IF認証済み Anker PowerPort I PD レビュー | HANPEN-BLOG
誰でも出来る? USB Type-Cケーブルや充電器が規格に適合しているか安価に調べる方法 - AndroPlus
Apple純正品の仕様をコピーしているサードパーティUSB PD製品の話
USB Type-CとUSB PDの仕様がアップデート 240Wまで受給電可能に | Interface – CQ出版
ThinkPadなどのノートPCが一部のUSB PD ACアダプターで充電できない話

Amazon | USB Power Delivery アナライザ DTW2U3 (PDワットみるC) | メディアロジック (Media Logic, corp.) | USBフィギュア 通販
しっかり分かる“USB パワーデリバリ”入門:ついにやってきたUSB Power Delivery(USB PD)とは (1/3) - EDN Japan
(3)規格が守るUSP PDの安全性 偽造品を見逃さない機器間認証(C-AUTH) | ルネサス エレクトロニクス
USB-IF、USB-C向け認証プログラムを発表。粗悪な充電器などを排除 - Engadget 日本版
【USB】第6回 USB充電を大きく変える新規格、USB PDとは? (1/3):ITの教室 - @IT
AnkerのACアダプターをバラバラに分解、玉石混交のACアダプターでも「良品」はこうなっている - GIGAZINE
第840回:VOOC とは - ケータイ Watch
最新モバイルバッテリーの価格破壊がアツい!! PC派待望「5000円でUSB-C 45W」製品も(橋本新義) - Engadget 日本版
TPS65987DDH and TPS65988DH Host Interface Technical Reference Manual (Rev. B)
aroe(Yoshio Nomura)さんはTwitterを使っています 「USB PDのコントローラーIC、最初は各社バラバラに作ってて制御方法もバラバラだったけど最近はUSB-IFが制定したTCPI(Type-C Port Interface)という名称の規格で統一されてきてる。I2Cスレーブとして動作してレジスタの配置も決められてるので、共通のコードで動作するようになってる https://t.co/AnE3CrGZ8H」 / Twitter
aroe(Yoshio Nomura)さんはTwitterを使っています 「微妙に間違えてた。正しくはTCPCI(Type-C Port Controller Interface)である。対応した製品として FUSB307B(On),TUSB422(TI),PTN5110(NXP)がある 対応したMCU向けライブラリとしてはSTMicroのX-CUBE-USB-PDがある。これは一応FUSB307Bに作られてるけど他にも使えるっぽい」 / Twitter
葛城玲さんはTwitterを使っています 「@uchan_nos PDパススルーはアクセサリーの電力を横取りするので、容量がギリギリだと上手く動きません。 また、ただでさえ相性問題多発のPD充電器に機器を2台も繋ぐと色々起こります」 / Twitter
GIGABYTE、100W給電が可能なUSB3.1 Type-Cフロントパネル「GC-USB 3.1 BAY」など2種 - エルミタージュ秋葉原
FadisさんはTwitterを使っています: 「USB機器はホストに自分が何mA使うつもりか申告していて、ホストはその情報に基づいて必要な電流を供給できない場合デバイスを拒否できる、というのはもう少し知れ渡ってほしい」 / Twitter
最大20W出力が可能なモバイルバッテリー兼急速充電器「Anker PowerCore Fusion 10000」と薄さ1.5cmのモバイルバッテリー「Anker PowerCore Slim 10000 PD」レビュー - GIGAZINE
日本産業規格(JIS)を制定・改正しました(2021年5月分) (METI/経済産業省)
JIS C 62368-3:2021 オーディオ・ビデオ,情報及び通信技術機器―第3部:通信ケーブル及び通信ポートを介する直流電力伝送の安全性要求事項 | 日本規格協会 JSA Group Webdesk
「USB Type-C Revision 2.1」では240Wと現行の倍以上の電力が供給可能に、PCやモニターをUSBで使えるようになる可能性も - GIGAZINE
コンパクトかつ最大45WでスマホからノートPCまで充電可能な「Anker Nano ll 45W」レビュー - GIGAZINE
Gloture、合計150Wまでの給電に対応する4ポートUSB PD充電器 - PC Watch

日経 xTECH(クロステック)

USB4の実像に迫る | 日経 xTECH(クロステック)
USB4とThunderbolt 3は似て非なるもの、PCIeはなぜオプションに? | 日経 xTECH(クロステック)
USB4で採用した3つの新機能、高速化には「あの部品」が不可欠に | 日経 xTECH(クロステック)
高速化だけじゃない、USB4はここが違う | 日経 xTECH(クロステック)
USB4の実像に迫る | 日経 xTECH(クロステック)
USB4が40Gbpsの超高速を実現した技術とは | 日経 xTECH(クロステック)
11年ぶりの大幅アップデート、USB4の真の価値とは | 日経 xTECH(クロステック)
USB4とThunderbolt 3は似て非なるもの、PCIeはなぜオプションに? | 日経クロステック(xTECH)

ギズモード・ジャパン

USB 4が発表。ややこしい規格が統一されてほしい | ギズモード・ジャパン
新規格「USB4」発表。何がどう変わるか、今知っておくべきこと | ギズモード・ジャパン

GIGAZINE

最大40Gbpsの転送速度を想定した新規格「USB4」の暫定仕様が発表される - GIGAZINE
最大転送速度40GbpsでUSB 3.0の8倍速い「USB4」の技術仕様をUSB-IFが正式に公開 - GIGAZINE
新旧入り交じり混乱を極めるUSB規格をスッキリ解説 - GIGAZINE
PCがUSBデバイスを認識した時に何が起こるのか? - GIGAZINE

PC Watch

Thunderbolt 3が「USB4」として登場へ - PC Watch
エレコム、業界初のUSB-IF認証取得済みUSB4対応ケーブル - PC Watch
ケイデンス、業界初のUSB4検証IP - PC Watch
【特集】「USB 3.0」=「USB 3.1 Gen 1」=「USB 3.2 Gen 1」? すぐ分かるUSBの「Gen」表記ルール - PC Watch

ITmedia

「USB4」発表 「Thunderbolt 3」ベースでデータ転送速度は40Gbps - ITmedia NEWS
USB 4がついに船出 Thunderbolt 3ベースで最大40Gbpsを実現 - ITmedia PC USER

iPhone Mania

USB4の仕様が発表。2021年までは製品化されない? - iPhone Mania
ややこしい?「Thunderbolt 4」は「3」よりも転送速度は速くない - iPhone Mania

Twitter

確定未申告さんのツイート: "あー、現状のTB3ポートはUSB 3.2の2レーン動作をサポートしてないから、Thunderbolt 3ポート ≠ USB 4ポートか あと、現状のTB3アクティブケーブルはUSB 3.XやTB以外のModal Operationをサポートしてないから、USB 4にTB3が取り込まれればそれが解決するな"
す~さんはTwitterを使っています: 「USB 4はUSB 2.0のバスを使いつつ、USB 4のレーンを別で使うのでUSB 2.0と互換性がある。 USB 4の電源はType-C, PDの定義に従うためUSB 4では定義されない。 USB3/DisplayPort/Host2Hostトンネルをサポート。 PCIeトンネル/Thunderbolt3/Alternate Modeはオプションサポート https://t.co/15HEztQExD」 / Twitter
す~さんはTwitterを使っています: 「USB4ではUSB2.0バスを制御用バスとして生かして、高速データ転送のために別レーンでGen 2(10Gbps),3(20Gbps)と高速化、さらに帯域稼ぐのにレーンを多重化してGen 2x2, Gen3x2として行く。 USB3/4は互いに物理層での互換性がないため物理的にUSB3/4を用意してMUXする」 / Twitter
FadisさんはTwitterを使っています: 「linux-5.6でUSB4のサポートがバニラカーネル入りする見通しらしい。USB4は最大40Gbpsの次世代USBとして今年の夏に標準化された規格。Thunderbolt3をUSBの規格に取り込んだような物で、USBケーブル上でPCI-Express Gen3 x2レーンを喋るEnhanced Super Speedモードが追加される https://t.co/cN8Ns9gYTj」 / Twitter
USB4 Support Being Introduced With Linux 5.6 Kernel - Phoronix
🍭さんはTwitterを使っています 「今まではeMarkerが無かったり全部のピンが結線されてない仕様違反ケーブルでも問題なく使えちゃうケースもあったけど、USB4からはeMarker必須でFull-Featuredじゃないとうまく動かん (はず) なので、昔買った仕様違反ケーブルが原因でUSB 3.xケーブルなのにUSB4で使えないみたいなことが増えそう」 / Twitter

FIDO

MS

YubikeyでLinuxサーバへの二要素認証sshログインを行う | 俺的備忘録 〜なんかいろいろ〜
YubiKey Personalization Tools | Yubico
OpenSC/OpenSC: Open source smart card tools and middleware. PKCS#11/MiniDriver/Tokend
Home · OpenSC/OpenSC Wiki
秘密鍵、管理してますか? YubiKeyで鍵の一元管理とSSH接続、2段階認証の高速化を試す - Qiita
Yubikey (スマートカード)に入れた秘密鍵を使ってSSHにログインする | n10の個人的なメモ
Yubikey 4 にSSHの秘密鍵を格納する | n10の個人的なメモ
Windows Hello and FIDO2 Security Keys enable secure and easy authentication for shared devices - Windows For Your BusinessWindows For Your Business
YubiKey for Windows Hello を入手 - Microsoft Store ja-JP
YubiKey Edge で 2段階認証 ~ Windows10編 - Qiita
IdM実験室: [Windows Hello]Yubikeyを使ってWindows 10 PCにサインインする
指紋認証は高精度な偽の指紋なら成功率80%で突破可能 - GIGAZINE
ASCII.jp:Windows 10、パスワードなしの世界へ一歩前進 (1/2)

Qiita

YubiKeyを実用面から機能別レビュー - Qiita
YubiKey+Pageantでらくらく秘密鍵管理 on Windows - Qiita
秘密鍵、管理してますか? YubiKeyで鍵の一元管理とSSH接続、2段階認証の高速化を試す - Qiita
Yubikeyを使って、Githubのcommitをverifyする - Qiita
今さら聞けない2段階認証の話いろいろ - Qiita
YubiKey NEO で Linux でも 2段階認証しよう! - Qiita

FIDO(ファイド)に準拠した認証セキリティデバイス | 飛天ジャパン
Fingerprint USB Dongle - PQIグループ- モバイル向け周辺機器の総合メーカー  [Apple アクセサリ, モバイルアクセサリ, モバイルバッテリー, USB フラッシュドライブ, Wi-Fi ストレージ, 充電器]
Compare YubiKeys | Strong Two-Factor Authentication for Secure Logins | Yubico
Basic YubiKey Troubleshooting : Yubico Support
USB-based YubiKey Now Boosts Security for iPhones Running iOS 11 | Digital Trends
YubiKeyストア
Fingerprint reader
指紋認証システムは機械学習で生成した「マスター指紋」でも突破可能だと判明 - GIGAZINE
3Dプリンターで作った石膏の「顔」でスマホの顔認証は突破される危険性あり - GIGAZINE
GmailやYahoo!メールの2段階認証を無効化するフィッシング詐欺が横行している - GIGAZINE
Google Chrome70からブラウザ上での顔認識や指紋認証が可能になる見込み - GIGAZINE
Sign in if you’re locked out on iOS 12.3 - Google アカウント ヘルプ
Googleの安全な2段階認証を構築し不正アクセスを防ぐ物理キー「Titan セキュリティ キー」が日本で登場 - GIGAZINE
iPhoneに物理的に挿入するだけで二段階認証が可能なセキュリティトークン「YubiKey 5Ci」 - GIGAZINE
GitHubがWebAuthn対応で物理セキュリティキーによる二段階認証を正式にサポート - GIGAZINE
GitHubがWebAuthn対応を開始。MacのTouch IDやWindows Helloの指紋認証などを使いパスワードレスでログイン可能に - Publickey
Googleの2段階認証を構築する「Titan セキュリティ キー」にUSB Type-Cタイプが登場 - GIGAZINE
物理セキュリティキーの「YubiKey」でついに生体認証が可能となることが判明 - GIGAZINE
FadisさんはTwitterを使っています 「ちなみにWebUSBは、フィッシングサイトがFIDO U2FのドングルとWebUSBで直接お話して2要素認証を台無しにする脆弱性 が見つかったあと多くの主要なデバイスクラスのデバイスをWebUSBから使えなくする変更が入った為、楽しむのは難しいAPIになった」 / Twitter
スマホでもPCでも使えるUSB Type-CとNFCを搭載した物理セキュリティキー「YubiKey 5C NFC」レビュー - GIGAZINE
2020年アメリカ大統領選でメール流出がなかったのは「物理的なセキュリティキー」の採用による可能性 - GIGAZINE
A Side Journey to Titan - NinjaLab
Googleの物理キー「Titan セキュリティ キー」がサイドチャネル攻撃により突破される - GIGAZINE
Yubikeyを使う:OpenPG編 | κeenのHappy Hacκing Blog
YubiKeyをLinuxの「鍵」にする | κeenのHappy Hacκing Blog
FIDO U2F/PKCS#11対応で4つの鍵が管理できるセキュリティキー - PC Watch
「セキュリティリスクが高い」のにパスワードが認証方法として使われ続ける理由とは? - GIGAZINE

FeliCa

Sony Japan | FeliCa | 個人のお客様 | 製品情報 | RC-S380
ソニー、次世代型FeliCaチップ開発 クラウド連携機能を追加 - ITmedia NEWS

I/F

GC-USB 3.1 BAY (rev. 1.0) | Motherboard - GIGABYTE Global
REX-PCIU3製品仕様[RATOC]
玄人志向 | USB2.0V-P4-PCI:VIA社製 VT6212L搭載 USB2.0 外部x4 内部x1 ※合計4ポートまで同時使用可 インターフェースボード(PCI接続)
玄人志向 | USB3.0R-P2-LPPCI:Renesas社製 μPD720202搭載 USB3.0×2 インターフェースボード(PCI接続)
玄人志向 | USB3.1C-P2-PCIE:ASMedia社製 ASM2142搭載 USB3.1 Type-C x2 インターフェース(PCI-Express x4接続)
USB 3.1 Gen 2対応コントローラは搭載チップにより性能が異なる!? ASMedia ASM1142 / Intel DSL6540 : AKIBAオーバークロックCafe
「1mのケーブル長さ制限を克服」とうたうUSB 3.1カード - AKIBA PC Hotline!
GIGABYTE、世界初のUSB3.2 Gen.2×2拡張カード「GC-USB 3.2 GEN2X2」 - エルミタージュ秋葉原

Hub

USB2.0ハブ 4ポートタイプ|株式会社バッファロー BUFFALO
Inateck - Portable Mini 4-Port USB 3.0 Hub HBU3VL2-4
Anker 4-Port Ultra-Slim USB 3.0 Hub|USBハブの製品情報 | Anker (アンカー) Japan公式サイト
USB Type-Cハブ(USB3.1 Gen2/Gen1・USB3.0/2.0/1.1・USB PD・4ポート・バスパワー・セルフパワー対応・ACアダプタ付き・ブラック) 400-HUB075BKの販売商品 | 通販ならサンワダイレクト
USB Type-Cハブ(4ポート・USB3.1 Gen2・セルフパワー・ブラック)400-HUB061の販売商品 | 通販ならサンワダイレクト

UART

FTDI Chip launches USB 3.1 evaluation modules
ラトック、USB Type-C接続のシリアルポート変換ケーブル - PC Watch
定番USBシリアルコンバータのUSB Type-Cバージョン RS-USB60FC [RATOC]
てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「懐かしのInterlinkでシリアル転送したいのですが、左のクロスケーブルを買ったけどぜんぜんつながりませんでした… 結線が違う右のやつを見つけたのですが、これだといけるの?? ていうか両方ともクロスケーブルって言って売ってるのに何が違うの???? シリアルケーブルくわしいニキ助けて!>< https://t.co/lDtEjXaQDZ」 / Twitter
てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「よくみたら右のにはヌルモデムケーブルって書いてありました。 Interlinkの説明に「クロスケーブル(ヌルモデムケーブル)」って書いてあるから、やっぱり右のじゃないとダメなのかな… ヌルモデムってなんぞ… おねえさん17歳だからわからない><」 / Twitter
ZilfhumさんはTwitterを使っています 「@HentaiThird ヌルモデム=クロスケーブルという認識で良いかと。モデムを経由せずにテレタイプ端末同士を接続できるというのが語源らしいです。」 / Twitter
てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「@zilfhum_power そうすると左の自称「クロスケーブル」はなんなんでしょ?」 / Twitter
ZilfhumさんはTwitterを使っています 「@HentaiThird 対応してないんですかね。DTR、RTS、CTSあたりは正しく繋がってないとダメかもしれません。無視して強制的に送るようなソフトあるんでしょうかね?」 / Twitter
ZilfhumさんはTwitterを使っています 「@HentaiThird 左のはフロー制御用の信号がクロスしてないのでは(わからん)」 / Twitter
Y8LさんはTwitterを使っています 「@HentaiThird 2ピン3ピンのみのクロスは運しだいのレベルで繋がりますって感じで、Winでは下のがPC間のクロスケーブル、PC-98用ってのは、7と8がショートして反対の1ピンへ行くのもあったかと。」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@HentaiThird RS232Cは25ピンと決まっててIBM-PCの9ピンは規格外。クロス接続も規格外。フロー制御もIBM-PCの8250系とPC98の8251で仕様が違う。全部規格外なので正解は無く、クロスケーブルは窓から投げ捨ててUSBメモリかイーサLANでデータ転送しましょう。」 / Twitter

Debug

USBケーブルチェッカー

USBケーブルチェッカー | LimePulse
LimePulse USBケーブルチェッカー 機能解説 - YouTube
aroerina/LimePulse_USB_cable_checker: LimePulse USB cable checker schematic
【やじうまミニレビュー】USB Type-Cケーブルなどの素性を一発チェックできる必携アイテム「USB CABLE CHECKER2」 - PC Watch
USB ケーブルの性能を明らかにする「USB CABLE CHECKER 2」 | Bit Trade One, LTD
USB CABLE CHECKER 2 | ビット・トレード・ワン 公式オンラインショップ 【 BTOS (ビートス) 】

USBで接続してPCをロジック/プロトコルアナライザにできる「ポケアナ」 - PC Watch
NET20DC-USB / Hi-Speed USB 2.0 Host-to-Host Debug Device | 海外ハードウェアの購入なら「ユニポス」
USB 3.0 Super-Speed A/A Debugging Cable -- DataPro
見た目はUSBケーブル、中身はハッキングツールの悪用厳禁ケーブル「O.MG Cable」がLightningに続きUSB Type-Cバージョンなども販売開始 - GIGAZINE
USB Native Debug Class (DbC) Cable
USB3 debug port — The Linux Kernel documentation
開発ツール(インテルデバッガー) – フラットーク株式会社

LAN

ASIX

所有

ETX3-US2 | LANアダプター | IODATA アイ・オー・データ機器
LAN-TXU2C - ロジテック株式会社

ESXi 向けUSB NICにオススメが増えた
玄人志向 | GbE-USB3.0S2:ASIX社製 AX88179搭載 1000Base-Tイーサネットアダプター(USB接続)
Plugable USB 3.0 10/100/1000 ギガビット対応イーサネット・アダプタ - Plugable
Plugable USB Type-C 10/100/1000 ギガビット対応イーサネット・アダプタ - Plugable
AX88179 - USB 3.0 to Gigabit Ethernet (GbE,GigE) | ASIX
ASIX ESXI - Google 検索

Aquantia

Aquantia、ノートPCで5Gbps有線LANを実現するUSB LANアダプタ用ICチップ - PC Watch
AQtion Chips - Aquantia Corp
AQtion AQC111U & AQC112U - Aquantia Corp
5GBASE-T対応LANアダプター、QNAP「QNA-UC5G1T」、USB 3.0接続 - INTERNET Watch

USB-LAN100R|PLANEX
USB-LAN1000R|PLANEX
Realtek
2015816232439101951.pdf
USB-C to Ethernet Adapter - Thunderbolt 3 Compatible | Cable Matters
プラネックス、USB 3.0接続の2.5Gbps対応Ethernetアダプタ - PC Watch
4480円で2.5GBASE-T、USBの高速LANアダプターをプラネックスが発売、「USB-LAN2500R」 - INTERNET Watch
4500円で有線LANが2倍速くなる! プラネックスの2.5Gbps対応USB LANアダプター「USB-LAN2500R」【イニシャルB】 - INTERNET Watch
USB-LAN2500R
プラネックス、USB 3.0 Type-C接続の5GbE/2.5GbE対応有線LANアダプタ - PC Watch
5Gで1.5万円、2.5Gは6000円弱のUSB Type-C接続LANアダプター「USBC-LAN5000R/2500R」、プラネックスが発売 - INTERNET Watch
USBC-LAN2500R
USBC-LAN5000R
バッファロー、2.5GbE対応のUSB LANアダプタ - PC Watch
LUA-U3-A2G/C : LANアダプター | バッファロー
アイ・オー、2.5GbE対応のUSB有線LANアダプタ - PC Watch
ETQG-US3 | LANアダプター | IODATA アイ・オー・データ機器

Audio

1.0

USBオーディオ変換ケーブル(USB A to 3.5mmステレオミニプラグ)|株式会社バッファロー BUFFALO
PCM2704 ステレオ、USB 1.1、DA コンバータ、ライン出力およびS/PDIF 出力付、バス/セルフ・パワー(外部ROM インターフェイス) | TIJ.co.jp
ヘッドフォンアンプ付 USB-DAC LXU-OT2
Amazon.co.jp: Flameer PCM2704 サウンドカード ボード 3.5mm アナログ出力 デコーダ USB DAC-S / PDIF 高品質: カメラ
Amazon.co.jp: Dovewill PCM2704 USB DAC→ S/PDIF サウンド カード デコーダ ボード  3.5mm  アナログ 出力 F/PC  アクセサリー: カメラ
Amazon.co.jp: IPOTCH PCM2704 USB DAC→ S/PDIF サウンド カード デコーダ ボード  3.5mm  アナログ 出力 F/PC  交換性 便利性: カメラ

2.0

exaSoundの「PlayPoint」、USB Audio Class 2.0接続したDACを操作可能に - AV Watch
【藤本健のDigital Audio Laboratory】Windows 10がついに「USB Audio Class 2.0」対応へ? ドライバ無しでハイレゾ再生 - AV Watch
K3 – Fiio Japan
USB-DAC | アムレック

3.0

PCからも3.5mmミニジャックが消える日が近い。USB Audio Device Class 3.0仕様が策定 - PC Watch
USB Type-Cを次世代オーディオの標準端子に。「USBオーディオデバイスクラス3.0」発表 - PHILE WEB
USB-IF、USB Type-C経由のオーディオ再生を可能にする「USBオーディオデバイスクラス3.0」を発表 | ガジェット通信 GetNews
スマホのイヤホンジャックを廃してUSB Type-Cをオーディオケーブル代わりにしようとIntelが新規格策定中 - GIGAZINE
「音声端子はステレオミニからUSB Type-Cへ」。USB Audio Device Class 3.0発表 - AV Watch
モバイル機器からヘッドホン端子が消える日は来るか。インテルがUSB-Cにオーディオサポート拡張を提案 - Engadget Japanese
iPhoneに続いてPCの音声端子もなくなる? 知っておきたい2017年の注目技術 (1/4) - ITmedia PC USER

ASCII.jp:Xperia XZ3も含めた「イヤホン用アダプター増えすぎ問題」|Xperia XZ3ロングランレポート
「ヨンナナ」プラグについて | g200kg Music & Software
Creative BT-W2 - パソコンやMac、PlayStation®4とUSB接続可能なUSBオーディオBluetootnアダプター - Creative Technology (日本)
まちカドおるみんさんはTwitterを使っています 「@yuki424zti ハイレゾ,可聴域が広がることよりもサンプリングポイントが増えることと bit 数が増えてダイナミクスレンジが大きくなることのほうがキモなので」 / Twitter
uint256_tさんはTwitterを使っています 「ハイレゾだろうと酷い波形もあるので世界は厳しい」 / Twitter

キーボード

Wikipedia

Computer keyboard - Wikipedia
キーボード (コンピュータ) - Wikipedia
FITALY - Wikipedia
IBM PC keyboard - Wikipedia
Keyboard layout/chart - Wikipedia
Latin-script non-QWERTY keyboards - Wikipedia
キー配列 - Wikipedia
Scancode - Wikipedia
スキャンコード - Wikipedia
Altキー - Wikipedia
Japanese language and computers - Wikipedia
PS/2コネクタ - Wikipedia
PS/2 port - Wikipedia

Owltech キーボード OWL-KB104SFD/E
Microsoft キーボード:Wired Keyboard 600 (ワイヤード キーボード 600) | Microsoft Hardware
USB 切替器 キーボード 切替機 プリンタ 切り替え機 USB 手動切替器
テキストエディタ「vi」の開発に使われた端末「ADM3A」には現代のキーボードにはない「HERE IS」というキーがあった - GIGAZINE
CNN.co.jp : ビル・ゲイツ氏、「Ctrl+Alt+Delete」を後悔
ビル・ゲイツ、Ctrl+Alt+Deleteについて語る | スラド ハードウェア
Apple、キーボードへのホコリ侵入を防ぐ特許 - PC Watch
パソコンのキーボードは,なぜABC順・五十音順ではないのですか | ことばの疑問 | ことば研究館
1877年3月のフランス向けレミントン・タイプライターのキー配列 | yasuokaの日記 | スラド
はじめてのにき(2018-08-07)
日記 (2018 年 12 月下旬)
Microsoftは「Office専用キー」をキーボードに追加することを検討中 - GIGAZINE
【悲報】Realforce R2はキーボードじゃなかった。 - チラシの裏の走り書き はてなブログ版

マウス

有線レーザーマウス(5ボタン・チルトホイール) - M-LS15ULBK
なかのん&マジックさんのツイート: "ハイエンドに近いマウスを使ってると、いい加減にWindowsもホイールのmomentumスクロールをOSレベルで扱って、アプリから識別できるようにして欲しい。たとえば、ホイール回した後にCtrlキーを押して、ズームとして扱われてしまうのを回避できるようにして欲しい。"
なかのん&マジックさんのツイート: "今のところ、本当にユーザの操作の結果としてのホイールイベントなのか、UXやスムーズスクロールのための予備的に発火されたイベントなのか見分ける手段がなさげ。"

対応機種 | サービス・機能 | NTTドコモ
USBホスト| Android(TM) 技術情報 | au
「USBに裏表がある理由」をUSBの開発者が明かす - GIGAZINE
「USB 3.0機器はゆっくり差すと2.0、素早く差すと3.0として認識される」って本当? →メーカー「本当です」 - ねとらぼ
USBが誕生したのは「奥さんのプリンタをつなげる手間にキレたから」 USBの設計当時を振り返る:“PC”あるいは“Personal Computer”と呼ばれるもの、その変遷を辿る(1/6 ページ) - ITmedia NEWS
SATA3.0 SSDより速いUSBメモリ、Patriot「Supersonic Rage Prime」 - エルミタージュ秋葉原

PCIe

slankdevさんのツイート: "PCのMBがPCIe x16なのに内部がx4という原因で3時間溶けた。勉強になった"
DMA(Direct Memory Access)関連調査メモ - DXR165の備忘録
ACPI DMARメモ - 睡分不足
VFIOによるデバイス操作 - 睡分不足
【特集】ビデオカードはPCI Express x16接続が必須かどうかを検証してみた - PC Watch
PCI-SIG、16GT/sを実現するPCI Express 4.0規格Ver 1.0を公開 - PC Watch
PCI-SIG、4.0の2倍の転送速度を実現する「PCI Express 5.0」規格を策定 - PC Watch
PCI-SIG、x16で256GB/sの高速転送を実現する「PCI Express 6.0」 - PC Watch
Intel、PCIe 4.0/Optaneメモリに対応したFPGA「Stratix 10 DX」 - PC Watch
PCI-Express Gen 6.0仕様策定は2021年までに完了する - 自作ユーザーが解説するゲーミングPCガイド
CCIX vs CXL(4) CCIXとよく似た別のモノ「CXL」とは何なのか? | マイナビニュース
Download the Specification | Compute Express Link
なぜPCI Expressはエンベデッド・クロック方式を採用した? - パソコンの選び方と買い方
FadisさんはTwitterを使っています 「来年の完成を目指すPCI-Express 6.0の最初のドラフトが出たらしい。PCI-Express 6.0はようやく製品が出てきたPCI-Express 4.0の次の次の規格で、PCI-Express 5.0の倍となる64GT/sでの通信が可能 https://t.co/RzuauPNu2b」 / Twitter
PCI Express 6.0 Reaches Version 0.5 Ahead Of Finalization Next Year - Phoronix
FadisさんはTwitterを使っています 「PCI-Express、規格としてはどんどん速くなるんだけど、正しく動くための要件もどんどん厳しくなっててハード屋さんが乗り気じゃなくなってるんだよな」 / Twitter
【連載】CCIX vs CXL | マイナビニュース
北森瓦版 - PCI-Express 6.0 ver. 0.7がリリースされる―2021年の規格策定完了を目指す
PAM4採用で速度2倍の「PCI Express 6.0」仕様が確定 - PC Watch
FadisさんはTwitterを使っています 「CXL 2.0のinitialなサポートがLinuxカーネルに入りそうらしい。CXLはPCI-Express 5.0上でメモリ一貫性プロトコルを喋る規格で、GPUのようなアクセラレータやストレージがデバイス側に持っているキャッシュとCPUのキャッシュの間でキャッシュのInvalidateが出来るようになる https://t.co/IdaU8WyT8L」 / Twitter
CXL 2.0 Support Steps Closer To The Mainline Linux Kernel - Phoronix
20210320

ストレージ

その他

blog

SSDについて勝手に語る : sside.net
ベルQ(手動RTbot)さんのツイート: "【SSD】 大きなファイルの書き込み速度目当てでTLCのSSDを買うとき、CrystalDiskMarkのベンチマーク結果は参考にしない方が良い - ニッチなPCゲーマーの環境構築 https://t.co/1SclTqPQaR 1年前の記事だけど まぁ大容量書き込みする人がそんなに居ない現実もある"
【SSD】 大きなファイルの書き込み速度目当てでTLCのSSDを買うとき、CrystalDiskMarkのベンチマーク結果は参考にしない方が良い : ニッチなPCゲーマーの環境構築
SSD 周りの用語まとめ(M.2,PCIe,SATA,AHCI,NVMe) - uchan note
北森瓦版 - Western DigitalのPenta Layer Cell NANDは2025年以降

Storage Reviews - CNET
VIOPS10: SSDの基本技術と最新動向
AIF-06 | Ainex
SSD ドキュメント | タイプ別 Download | サポート | Samsung Semiconductor Global Website
個人向けSSD | 製品別 Download | サポート | Samsung Semiconductor Global Website
SSD ツール&ソフトウェア | タイプ別 Download | サポート | Samsung Semiconductor Global Website
Data degradation - Wikipedia
WD、2020年に世界最大容量の20TB HDD投入 ~CMR方式の18TB HDDも - PC Watch
トリムの概要
FadisさんはTwitterを使っています 「erase block sizeを公表しないSSD屋、やる気が足りないのでは」 / Twitter
キオクシア、Ethernet接続型のNVMe-oF対応ストレージ - PC Watch
東芝、Ethernetから直接アクセスできる「NVMe-oF SSD」試作機を開発 ~ランダムリード1,600万IOPSを実現 - PC Watch
ディスク障害時のRAID再構築時間を劇的に短縮する技術「dRAID」とは? - GIGAZINE
✿sat❀さんはTwitterを使っています 「SSDは内部的にいろいろ隠蔽してくれていて「ぷるぷるぷる…ぼくは速いだけで他はHDDとは変わらないブロックデバイスだよ」という顔してるけど中身は「ファイルシステムとブロック層をフルセットで持っとるやんけ!」なところがある。しかも各社独自実装」 / Twitter
SSDの読み書きはどのように行われるのか - GIGAZINE

SD

PC Watch

最大985MB/sを実現する高速SDカード規格「SD Express」 ~最大128TBの「SD Ultra Capacity」も策定 - PC Watch
PCIe/NVMeで最大転送速度985MB/sを実現する「microSD Express」 - PC Watch
【イベントレポート】実測で888.5MB/sを実現するPCIe/NVMe SDカードの仕様が公開 ~WDがいち早くデモを実施 - PC Watch
【イベントレポート】JMicron、microSD Expressリーダなど「USB 3.2」関連製品 - PC Watch
東芝メモリ、ほぼmicroSDサイズで最大8GB/sのリムーバブルメモリ「XFMEXPRESS」 - PC Watch
PCI Express 4.0採用で最大4GB/sを実現した「SD 8.0」規格 - PC Watch
偽物SDカードの見分け方教えます!買ったら最初にチェックすべき4つのポイント - AKIBA PC Hotline!
SSD ツール&ソフトウェア | タイプ別 Download | サポート | Samsung Semiconductor Global Website

GIGAZINE

microSDカードの「A2規格対応」にパフォーマンス向上の意味はないとエンジニアが主張 - GIGAZINE
microSDカードのA1規格対応品は最低基準の2倍の性能を発揮しA2規格対応品を超えることがある - GIGAZINE
microSDカードより小さい「NMカード(ナノメモリーカード)」をHuaweiが発表 - GIGAZINE
SDカードの新規格「SD 8.0」が登場、PCI Express 4.0採用で最大4GB/sの転送速度を実現 - GIGAZINE

FlashAir Developers - upload.cgi
PQI Air Card - PQIグループ- モバイル向け周辺機器の総合メーカー  [Apple アクセサリ, モバイルアクセサリ, モバイルバッテリー, USB フラッシュドライブ, Wi-Fi ストレージ, 充電器]
SDA、Ver 6.0仕様のA2規格とLVS仕様を追加 - EE Times Japan
第789回:Application Performance Class 1(A1)とは - ケータイ Watch
第882回:SDUCカード とは - ケータイ Watch
転送速度985MB/秒の高速SDカード「SD Express」発表。128TBのSDUCも - AV Watch
ぉゅぅさんはTwitterを使っています: 「あるある... SD hostのレジスタなんかは規格で一緒のはずなのに ベンダ依存とか ソコを使うためのお膳立てが違うのよね. 最悪なのは続いてるツイートのような ほかの機能と混ざってるようなところとか怪しい挙動... SoCベンダが大きく情報を出してくれないと推定もアタリもつけるのが大変よぬ... https://t.co/pz07dLD9WJ」 / Twitter
ぉゅぅさんはTwitterを使っています: 「まぁなによりもベンダが提供してくれないってところがアレなんですがねぇ... (あっちからしたら 数量出ないのに面倒見てられるかよってことなのかもしれないけれど #何の話だ」 / Twitter
1TBのMicroSD及びSDカードについて - 自作ユーザーが解説するゲーミングPCガイド
高速なSDカードについて - 自作ユーザーが解説するゲーミングPCガイド
FadisさんはTwitterを使っています 「SPI mode、SDカードが本来のプロトコルではなく、3ピンだけを使ってSPIをしゃべるようになるモード。SPI対応のマイコンで読む時とかに便利。SDカードのプロトコルにはライセンスまわりの面倒があるが、この方法なら回避できる。ただし遅い #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「SDカードの新しい規格SD 8.0が完成したらしい。端子が2列から3列になり、SD ExpressでPCI-Expressを喋る時に2レーンで通信できるようになる。これに加えてPCI-Express 4.0に対応することで、従来のSD Expressの約4倍となる4GB/sでのデータ転送を実現する https://t.co/rUkaSR9Ij6」 / Twitter
SD 8.0 Specification To Allow 4GB/s Transfer Rates By Leveraging PCIe 4.0 - Phoronix
FadisさんはTwitterを使っています 「SD 7.1のSD Expressは帯域を最大まで使えるデバイスが登場すると「お前のSATA SSDはSDカードより遅い」が発生するデバイスだったけど、SD 8.0のSD Expressは「お前のNVMe SSDはSDカードより遅い」が狙えるデバイスになるのか…」 / Twitter
SDカードのSecure Eraseの方法 (Linux向け)
FadisさんはTwitterを使っています 「Linux 5.14では更にSDカードのPower-off通知にも対応するらしい。SD 4.0以上に対応するSDカードはもうすぐ電源が落ちるのにガベージコレクションを始めてしまうような事態を避ける為にホストからの「もうすぐ電源切るぞ」通知を受け取るようになっている」 / Twitter
Linux 5.14 Bringing SD Cache Ctrl Support, Other SD Card Support Improvements - Phoronix
FadisさんはTwitterを使っています 「Linux 5.14からSDカードのキャッシュ制御に対応するらしい。SD 6.0以上に対応するSDカードはカード側にキャッシュメモリを持っている事があり、有効にするとflushを明示的に要求されるまで書き込み要求がキャッシュにかけた時点で完了するようになる https://t.co/T29IZPjlc6」 / Twitter

SATA

HDD

SATA I

Samsung HM020GI 1. Specification Summary

SATA II

Toshiba MK6034GSX Specs - CNET

512

Toshiba MK3276GSX Specs - CNET
Amazon | 東芝 512セクター 2.5インチ SATA接続ハードディスク 5400rpm 320GB MK3276GSX | 東芝(TOSHIBA) | 内蔵ハードディスク 通販

3.5インチHDD、内蔵と外付けで消費電力を計測しその差を確認してみた - みこぼね
東北大と京大、HDDの超高密度化が期待できる反強磁性体スピントルク磁気メモリを実証 - PC Watch
Fadisさんのツイート: "SSDの陰であまり注目される事はないけど、ハードディスクもじわじわ速くなってて、Intel SSDが最初に注目された頃は120MB/s出せるハードディスクは優秀だったのに、今では200MB/s超えてきたりするんだよな"
Fadisさんのツイート: "NVMeが3000MB/sとかやってる前では誤差のようなものかもしれないけど"
「2019年はPC用HDDの販売数が半減する」とHDD部品で世界シェア1位の日本電産が予測 - GIGAZINE
ヘリウム充填HDDの中身が気になったので実際にバラバラ分解してみたレポート - GIGAZINE

Advanced Format

512e

MQ04AB*** Series | 東芝 半導体&ストレージ製品
Amazon | 東芝 HDD MQ04ABFxxx シリーズ ( 2.5インチ / SATA 6Gbit/s / 1TB / 5400rpm / 128MiB / 7mm / 512e エミュレーション ) MQ04ABF100 | 東芝(TOSHIBA) | 内蔵ハードディスク 通販

4K

MG04ACA**** シリーズ | 東芝 半導体&ストレージ製品
Toshiba MG04ACA500A Specs - CNET
Amazon | Toshiba mg04aca500 a 3.5インチ5tb SATA 6 Gb / s 7.2 K RPM 128 MB 4 KNTomcatベア | 東芝(TOSHIBA) | 内蔵ハードディスク 通販
MARSHAL/マーシャル 東芝製 3.5インチHDD 4Kネイティブモデル Ma series 5TB 7200rpm MG04ACA500ABOX [1523286254-21942] - 39,794円 :
東芝(TOSHIBA)製HDD_リテール品_MG04ACAxxxABOXシリーズ

Advanced Format - Wikipedia
HDDの512E、4Kセクター、AFT、非AFT、4Kネイティブの違い - ぼくんちのTV 別館
アドバンスド・フォーマット4Kセクター・ハードディスク・ドライブへの移行|Seagate
HDDのセクタサイズ~512セクタと4Kセクタ【パソコン購入術】
アドバンスト・フォーマット | 東芝 ストレージ&デバイスソリューション社
Advanced Formatの識別方法 - ハードディスク入れ替え13 FAQ
ASCII.jp:Windows 8は2.2TB超の大容量HDDにどう対応しているのか? (2/3)|塩田紳二のWindows 8 IN-N-OUT
Windows での 4K セクターのハード ディスク ドライブに関するマイクロソフトのサポート ポリシー
【HDD】4Kセクタって何?/4Kセクタの制限事項は?/Windows7でバックア...

SSHD

Seagate Laptop Thin SSHD ST500LM000 Specs - CNET
Amazon | Seagate 2.5inch Hybrid Laptop Thin SSHD ST500LM000 SATA 6Gb/s 500GB 5400rpm 64MB AF | SEAGATE | 内蔵ハードディスク 通販
ゲーム1本60GB!大容量ゲーム時代に使う「SSHD」 ベンチマークにでない「体感」を試してみた - AKIBA PC Hotline!

SMR

Seagate Mobile ST1000LM035 Specs - CNET
Seagate Mobile ST2000LM007 Specs - CNET
Amazon | [SEAGATE] シーゲート 2.5inch HDD 1TB SATA 6.0Gbps 5400回転 7mm厚 128MBキャッシュ ST1000LM035 [並行輸入品] | Mobile HDD | 内蔵ハードディスク 通販
価格.com - SEAGATE ST2000LM007 [2TB 7mm] 価格比較
SMR(瓦書き方式)のHDDは避けるのがオススメ | Kanon好きさんの掲示板 | マイネ王
備忘録:8TB HDDは1年待とう:気が向いたら何か書くtetのブロマガ - ブロマガ
最安の8TB HDD「ST8000AS0002」をテスト、SMR技術を再確認 - AKIBA PC Hotline!
“10TB時代”に向けた最新HDD技術「SMR」のポイントを Seagateに聞いてみた - AKIBA PC Hotline!
【福田昭のセミコン業界最前線】10TBの大容量HDDを実現した「SMR技術」登場の背景 - PC Watch
SMR な HDD で記憶域パリティ備忘録
価格.com - 『このHDDはSMRです』 SEAGATE ST2000LM007 [2TB 7mm] のクチコミ掲示板
備忘録:8TB HDDは1年待とう:気が向いたら何か書くtetのブロマガ - ブロマガ
新技術『SMR』が可能にした低コストで省スペースな大容量HDD - Seagate Desktop HDD(8TB)のレビュー | ジグソー | レビューメディア
ASCII.jp:ヘリウム充填HDDの8TB「WD80EFZX」を触ってみた (1/3)|最新パーツ性能チェック
HDDのSMR技術とはなにか:T43p SATA化ブログ改めパソコン色々ブログ:So-netブログ
個人的にSSDを信用していない理由、そしてSMRが好きではないという理由。 – ひねもす庵
DEIM.pdf
WDの技術者ら、瓦記録方式HDDの開発で文部科学大臣賞を受賞 - PC Watch
なかのん&マジックさんのツイート: "ランダムアクセスのテストが雑すぎて信頼できない。SMRは最初のArchiveHDDで(覚悟してた以上に)痛い目にあってるんで、抵抗あるんだよな。 https://t.co/KPI5PNCY7R"
最新HDDはどれだけ進化したのか、2011年の大人気モデルといろいろ比べてみた - AKIBA PC Hotline!
ネットの論客にファイナルアンサー!? ~「もしかして……SMR!?」。最新2TBプラッタHDDをとことんイジメる - PC Watch
第556回 SMR方式のHDDでも実用できるか検証する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
WDのNAS向けHDD「WD Red」の記録方式が「RAIDに不向き」な仕様にこっそり変更されていたことが判明 - GIGAZINE

M.2

【パワレポ連動企画】実測1GB/sec超! M.2 PCI Express x4接続のSSD「Samsung XP941」を試す ~システム起動は要注意 - PC Watch
品川研究室@学生募集中さんのツイート: "AHCI は 1.3.1 までしか規定されてませんが、SATA 3.2 で 20 Gbps が定義されたので、そこで AHCI の拡張も定義されていたりするんじゃないですかね。仕様書が非公開で分かりませんが。… "
品川研究室@学生募集中さんのツイート: "AHCI の ISS は 4 ビットあるので、いかにも 0100 あたりが使われてそうです。BitVisor でフックして調べてみると面白いかもしれません。… "
hiyohiyoさんのツイート: "SATA の規格書を読んでも AHCI + PCIe の組み合わせの速度を判定する機能がないようなので、CrystalDiskInfo では、PCIe のリンク速度とバージョンを表示しています。 1000MB/s を軽く超えるものの ATA コマンドでは判定する術がなさそうで・・・ 早く滅び去って欲しいところです。… https://t.co/9IJVXkUT80"
OS自作 uchan_nosさんのツイート: "なるほど。実際に、コントローラのレジスタでは判断できない、規格無視した速度のデバイスが存在するんですね。… "
hiyohiyoさんのツイート: "コントローラーのレジスタに直接アクセスするというよりは、IDENTIFY DEVICE コマンドの結果は SATA/600 対応なので、判別できないというのが正確ですね。 何らかの方法はあるのかもしれませんが・・・… "
OS自作 uchan_nosさんのツイート: "なるほどー。やはり、ソフトウェアには適当な値を見せておいて、物理層ではその速度より速い通信をしてしまう、という仕組みなんですねえ。… "
hiyohiyoさんのツイート: "手元にも 2 枚ほどありますが、過渡期の製品って感じで使い道は限られますねぇ~ 現在は、 M.2 + NMVe に統一されているのであまり気にする必要はないかと思います。 ただ、自作 OS 的には ATA コマンドで制御できる(既存OSと互換性あり)のは便利ですね。… https://t.co/xidMsAaGB6"

SATA Express

ASCII.jp:SATA3.2の仕様策定で見えてきたSATA ExpressとM.2 (1/3)|ロードマップでわかる!当世プロセッサー事情
ASCII.jp:WDがSATA Express接続の3.5インチHDDをCOMPUTEXで展示中|COMPUTEX TAIPEI 2014レポート
4Tバイトの「Caviar Black」をベースにしたSATA Express対応ハイブリッドドライブ最新版をWDが公開 - ITmedia PC USER

シリアルATA - Wikipedia
Serial ATA - Wikipedia
HotSwap!
Transcend SSD370S Specs - CNET
SATA-III 6Gb/s SSD220
製品の仕様情報 - Intel® SSD 330 Series (180GB, SATA 6Gb/s, 25nm, MLC)
CSSD-S6i256HG7V:CFD Intel®製3DNAND採用SSD 256GB | CFD販売株式会社 CFD Sales INC.
Samsung 860 EVO MZ-76E250B - solid state drive - 250 GB - SATA 6Gb/s Overview - CNET
2.5/3.5インチHDD 各1台を5.25インチベイに簡単増設|オウルテック
玄人志向 | SATA3I2-PCIe:Marvell社製 88SE9128搭載 SATA3x2 インターフェースボード(PCI-Express x1接続)
玄人志向 | SATA3-PCIE-E2:Marvell社製 88SE9128搭載 eSATA インターフェースカード(PCI-Express x1接続)
シンプルBOX2.5 USB3.0+eSATA SATA6G (CSS25EU3BK6G) ハードディスク(HDD)ケース - 株式会社センチュリー
TK-ESATA-05【eSATAケーブル(0.5m)】eSATA3.0Gb/s対応ケーブル。0.5m。 - サンワサプライ株式会社
ASCII.jp:mSATA SSDって、フツーのSSDとなにが違う? (1/3)|本命が続々登場!! mSATA SSDに大注目

NVMe

PC Watch

WD、メインメモリのように使えるNVMe SSD ~仮想メモリでメモリ容量を8倍に拡張 - PC Watch
【イベントレポート】ついに4GB/s超え。世界初のPCIe 4.0対応SSDコントローラ登場 - PC Watch
SSD価格、2019年末までに1GBあたり10円台まで下落の見込み ~SATA SSDとの価格差解消でPCIe SSDが主流に - PC Watch
【平澤寿康の周辺機器レビュー】2TBに到達したSamsung 「970 EVO Plus」SSD。1TBより高速 - PC Watch
Samsung、書き込みも3GB/s超えのNVMe SSD「970 EVO Plus」2TBモデル - PC Watch
【イベントレポート】1,500万ドル超を投じて9カ月で完成させたPhisonの世界初PCIe 4.0 SSDコントローラ - PC Watch
【イベントレポート】Realtek、NVMe SSDのDRAMキャッシュ必要量を4分の1に低減 - PC Watch
【イベントレポート】ADATA、Silicon Motion製コントローラ採用のPCIe 4.0 SSDを展示 - PC Watch
【イベントレポート】GIGABYTE、リード5GB/s超えのPCIe Gen4接続SSD ~実測値15GB/sの超高速PCIeカードSSDも - PC Watch
【イベントレポート】PCIeの高速化と3D NANDの低速化による性能ギャップがSSDで顕在化 - PC Watch
【イベントレポート】Samsung、リード最大6,500MB/sのPCIe Gen4対応M.2 SSD「980 PRO」 - PC Watch
Samsung、PCI Express 4.0対応SSD「980 PRO」を10月中旬に発売 - PC Watch
【Hothotレビュー】7GB/s級の転送速度を実現したSamsung初のPCIe 4.0 SSD「980 PRO」を試す - PC Watch
Marvell、14GB/sを実現した業界初のPCIe 5.0対応SSDコントローラ - PC Watch

Twitter

なかのん&マジックさんのツイート: "NVMe SSDに関しては、自作PCで色々と試してる身からすると、ノートPCが薄型になることとと、「単純な」ファイルコピーが高速になるぞってこと以外に、2.5インチSATA SSDからのメリットが全く無くて、色々とアレです。… "
なかのん&マジックさんのツイート: "NVMe SSDが高速で良いって言ってる人、たぶんベンチマークしか見てないか、単純なファイルコピーとかが日常作業で多い人だと思う。"
なかのん&マジックさんのツイート: "Windowsでしか比較検証してないんで、他のOSだと知らない。"
一ノ瀬 いろはさんのツイート: "NVMe SSD の評価、私のTL だとサーバー用途に使う基準で話す人が多すぎてよくわからない感じに。 とりあえず熱がしんどいらしい。"
なかのん&マジックさんのツイート: "放熱まではちゃんと検証できてないなぁ。あくまでも、860EVOについてる、ヒートシンクを兼ねたあのシールとのテストだけ。ただ、NVMe SSDにはファンの風を直接当てるようにしてて、空冷レベルではそれなりにやってる構成で確認してる。"
Sadayuki Furuhashiさんのツイート: "2017年の資料だけども、NVMeは12us程度のレイテンシがあるのに対し、NVMDIMM(-N)は3us。 https://t.co/MQv4ABzgWB"
Title of Presentation
Kimihiro Nonakaさんのツイート: "へぇ | Ethernet接続型NVMe-oF™ SSD試作機の開発について | 東芝メモリ https://t.co/DHM3MX2kgt"
Ethernet接続型NVMe-oF™ SSD試作機の開発について | 東芝メモリ
Fadisさんのツイート: "我が家のNVMeにはCMBも仮想化支援も無いことが明らかになった。かなしい"
Kazuo Moriwakaさんのツイート: "NVMe Firmware: I Need Your Data – Technical Blog of Richard Hughes https://t.co/afGViyrKEt Linux上でファームウェア更新基盤つくってる人がNVMeデバイスのID情報がほしいらしい。NVMeがついたLinux環境持ってる人は記事中にあるコマンドを打ってID情報送ってあげるとよさそう。"
Fadisさんのツイート: "最近のNVMe SSDがどのメーカーも3400MB/sとかその辺で並び始めてるの、あれPCI-Express Gen3 x4の帯域の限界が近いんだよな。で、何でもっと太いPCI-Expressにしないかというと、NVMe SSDの一般的なフォームファクタになっているM.2のM keyからはPCI-Expressが4レーンしか出ていないんだ。"
hiyohiyo (Noriyuki Miyazaki)さんのツイート: "Reference Guideを入手してから約半年、ついにIntel RST NVMe対応することができました! 動作確認ができたら正式版としてリリースします。"
Reference Guide Intel RST - Google 検索
Fadisさんのツイート: "cpの実装が残念でコピーが遅いという話。一度に読み書きするサイズが小さすぎる、一度しか読まないデータをpage cacheに乗せている、分散fsなら同時に複数箇所の読み書きをした方が良い、デバイスがコピー用の仕組みを持っているかも等が指摘されている(リンク先有料記事) https://t.co/onJY1Wtq8p"
Fadisさんのツイート: "そういえば、良いNVMeだとデータをメインメモリに持って来ずにブロックのコピーが出来るよね"
FadisさんはTwitterを使っています 「Fusion-io最速信仰はあれに救われた人間の多いソシャゲ畑には根強く残っているんだよな。酷い場合あれを作っていた会社はとうの昔に無くなっていることを知らない」 / Twitter
FadisさんはTwitterを使っています 「NVMeがコントローラの気持ちを考えて使わないと性能ガタ落ちなのも問題をややこしくしている」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ なおすぐに思いつくのは、熱とSLC的キャッシュ領域とIOサイズあたりですが、他にも変な挙動とかありましたっけ?」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu 単位時間あたりに捌けるリクエスト数は多いですが、1リクエストあたりのレイテンシが大きいです。この為ioDriveからNVMeに移行するアプリケーションでは非同期I/Oで休みなくリクエストを投げ続ける事がより重要になります」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ それは知りませんでした。参考になります。 (そのレイテンシ差は、本質的には何に起因するのかなぁ…)」 / Twitter

SSD市場の主流に躍り出るNVMe SSDストレージ、なお残る課題は? - TechTargetジャパン サーバ&ストレージ
ASCII.jp:いまさら聞けないIT用語集 RAIDのボトルネックを解消するVROC (1/3)|ロードマップでわかる!当世プロセッサー事情
NVMe SSDの外付けケースもカバー ~ディスク健康管理ツール「CrystalDiskInfo」v7.7.0 - 窓の杜
第5世代V-NANDの優位が歴然! PCI Express SSDの新定番「970 EVO Plus」の爆速性能を確かめる(ITmedia PC USER) - Yahoo!ニュース
M.2 SSDをPCIeスロットから交換可能にするリムーバブルケース「ICY DOCK ToughArmor MB840M2P-B」レビュー - GIGAZINE
Crucialの新型NVMe SSD「P5」がデビュー、最大2TBまで計4製品 - AKIBA PC Hotline!
won't fix: キオクシアのNVMeを買ったらハマった
DRAMレスとHMB採用でコスト競争力を高めたNVMe SSD「Samsung SSD 980」を試す(1/3 ページ) - ITmedia PC USER
北森瓦版 - Marvell PCI-Express 5.0に対応するNVMe SSDコントローラを発表
サムスン、PCIe 5.0 SSDの発表を予告:2022年第2四半期に登場|自作.com
NVMe 2.0、「未来のストレージの需要に対応」:NVM Expressが発表 - EE Times Japan

NVMe 1.1

MZVPV128HDGM - Client SSD | Samsung Semiconductor Global Website
Samsung Electronics Now Producing Industry’s First M.2 NVMe PCIe SSD for the PC Market – Samsung Global Newsroom
Samsung、世界初のNVMe対応M.2 SSD「SM951」を量産開始 ~PCI Express x4(3.0)対応で最大2,260MB/sec - PC Watch
価格.com - サムスン SM951 MZHPV128HDGM スペック・仕様
コストパフォーマンスが良いのでは? - SM951 256GB M.2 PCIe Gen3 8Gb/s x4 SSD MZHPV256HDGLのレビュー | ジグソー | レビューメディア
[画像] NVMeとAHCIの違いを理解する ~SSDのインターフェースを理解する 3~(5/7) - AKIBA PC Hotline!
リード2GB/s超えのM.2 SSD「SM951」に安価なNVMeモデルが登場 - AKIBA PC Hotline!

NVMe 1.2

SSD 960 EVO M.2シリーズ | Samsung SSDシリーズ
【詳報】Samsungの新SSD 960 PRO/EVOは10月発売。価格も明らかに - PC Watch
価格.com - サムスン 950 PRO M.2 MZ-V5P256B/IT スペック・仕様

NVMe 1.3

【レビュー】Samsung、第3世代のNVMe/PCIe SSD「970 PRO」、「970 EVO」 - PC Watch
Samsung、読み込み3,500MB/sのNVMe SSD「970 EVO」、「970 PRO」 - PC Watch
Silicon Motion、読み書きとも3GB/sを実現するNVMe SSDコントローラ - PC Watch
【イベントレポート】Silicon Motion、PCIe 3.0 x4/NVMe 1.3対応SSDコントローラ新モデルを展示 ~搭載製品は2017年第3四半期以降に登場予定 - PC Watch
64層3D NANDで生まれ変わった、Intelの最新NVMe SSD「SSD 760p」検証 - エルミタージュ秋葉原
価格.com - インテル SSD 760p SSDPEKKW256G8XT スペック・仕様
製品の仕様情報 - Intel® SSD 760p Series (256GB, M.2 80mm, PCIe 3.0 x4, 3D2, TLC)
Intel® Solid State Drive 760p Series Product Brief
ASCII.jp:M.2 SSDの新定番か!?  安くて速い「Intel SSD 760p」 (1/2)|最新パーツ性能チェック
東芝メモリ、約3GB/sのライト性能を実現した業界最速クラスのSSD - PC Watch
【レビュー】Samsung、前モデルから50%以上高速化したM.2 SSD「970 EVO Plus」 - PC Watch
Samsung、最新V-NAND採用で高速化したNVMe SSD「970 EVO Plus」 - PC Watch

NVMe 1.4

NVM Express Set for Busy 2018 | EE Times

NVMe 2.0

FadisさんはTwitterを使っています 「NVMeの最新の規格NVMe 2.0が出たらしい。2.0ではNamespaceにTypeが追加され、Zoned Namespaceのような通常のブロックデバイスとしてアクセスしない領域を同一のデバイスに混載できるようになる他、コントローラの先に繋がっているのがHDDだった場合の為の機能が追加される https://t.co/rxuuQo9ZMN」 / Twitter
NVMe 2.0 Released As A Library Of Specifications With ZNS, Simple Copy + More - Phoronix
FadisさんはTwitterを使っています 「NVMe 2.0ではZoned Namespace(ZNS)とKey-Value(KV)がNVMeの規格の一部に加わる。これらは従来のブロックデバイスと異なる機能を持ったストレージを表現するもので、ZNSはNANDフラッシュメモリの制約をより直接ソフトウェアに見せる事でソフトウェアに工夫を要する代わりにコントローラの負担を軽減する」 / Twitter
FadisさんはTwitterを使っています 「KVはSSDのコントローラが行う処理の本質がKey-Value Storeである事に着目して、ハードウェアをそのままKey-Value Storeとして使ってしまおうという物。一度ブロックデバイスに見せかけて、ブロックデバイスの上にソフトウェアでKey-Value Storeを実装する事によるオーバーヘッドの回避を目的とする」 / Twitter

NVMe/TCP

FadisさんはTwitterを使っています 「linux-5.14でカーネルにNVMe/TCP Offloadをサポートする為のパッチが入りそうらしい。NVMe/TCPはNVMeをTCP/IP上で喋る事でリモートのマシンからNVMeストレージを読み書きできるようにする規格。この変更でNICが対応している場合NVMe/TCPの処理をNICに丸投げするようになる https://t.co/DL6Llrcf5u」 / Twitter
NVMeTCP Offload Bits Coming For Linux 5.14 To Lower CPU Utilization, Better Latency - Phoronix
FadisさんはTwitterを使っています 「NVMe/TCPは素直にソフトウェアで実装するとストレージとネットワークに対してCPUが遅すぎて性能が出ないが「TCPスタックとNVMe/TCPを喋る為の実装を丸ごとハードウェア化すれば性能が出る!」というクレイジーなNICがMarvellから出ており、これを使うとCPU負荷とレイテンシを大きく改善出来るらしい」 / Twitter

Fake RAID

Linuxキーワード - フェイク・レイド:ITpro
One Foot: CentOS 7 で Fake RAID を使用した RAID 構成
穀風: Ubuntu で FakeRAID/1
RAID - ArchWiki

FDD

sakohitiさんのツイート: "え、ふとアクセスしたら、ワイ・イー・データの事業統合に伴う合併で、会社と一緒にHPも消えちゃうのか・・・   しれっと3.5インチFDD製品の仕様pdf類が転がっていて、検索からならアクセスできたり、カードリーダーのドライバ類も置いてあったりと、重宝していたのですが。 orz… https://t.co/uni4AtUXOD"
sakohitiさんのツイート: "そういえばYD-702Dのページ https://t.co/PA9DxCeD4W (なぜかYD-702Jで検索すると出る)から拾える仕様書のpdfが2つと、普通に検索すると出てくるYD-702J-6639Dの仕様書のpdfの合計3つも回収対象ですね。 FDDメーカーの公式サイトに残っているほぼ最後の日本語資料だっただけに、これは惜しいです。"
sakohitiさんのツイート: "ちなみにドライバ類へは、トップページからのリンクが切られたまま放置されている情報マルチメディア事業のページから行く必要があるので、メモとして貼っておきます。 https://t.co/Q6TFl9KXNM"
マルチメディア_Internal Half-inch FDD_株式会社 ワイ・イー・データ
製品仕様書
528028.PDF
Z529020_A2.PDF

にわかに“ゼロSATA”構成が人気を集めている理由 (1/4) - ITmedia PC USER
Latency で見る Intel 3D Xpoint SSD - Fixstars Tech Blog /proc/cpuinfo
QLC NANDのtRを調べる - Fixstars Tech Blog /proc/cpuinfo
SSDの性能を比較する上で考慮すべき3つのポイント - GIGAZINE
HDD・SATA SSD・NVMe SSD・Optane SSDで「レイテンシ」にどれほど差があるのか? - GIGAZINE

LAN

その他

HP ProLiant White Paper:イーサーネットRDMAテクノロジ:RDMAの概要/RDMA over TCP | HPE 日本
MACアドレスに関する注意事項
LANケーブルの正しい使い方 - LANケーブルの信号線がねじられている本当の理由:ITpro
LANケーブルの正しい使い方 - LANケーブルは規格値を超えたスピードで通信したらどうなる?:ITpro
MACアドレスについて教えてください。MACアドレスが消えてしまって... - Yahoo!知恵袋
Tech TIPS:ネットワーク・インターフェイスのMACアドレスを変更する - @IT
現代PCの基礎知識(11):現代のPCには欠かせない!ネットワーク | Think IT(シンクイット)
【新製品】 日本向けクイックコネクタ仕様の「G.Fast」も開発・発売|株式会社アイタス・ジャパンのプレスリリース
セイコーソリューションズ、NTPサーバーと同期するネットワーク型時計「NTPクロック」を販売開始 - クラウド Watch
Marvell、業界初の50GbE対応16ポートPHYトランシーバ - PC Watch
なかのん&マジックさんのツイート: "10GbEでもマルチギガには対応してないってパターンもやはりあるのかな? (全く分かってない)"
dynamis (でゅなみす)さんのツイート: "徐々に減っていくのかもてすが、あります。 必ずしも上位互換で全対応ではないです。… "
一ノ瀬 いろはさんのツイート: "あくまで別の規格、かつ 10Gbase-T より 2.5/5 Base-T の方が後の規格ですからね。 実装上の差分は小さいのでこれから作る分には対応しない理由は少ないですが、 10Gbase-T として作られた製品は後続の規格には対応出来ない事も多いはず。… https://t.co/99A9q2G78d"
Kazuho Okuさんのツイート: "あーなんか良く知ってる環境な気がするー… "
Fadisさんのツイート: "1500バイトのパケットが100GbEで流れてくる時、1パケットの処理に使える時間は120nsで、DRAMに何かを読みに行くとそれだけで50nsから100nsくらい持っていかれる為「CPUのキャッシュに当たらなければ即死」というマゾプログラミング環境が誕生するらしい"
Kazuho Okuさんのツイート: "真面目な話すると、そういう環境だとマルチスッドレ化するのが最善だしみんな割とそうしてるんじゃないの? それでもいろいろチャレンジがあって面白いと思うけど"
【知識】コンセント経由でネットにつながる「PLC」って今どうなってるの? | &GP
高梨陣平さんはTwitterを使っています: 「DARPAが現在のNWの性能を100倍にする目標でプロジェクトFastNICを立ち上げ。現在のボトルネックはインターフェイスにあるとしてNICを捨て、NWスタックを一から作り直すという。また当然SWも新規開発が必要だとしている。ここでFastNICで開発されるSWはOSSになる予定だ。 https://t.co/L3CyFofo1A」 / Twitter
FadisさんはTwitterを使っています: 「夢のある話だけど、現代のネットワークのボトルネックって「性能が良くなくても互換のある方法を取らざるを得ないインターネットの古さ」と「現代の通信速度を想定して作られていないAPIに今尚依存するソフトウェア」であって、NICは順調に伸びてると思うんだ…」 / Twitter
800Gbpsを実現する有線LAN仕様「800GBASE-R」が発表 - PC Watch
光ファイバー盗聴・侵入を5秒でできるか実験してみました - DARK MATTER
【光Ethernetの歴史と発展】IEEE標準ではない光Ethernetの各規格、100G/400G/800Gですでに登場【ネット新技術】 - INTERNET Watch
「管理者権限でログインできるバックドアアカウント」が10万台以上のZyxel製ネットワーク機器で見つかる - GIGAZINE
第665回 ホワイトボックススイッチのインストール環境であるONIEを仮想マシンに構築する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
【特集】よく分かるLANケーブルの選び方。CAT.6でも10Gbps対応可能。CAT.8まで速度差を検証 - PC Watch

Intel

インテル® PRO/100 デスクトップ・アダプター
インテル® PRO/1000 MT デスクトップ・アダプター・シリーズ
インテル® PRO/1000 PT デスクトップ・アダプター・シリーズ
インテル® ギガビット CT デスクトップ・アダプター シリーズ
製品の仕様情報 - Intel® Ethernet Converged Network Adapter X540-T1
製品の仕様情報 - Intel® Ethernet Server Adapter I210-T1
製品の仕様情報 - ギガビット・イーサネット・アダプター
北森瓦版 - Intel 低価格な2.5Gbps Ethernet PHYであるi225-V―“Foxville”を準備中
I225 2.5GbeのZ490を含むIntel 400シリーズのチップセットには、ネットワークのバグがありますが、2020年下半期にされます。 - 自作ユーザーが解説するゲーミングPCガイド
Intel、「Killer NIC」で知られるRivet Networksを買収 - PC Watch
ホ タ テ ラ スさんはTwitterを使っています 「天下のいんてりゅさんでも、phy の ip が買い物だったりするのかなぁ」 / Twitter
msaitohさんはTwitterを使っています 「@misasagi64 元々昔からPHYの半分は Marvell ほぼそのままだし。igp と言われるやつが独自なのかどこかから買ったかは不明。82578 は Attansic (-&gt;Atheros -&gt; QCA)です。MII OUI が Attansic そのもので、最初はボケて他社の OUI 使ったのか と思ったのですが、ベンダ依存レジスタ部分が AR8021 と同一。10G(文字数」 / Twitter
msaitohさんはTwitterを使っています 「@misasagi64 10G は、ixgbe ドライバ内で TN と言われてるのは OUI が Teranetics だけど、これは外付け PHY かな。」 / Twitter
msaitohさんはTwitterを使っています 「Intel I225の不具合が話題ですが、どういう問題を議論しているのかよくわかんないけどPHY作るのがヘタクソ(というか他からIP買ってそれが元々ダメなのかそれとも改造した時にヘマこいたのか・・・)なのは昔からですよね。僕はまだI225持ってません。 ところでこれは何ですか? https://t.co/WElAT06PEh」 / Twitter
dpdk - Data Plane Development Kit
msaitohさんはTwitterを使っています 「低消費電力にしないといけなくて多方面で改善しないといけなくて大変なのはよくわかる(てゆーかドライバ書く側も大変なのよん)。」 / Twitter
msaitohさんはTwitterを使っています 「てゆーか、2.5G とか 5G が ethtool から見えないドライバを長期放置しておいておめーらどんなテストしt(以下略」 / Twitter

Realtek

玄人志向 | GbE-PCIe4:Realtek社製 RTL8168搭載 1000Base-Tイーサネットボード(PCI-Express x1接続)
SD-PEGLAN-S2(ジーノ2世)
Realtek
ETG3-PCI | LANアダプター | IODATA アイ・オー・データ機器
LANアダプタ|LGY-PCI-TXD
Realtek、世界初のシングルチップ2.5G Ethernetコントローラ ~ヒートシンク不要 - PC Watch

NIC

玄人志向 | GbE-PCIe:MARVELL社製 88E8053搭載 1000Base-Tイーサネットボード(PCI-Express x1接続)
Broadcom 5751 Netxtreme Gigabit PCIe NIC
PCでも使えるQNAPのNAS用10GbEカード「QXG-10G1T」が発売 - AKIBA PC Hotline!
10/5/2.5/1GBASE-T対応のマルチギガ有線LANカード「EDB-10GMPE4T」、エレコムが発売 - INTERNET Watch
1万円を切る10GBASE-T対応LANカード、LR-LINK「LREC6860BT」、アユートが販売 - INTERNET Watch
2018年に普及の兆し!? 10GBASE-T対応製品コレクション - INTERNET Watch
アユート、税別1万円を切る10Gigabit Ethernet対応PCIe LANカード - PC Watch
10Gbps通信の普及を阻んだ「高過ぎるエラー率」問題 (1/2) - TechTargetジャパン ネットワーク
Shirouzu Hiroaki(白水啓章)さんのツイート: "同じ40Gb NIC対応でも Mellanox MCX313A-BCBT は PCIe3.0 x8レーン、MCX415A-BCATは PCIe3.0 x16レーンなのはなぜかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gbit搭載マザーボードも徐々に増えているし、10Gbitが徐々に一般にも広がりつつある感じ。また、10Gbitなら今時のCPU&メモリバスで問題ない。 これが、40Gbitになると、あちこちネックが出てきて、普通に使うと15~20Gbit程度で引っ掛かりやすい印象。… https://t.co/ZzKRsXWlbK"

スイッチ

スイッチ|CentreCOM GS908M/GS916M/GS924M
ギガビット8ポート アンマネージプラス・スイッチ(VLAN, QoS) GS108E | 9,500 円 | ネットギア【NETGEAR】
Tag VLAN を利用の環境でスイッチの管理画面にアクセスできません。 《対象機種》 GS108Ev3(GS108E-300JPS) GS108PEv3(GS108PE-300AJS) | ネットギア【NETGEAR】
【清水理史の「イニシャルB」】 VLANやLAGも可能な管理機能付きスイッチが3000円以下で TP-Linkイージースマートスイッチ「TL-SG105E」 - INTERNET Watch
LANケーブルの入れ替え不要、2.5/5GBASE-T対応スイッチがバッファローから - AKIBA PC Hotline!
DSAS開発者の部屋:Brocade VDX NOS 7.0 は Python が動く!
BSH-10G08 仕様 | スイッチ | IODATA アイ・オー・データ機器
SODA Noriyukiさんのツイート: "リピーターHUBって、100BASE-Tまでの製品しかないと思ってた、驚いた>FXG-05RPT でもなんか怪しい挙動する→ https://t.co/MHl7ah6Zdy ので、実は物理的にはリピーターじゃなくてブリッジでで、学習機能を省いて全ポートにミラーリングしてるだけだったりして?"
リピーターハブ(ネットワークタップ)|FXG-05RPT|PLANEX
IzNoMaさんのツイート: "今回いろいろ見てて気がついたんですけど、今時のGbEのばかHUBって実はばかじゃなくて、プリアンブルを再生成するんですね。プラネックスのばかハブ通すと6だったのが7オクテットに戻るという不思議。そんなものなの?"
Fadisさんのツイート: "スイッチングハブなら他所のMACアドレス宛てのパケットは見えないというのは全く期待できなくて、一度もパケット受信した事がない宛先への通信は全ポートに流すし、受信した事があってもテーブルを溢れさせて忘れさせるのは割と簡単だったりする"
ASUS、2基の10Gigabit Ethernet搭載スイッチングHub - PC Watch
バッファロー、約24,000円で全ポート2.5Gbps対応の5ポートHub - PC Watch
手のひらサイズで爆速10Gbps&冗長電源まで備える格安ルーター「MicroTik CRS305-1G-4S+IN」レビュー - GIGAZINE

無線

その他

「技適」の話をあらためて整理する (1/3) - ITmedia Mobile
無線LANデバイスが技術適合証明を受けなければならない理由 | Noisefactory
M.2 の NGFF 形状 WiFi モジュールと繋ぐケーブル
AC-8260NGW
NTTと東工大、テラヘルツ帯での100Gbps無線伝送に成功 - PC Watch
技適取得済み機器の検索APIを総務省が公開中、技適取得の有無のほか機器情報も取得可能【やじうまWatch】 - INTERNET Watch
技適の無い海外端末の合法的利用について | かくいちさんの掲示板 | マイネ王
Cell Phone Unlocking | Federal Communications Commission
「なぜ無線通信で用いられる周波数帯域は2.4GHzなのか」調査中の学生の前に立ちはだかった最後の巨大な壁 - GIGAZINE
【速報】「技適」のない機器の実験利用が可能に、電波法改正で11月20日から:教育とICT Online
家に届いた「NEXT! 700MHz」のチラシ、これは何? - AV Watch
MacとiPadを横に並べるだけで直接連携が可能になる「ユニバーサルコントロール」の仕組みとは? - GIGAZINE

Bluetooth

その他

成熟Bluetoothチップ市場に吹く新風 (1/4) - EE Times Japan
渋川よしきさんのツイート: "Bluetoothを青歯って書く人いるけど、中国語の藍牙のほうが中二病感あってカッコイイと思う。簡体字だと蓝牙。ピンインだとlanyaで変換できます。"
Anker Soundsync A3341 - .mjtの日記復帰計画
低電力Bluetoothチップの多くに存在するリモートアクセスを可能にする脆弱性「BleedingBit」の存在が明らかに - GIGAZINE
(1)「マルチペアリング」や「マルチポイント」で手軽になったBluetooth | 日経 xTECH(クロステック)
【小寺・西田の「金曜ランチビュッフェ」】AirPodsから考えるBluetoothの「切り換え」問題
AndroidスマホのBluetoothに重大な脆弱性、攻撃者が任意のコードを実行可 - Engadget 日本版
Google、Bluetoothデバイスを初回から自動接続できるFast Pairの詳細を公開 - PC Watch
Bluetoothデバイスの接続に潜む新たな脆弱性を用いたなりすまし攻撃「BIAS」が発見される - GIGAZINE
Bluetoothデバイスの認証キーを攻撃者が上書きできる脆弱性「BLURtooth」が発見される - GIGAZINE
スマホやPCなど無数のBluetoothデバイスが乗っ取られてしまう脆弱性「BLESA」が発見される - GIGAZINE
2020年10月20日 Linux 5.9.1がリリース,Bluetoothの脆弱性を突いた「BleedingTooth」に対応:Linux Daily Topics|gihyo.jp … 技術評論社

Sniffer

「Bluetooth Low Energy BLE 4.0 nRF51822」に該当する海外通販 - セカイモン
2269 Adafruit Industries LLC | RF/IF and RFID | DigiKey
DSAS開発者の部屋:技適マークつき BLE パケットスニファを入手する
DSAS開発者の部屋:BLE デバイス間の通信内容をパケットレベルで読み解いてみる

ケータイ Watch

第660回:iBeaconとは - ケータイ Watch Watch
第679回:ポータブルSIM とは - ケータイ Watch Watch
第718回:Eddystone とは - ケータイ Watch Watch
第720回:ジオフェンシング とは - ケータイ Watch Watch
第832回:完全ワイヤレスステレオ(TWS) とは - ケータイ Watch
第859回:eMBB、URLLC、mMTC とは - ケータイ Watch

FIDO

ユーザーは改良版への交換を。GoogleがBluetooth版Titanセキュリティキーをリコール - Engadget 日本版
Google Online Security Blog: Advisory: Security Issue with Bluetooth Low Energy (BLE) Titan Security Keys
パスワードの不要な世界はいかにして実現されるのか - FIDO2 と WebAuthn の基本を知る: Tender Surrender

Audio

LE Audio

ASCII.jp:Bluetooth「LE Audio」の技術的な詳細は? ソニー講演から探る
クアルコム、次世代規格「Bluetooth LE Audio」に対応したミドルクラスSoC「QCC305x」 - PHILE WEB
【本田雅一のAVTrends】次世代Bluetooth音声“LE Audio”は、ワイヤレスイヤフォンのなにを変えるか? - AV Watch
Bluetooth SIG、新音声規格「LE Audio」のコーデック仕様書を公開 - ITmedia PC USER
ASCII.jp:混沌としたBluetoothの高音質コーデック、新標準LE Audio/LC3の立ち位置は? (1/2)
「Bluetooth LE Audio」に対応したコーデックを提供開始:組み込み開発ニュース - MONOist
次世代Bluetooth「LE Audio」は高音質LC3採用、ワイヤレスでシェアも - AV Watch
Bluetoothの新音声規格「LE Audio」、新コーデック「LC3」採用やマルチストリーム・ブロードキャストに対応 - ケータイ Watch
Bluetooth SIG、ブロードキャストにも対応する「LEオーディオ」を発表 - ケータイ Watch
Bluetoothの次世代音声規格「Bluetooth LE Audio」が発表される、低電力で高品質ながら複数機器での再生も可能に - GIGAZINE
LE オーディオ |ブルートゥース®テクノロジーウェブサイト
Bluetooth SIG Unveils LE Audio, the Next Generation of Bluetooth Audio – Bluetooth® Technology Website
Bluetooth SIG、音質が抜本的に改善したLE Audio用新コーデック「LC3」 - PC Watch
LEオーディオの仕様|Bluetooth®テクノロジーウェブサイト
Low Complexity Communication Codec - LC3_Specification_v1.0.pdf
とみながたけひろさんはTwitterを使っています 「そういえばBluetoothのLC3コーデック仕様書が公開されたのでhttps://t.co/SWndAk9WSM (PDF) つらつらと見ているんだが、リサンプリング検出器があるのが面白かった。これはVoice系の8kHzサンプリングされた音声を48kHzに変換したんだな、てのを認識したときに特別扱いするっていう」 / Twitter
とみながたけひろさんはTwitterを使っています 「あとはまあウィンドウ長を時間固定にするとか、プリエコー対策でもウィンドウサイズ変えないとか、エントロピーコーディングはVQと算術符号とか、なるほど計算量減らしつつ効率上げるならこのへんかー、今時だなーという感じ」 / Twitter
とみながたけひろさんはTwitterを使っています 「直交変換の窓函数が変態形状である。これはvorbisからあったしそれほど最新ではないのかもだけど、あんまり他では見た事ない気もする」 / Twitter
Masami HIRATAさんはTwitterを使っています 「@takehiro_t @yohhoy それって、モノラル音声のストリームを 6 本束ねて 5.1ch みたいな用途を想定していて、LFE に特化しているツールが用意されてるみたいな感じなんですかね?」 / Twitter

遅延対策

Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi @beepcap Android って動画の場合 SBC のでかい遅延に合わせて映像ずらしてくれるから気にならないんですよね。まぁ macOS もそうなんですけど。操作音みたいなやつは画面更新遅らせるわけに行かないから露骨にずれますね。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@hdk_2 @beepcap なんか動画だとリップシンクうまくやってくれるらしいですね。OS が対応してなくても VLC なんかはたいてい音声のオフセット設定とかできるし,まあなんとかなる印象」 / Twitter
Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi Android と macOS で試して、あぁー今時のオペレーティングシステムはこうなんだーいいじゃんって思って、それから Windows を触った時の絶望感...」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@hdk_2 Android も macOS も A2DP の接続コーデック確認とかもできるんですが Windows はそれすらも出来ない(とはいえ標準のソフトウェアスタックで aptX に対応したり進歩はしているのですが」 / Twitter
Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi まぁなんか、Bluetooth オーディオは闇なので、自宅では PC 同士を PulseAudio で飛ばすことにしました...」 / Twitter

kanamonoさんのツイート: "左右独立したイヤフォンは音がずれることがないのかなと思っていたが、昨日ついにズレが発生した。電源切るまで直らなかった"
kanamonoさんのツイート: "ズレは1秒未満でしたが、ズレると物凄く不快なので実用に堪えない感じになります… "
耳を塞がないイヤホンambieを一ヶ月でぶっ壊してしまった話 - にせねこメモ
【藤本健のDigital Audio Laboratory】iPhoneからBluetoothで聴くと音質はどう変わる? 波形で比較した-AV Watch
【藤本健のDigital Audio Laboratory】BluetoothのaptX音質をテストしたら、謎の結果が出てしまった-AV Watch
【藤本健のDigital Audio Laboratory】BluetoothのaptX音質を再び検証。SBCとの違いを波形で比べた-AV Watch
Logicool Bluetooth Audio Receiver for Wireless Streaming
【笠原一輝のユビキタス情報局】Microsoftのノイキャンヘッドフォン「Surface Headphones」をレビュー ~PC&スマホの同時に利用に便利。日本でもまもなく発売 - PC Watch
高音質なワイヤレス体験!24bit Bluetooth DUAL DAC搭載。バランス接続対応ワイレスレシーバー『EarStudio』 | 株式会社フリーウェイ
SBC XQ - Google 検索
Qualcommが高品質&低遅延の次世代ワイヤレスオーディオ技術「Snapdragon Sound」を発表 - GIGAZINE
とみながたけひろさんはTwitterを使っています 「BTのaudio, あまりにも罠が多すぎて、電話が祖先の機材(スマートフォン)はともかく、CS対応考えると一般人向けゲーム機では対応しないのが正解!みたくなってるよな(XBOX1はBTそのものがない、PS4/5, Nintendo SwitchはBTあるけどAudio使えない、XBOX X|SはAudioも対応してる、だったかな…)」 / Twitter

MIDI

nRF51でBLE MIDIをアドバタイズする - Qiita
BLE-MIDI : 藤本健の“DTMステーション”
kshoji: Android用のBLE MIDIライブラリのご紹介
kshoji/BLE-MIDI-for-Android: MIDI over Bluetooth LE driver for Android 4.3 or later
Downloads | KORG BLE-MIDI Driver - Bluetooth MIDI Connection Guide E | KORG (USA)
ble-midi - npm
Bluetooth LE MIDI Specification
Microsoft Word - rp52.doc
Bluetooth LE MIDI Specification
Midi over BLE
MIDI 2.0、始動 今も使われる電子楽器規格が38年後のバージョンアップ - ITmedia NEWS
MIDIが38年ぶりのバージョンアップでMIDI 2.0に。従来のMIDI 1.0との互換性を保ちつつ機能強化 | | 藤本健の "DTMステーション"
【藤本健のDigital Audio Laboratory】Bluetooth MIDIは本当に遅延が大きい? 測定して比べてみた-AV Watch

マウス

Bluetooth 4.0 レーザーマウス - M-BT13BLBK
EX-G Bluetooth BlueLEDマウス - M-XG4BBBK
【PR】接続も充電もワイヤレスなCorsair製マウス「DARK CORE RGB SE」を試す。ケーブルに縛られないゲームライフはとことん快適だ - 4Gamer.net
Corsair、Qi無線充電が可能な2.4GHz無線/BT/有線対応ゲーミングマウスなど2機種 - PC Watch

I/F

BIOS 画面でもBluetooth LE な無線キーボードを使いたい | tech - 氾濫原
Releases · cho45/hid2hcix
HID API for Linux, Mac OS X, and Windows
Bluetooth Ver.4.0+EDR/LE対応 小型USBアダプター|PLANEX
Bluetooth(R) USBアダプター(Class2) - LBT-UAN05C2
Nintendo Switchでワイヤレスイヤフォン/ヘッドフォンを使用可能にするドングルが発売 - GAME Watch
Nintendo Switch™をワイヤレスで楽しもう!世界初、ワイヤレスヘッドホンを可能にするドングル『Genki』

au

仕様 (スペック) | Bluetooth(R) | au
仕様 (スペック) | Bluetooth(R) | au
機能説明 | Bluetooth(R) | au

Bluetooth 5

【ニュース・フラッシュ】ケイデンス、Bluetooth 5の検証IPを提供開始 - PC Watch
「Bluetooth 5」に対応したスマートフォンが認証の取得を開始 | ガジェット通信
新規格登場のBLE、非モバイルに浸透へ - 日経テクノロジーオンライン
Bluetooth SIG責任者が今だから語る、Bluetooth 5仕様の真実 - TechTargetジャパン ネットワーク
速度2倍、到達距離4倍になったBluetooth 5 - PC Watch
Bluetooth 5 通信距離「従来比4倍」の仕組み (1/4) - EDN Japan
Bluetooth 5 対応スマートフォンをサムスンとアップルが製品化 (プレスリリース) - エキサイトニュース
新しいiPhoneの「Bluetooth 5.0」で何が変わる? - いまさら聞けないiPhoneのなぜ | マイナビニュース
【解説】誤解していませんか?「Bluetooth 5対応」の真の意味とは - PHILE WEB
Bluetooth 5でオーディオは進化するの? - いまさら聞けないiPhoneのなぜ | マイナビニュース
方向検知機能が追加された「Bluetooth 5.1」 ~位置測位もセンチメートル単位で可能に - PC Watch
Core Spec Version 5.2の新機能について|Bluetooth®テクノロジーウェブサイト
「Bluetooth 5.2」、3つの新機能を理解する:注目される「アイソクロナスチャネル」など(1/2 ページ) - EDN Japan
Bluetooth 5.2はどう進化した?バージョン5.1との違いと新しく追加された仕様を解説! | マクリン
Bluetoothの『バージョン』とは?5.2の進化ポイント「オーディオ機能」などを解説|TIME&SPACE by KDDI
【1.0-5.2】Bluetoothバージョン別の特徴まとめ | BableTech

Bluetooth mesh

Bluetoothがメッシュネットワークをサポート ~数千デバイスの相互ネットワークを実現 - PC Watch
第817回:Bluetooth Meshネットワーク とは - ケータイ Watch
低エネルギー: メッシュ | Bluetooth Technology Website
Low Energy: Mesh | Bluetooth Technology Website
数千ノードのメッシュネットワークを構築できる「Bluetooth mesh」 ~大規模デバイスネットワークの基礎を目指す - PC Watch

Bluetooth Low Energy

はじめに | 基礎知識 | ROHM TECH WEB
AndroidでBluetoothヘッドホンのバッテリー残量インジケーター表示のサポートが行われる見込み - GIGAZINE
Shiki Okasakaさんのツイート: "Bluetooth SmartとBluetooth Smart Readyマークは2016年いっぱいで廃止されている、というのはどれくらい周知されているのだろう? https://t.co/vJFGi6WCBf https://t.co/ZhY3hOw3Z0"
ネット環境不要で広域通信可能な「BLEルーター」、IoTデバイス開発のBraveridgeが提供 - INTERNET Watch
Bluetooth LEにWindows PCやiOS/macOSなど対応デバイスを識別/追跡できる脆弱性 - PC Watch
popets-2019-0036.pdf
Appleデバイスの位置を第三者が確認できる抜け穴 - PC Watch

Bluetooth Technology Website

WiMAX

UQ、WiMAX 2+対応のUSBアダプタ「URoad-Stick」 - PC Watch
stick_linux_info_v1.0.pdf
URoad-Stick |UQWiMAX|超高速モバイルインターネットWiMAX2+
データ通信カード | UQ WiMAX|超高速モバイルインターネットWiMAX2+
WiMAX製品一覧|UQWiMAX|超高速モバイルインターネットWiMAX2+
テザリング機能|UQmobile|格安スマホ・格安SIMのUQmobile
Linux機にWiMAX機器をUSB接続して使う - 海馬のかわり
Huawei WiMAX 2+モデムをLinuxで使う
USBケーブルを使用してノートPCのネット回線をアンドロイド端末共有
WiMAX2+ 接続方式による通信速度の違いを検証してみた USB接続編 : ガジェッとぅ
【西川和久の不定期コラム】ネットワークコンサルティング「Mobile Cube」 ~コンパクトで起動も速いWiMAX Wi-Fiルーター - PC Watch
LinuxカーネルがWiMAXのサポートを段階的に廃止 - GIGAZINE
FadisさんはTwitterを使っています 「Linux 5.11では以前から削除が提案されていたWiMAXのサポートがstagingになるらしい。これはPCの内蔵WiMAXモデ厶でWiMAXを喋る為の物で、近年殆ど使われておらず保守が難しいことが指摘されていた。WiMAXルータを介してWiMAXを喋るケースにはこのドライバは関係ない https://t.co/ZyZ8W4wt7C」 / Twitter
WiMAX Support Officially Demoted In Linux 5.11 - Phoronix

LTE

LTE対応USBドングル PIX-MT100 | 株式会社ピクセラ
PIX-MT100を接続するとWindowsの反応が悪くなる - ぷろじぇくと、みすじら。 - Misuzilla.org
ピクセラ、LTE対応USBドングル「PIX-MT100」がファームアップデート - CNET Japan
法人向けSIM・高速モバイル通信サービスのIIJモバイル | IIJ
520BU | 端末情報 | IIJモバイル サポートサイト
520BU | 端末情報 | サプライ | IIJモバイル サポートサイト
AMP520 - SORACOM 認定デバイス
M2Mに挑戦するAM Telecom
相互接続性試験(IOT) IOT完了済みメーカーブランド通信モジュール・製品 | ドコモビジネスオンライン | NTTドコモ
modulelist.pdf
品質 4G LTE モジュール & 3G 変復調装置モジュール 製造元
第839回:PS-LTE とは - ケータイ Watch
第853回:EVS とは - ケータイ Watch
Enhanced Voice Services - Wikipedia
Enhanced Voice Services - Wikipedia
スマホの通信規格「4G/LTE」「5G」でユーザーになりすまして通信に介入できる脆弱性が見つかる - GIGAZINE
ピクセラ、LTE対応のUSBモデムを秋に発売 - PC Watch
LTE対応 USBドングル(PIX-MT110) - 仕様 | 株式会社ピクセラ

5G

報道発表資料 : (お知らせ)5G標準仕様策定が完了 | お知らせ | NTTドコモ
【笠原一輝のユビキタス情報局】MWC 18で見えてきた5Gを巡るIntelとQualcommの熱いつばぜり合い - PC Watch
NOKIA、5G特許で端末1台につき3ユーロのライセンス料 - PC Watch
【やじうまPC Watch】豪政府、Huawei/ZTE両社を5Gネットワーク供給から排除 - PC Watch
トランプ大統領、米連邦政府機関でのZTEおよびHuawei製品使用禁止令に署名 - ITmedia NEWS
ドコモの3Gは2020年代半ばに終了へ 5Gで2023年までに1兆円を投資 - ITmedia Mobile
Rockridgeさんのツイート: "5Gについて、「(TCP輻輳制御方式として)CUBICの方がBBRよりも一般には高速で通信可能」「HTTPはTCPセッション数を増やすと速くなる」「QUICは帯域を限界まで使える可能性があるが不明な挙動も」。 / “HTTP a…” https://t.co/4W2uBcH5Rh"
【イベントレポート】FibocomがIntel製5GのM.2モジュールを年末までに出荷 ~次世代Xeon Dの開発コードネームはHewitt Lake - PC Watch
【山田祥平のRe:config.sys】5Gネットワーク始動、その万感の想い - PC Watch
AppleとQualcomm和解で、Intelがスマホ向け5Gモデムから撤退 - PC Watch
いろいろ世界初。MediaTeckの5G対応チップはQualcommの良きライバルになりそう | ギズモード・ジャパン
Intelが5Gモデム搭載ノートPCの実現に向けMediaTekと協業 - PC Watch
中国が「Huaweiと5G契約しないと貿易協定を締結しない」と外国の首脳を脅迫していたと判明 - GIGAZINE
次世代通信「5G」に通話の傍受や位置情報の特定が可能になる脆弱性が発覚 - GIGAZINE
MediaTek、Intel PC用の5Gモデム「T700」 - PC Watch
5G携帯のはなし(1)|Wireless・のおと|サイレックス・テクノロジー株式会社
5G携帯のはなし(2)|Wireless・のおと|サイレックス・テクノロジー株式会社

6G

NTTが「6G」向け通信技術を開発、5G超え「シャノン限界」まで高速化 | 日経 xTECH(クロステック)

ケータイ Watch

第604回:「ucode」 とは - ケータイ Watch Watch
第765回:デュアルスタンバイ とは - ケータイ Watch
第796回:デュアルアクティブ とは - ケータイ Watch
第816回:UDCとは - ケータイ Watch
第824回:プロビジョニングとは - ケータイ Watch
第826回:0AB~J番号 とは - ケータイ Watch
第845回:RCS(Rich Communication Services) とは - ケータイ Watch
第847回:iSIMとは - ケータイ Watch
第849回:マルチプロファイルSIMとは - ケータイ Watch
第856回:+メッセージ とは - ケータイ Watch
第868回:クラウドSIMとは - ケータイ Watch
電波法改正案、電波利用料を大幅見直し - ケータイ Watch
電波法改正案、技適なしでも試験利用は可能など一部緩和 - ケータイ Watch

Wi-Fi

Wi-Fi 6(IEEE802.11ax)

【NW未来予想図01】無線LANは11axが主流に。光並み20ギガWi-Fiも | ビジネスネットワーク.jp
第848回:IEEE802.11ax とは - ケータイ Watch
速度は11acの倍、11ax対応のWi-Fi子機向けチップ「WCN3998」、Qualcommが発表 - INTERNET Watch
802.11axの呼称が「Wi-Fi 6」に、11acは「Wi-Fi 5」、11nは「Wi-Fi 4」 - INTERNET Watch
次世代高速無線LAN規格「11ax」について
【Wi-Fiルータ】次世代規格IEEE 802.11axの無線通信に対応した機器まとめ - 踊るびあほりっく
無線LANに11axが必要になった理由 | 日経 xTECH(クロステック)
IEEE 802.11ax - Wikipedia
_pdf
最新規格「IEEE802.11ax」がやってきた!最新無線LAN事情 - IT、IT製品の情報なら【キーマンズネット】
IEEE802.11ax | IoT
Wi-Fi 6(11ax)搭載拡大へ、2023年にWi-Fiチップ出荷の約3分の1に達すると予測 - INTERNET Watch
CES 2019で見かけた「Wi-Fi 6」(802.11ax)対応製品【CES 2019】 - INTERNET Watch
無線LANも2.4Gbpsに。Intel、Wi-Fi 6モジュールを出荷開始 - PC Watch
【周波数帯を拡張するWi-Fi 6E】Wi-Fi 6Eの6GHz帯、2019年後半に欧米で免許不要利用にメド【ネット新技術】 - INTERNET Watch
6GHz帯の無免許利用をFCCが承認、高速な無線LAN新規格「Wi-Fi 6E」が使用可能に - GIGAZINE
アイ・オー、1万円切りのWi-Fi 6対応無線LANルーター - PC Watch
免許なしで使える6GHz帯まで拡張した「Wi-Fi 6E」の認定プログラムがスタート - GIGAZINE
世界初のWi-Fi 6対応のUSB接続子機、ASUSとD-Linkが発表【CES 2021】 - INTERNET Watch
10GのSFP+はどれぐらい高速なのか?Wi-Fi 6対応ルーターASUS「RT-AX89X」使ってみた&速度実測レビュー - GIGAZINE

IEEE802.11ay

IEEE802.11ay | IoT
IEEE 802.11ay - Wikipedia
www.ieee802.org/11/Reports/tgay_update.htm
IEEE 802.11ay、802.15.3eで何が変わる?ミリ波帯超高速無線通信 - IT、IT製品の情報なら【キーマンズネット】
多様な周波数帯を活用した性能拡大に向けた取り組み
000168907.pdf
研究会 - IEEE802.11ayに向けたCMOSミリ波トランシーバーに関する研究

Mesh

「Wi-Fi CERTIFIED EasyMesh」発表、異なるベンダー間でもメッシュを構築できる製品を認証 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第1回)Wi-Fiにおけるメッシュネットワークの必要性【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第2回)Wi-Fiメッシュネットワーク標準規格「IEEE 802.11s」、策定までの流れと採用技術【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第3回)Wi-Fiメッシュで通信コストを最小化する仕組み、「IEEE 802.11s」の採用技術【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第4回)Wi-Fiメッシュネットワーク標準規格「IEEE 802.11s」、策定までの流れと採用技術【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第5回)Wi-Fiメッシュの主流はQualcomm「Wi-Fi SON」へ、「IEEE 802.11s」に準拠せず【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第6回)続々登場するQualcomm「Wi-Fi SON」採用製品は相互非互換、Wi-Fi Allianceは「EasyMesh」を発表【ネット新技術】 - INTERNET Watch
2017年度のベスト5wifiメッシュネットワークシステムに関してお読みください
最高のメッシュWi-Fiルーター 2018版
メッシュ ネットワークとは - Google Wifi ヘルプ
Google Wifi を使用したメッシュ ネットワークの仕組み - Google ストア
Google Wifi vs. deco M5 メッシュ対応Wi-Fiルーター徹底比較 (1/6) - ITmedia PC USER
ASUSのメッシュルーター「Lyra mini」で自宅Wi-Fi環境が改善するかテスト:旅人目線のデジタルレポ 中山智 - Engadget 日本版
【メッシュWIFIシステム】Google WiFiと中継機やルーターとの違いを比較。おすすめ機種も。 | モノログ.fun
メッシュWi-Fiの基本的な仕組みと特徴を理解しよう|MacFan
「メッシュWi-Fi」で家中どこでも快適Wi-Fi環境を実現

WPA3

Twitter

Eijiro Sumiiさんのツイート: "本当に(←そればっか)、「無線LANの暗号化意味ない」は広まってほしい… "
アナネコさんのツイート: "WPA-PSKでL2レベル暗号化していても、パスワードを共有している場合は簡単にそれぞれのセッション鍵を計算することができてL2レベルの暗号化が無意味になるんですよ。って研修でやるのに買ったやつ。"
Eijiro Sumiiさんのツイート: "本当に(略)、「https (SSL/TLS)使う」のほうがはるかに重要 https://t.co/IessKQmFmc"
アナネコさんのツイート: "ちなみにL2の暗号化が破られるから危険!という主旨ではなく、L2の暗号化なんてあてにならんのだから重要な通信は上のレイヤーで暗号化して改竄検知しましょう!というお話をしました。"
Eijiro Sumiiさんのツイート: "パスワード共有してたら暗号云々以前に偽アクセスポイント立てればもっと簡単に盗聴・改ざんし放題だし。"
Eijiro Sumiiさんのツイート: "https://t.co/kuRAuKXj8Q 「利用者を特定少数に制限したい場合」「管理者側にとっては」無線LANに暗号化パスワードつける意味あります。念のため。"
Eijiro Sumiiさんのツイート: "誤解している例:https://t.co/M05PCQqkZz"
Eijiro Sumiiさんのツイート: "HTTPSを使うとかブラウザをアップデートするとか本当に必要な対策ではなく、「暗号化されていないWi-Fiがある」から「利用を控える」は、被災者に誤った不便を強いる呼びかけでは… https://t.co/IjWX8QuTih"
Eijiro Sumiiさんのツイート: "https://t.co/1eL3b1FhHT 記事が消えてた。熊本県警の「呼びかけ」。"

第863回:WPA3 とは - ケータイ Watch
Wi-Fi Alliance、次世代無線セキュリティ「WPA3」 - PC Watch
Wi-Fi Alliance、Wi-Fiセキュリティの新規格「WPA3」発表 | マイナビニュース
Wi-Fiパスワードを破る新たな攻撃手法が見つかる--「WPA」「WPA2」を無効に - ZDNet Japan
Wi-Fiは将来的に「WPA3」必須に、Wi-Fi Allianceが新たな認定制度をスタート - INTERNET Watch
【利便性を向上するWi-Fi規格】(第7回)Wi-Fi最初の暗号化規格「WEP」、当初の目論見は“有線LAN同等のセキュリティ”【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第8回)Wi-Fiの暗号化は「WPA」から「802.11i」を経て「WPA2」へ【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第9回)2003年までの実装が必須だった「WPA」で採用された「TKIP」の4つの特徴【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第10回)暗号化方式に「AES」を採用した「IEEE 802.11i」や「WPA2」、11n普及とともに浸透【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第11回)WPA/WPA2の脆弱性“KRACKs”、悪用のハードルは?【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第12回)WPA3は「SAE」採用で鍵の推測が不可能に、KRACKsで悪用の穴ふさぐ、2018年末から登場?【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第13回)SSID&パスフレーズをボタンを押してやり取りする標準規格「WPS」、各社規格の乱立に終止符?【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第14回)ボタンを押すとSSID&パスフレーズはどうやってやり取りされる? 「WPS」の接続手順【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第15回)SSID・パスフレーズ交換の標準規格「WPS 2.0」、「WPS 1.0」の脆弱性を解消【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第16回)認証不要でWi-Fi通信の傍受を不可能に、フリーWi-Fi向け新規格「Wi-Fi Certified Enhanced Open」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第17回)フリーWi-Fi向け新規格「Wi-Fi Certified Enhanced Open」、盗聴の恐れがある通信路で秘密鍵を安全に共有【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第18回)Passpointの仕様である「Hotspot 2.0」のベースとなった標準規格「IEEE 802.11u」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第19回)国内キャリアも採用のホットスポット提供指標「WISPr」、「IEEE 802.11u」と一本化へ【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第20回)ホットスポットでの認証の問題を解消した「HotSpot 2.0」、IEEE 802.11uやWISPr 1.0/2.0に欠けた要素を追加【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第21回)Wi-Fiホットスポット接続規格「Passpoint」、高速なLTEの普及で拡大せず【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第22回)スマホでQRコードを読み取り、ほかの機器をWi-Fi接続する「Wi-Fi Easy Connect」、画面やカメラがない機器を接続可能に【ネット新技術】 - INTERNET Watch
Wi-Fiセキュリティの新規格「WPA3」に脆弱性が発見される - GIGAZINE
Wi-Fiセキュリティ新規格「WPA3」に脆弱性、登場から1年経たずに発見される - INTERNET Watch
Dragonblood: Analysing WPA3's Dragonfly Handshake
Wi-Fiセキュリティ新規格「WPA3」にWi-Fiのパスワードが漏れる新たな脆弱性が発見される - GIGAZINE
Wi-Fi 6の認定プログラム「Wi-Fi CERTIFIED 6」開始。WPA3が必須に - PC Watch

INTERNET Watch

Wi-Fiルーターのサポート期間っていつまで? 国内メーカー4社に聞いてみた  - INTERNET Watch
無線LANの5.2GHz帯(W52)、屋外利用を可能に、電波法施行規則を改正へ - INTERNET Watch
【利便性を向上するWi-Fi規格】(第23回)Wi-Fiを利用してVoIPを実現する音声伝達向け規格「Wi-Fi CERTIFIED Voice-Personal」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第24回)Wi-Fi子機同士を直接接続する「Wi-Fi Direct」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第25回)高精度の屋内測位機能を提供する「Wi-Fi CERTIFIED Location」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第26回)Wi-Fiで100μs精度の時刻同期ができる「Wi-Fi CERTIFIED TimeSync」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第27回)公衆Wi-Fiアクセスポイント向けの「Wi-Fi CERTIFIED Vantage」、11ac+PassPointから拡充へ【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第28回)「Wi-Fi CERTIFIED Agile Multiband」、ネットワーク内の移動に伴うローミングなどの対応をまとめて規定【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(第29回)ESSIDの異なるWi-Fiへの接続を高速化する「Wi-Fi CERTIFIED Optimized Connectivity」【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(番外編1)11acから11axへの移行は2019年末から2020年初頭~Ruckus Networksインタビュー【ネット新技術】 - INTERNET Watch
【利便性を向上するWi-Fi規格】(番外編2)11axはCBRSとあわせて伸びる分野、その先には5Gも~Ruckus Networksインタビュー【ネット新技術】 - INTERNET Watch

脆弱性

FragAttacks

FadisさんはTwitterを使っています 「FragAttacks: 同一のWiFiネットワーク内にいる攻撃者が対象とアクセスポイントの間が暗号化されていても対象に平文のパケットを食べさせる事が出来る脆弱性。WiFiの仕様上の問題と多くの機器で見られる実装の問題の合わせ技で、WPA3を含む全ての暗号化を乗り越えられる https://t.co/u5ACPdHR6k」 / Twitter
FragAttacks: New Security Vulnerabilities Affecting WiFi Devices, 12 CVEs Issued - Phoronix
FadisさんはTwitterを使っています 「今日のWiFiは性能向上のために小さいパケットを束ねて送るframe aggregationを備えているが、束ねているかどうかを示すフラグは完全性の対象になっておらず攻撃者が書き換え放題で、これにいろんな状況で平文パケットを機器が受け取ってしまうバグが組み合わさって攻撃者がパケットを挟めるようになる」 / Twitter
FadisさんはTwitterを使っています 「平文でやりとりするしかないハンドシェイクにいきなりframe aggregationでデータのパケットをくっつけて送るとデータが平文でも食べちゃう機器が結構あるの、面白い」 / Twitter
事実上ほぼ全てのWi-Fiデバイスに内在する脆弱性「FragAttacks」が公開される、ユーザー名やパスワードの流出、PCの乗っ取りも可能 - GIGAZINE
FadisさんはTwitterを使っています 「FragAttacks、攻撃の足掛かりになってるのがWiFiの仕様自体の問題だから、WiFi全部ダメだー!みたいに言われてるのが散見されるけど、これだけだと暗号化されたパケットを捏造できないと攻撃できないので、平文食べちゃうWiFiデバイスの方が何とかなったらとりあえず脅威ではなくなりそう」 / Twitter
FadisさんはTwitterを使っています 「雑なIoT機器もWiFi喋ってる時代にそれをやるのが結構大変な話ってのはあるだろうけど」 / Twitter

Wi-Fi通信を盗み見る脆弱性「Kr00K」が発見。MacやiPhone、Raspberry Piなど多くのデバイスが対象に - PC Watch
iPhoneやGalaxyなど10億を超えるWi-Fi端末に通信を傍受される脆弱性「Kr00k」が存在すると判明 - GIGAZINE
スマホ・PCなどほぼすべてのWi-Fi機器に影響があるWPA2自体の脆弱性「KRACK」とは、そして対策は? - GIGAZINE
mjg59 | Wifi deauthentication attacks and home security

無線LANルーター|MZK-MF300HP2|PLANEX
WN-AX1167GR | Wi-Fi(無線LAN)ルーター | IODATA アイ・オー・データ機器
TL-WPA4220KIT | 300Mbps AV600 PLC Wi-Fiエクステンダーキット | TP-Link Japan
第880回:Wi-Fi CERTIFIED Vantage とは - ケータイ Watch
第881回:Wi-Fi 4/5/6 とは - ケータイ Watch
KRACKのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
WoWのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
アイ・オー、4,000円を切る一人暮らし向けの無線ルーター - PC Watch
アイ・オー、税別5,500円のIEEE 802.11acルーター - PC Watch
無線LANのスペクトルを6GHz帯に拡張した「Wi-Fi 6E」 - PC Watch
Wi-Fiのパスフレーズを「パケットを食べる」ことで解析する電子ペットキット「Hash Monster」 - GIGAZINE
約15年前の「無線LANルーター」が今でも販売され続けている理由とは? - GIGAZINE
ランダム ハードウェア アドレスを使う理由と方法
わかめ@毎日猫がいるさんはTwitterを使っています: 「Pixel 4になってからなぜか会社のシステムにMACアドレス登録してもWi-Fi打刻できなくなってて ??? ってなってたんだけど、MACアドレスをAPごとにランダマイズする機能がAndroid 10からデフォルトオンに…! https://t.co/Fxtih3NiZn」 / Twitter
Privacy: MAC Randomization  |  Android Open Source Project
わかめ@毎日猫がいるさんはTwitterを使っています: 「ていうかMACアドレスがソフトウェア的にランダムに変わるのってすげーな。いいのか?(プライバシー保護的にはOKなんだろうけど)」 / Twitter
そな太@Swift始めましたさんはTwitterを使っています: 「@vvakame MACアドレスはブロードキャストが届く範囲でユニークであれば良いので問題ないです(ブロードキャストドメインを超えて利用されることはないため) 仮想環境のMACアドレスも本物ではなかったりしますよね」 / Twitter
わかめ@毎日猫がいるさんはTwitterを使っています: 「@sonatard たしかに。なるほどなぁ。」 / Twitter
FadisさんはTwitterを使っています 「物理的に何かを所有していることを利用者が本物であると考える根拠としてWi-Fiの利用者を制限したい場合、EAP SIM認証というのがあってな」 / Twitter
Virtual WiFiとSoftAP - Google 検索
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「無線アクセスポイント(AP)で 2.4GHz「デュアルチャネル機能」を有効にすると、古め2.4GHz 11n対応機器から全てのAPが見えなくなる現象発生…Atermのヘルプにも出ていた。 https://t.co/pG1gCpAFyx」 / Twitter
デュアルチャネル|機能詳細ガイド

Raspberry Pi

Wi-Fi

Raspberry Pi Zero Wをアダプタ不要でセットアップする - Qiita
USB OTGを使ったRapsberry Pi Zero WH のセットアップ - Qiita
OTG(On-The-Go)化した Raspberry Pi zeroをインターネット接続する! - Opensourcetechブログ
Raspberry Pi ZeroをUSBケーブル1本で遊ぶ | Japanese Raspberry Pi Users Group
RaspberryPiZeroをUSBケーブルでセットアップ
DSAS開発者の部屋:USBポートに挿すだけでインターネット接続を乗っ取るガジェットを作ってみた
ヘッドレスRaspberry Pi Zero w(h)のネットワーク初期設定やコンソールやUSB Gadget/Ethernetなどについてメモ - uzullaがブログ
Windows 10でCANDY Pi LiteとRaspberry Pi Zero... | CANDY LINE Blog
Raspberry Pi Zero /W で USB ケーブルで Windows に接続 | sakisan's cafe
Raspberry Pi 4の「特定の解像度でWi-Fiが不安定になる」問題を実際に検証してみた - GIGAZINE
Raspberry 3B+でWi-Fiルータを作った - Plonk123の日記

News

【西川和久の不定期コラム】「Raspberry Pi3 Model B」で遊んでみよう! Part 1 ~OSのインストールから環境構築まで軽く試す編 - PC Watch
【西川和久の不定期コラム】「Raspberry Pi3 Model B」で遊んでみよう!Part2 ~GPIO入門1。ポートのオン/オフとステータス取得編 - PC Watch
IEEE 802.11acやGbEをサポートした「Raspberry Pi 3 Model B+」、35ドル ~SoC改良により高負荷継続時の性能も向上 - PC Watch
ケイエスワイ、技適取得の「ラズパイ3 Model B+」を販売開始 - PC Watch
SDカードなしで運用できるRaspberry Pi最新モデル発売 | マイナビニュース
Raspberry Pi用のvSphere ESXi仮想化ハイパーバイザ、VMwareがプロトタイプを発表 - Publickey
25ドルの「Raspberry Pi 3 Model A+」が発表 - PC Watch
Raspberry Pi 4 Model Bリリース! | Japanese Raspberry Pi Users Group
USB 3.0初搭載の「Raspberry Pi 4 model B」が登場 - PC Watch
Raspberry Pi 4 Model Bを見る! | Japanese Raspberry Pi Users Group
技適対応の「Raspberry Pi 4 Model B 4GB版」が発売 - PC Watch
8GBのRAM搭載で64ビット対応のRaspberry Pi 4が登場、標準OSも64ビット版がリリース - GIGAZINE
Raspberry Pi 4ベースの「Compute Module 4」発売 - PC Watch
1日数十円から試せる“IoT用AIアプリのApp Store”拡大へ、Ideinが20億円調達 | DIAMOND SIGNAL
Ubuntu 20.10がRaspberry PiでLinuxデスクトップを提供
第646回 Raspberry PiをIoTデバイスとして活用できるUbuntu Core:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Ubuntu 20.10がフルデスクトップとマイクロクラウドをRaspberry Pi4上で実現
30W給電のPoE+に対応した「Raspberry Pai PoE+ HAT」 - PC Watch

落合陽一

エヌユルさんのツイート: "亀ツイートだけど 落合陽一がPEZY擁護で金子を叩いてたが HPC素人の私でもRaspberry Piを繋いて並列処理キタコレとか言ってた人と同じサイドに立ちたくないので早く落合陽一がはPEZYを叩く側に回ってほしい"
闇ときどき豚さんのツイート: "@tanakh これです https://t.co/v85M6OV0CB"
落合陽一/Dr.YoichiOchiaiさんのツイート: "ラズベリーパイゼロは今年の衝撃ランキングでもだいぶ上位だったな.1GHz・512MBメモリの600円.10台買っても6000円,100台で6万円.1000台買えば,メモリだけで500GBだし,CPU1000個.並列処理キタこれな感じ.授業で配れる価格だし,これはステージ変わるわ."
Hideyuki Tanakaさんのツイート: "ま、まじかあ…(´・_・`) https://t.co/yVyoCrvh2m"
opensorterさんのツイート: "#人工知能にとても詳しい落合陽一… "
アムダールの法則 - Wikipedia
Amdahl's law - Wikipedia

Raspberry Pi - Teach, Learn, and Make with Raspberry Pi
Raspberry Pi - Wikipedia
Raspberry Pi - Wikipedia
Raspberry Pi3を無線LANコンバータにする -blog SkyofFantasy-
Raspberry Piでイーサネットコンバータを作る
Raspberry Piで無線LAN
Raspberry Pi ZeroとUSBオンリーでLチカまで - akimachoのはてなブログ
Raspberry Pi でパケット遅延器
Fadisさんのツイート: "RasPiが使ってるCortex-A7やCortex-A53というARMプロセッサは元々「高速なARMプロセッサの横にくっつけて、速い(けど消費電力がでかい)方のプロセッサを動かす程ではない処理はこのプロセッサで片付ける」ことで主にシステムの待機時の消費電力を抑える為に作られたプ… https://t.co/RQk0AYxBVJ"
Fadisさんのツイート: "このためこれらのプロセッサは高速なARMプロセッサから急に切り替わっても大丈夫なように高速なARMプロセッサの全命令を一応受け付けられるようになってる。ただ、それらを高速に処理できるように実装しているとは一言も言っていない。SIMD命令とか処理するデータ数に比例して時間がかかる"
Fadisさんのツイート: "ところがCortex-A7やA53「だけ」を積んだSoCを作ると小さいダイでフルなLinuxが(全く性能は出ないが)動くSoCが作れてしまう為、これらを単体で積んだSoCがたくさん出てきた。イマドキの破格のARM Linuxボードの実現にはこうした斜め上のSoCが大きな役割を果た… https://t.co/RsHsRvP49E"
Raspberry Piに最適な小型ディスプレイ「Quimat 3.5インチタッチスクリーンディスプレイ」を素のRaspbianからセットアップする方法 - karaage. [からあげ]
Raspberry Pi で使えるポータブルモニタの決定版が出てた(タッチスクリーン付き、GPIOを占有しない、ケース付き、約3000円) - nomolkのブログ
Fmstrat/diy-ipmi: A DIY IPMI / IP KVM system utilizing the Raspberry Pi
Raspberry Pi 4のUSB Type-Cポートが規格に沿っていない話の詳細
A.Amag🌧️さんはTwitterを使っています: 「ラズパイの初期設定のときにHDMIのモニタが要るけど、そんなことのためだけにHDMIモニタ用意するの面倒だし、なんかいい手はないかなと思って、HDMIをUSBでキャプチャするやつを買ってみた。ノートPCのウインドウの1つがHDMIモニタになる。これ便利だわ。」 / Twitter
t157さんはTwitterを使っています: 「後輩が担当しているラズパイ案件で相談を受ける。 SPI1を使った通信においてMODE1の通信が出来ないとの事。 色々と調べてみると、どうもCPUのバグ(エラッタ)引っかかったっぽい。 またかよ。ラズパイ。 orz」 / Twitter
t157さんはTwitterを使っています: 「どうしてこうも、ブロードコムは、I2Cでもバグを抱えて、SPIでもバグを抱えてたりと、色々と問題を抱えているのに修正しないのかね? コミュニティのログを見るとブロードコムの部署を解散済みにしているようで、そんな所の製品を使うっていうのもどうしようもねえ製品だよな。と思ったり。」 / Twitter
norio@ゆるふわ系(希望)さんはTwitterを使っています: 「UrJTAGなるUSB Blaster (+Raspberry pi)で使えるフリーの JTAGバウンダリースキャンツールがあるみたい。 お手軽でいいかな https://t.co/zAob4g6JtJ https://t.co/DyqQ6zgk7E」 / Twitter
UrJtagを使う - PukiWiki
UrJTAG raspberry blaster - Google 検索
Makoto Kato ︎︎さんはTwitterを使っています: 「やっぱりRasberry Pi 4でもARM Crypto extensionは入ってないのね。ライセンスフィーの話だろうけど」 / Twitter
Raspberry Pi Shop by KSY
日本で出たRaspberry Pi 4と電源問題とファームウェアの件 - あっきぃ日誌
Raspberry Pi 4が起動しない(モニタが映らない)場合の設定方法 - Qiita
BCM2711について - Qiita
BareMetalで遊ぶ Raspberry Pi 4 - GIC v2編-/BareMetal Raspberry Pi 4 - GICv2 - - Speaker Deck
FadisさんはTwitterを使っています 「初期のRasPiに使われているSoCの割込みコントローラはマルチコアに対応できる作りになっていなかった為、マルチコアになったRasPi2では割り込みコントローラが複数のっていた #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「これがRasPi4では複数のプロセッサと対面できる単一のGICv2に統合された #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「ベアメタルでRasPiを使う為にGICv2の初期化を手でやりたい → UART入力の割り込みを取れる状態を目指す #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「GICはSGI PPI SPIの3種類の割り込みをまとめて扱う石で、割り込み番号は3種類の割り込みの中でユニークな値を使う為、PPI SPIが使う割り込み番号は0から始まっていない #kernelvm」 / Twitter
Idein Ideas — GPGPUの観点から見る VideoCore VI と VideoVore IV の違い
RaspberryPiのVideoCore IV(GPU)を使ってOS無し(ベアメタル)からポリゴン出して遊ぶ - Qiita
1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - GIGAZINE
第624回 Raspberry Pi 4にデスクトップ版Ubuntuをインストール:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第643回 Raspberry Pi 4でデスクトップ版Ubuntu 20.10を使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Raspberry Pi 4 のセットアップをしてみた - uchan note
Raspberry Piは本当に壊れやすいのか

Li-Fi

FadisさんはTwitterを使っています 「LinuxカーネルにLi-Fiデバイスのドライバが入りたがっている。Li-FiはPLCに繋がったLED電球が光OFDMで変調された信号を可視光でデバイスに届ける事で下り1Gbpsの通信を行う無線通信技術。殆ど回折しないが電球は部屋中に光が届くように置かれている事を期待している https://t.co/KkawaLyTXC」 / Twitter
Linux Patches Updated For Light-Based Networking With pureLiFi Driver - Phoronix

TPM・Microsoft Pluton

だんぼーだよさんはTwitterを使っています 「みんな TPM なんか付いてないって言ってるけど、UEFI で有効にできる場合あるから確認してね。独立チップのイメージでいると思うけど、最近は Firmware TPM が Intel PTT / AMD GuardMI で使えるよ。マザーボードの TPM 用ピンヘッダは埋めなくていいです。BTO で選択肢なくても設定で有効化できます。 https://t.co/1VsuaXJoFY」 / Twitter
🎒♨️ 👀(6★)さんはTwitterを使っています 「Intel PTTを有効にすると通るな、ほんとは対ダンパ性とかでファームウェアで鍵保存しちゃいけない気がするけど https://t.co/k0eTe8en6T」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「まあ Intel PTT も論理ロジックだけで TPM 実装してるわけでもないんだろうから、そういう意味では Intel も AMD も独立したサブプロセッサでファームウェア的に TPM 機能を実装してる、という温度感ではだいたい同等なのかな。」 / Twitter
TPMのファームウェアバージョンを確認する方法 - FMWORLD(法人):富士通
microsoft/ms-tpm-20-ref: Reference implementation of the TCG Trusted Platform Module 2.0 specification.
【特集】Windows 11で必須になった「TPM 2.0」って何?TPMの役割や確認方法を紹介 - PC Watch
Microsoft、TPMに代わるCPU内蔵型セキュリティチップ「Microsoft Pluton」 ~AMD、Intel、Qualcommと共同開発 - PC Watch
MicrosoftがWindows搭載PCを保護する新型セキュリティチップ「Microsoft Pluton」を発表 - GIGAZINE
一部PCは「TPM 2.0をサポートしていないのにWindows 11がインストールされている」と判明、中国やロシア向けの製品か - GIGAZINE
MicrosoftがWindows 11で必須にしている「TPM」とは?なぜ必須なのか? - GIGAZINE
次のPC買い換えはPluton搭載CPUが鍵か - 阿久津良和のWindows Weekly Report | マイナビニュース
Windows 11のTPM要件はPCビルダーを驚かせたが、BIOSで有効にすることができる|自作.com
Windows 11、"Special Purpose "システム向けにTPMの必要性を排除して出荷|自作.com
Windows 11からの排除される:TPMの要求により多くのPCが除外される|自作.com

ディスプレイ

その他

LG ディスプレイに貼り付けされていない PC リサイクルマークを無料で申請してみた – What I Know ~ワッタイナ
LG、第11世代Core搭載PCで発生していた液晶の表示不具合を改善 - PC Watch
4K/HDR液晶を使うならWindows 10、Sandy Bridgeの時には難しかった高解像度環境が身近に - AKIBA PC Hotline!
4Kの基礎知識① RED社の4Kテクノロジーの変遷 | 4K入門 高精細映像の世界 | Shuffle by COMMERCIAL PHOTO
手軽につなげて高性能:時代を先取り! 「USB Type-C拡張機能」対応の新型デバイスを選ぶ (1/2) - ITmedia PC USER
ITmedia流液晶ディスプレイ講座III:HiDPIやRetinaを誤解してない?――4K時代のディスプレイ選びに欠かせない「画素密度」を理解する (1/4) - ITmedia PC USER
ドットバイドットとは|dot by dot - 意味 / 定義 / 解説 / 説明 : IT用語辞典
【解説】ディスプレイケーブルのコネクタについて - ELECOM WEB SITE!
最新ディスプレイ講座――HDMI、DislplayPortから先進のUSB Type-Cまで映像入力インタフェース徹底解説 | EIZO株式会社
Shirouzu Hiroaki(白水啓章)さんのツイート: "有機EL「テレビ」は、白色発光+カラーフィルタ、主流なのね…RGB発光と思い込んでいた。 3色フィルタは効率1/3=消費電力が大きい理由の一つかな? (白色を含む4色フィルタというのもあるらしい)"
SODA Noriyukiさんのツイート: "サイズが小さいものはRGB発光、大きいとRGB発光のものは実用化できてなくてすべてがLG電子の白色+カラーフィルタと、サイズによって完全に住み分けされてるっぽいですよね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "みたいですね。 有機ELなのにカラーフィルタって、やや騙された感がありました(笑)… "
16K/60p HDR対応の「DisplayPort 2.0」'20年認証開始。DisplayHDRは有機EL/microLEDにも - AV Watch
目を痛めずに作業できる25.3インチの巨大な電子ペーパー製モニターが登場 - GIGAZINE
小型・軽量でピクチャーインピクチャー機能やストリーム配信機能を搭載したプロダクションスイッチャー「ATEM Mini Pro」を使ってみた - GIGAZINE
ファーウェイ、3,840×2,560ドット表示対応でフレームレスの28.2型液晶 - PC Watch

マルチディスプレイ

Z87-PRO:オンボード出力とグラフィックカード出力の同時利用(マルチディスプレイ)について
マルチディスプレイのまとめスタイル修正: Intel IGP
マルチモニター(マルチディスプレイ)を活用する【液晶モニタの基礎知識】
マルチディスプレイの方法 パソコン初心者講座
マザーボードでマルチディスプレイ パソコン初心者講座
Windows TIPS:ノートPCでデュアルディスプレイの表示設定を変更する - @IT
業務効率が一気に上がる、実践!マルチディスプレイ - 余ったディスプレイをつなげばすぐにできる、マルチディスプレイの基本:ITpro

HDMI

HDMI CEC

ビエラリンク - Wikipedia
ブラビアリンク - Wikipedia
Nintendo Switch発売、ソフト更新でHDMI CEC対応。FB/Twitter投稿も - AV Watch
デジモノ家電を読み解くキーワード:「HDMI CEC」――AV機器メーカーによる囲い込みポイント - ITmedia LifeStyle
HDMI CECとはテレビやレコーダーなどの機器間で制御信号をやり取りするリンク機能 | ホームシアターナビ

HDMI - Wikipedia
HDRフォーマットの伝送に対応したHDMI 2.0aが発表 - PC Watch
【後藤弘茂のWeekly海外ニュース】GPUの真の性能を活かすHDRに、2016年からRadeonが対応へ - PC Watch
HDMI Licensing、2.0規格で定められた新機能を解説 - PC Watch
HDMI Forum、次期HDMI規格2.0を発表 ~4K@50/60、32オーディオチャンネルなどに対応 - PC Watch
WQXGA/48bitカラーをサポートした「HDMI 1.3」説明会
<CES>新規格「HDMI 2.1」を策定メンバーに聞く。 “48Gbps”の意味とは? いまのケーブルは使える? - Phile-web
[CES 2017]「HDMI 2.1」が規格化。“HDMI版Adaptive Sync”な「Game Mode VRR」や8K/60Hz,4K/120Hz表示などが目玉に - 4Gamer.net
「HDMI 2.1」が発表 - 8K/60Hzに対応、新たにゲームモードも | マイナビニュース
HDMI ケーブルのイーサネット対応と非対応の違い
「HDMI 2.0」から「HDMI 2.1」になると一体何が変わるのか? - GIGAZINE
ARC対応ってなに?
Fadisさんのツイート: "HDMIにはロゴを表示すると最終製品のロイヤリティが下がる、という決まりがあって今日多くのHDMI対応製品がロゴを表示してるわけだけど、スーパーファミコンにHDMIって書かれてるのじわじわくる https://t.co/vlqJdNajIN"
10Kまで対応する「HDMI 2.1」が公開。ゲーム向け同期機能など搭載 - PC Watch
【西川善司の大画面☆マニア】HDMI 2.1とは何か。8K/60Hzや動的HDRだけでない、次世代ディスプレイにもたらす変化-AV Watch
【西川善司の大画面☆マニア】8Kだけじゃない! ブラックアウト回避やeARC、あなたの知らないHDMI 2.1の世界-AV Watch
4K/8K映像対応で“曲げても踏んでもOK”なHDMI光ケーブル。56Gbps伝送も - AV Watch
「HDMI 2.0」で一体何が新しくなって大幅に強化されるのかまとめ - GIGAZINE
対応テレビの準備も完了? 「HDMI 2.1」最新動向をHDMI Licensing CTOに聞く - PHILE WEB
HDMIサラウンド音声フォーマットを手動で設定した場合の挙動の調査 - .mjtの日記復帰計画
SD-HDSPRL【Kyo-ons SEPARATOR】
Dolby Digital Live を手作りしたい実験 - Qiita
取り回ししやすい「HDMI 2.1」対応ケーブルはどれなのか一斉比較レビュー - GIGAZINE
FadisさんはTwitterを使っています 「HDMI 2.1は仕様をHDMI Adoptersのメンバー以外に公開することを認めておらず、オープンソースドライバを実装する事は間接的に仕様を公開していると判断される恐れがあることから、FreeSync等のHDMI 2.1で利用できる筈の機能をオープンソースドライバに実装できない問題の話 https://t.co/iF1NHthY9m」 / Twitter
HDMI Forum Closing Public Specification Access Is Hurting Open-Source GPU Drivers - Phoronix
FadisさんはTwitterを使っています 「特に現行のAMDGPUのLinuxドライバは全てオープンソースになっているから、Linux+AMDGPUの組み合わせではHDMI 2.1の機能は使えんので諦めてDisplayPortで繋いでください状態になっている、と」 / Twitter
HDMI業界の閉鎖体質がオープンソースのGPUドライバーに悪影響を及ぼしているとの指摘 - GIGAZINE

Adaptive-Sync/FreeSync

GPUとディスプレイを自動同期する機能がDisplayPortに実装 ~テアリングを解消し、消費電力も削減 - PC Watch
ゲームがよりなめらかに、FreeSyncで最高の描画品質を楽しむ - AKIBA PC Hotline!
西川善司の3DGE:AMD,HDR対応の「FreeSync 2」を発表 - 4Gamer.net
NVidia、ついにAdaptive-Sync/FreeSyncに対応 | スラド ハードウェア
NVIDIA,「G-SYNC Compatible Monitors」プログラムを開始。Adaptive-Sync対応ディスプレイ12製品でG-SYNCの利用を可能に - 4Gamer.net
Announcing G-SYNC Compatible Monitors and BFGD Pre-Orders
GeForce G-SYNC Monitors: Manufacturers & Specs
AMD、FreeSync Premium ティアを発表、FreeSync 2 HDRをPremium Proにブランド変更 - 自作ユーザーが解説するゲーミングPCガイド

RGBW

RGBWとは - IT用語辞典 Weblio辞書
Sony Japan | ニュースリリース | デジタルカメラ向け新開発「RGBW方式」の3型VGA液晶モジュール“WhiteMagic™ ”(ホワイトマジック)※1を商品化

HDR

HDR10+

HDR10+ License Program
HDR新規格「HDR10+」対応製品がまもなく。パナやSamsung、ワーナーも対応 - AV Watch
【本田雅一のAVTrends】一見地味なHDR新規格「HDR10+」が、多くの消費者に魅力的な体験をもたらすかもしれない - AV Watch
パナソニックとフォックスがSamsung提案のHDR方式「HDR10+」を推進へ - AV Watch
SamsungとAmazon Video、HDRの拡張規格「HDR10+」発表。今年後半にコンテンツ配信 - AV Watch
サムスンとAmazon Video、「HDR10」を拡張した新規格「HDR10+」を発表 - Phile-web
<IFA>「HDR10+」とは何か、パナソニックがなぜ推進するのか。サムスンと手を組んだねらい - PHILE WEB

DisplayHDR

Vesa Certified DisplayHDR™
VESA Defines New Standard to Help Speed PC Industry Adoption of High Dynamic Range Technology in Laptop and Desktop Monitor Displays | VESA
VESA、DisplayHDR対応確認アプリをMicrosoft Storeで公開 - PC Watch
VESAがHDR標準「DisplayHDR」策定 PCディスプレイの性能を底上げ - ITmedia NEWS
VESA,HDR対応液晶ディスプレイの標準規格「DisplayHDR」を発表。対応製品は早ければ2018年に登場か - 4Gamer.net
VESA、HDRに関する標準規格「DisplayHDR」を策定 ~輝度やコントラスト比などを厳密に規定 - PC Watch
Samsungの49型ゲーミングディスプレイが、業界初のDisplayHDR 600認定 - PC Watch
日本初HDR 1000液晶モニタや4K放送チューナ、痛4K中継車も。「4K・8K機材展」 - AV Watch
【PR】1,000nitの高輝度とHDRでゲームはここまで変わる! PhilipsのDisplayHDR 1000対応液晶を西川善司氏が徹底解剖- PC Watch

High-dynamic-range video - Wikipedia
Rec. 2100 - Wikipedia
Hybrid Log-Gamma - Wikipedia
よくわかる、HDR徹底解説! ガンマカーブの違い | EIZO株式会社
UHDTV HDR,HLG & WCGを理解する by LightIllusionに関する製品情報|クリエイティブサポートカンパニー Edipit
4Kテレビ選びの重要ワードHDR=「HDR10」「Dolby Vision」「HLG」って何? - 価格.comマガジン
4K HDRとDolby Visionはどう違うのか? (1) CES 2016で見たホームエンターテインメントの進化 | マイナビニュース
Dolby Vision方式のUltra HD Blu-rayが'17年発売。ワーナー、ユニバーサルなど - AV Watch
いま注目の高画質化技術「HDR」とは何か? ドルビーの真野ディレクターに聞く - Phile-web
HDR10とは? ゾーンとは? Blu-ray Copyはどうなる?「Ultra HD Blu-ray」の詳細を聞く(後編) (1/4) - Phile-web
【イベントレポート】NVIDIA、65型の4K/HDR/120Hz/G-SYNC対応となるBig Format Gaming Displaysを提唱 ~8コアCarmel CPU+512CUDAコアのVolta GPUとなるXavierも発表 - PC Watch
ソニー、Microsoftらがゲーム向けにHDRガイドライン団体「HGiG」を発足 - PC Watch
Razer PhoneがNetflixのHDR再生に対応 | ガジェット通信 GetNews
Rec.2020とBT.2020の違いとは
PCとモニターがHDRへ対応しているかの判別方法
【プレイバック2018】液晶テレビ“視野角問題”に終止符? HDR動向とこれから by 本田雅一-AV Watch
SODA Noriyukiさんのツイート: "HDR は 何nits まで要求するかが大問題ですね… 1000nits のモニターっていうと PG27UQ と UP2718Q の2機種しか候補が残らないような気が…(正しい?)… "
Fadisさんのツイート: "こっちで探した時もその辺しか見つかりませんでしたね… "
FadisさんはTwitterを使っています: 「4K HDRで画面が暗くなる問題、以前は扱える色の範囲が狭すぎるからテレビ側で信号に厚化粧してたのが、広範囲の色を扱えるようになったからテレビは信号通りの色を出すようになったけど、撮影設備、放送設備その他の対応が出来てなくて狭い範囲の色がそのまま画面に反映されてるって話なんだよな」 / Twitter
HDR Ecosystem Tracker update fall 2019

半導体/周辺機器 液晶ディスプレイ - PC Watch
BCNランキング - BCN+R
60B4RAR6JP | モニター ThinkVision | 製品情報 | Business with Lenovo
BenQ 23.8型アイケアディスプレイ GW2480 | BenQ Japan
地上・BS・110度CSデジタルハイビジョン液晶テレビ TH-L19C3 詳細(スペック) | テレビ/シアター | Panasonic
三菱 ディスプレイ
今すぐやるべき「ディスプレイの設定」と「4K以上の高解像度ディスプレイ」に買い替たほうがいい理由 - GIGAZINE
USB-C対応のモニターが増えているのは何故? | ギズモード・ジャパン
【2019年版】USB PDで電源供給!USB-C対応ディスプレイ全75製品まとめ!最強ディスプレイはどれなんだ……? | makkyon web
Dell、世界初のカラーキャリブレータ内蔵27型4K液晶 - PC Watch
デル、USB Type-Cで65W供給可能な27型4K液晶 - PC Watch
LG、ディスプレイ位置が自在に調節可能な4K液晶など2020年モデルを発表 ~4K/144Hz/1ms対応ゲーミング液晶や、Thunderbolt 3搭載製品も登場 - PC Watch
LG、最大96W給電も可能なUSB Type-C接続対応の31.5型4K液晶 - PC Watch
LG、HDMI 2.1搭載で4K/120Hz/VRR対応の27型144Hz駆動ゲーミング液晶 - PC Watch

プリンタ

【インクジェット/レーザー プリンター】(Windows)今まで印刷できていたのに、突然印刷できなくなった|ブラザー
使用済みトナーカートリッジ/ドラムユニット回収リサイクル|サポート情報|ブラザー
HL-L2360DN | レーザープリンター・複合機 | ブラザー
HL-L2375DW | レーザープリンター・複合機 | ブラザー
消耗品・オプション | HL-L2375DW | レーザープリンター・複合機 | ブラザー
MFC-J960DN-B/W MFC-J960DWN-B/W | インクジェットプリンター・複合機 | ブラザー
cv_bcld100_jpn_usr_led253047_a.pdf
2019-01-17 「ファーストタンク」シリーズ1機種も追加! 電話機付きインクジェットプリンター「PRIVIO」5機種新発売|ブラザー
MFC-J1605DN | インクジェットプリンター・複合機 | ブラザー
MFC-J1605DN | 日本 | ブラザーサポート
製品マニュアル | MFC-J1605DN | 日本 | ブラザー
消耗品・オプション | MFC-J1605DN | インクジェットプリンター・複合機 | ブラザー
cv_bcld120k_jpn_usr_c.pdf
How to obtain Brother SNMP MIB information
NetDiscover MIB/OID - BROTHER-MIB.mib
MIBViewerProbes/BROTHER-MIB.txt at master · richb-intermapper/MIBViewerProbes
BROTHER-MIB
Free BROTHER-MIB SNMP MIB Download - Free MIB Download - Search MIBs - OiDViEW
Ruby + Sinatra + SNMPでPX-105のインク残量を取得・表示する - メモ的な思考的な
第806回:Mopria とは - ケータイ Watch
“Google クラウド プリント”が来年末で廃止 ~10年間ベータ版のまま終息 - 窓の杜
Chromebookが複合機からの直接スキャンなどをサポート - PC Watch
マイクロソフト、「Universal Print」のパブリックプレビュー開始。プリンタサーバをクラウド化し、プリンタドライバのインストールを不要に - Publickey
マイクロソフト、「Universal Print」を発表。プリンタサーバをクラウド化し、プリンタドライバ不要、集中管理へ。キヤノンと対応プリンタを共同開発中 - Publickey

メモリ

News

PC Watch

【メモリ屋社長のちょっとタメになるメモリ話】Ryzenで話題になった、メモリの”Rank”って何のこと? - PC Watch
【メモリ屋社長のちょっとタメになるメモリ話】メモリモジュールに“SPD”という情報があるのを知っていますか? - PC Watch
【メモリ屋社長のちょっとタメになるメモリ話】SPDとマザーボードの関係性 - PC Watch
DDR4メモリのSPD情報を編集できるツールが発売、センチュリーマイクロ製 - AKIBA PC Hotline!
JEDEC、低消費電力版DDR5メモリ「LPDDR5」規格を公開 - PC Watch
【イベントレポート】Samsung、次世代モバイルDRAM「LPDDR5」で7.5Gbps/ピンの超高速伝送を達成 - PC Watch
【福田昭のセミコン業界最前線】NANDの10倍、Intel Optaneの2倍の速度を実現するMRAM SSD - PC Watch
東芝メモリ、10月1日より「キオクシア」へ社名変更 - PC Watch
Intel、クライアント向けPersistent Memoryの実現に向けてMicrosoftと協力 - PC Watch
JEDEC、次世代DRAM「DDR5」の標準規格を公開 - PC Watch
SK Hynix、世界初のDDR5 DRAMを発売 - PC Watch
【後藤弘茂のWeekly海外ニュース】広帯域と大容量にフォーカスした“第2世代”のHBM2メモリ - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelなどプロセッサベンダーがけん引するHBM3規格 - PC Watch
SK hynix、1anmプロセス/EUV採用の8Gbit LPDDR4 DRAMを量産開始 - PC Watch

GIGAZINE

50年以上前のコンピューター黎明期を支えた「磁気コアメモリ」とは? - GIGAZINE
メモリの脆弱性を利用してデータを盗み読む「RAMBleed攻撃」が発見される - GIGAZINE
SSDなどのストレージへの連続アクセスで権限を奪取できる「Rowhammer攻撃」類似のサイバー攻撃が可能 - GIGAZINE
メモリとストレージの性質を兼ね備える夢のデバイス「ユニバーサルメモリ」がついに実現か - GIGAZINE
次世代メモリの標準規格「DDR5」の最終仕様をJEDECが発表、DDR4から何が進化したのか? - GIGAZINE
Linuxを生み出したリーナス・トーバルズがIntelを厳しく批判、理由は「ECCメモリを死に至らせているから」 - GIGAZINE
爆速メモリ技術「3D XPoint」の開発からMicronが撤退、Intelは開発継続の意向を示す - GIGAZINE
Samsungが業界初となる512GBのDDR5メモリを開発 - GIGAZINE
DRAMに保存されたデータを改ざんする「Rowhammer」攻撃の対象範囲がメモリ小型化で広がっているとの指摘 - GIGAZINE

More information on RAMBleed
ロウハンマー - Wikipedia
Row hammer - Wikipedia
20210313
NVDIMM Protocol Expands Non-Volatile Memory Options | EE Times
グーグルの研究が示すメモリエラーの真実--明らかになった高い発生率 - CNET Japan
20210522
Unisantis Unveils Advances in Dynamic Flash Memory - EE Times Asia
DRAMの代替品を開発。4倍の集積度で高速・低消費電力化を実現|自作.com
DDR5は2023年までにメインストリーム市場に登場する見込み|自作.com

Twitter

histric-1

suzakiさんのツイート: "ECC無しの1ペタバイトメモリではsilent errorが 90分ごとに起こる。"
Fadisさんのツイート: "memtestしたら1bit壊れてるのが見つかった → 1bit壊れてるメモリなら今にも壊れそうなbitがまだあるかもしれない → ヒートガンでメモリを加熱しながらmemtest → ほらさらに3つ出てきた その発想はなかった"
Fadisさんのツイート: "で、壊れてたbitと壊れそうなbitが限られたアドレスの範囲に入るようにメモリを並べ替えてGRUB2で使ってはいけないアドレスの範囲を指定してデバッグを再開、と つよい"
Ahmet Alp Balkan (🍖KubeCon)さんのツイート: "This guy heated up his RAM with a heat gun to debug a @golang runtime bug. https://t.co/KKSA7vqfr8 I hereby nominate him to most persistent… https://t.co/glga0uPchs"
FFFumihiro MMMatsuiさんのツイート: "DRAMのリフレッシュ(抜けていく電荷の補充)ってあるけど確かに人間も風呂入ってリフレッシュしたらなんか電荷がチャージされる感じするな。あれはなかなか的確な名前だな"
Shirouzu Hiroaki(白水啓章)さんのツイート: "稼働中だったDRAMを液体窒素保存した後、別マシンに挿して、BitLocker、dm-crypt、TrueCryptの鍵を取り出すって、凄いけど誰得な感じも…NSAあたりが使う想定なのかしらん?… "
Ryota Shioyaさんのツイート: "この論文だと、メモリを引っこ抜いて液体窒素に漬け込んで一時間後に戻したらデータが化けてたのは0.17%だったとかで、思ってた以上に冷やすとデータのこるんだなと言う話もhttps://t.co/xdAjRMdqzA"
Ryota Shioyaさんのツイート: "この論文だと,エアダスターとかのスプレーで冷やして実行しても結構うまくいってたので,あとはメモリ配置を割り出すあたりを誰かが自動化してしまうと結構お手軽に誰でも実行できてしまって怖いなって気はします… "
Lest We Remember: Cold Boot Attacks on Encryption Keys | Center for Information Technology Policy
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「DRAMを4KB単位でI/Oしたものと同等性能って話っぽい? 4KB I/O はキャッシュライン単位としては大きいので、巨大VLIWの登場とか無い限り、メインメモリとしては厳しいのかな? それでも、NVDIMM-Pみたいな無理筋よりはずっと良さそう。 ---- https://t.co/nAlXpI2GD6」 / Twitter
【イベントレポート】東芝メモリ、DRAMと同等性能のSSDを披露 - PC Watch
FadisさんはTwitterを使っています: 「NVDIMMが従来の二次記憶と大きく異なるのはそれがブロックデバイスではなくバイト単位での読み書きが出来るという点。NVDIMMはDRAMと同じアドレス空間にマップされ、同じように読む事ができる。書いた内容が永続化された事を保証するには、CPUのキャッシュをflushして、メモリバリアで完了を待てば良い」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMはDRAMのように書けるが、DRAMのように書くのは得策ではない。永続化されるという事はデータは書いている最中にアプリケーションがクラッシュしたり電源が落ちたりしても正常であり続ける必要がある為、FSのジャーナルに似た手順でいつ処理が止まってもデータを壊さないようにする必要がある」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMのDAXで必要になる処理をまとめたPMDKは複数のライブラリで構成されている。libpmemはOS非依存のmmapとmsyncを提供し、libpmemobjはジャーナルで指定した範囲の値をトランザクショナルに書く仕組みを提供する。libpmemblkはNVDIMMブロック単位でload/store仕組みを提供する」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMではファイルの読み書きをユーザ空間で片付けるFilesystem DAXが使えるため、カーネルがオーバーヘッドだからデバイス丸ごとカーネルから奪い取るSPDKと異なり、PMDKによる読み書きとカーネル経由のファイル操作は同じファイルシステム上で共存できる」 / Twitter
FadisさんはTwitterを使っています: 「mmapしたファイルをflushするにはmsyncするのが普通だが、FS DAXの場合カーネルは変更箇所を知らない為効率の悪いflushしかできない。更に必要な操作はclflushoptだけなのでカーネル空間に行きたくない。結果ユーザ空間で勝手にflushしてFSのメタデータの変更が放置されて壊れる世紀末が生まれた、と」 / Twitter
FadisさんはTwitterを使っています: 「で、ストレージが百nsオーダーで応答しないと困る人達はこれを「カーネルが俺の知らないところでFSのメタデータなんか書くからデータが壊れるのだ」と捉え、カーネルがデバイスを一切触らなくなる(=ユーザ空間プロセスが把握している変更だけflushすればデータは壊れない)Device DAXが誕生した、と」 / Twitter
FadisさんはTwitterを使っています: 「NVDIMMに関するLinuxの対応の歩み「直接仮想アドレス空間にマップできるデバイスによってmmapは神になる。読み書きはユーザ空間で片付いてボトルネックは解消され …ると思ったのにCPUキャッシュ、お前、お前…!」みたいな感じで大変アレ」 / Twitter
FadisさんはTwitterを使っています: 「もしかして、linuxでmmapしたファイルに書くだけの処理でも、それがsparseで書いてる先がブロックの割当がまだ無い所だった場合、メタデータが書き変わるわけだからmsyncじゃなくてfsyncが必要になるんじゃなかろうか…」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「@fadis_ こういう場合メタデータの書き換えは常に最後なのでは?(msyncのタイミングでメタデータの書き込みになるのでは)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@beepcap @fadis_ 現状、ファイル用mmapでsparseページ宛に memcpy等しようとすると、命令トラップ&disk領域割り付けが走り、万一disk-full等で割り付け失敗するとSIGBUSで落ちます。 なので、メタデータ操作が後とは思えないですねぇ。」 / Twitter
FadisさんはTwitterを使っています: 「x86_64 linuxのページサイズが4KBなのに対して、NVDIMMが64Bのキャッシュライン単位でflush出来る為、ページ単位でしかdirtyな部分を知らないカーネルは1箇所の書き込みに対して64倍のflushを行う羽目になり、これがdirtyなデータをユーザ空間で管理したい大きな理由になっているっぽい」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ただ、backendの不揮発部分は4KBよりずっと大きそう。 行列とかで疎な書き込みが発生すると厳しいとか無いのかな? https://t.co/IAKNMrLrmc」 / Twitter
Yasunori GotoさんはTwitterを使っています: 「まあ、RAMについても昔は夢でしか無かったんですけどね。 DIMMとCPUが載ったシステムボードを複数搭載して、そのボードを丸ごと抜くという技で抜けるようにしたPrimeQuestって製品があるんですけどね。 RAMはpage migrationの機能でカーネルがこっそりデータを移動する。NVDIMM+DAXはそこが課題よね… https://t.co/27ObKDwOAM」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@YasunoriGoto1 あれ、結局primary boot processorがhotplugできない問題って解決したんでしたっけ?」 / Twitter
Yasunori GotoさんはTwitterを使っています: 「@mhiramat そこはまだなんですけどね」 / Twitter
FadisさんはTwitterを使っています: 「Linuxでは1ページ64バイトのpage構造体でメモリのページを管理しているけど、1TiBのNVDIMMを4KiBページで利用する場合page構造体が7.85GiBになって、これをメインメモリに置くとページの情報でメモリが埋め尽くされるから、NVDIMMのpage構造体はNVDIMM自体に確保したスーパーブロックに置くらしい」 / Twitter
FadisさんはTwitterを使っています: 「このスーパーブロックは必要なサイズ以上になるページサイズの倍数の容量で確保される為、1GiBページを使っていると1GiB単位のサイズになる。結果、2GiBのNVDIMMを1GiBページで利用すると1GiBがスーパーブロックで1GiBが唯一のページという、ページとは何かについて考えさせられる使い方がなされる」 / Twitter
FadisさんはTwitterを使っています: 「SCSIはiSCSIを使うことでネットワーク越しにマウントする事ができる。NVMeもNVMe-oFを使うことでネットワーク越しにマウントする事ができる。これに対してNVDIMMは「全部アドレス空間に転がってるんだから、そのままRDMAすれば良いじゃろ」なのシンプルで大変良い」 / Twitter

だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@kuwaccho0711 組込みならBIOSとかIPL等のプログラムを書いたりしない? メモリを初期化するのにSPD情報を読もうとすると、何もしてない(書いても読んでもいない)のに、迂闊なI2Cアドレスをバスに出すだけで、メモリに以上電圧が掛かって燃えるで。」 / Twitter
だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@kuwaccho0711 ×以上 ○異常」 / Twitter
Yasunori GotoさんはTwitterを使っています 「FPGA、NVDIMM共にユースケース(を見つけるの)が難しい2大巨頭と言われた事がある…。 まぁ、実際そう思う…。」 / Twitter
FadisさんはTwitterを使っています 「SCSIにはiSCSIがあり、NVMeにはNVMe-oFがあり、ではNVDIMMなストレージをネットワーク越しにマウントするにはどうすれば良いか、に対する答えがRDMAなのほんと好き」 / Twitter
FadisさんはTwitterを使っています 「SCSIにiSCSIがあり、NVMeにNVMe-oFがある。ではNVDIMMをネットワーク越しに使うプロトコルは? という問いに対して「RDMAでええやん」ってのは割とガチらしくて、PMDKにはRDMAでアクセスできるリモートのNVDIMMを使う場合用のライブラリが用意されてる」 / Twitter
Samsung、DDR5型DRAMのDIMM向けにPMICを発売 | 日経クロステック(xTECH)
(๑╹◡╹๑)さんはTwitterを使っています 「えーっと、これなんですが、DDR4では駆動電圧が1.2Vだったんですが、DDR5では1.1Vまで下がります。ここまで下がると、マザーボード上からの電源供給だと電圧が低すぎて安定的に供給できないので、DIMMモジュールへは5Vで供給してPMICで1.1Vに変換する必要が出てくる。かなりのコストアップですな。」 / Twitter
(๑╹◡╹๑)さんはTwitterを使っています 「PMICは、SoCの旺盛な需要や8インチプロセスのキャパシティ不足から深刻な供給不足が続いているんですが、サムスン自信がPIMCを手掛ける、しかも90nmノードで生産するというのは、PMICの供給がネックになってDDR5の立ち上げがつまづくのを防ぐという意味合いもあるのかな、と」 / Twitter
(๑╹◡╹๑)さんはTwitterを使っています 「90nmノードなので多分12インチプロセスを使うんでは、という感じもしてる。8インチは増産余地が小さいので、ディスクリート半導体や車載用途では12インチへの転換を進めてるところもあるけど、コスト的にはかなり上がってしまうので、量産規模を確保出来たらよい話だと思う。」 / Twitter

DRAMeXchange - World leading DRAM and NAND Flash market research firm, with more than a decade of most authoritative database
自作PCをよくするワザ、教えます(5) ~メモリ編~ - AKIBA PC Hotline!
ASCII.jp:メモリモジュールオーバークロック指南 (1/7)|Windows 7で行なうオーバークロック
DDR4-2400以上のメモリはDDR4-2133で動作するか? : AKIBAオーバークロックCafe
シングルランクとデュアルランク、どちらのメインメモリーを使う方が良いのか
Rowhammer問題私的まとめ | @knok blog
NVDIMMとACPI - 睡分不足
Persistency for synchronization-free regions
不揮発メモリ(NVDIMM)とLinuxの対応動向について
Linuxの不揮発メモリ(NVDIMM)対応動向について(2018年版) - Qiita
自作OSでできる!NVDIMMのつかいかた - /var/log/hikalium
電源を切っても消えないメモリとの付き合い方 - Speaker Deck
CK16GX4-D4UE3200 | 288pin DDR4 SDRAM | ECC | サーバー用メモリ | PCパーツと自作パソコン・組み立てパソコンの専門店 | 1's PCワンズ
不揮発メモリ(NVDIMM)とLinuxの対応動向について(for comsys 2019 ver.)
Native 3200MHz DRAM搭載 32GB メモリーモジュール各種を発表 | センチュリーマイクロ株式会社
Linuxの不揮発メモリ(NVDIMM対応について(2019年版 補足編) - Qiita
【メモ帳】メモリー階層レイテンシー - fortran66のブログ
Linuxの不揮発メモリ(NVDIMM)対応について(2020年版) - Qiita

電源

ATX12VO

自作PCのケーブル取り回しや電源効率改善の可能性を秘めたIntel発の新規格「ATX12VO」とは? - GIGAZINE
インテル、第12世代Alder Lake CPU向けにATX12VO電源コネクタを推進中|自作.com
ベンダーは、インテル第12世代Alder Lakeのリリースに先立ち、ATX12VOマザーボードを準備します。|自作.com
インテルは、安価なAlder Lake-SマザーボードでATX12VO規格が普及することを望んでいる - 自作ユーザーが解説するゲーミングPCガイド
インテルがATX12VO仕様で電源の未来を変える理由 - 自作ユーザーが解説するゲーミングPCガイド

UPS

UPS選定ツール|製品選定|OMRON 無停電電源装置(UPS)
電源障害時に複数のサーバ・パソコンをシャットダウンするにはどうしたらよいでしょうか。|FAQ/よくあるご質問|OMRON 無停電電源装置(UPS)
無停電電源装置(UPS)のプロトコル公開について|製品情報|OMRON 無停電電源装置(UPS)
BW120T/BW100T/BW55T/BW40T 仕様|製品情報|OMRON 無停電電源装置(UPS)
BWB120T|製品情報|OMRON 無停電電源装置(UPS)

バッテリー

JBRC会員企業リスト | 小型充電式電池のリサイクル 一般社団法人JBRC
【特集】いざという時に困らないために……モバイルバッテリの処分方法まとめ - PC Watch
電動工具の互換バッテリーを分解、検証してわかる安さの理由 | VOLTECHNO
リチウムイオン電池の10倍の速さで充電できる新型電池登場、火災の危険性が低く環境への悪影響も控えめ - GIGAZINE

ワイヤレス

スマホのワイヤレス充電は超絶非効率、有線充電と比べて電力消費量がおよそ1.5倍と判明 - GIGAZINE
新しいワイヤレス充電の規格が策定される、その内容とは? - GIGAZINE
第843回:Qi 1.2とは - ケータイ Watch
Xiaomi、部屋のどこにいてもスマホを充電できる無線給電技術 - PC Watch
5Gネットワークを「ワイヤレス電力網」化するためのアンテナが開発される - GIGAZINE
東北大ら、Wi-Fiの電波を使って発電できる素子を開発 - PC Watch
Wi-Fiの電波で発電する技術を東北大学などが開発 - GIGAZINE

NVIDIA

北森瓦版 - NVIDIAの12-pinコネクタは既存の8-pinコネクタと同程度の大きさとなる
北森瓦版 - NVIDIAの12-pinコネクタへの対応が準備されている
北森瓦版 - “Ampere”では12-pinの補助電源コネクタが使われるかもしれない?
PSUメーカーは、NVIDIAのGeForce RTX 30シリーズアンペアグラフィックスカード用の12ピンマイクロフィットコネクタを準備しました - 自作ユーザーが解説するゲーミングPCガイド
12ピン電源コネクタの不思議な事実:それは現実であり、NVIDIA Ampere GPUに搭載される - 自作ユーザーが解説するゲーミングPCガイド
NVIDIA、Ampereで新しい12ピンのPCIe補助電源コネクタを採用か - PC Watch
FadisさんはTwitterを使っています 「NVIDIAの新しいGPUの補助電源コネクタはGND 6ピン、12V 6ピンで、6ピンの補助電源コネクタを2つくっつけたようなピン配列、と https://t.co/ckrNFldrRR」 / Twitter
The Curious Case of the 12-pin Power Connector: It's Real and Coming with NVIDIA Ampere GPUs | TechPowerUp
FadisさんはTwitterを使っています 「GPUの補助電源コネクタ、たくさんピンがあるけど電圧全部同じ12Vで、ピンがたくさんある理由が「複数の電圧を供給するため」じゃなくて「ケーブルの断面積と端子の表面積を少しでも稼いでより大きな電流を、ATX電源が供給できる最大の直流電圧でGPUに突っ込むため」なの、いつ見てもパワみがある」 / Twitter

Wikipedia

ATX電源 - Wikipedia
Power supply unit (computer) - Wikipedia
80 PLUS - Wikipedia
80 Plus - Wikipedia

玄人志向 | KRPW-L5-400W/80+:80PLUS STANDARD取得 ATX電源 400W
玄人志向 | KRPW-L5-500W/80+:80PLUS STANDARD取得 ATX電源 500W
玄人志向 | KRPW-N500W/85+:80PLUS BRONZE取得 ATX電源 500W
玄人志向 | KRPW-SS350W/90+:80PLUS GOLD取得 ATX電源 350W
玄人志向 | KRPW-PT500W/92+ REV2.0:80PLUS PLATINUM取得 ATX電源 500W
玄人志向 | KRPW-TI500W/94+:80PLUS TITANIUM取得 ATX電源 500W
サージプロテクター対応の電源タップは3〜5年で買い替えが必要 | ライフハッカー[日本版]
第874回:モバイル充電安全認証 とは - ケータイ Watch
日記 (2018 年 9 月下旬)
DOS/V POWER REPORT | Impress Japan
マザーボードのフェーズの話 - PC Watch
【イベントレポート】充電事情はPDよりもワイヤレス? - PC Watch
何故プラグイン式PC電源ユニットのコネクタは規格統一されていないのか? - Togetter
次はGeForce RTX 3090! そして訪れるキロワット時代 (1/4) - ITmedia PC USER
DSAS開発者の部屋:電子工作での AC 給電制御と米国製「IoT Relay」のこと
Bluetoothワットチェッカー RS-BTWATTCH2[RATOC]
ATX規格でUSBピンから各種情報を取得できる冗長電源「FSP Twins 700W」レビュー - GIGAZINE
無限に電力を生成できる可能性がある回路が開発される - GIGAZINE
Cybeneticsが電源の電源効率及び、ノイズレベルの認証バッジを発行 - 自作ユーザーが解説するゲーミングPCガイド

Intel

その他

MP

Modern Embedded Computing: Designing Connected, Pervasive, Media-Rich Systems - Peter Barry, Patrick Crowley - Google ブックス
Go Parallel | Dr. Dobb's | Booting an Intel Architecture System, Part I: Early Initialization | December 26, 2011
Using SSG Templates
edk2/MpService.h at master · tianocore/edk2
Multiple ProcessorとIO APIC - mrtska's blog

日記

日記 (2012 年 12 月中旬)
日記 (2014 年 9 月下旬)
日記 (2016 年 8 月上旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 8 月中旬)
日記 (2016 年 8 月中旬)
日記 (2018 年 2 月上旬)
日記 (2018 年 9 月下旬)
日記 (2018 年 10 月下旬)

借り初めのひみつきち

x86の割り込みが遅いワケ - 借り初めのひみつきち
地獄のデバッグ - 借り初めのひみつきち
Nerry さんのツイート: "Surface 3でNXビットが落ちる件、これのせいだった… "
IA32_EFER ‐ 通信用語の基礎知識
NXビット ‐ 通信用語の基礎知識
ロングモードと64ビットモードの違い - 借り初めのひみつきち
EFER.LME と EFER.LMA - 借り初めのひみつきち
新しい自作 OS 始めました - 借り初めのひみつきち

blog

Linuxブート時のcpu数認識の処理を読む - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Intel 100/200 PCH Primary to Sideband Bridge について - DXR165の備忘録
【後藤弘茂のWeekly海外ニュース】スモールコアCPU「Avoton」で明らかになったIntelのローパワーCPU戦略 - PC Watch
[coreboot] Disabling hyper-threading on Ivy Bridge
投機実行とOut of Orderはつよいというはなし - なるせにっき
x86のCPUIDについて - めもちょー
20190413
cpuidでAVX2に対応しているか調べる - 睡分不足
x86におけるメモリアクセス権のルール - 睡分不足
【雑記】CPUID の Family と Model、表示する一部ソフトウェアの問題点 | Coelacanth's Dream
Intel Kaby Lake 周りの CPU Stepping を整理するパッチ | Coelacanth's Dream

スライド

プログラムを高速化する話
ハイパースレッディングの並列化への影響

Qiita

[Linux] CPU Hotplug の変更 (動的にCPUの特定coreの有効化/無効化) - Qiita
8086命令セット - Qiita

技術資料 | iSUS
インテル® 64 および IA-32 アーキテクチャー最適化リファレンス・マニュアル参考訳
x86-64 - OSDev Wiki
hikaliumさんのツイート: "はい、バグが取れたので円周率をやっていきましょう(syscall処理中に割り込みが発生するとスタックがユーザモードから切り替わらないのにCR3だけ変更されるのでにゃーん化していたのが原因だった)。… "
2.7. turbostat - Red Hat Customer Portal
Intel CPUs: P-state, C-state, Turbo Boost, CPU frequency, etc.
msr 演算 intel - Google 検索
Intel core disable msr - Google 検索
x86 アーキテクチャの不可解な「仕様」 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
POP SS デバッグ例外 - CVE-2018-8897 [中程度] & CVE-2018-1087 [重要] - Red Hat Customer Portal
A Complete Formal Semantics of x86-64 User-Level Instruction Set Architecture - FSL
kframework/X86-64-semantics: Semantics of x86-64 in K
486のセグメントデスクリプタが直感的に読めないようになっている理由 - Yabu.log
割り込み「ベクタ」と呼ぶ理由 - uchan note
Linux / x86_64の割り込み処理 第4回 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
20200620
Guidance for Enabling FSGSBASE
2020年10月26日 Linux 5.10-rc1が登場,正式リリースは2020年末の予定:Linux Daily Topics|gihyo.jp … 技術評論社

Intel

NAKAMURA Minoru's Diary (2009年10月)
The x86 NMI iret problem [LWN.net]
Non Maskable Interrupt - OSDev Wiki
Intel Cannonlake Added To LLVM's Clang - Phoronix
QuarkSocPkg/QuarkNorthCluster/Smm/Dxe/SmmRuntime/SmmRuntime.c - pub/scm/linux/kernel/git/jejb/Quark_EDKII - Git at Google
a4lg.com | x86 ファミリーとモデル一覧
ドライバーおよびソフトウェア
melancholic afternoon
Positive Technologies - learn and secure : Intel ME: The Way of Static Analysis
システムマネジメントモード - Wikipedia
System Management Mode - Wikipedia
Sandsifterはプロセッサーの隠れ命令を見つける、それは未来の凶悪犯かもしれない | TechCrunch Japan
Sandsifter checks your processor for secrets | TechCrunch
xoreaxeaxeax/sandsifter: The x86 processor fuzzer
x86/x64最適化勉強会6 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
Floating-Point Reference Sheet for Intel® Architecture | Intel® Software
OpenVINO™ toolkit | 01.org
Flexible Return and Event Delivery (FRED) Draft Specification - 346446-flexible-return-and-event-delivery.pdf

MP

uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@PG_MANA_ @Wagahaiha_toto マルチコア初期化は興味あります!マルチコアの起動って、やっぱり16ビットからのモード遷移コードをアセンブラで書く必要があるんですか?」 / Twitter
PG_MANAさんはTwitterを使っています 「@uchan_nos @Wagahaiha_toto そうですね、Methylenixでは16bitからのブートコードを書いてます。 自分はあまりUEFIを使ってないのでそうしましたが、UEFIにはMpService Protocolというのがあるらしいので、それを使うと書かなくてもいいのかもしれません....」 / Twitter
Satoshi TandaさんはTwitterを使っています 「@PG_MANA_ @uchan_nos @Wagahaiha_toto MpServiceでAPを立ち上げて処理を走らせることはできますけど、制御をUEFIに返さないとアボートされます。なのでこのケースのようにAPの永続的な管理を得たい場合は使えないですね(Boot ServicesなのでOSからは使えないですし)。 しかしFull Rust素敵です。Rust勉強の参考にさせていただきます。」 / Twitter
PG_MANAさんはTwitterを使っています 「@SatoshiTanda @uchan_nos @Wagahaiha_toto 情報ありがとうございます。 なるほど、あくまでUEFIアプリケーションで並列処理をしたい時に使うような感じなのですね...参考になります。 OS&amp;Rustの勉強も兼ねて書いているOSですが、Rustでのベアメタル入門として参考にしていただけるなら大変嬉しく思います。」 / Twitter

ME

イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「これってMEの話であってUEFIとは別だと認識してたんだがちがうのか…?」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@syuu1228 いや ME の話で合ってると思います」 / Twitter
Masanori KusunokiさんはTwitterを使っています 「そういえばUEFIの奥底で動くMinix 3はその後どうなったんだろうか?Minix3のリポジトリをみるとこの数年あまり動きがなさそうだけどな / “インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている…” https://t.co/Ky8XyIS9J8」 / Twitter
インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている - Publickey

microcode

Linux

Arch Linux

マイクロコード - ArchWiki
Microcode - ArchWiki
Intel Microcode Updateの設定 | 普段使いのArch Linux

Debian

Microcode - Debian Wiki
Debian -- jessie の intel-microcode パッケージに関する詳細
Debian -- wheezy の intel-microcode パッケージに関する詳細
kanamonoさんのツイート: "@itoooon 多分同じURLにたどり着かれたと思いますが、Debianでは次のURLで議論されておりました。 https://t.co/kirM719eGY"
#886367 - intel-microcode: coming updates for meltdown/spectre - Debian Bug report logs

Ubuntu

How to update Intel microcode properly? - Ask Ubuntu
Ubuntu Manpage: update-intel-microcode - download current Intel processor microcode
Ubuntu改造日記 x86高速化 Intel&AMD 最新Microcodeアップデート編 その7: Kapperのブログ 新館

https://www.kernel.org/doc/Documentation/x86/early-microcode.txt
linux - What is Intel microcode? - Stack Overflow
Building Intel CPU Microcode Updates Directly into the Linux Kernel - DOTSLASHLINUX
Intel microcode - Gentoo Wiki
drivers - Should I enable the intel-microcode (Linux Mint 18)? - Unix & Linux Stack Exchange
LinuxでCPUのマイクロコードをアップデートする方法 | マイナビニュース
LinuxのリーダーLinus TorvaldsがIntelのMeltdown/Spectre対策を“完全なごみ”と酷評 | TechCrunch Japan
Linuxカーネルがx86 microcodeを扱う処理について - Qiita

Twitter

高梨陣平さんのツイート: "CPUのマイクロコードは企業の独自技術で良く知られていない。マイクロコードは更新は可能だが最新のCPUは暗号技術で防いでいる。しかし2013年レベルのCPUはカスタマイズが可能だ。マイクロコードをリバースエンジニアリングで解析し自らのプログラムを記述した詳細を公開。解析には電子顕… https://t.co/FA4AzYVxky"
Hacker News 100さんのツイート: "An introduction to reverse-engineering x86 microcode and writing it https://t.co/QmRjk0SmNj (https://t.co/mY2Hh7cEXg)"
media.ccc.de - Everything you want to know about x86 microcode, but might have been afraid to ask
An introduction to reverse-engineering x86 microcode and writing it | Hacker News
まさみさんは語りたいさんのツイート: "なんだ、マイクロコードのファイルを開いたら、releasenoteにインストールの仕方が詳しく書いていた。"
Hiromichi Itouさんのツイート: "お、4.15.2出てる https://t.co/JLkHHhwM9S 問題のあるmicrocodeを排除する仕組みがマージ x86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2 microcodes"
LKML: Greg KH: Linux 4.15.2
suzakiさんのツイート: "マイクロコードの更新は、 1.64bit仮想メモリの特定領域に更新フォーマットに従ったコードを置く。 2.MSRに0xc0010020をセット。 3.wrmsr 命令で更新。5,000 cyclesで終了。"
高梨陣平さんはTwitterを使っています 「研究者がIntelの秘密鍵を暴いた。 IntelによるCPUのマイクロコードの更新等が復号可能に。パッチがどのように修正しているか等が明らかに。」 / Twitter
LobstersさんはTwitterを使っています 「In a first, researchers extract secret key used to encrypt Intel CPU code https://t.co/7f81XS08m1 #crypto #hardware #security https://t.co/8qfgsmXAxw」 / Twitter
In a first, researchers extract secret key used to encrypt Intel CPU code | Lobsters
In a first, researchers extract secret key used to encrypt Intel CPU code | Ars Technica
Liran AlonさんはTwitterを使っています 「https://t.co/XqsW3wY07b Intel reveals XuCode: Code loaded as part of BIOS early microcode update, stored on DRAM (PRM protected) and implements subset of SGX instructions. CPU executes XuCode in special XuCode-mode which include macro-ops translating to uops outside of x86 ISA.」 / Twitter
XuCode: An Innovative Technology for Implementing Complex Instruction...

Download Linux* Processor Microcode Data File
2015 年 6 月付の Windows 用インテル CPU マイクロコード更新プログラム
Update Intel CPU Microcode | dereenigne.org
microcodeって、何 ? | (まだ無題 ; そのうち変更するかも)
本の虫: Intelのドキュメント化されていないマイクロコードアップデート用のバイナリの考察
第132回 CPUマイクロコードのアップデート方法(FreeBSD):BSD界隈四方山話|gihyo.jp … 技術評論社
Microcode Update Guidance
Mitigation strategies for JCC microcode
Loading Microcode from the OS
chip-red-pill/uCodeDisasm
Intel CPUのマイクロコードを変更可能な2つの未公開インストラクションが発見された

分岐予測

ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき
そして最近の分岐予測について2 - なるせにっき
NAKAMURA Minoru's Diary (2010年4月)
分岐予測の簡単な歴史 – Part 1 | POSTD
分岐予測の簡単な歴史 – Part 2 | POSTD
分岐予測の簡単な歴史 – Part 3 | POSTD
ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき
そして最近の分岐予測について2 - なるせにっき

BIOS

Option ROM - Wikipedia
Power-on self-test - Wikipedia
Power On Self Test - Wikipedia
Tips BIOSブート仕様その1 概要と用語
Tips BIOSブート仕様その2 IPLデバイス
Tips BIOSブート仕様その3 IPL優先度
Tips BIOSブート仕様その4 BCV優先度
Tips BIOSブート仕様その5 POSTシーケンス処理
Tips BIOSブート仕様その6 データ構造と補足説明
satさんのツイート: ""BIOS"という言葉自体の初出はCP/Mのはず。意味はIBM PCのそれとは全然違うんだけど"

Lord of the Ring(s)

FadisさんはTwitterを使っています 「Intel CPUのプロセッサ間を結ぶリングバスをリバースエンジニアリングして、あるプロセッサで観測したバスのレイテンシの時間変化から、同じバスに繋がる他のプロセッサが何をやっているかを予想するサイドチャネル攻撃が現れたらしい https://t.co/0Uy03jAfyq」 / Twitter
Researchers Discover Intel CPU Ring Interconnects Vulnerable To Side Channel Attack - Phoronix
FPSG-UIUC/lotr: Source code of the paper "Lord of the Ring(s): Side Channel Attacks on the CPU On-Chip Ring Interconnect Are Practical"
[2103.03443] Lord of the Ring(s): Side Channel Attacks on the CPU On-Chip Ring Interconnect Are Practical

本の虫

本の虫: x86のmov命令はチューリング完全
本の虫: x86のMMUはチューリング完全である

マイナビ

IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - 拡張命令(AVX2/TSX)編 (1) AVX2について | マイナビニュース
Intelプロセッサに回避困難な脆弱性、研究者ら指摘 | マイナビニュース
HPC性能が大幅に強化されたHaswell(前編) -各コアに256bit長のFMAを2個装備 | マイナビニュース
HPC性能が大幅に強化されたHaswell(後編) - HPCとして通用する性能を実現 | マイナビニュース

POSTD

モジュロ演算の替わりとなる高速処理 | コンピュータサイエンス | POSTD
CPUマスク | プログラミング | POSTD

Qiita

x86_64での再帰ページマッピング - Qiita

Twitter

RISC-V

IntelがRISC-VアーキテクチャのCPUコアを同社のプラットフォームに採用 - iPhone Mania
Miura HidekiさんはTwitterを使っています 「RISC-V、確かに興味深いが、バイブル的な本を読むとものすごく独善的で大丈夫かしらん?という気分になる。あと、アセンブラ・ディスアセンブラは作りにくそうだなという命令ビットパターンですわね」 / Twitter
Miura HidekiさんはTwitterを使っています 「経験則から、独善的な物言いをする技術は大体短命(その間に熱狂的な支持を受けるわけだが」 / Twitter
Miura HidekiさんはTwitterを使っています 「逆にものすごくたくさんの既存技術を集めて、徹底的に研究して既存技術で優れたものは評価したうえで取り込んだような技術はものすごく強い」 / Twitter
hrk先生さんはTwitterを使っています 「@miura1729 横から失礼します。RISC-Vについて一番懸念しているのは、Specificationベースでバリエーションを許している点です。なにかT〇〇〇プロセッサのことが思い起こされます。想像される将来像はRISC-Vベースシステムなのに互換性がないものが多種あるというものです。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@Prof_hrk RISC-Vがある程度のシェアを取るようなことになれば、シェアの大きい実装かキラーアプリケーションに合わせて事実上必須の拡張機能が決まってくるような気がします。掛け算のないRISC-V CPUでトースターの制御をするとか本当にありえるのかな?とも思います。」 / Twitter
hrk先生さんはTwitterを使っています 「@miura1729 そこが今後の課題と思います。コンソーシアムのメンバーであっても、本質的には競合社のあつまりなので他社の仕様に従うインセンティブはないと思っています。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@Prof_hrk いまCPUメーカが独裁的に行っている仕様の決定を民主的に出来るかというはなしですね。インターネット技術関連では上手く行っていますけど、スーパーコンピュータから組み込みまで幅が広いですからね。」 / Twitter

HT

Shirouzu Hiroaki(白水啓章)さんのツイート: "HT初搭載のPentium4だと、パイプラインの深さもあって演算器がスカスカになりやすかった。 なので、手動で依存関係を減らす順序にするだけで(シングルスレッドでも)改変blowfishの速度が4倍になった記憶。 https://t.co/jmWuRKkHU7 (その時の簡易メモ)… https://t.co/ctaTpf3pLh"
私的メモ(2003年12月版)
Kazuho Okuさんのツイート: "典型例以外で重要なケースとしては、レイテンシの大きな命令の実行中に別スレッド動かせるとか。AES-NIがこのパターンなのでウェブサーバではHT有効にすべきという理解 参考: https://t.co/zYqvz1KJp5… "
Kazuho Okuさんのツイート: "あー正確に言うと、最近のAES-GCM実装は並列処理がんばってるからHTオフでもいいけど、昔ながらのAES-CBCやパケット番号暗号化が入るQUICではAESNIのレイテンシが問題になるケースがあり、従ってryというところです"
Kazuho Okuさんのツイート: "っていうかHTはメモリレイテンシの隠蔽というより、空いてる演算器を埋める仕組みとしての側面が大きかったような気もしてきた"
ts4さんのツイート: "Hyper-Threading Technology Benefits の節にそういった記述ありますし、Utilization of Processor Resources の節にも、NetBurstのころCPUのリソースぜんぜん使えてなかった的な記述がありますんで、そのへんの稼働率を上げるのが目的だったのではないかと https://t.co/MSakkBQaGk… https://t.co/LOl4zG2r3v"
Hideyuki Tanakaさんのツイート: "HTTの効果がでかいのは典型的にはメモリのランダムアクセスしまくりでストールしまくりの演算器遊びまくりみたいな時で、実際こういうケースだと倍近くまで速くなることがあったけど普通のアプリだと限定的だし、CPU側からするとOoOを頑張ってIPCを稼げば稼ぐほど効果が少なくなるというジレンマ(´・_… https://t.co/KoJ0OZUdjs"
まさきはるか(Usk)さんのツイート: "実際、HTに効果があるのかないのかが、ベンチマーク人とサーバー人の発言しかなくて全くわからない。コア数少ないときは効果ある気がしてるけど…… "
Hideyuki Tanakaさんのツイート: "2年ぐらい前の人に、インテルが8コア8スレッドのi7を出しそうとか言うと、どんな顔するかな(´・_・`)99割ぐらいの人はガセだと思うだろうけど"

TSX

FadisさんはTwitterを使っています 「IntelがTSX拡張命令を使えなくするマイクロコードの更新を用意している話。Transactional Synchronization Extensions(TSX)はトランザクションの開始から終了までの間に行われた複数のメモリ操作が他のCPUによる操作とぶつかった場合に開始前まで戻って処理をやりなおす機能 https://t.co/iE8FNFEg7s」 / Twitter
Intel To Disable TSX By Default On More CPUs With New Microcode - Phoronix
FadisさんはTwitterを使っています 「TSXはSkylakeで登場した当時、複数のCPUが同時に触ってもスケールするデータ構造を作りやすくする夢の機能と考えられていたが、同一ホストの別のCPUで実行されるプロセスがTSXの実行時間を観測する事でサイドチャネル攻撃が可能になる脆弱性(CVE-2019-11135)が報告されていた」 / Twitter

NMI

品川 高廣さんのツイート: "「BitVisor 2018年の主な変更点」では、BitVisor における NMI 処理の問題が述べられています。パススルー型 VMM でハードウェア仮想化支援機構を使ったとしても、NMI を本当に正しく処理するのはとても難しそうだと実感させられます。https://t.co/h2grTghKus"
BitVisor Summit 7「2. BitVisor 2018年の主な変更点」

SMI

まさみさんは語りたいさんのツイート: "あるある(笑)SMIの処理が強烈に遅くて、「OSに問題があるんじゃないか?」と言われたこともあった。… "
Yasunori Gotoさんのツイート: "コードギアスR2で時間を止める能力を持っていたキャラがいたけど、主人公が「心の中でカウントしていた数」と「実際の時計の時間」に差があることに気が付いて、その能力を見破るシーンがあったよね。 SMIはOSの中でリアルにそれが起きるんだよね。"
Yasunori Gotoさんのツイート: "SMIはカーネル(というか割り込まれたCPU)から見ると、時間停止の魔法みたいなものに見えるんだよね。ファームが必要だと判断したら、そこでSMIとして割り込んで、その間ファームがゴリゴリと動くという仕組み。"
Yasunori Gotoさんのツイート: "昔のカーネルは一定時間内にカウントして、あるハードの能力を図るといったコードが結構あったけど、その間にSMIが入るとOSはカウントできなくなってしまうので、本来のでるべき値に対して実際のカウントの値が異なってしまい、カーネルが異常な動作をするというトラブルが結構あった。"
Yasunori Gotoさんのツイート: "このため、SMI=トラブル=コードギアスという関係が自分の中で出来上がってしまい、SMIの文字を見るたびに主役のルルーシュ君の声が脳内を駆け巡ってしまうのである。"
まさみさんは語りたいさんのツイート: "ちなみにSMIはサーバHWのファームウェアの処理なのでOSは関与しません。濡れ衣だー"

Alder Lake

InstLatX64さんはTwitterを使っています 「How could I miss this ??? So there is a plan for #AVX512 definitely. Maybe it is restricted to ADL-S or 8 bigCore or top SKU (like per-core HyperThreading on #CometLake and Adaptive Boost Technology on #RocketLake) Thx, @PerforatedBlob!」 / Twitter
HXLさんはTwitterを使っています 「intel Alder Lake 8 big core+8 small core=disable AVX-512 8 big core=AVX-512 https://t.co/LGFkKJWuI1 https://t.co/Vku742CGsh」 / Twitter
Marco ComerciさんはTwitterを使っています 「@InstLatX64 @PerforatedBlob I thought of a solution to leave power hungry features enabled: a processor driver that migrates the threads that need that instructions on the big cores: the little cores will issue an #UD exception on unsupported features and the kernel will tag and migrate the threads...」 / Twitter

UD発生関数

tnさんはTwitterを使っています 「わたし「lock; nopでシステムコール発行してるっぽいとこがあるのですがこれなんですか……?」 hikaliumさん「これは意図的にundefined opcodeの例外起こすやつですね」 fadisさん「x86でよくみるやつ」 わたし「えぇ……?」」 / Twitter
tnさんはTwitterを使っています 「s/システムコール発行/関数呼び出し/」 / Twitter
とみながたけひろさんはTwitterを使っています 「この手のいかに高速にthunkというかゲートというかを実現するハック、最近は安全性とかに考慮しつつもハイパーバイザー呼び出しで同じように各種ハックがあると聞いて笑っている」 / Twitter

UD0の命令が更新

まさみさんは語りたいさんのツイート: "ちょうまって、これは酷い。"
まさみさんは語りたいさんのツイート: "UD0の命令が更新されて変わってしまっている@最新のSDM 0F FF /r UD0 r32, r/m32 Some older processors decode the UD0 instruction without a ModR/M byte. じゃねーよ!"
まさみさんは語りたいさんのツイート: "これIntelが互換性を捨てましたっていうことじゃないですかーやだー。"
まさみさんは語りたいさんのツイート: "なあIntel-san、どのプロセッサからこれ変わったんだ・・・?そしてobjdumpはどうバイナリをダンプすればいい・・・?"
まさみさんは語りたいさんのツイート: "いずれにしてもカーネルの中にテストコード仕込んでおいてよかった感。"
UD — Undefined Instruction

red zone

ファッション自作OSマンさんのツイート: "IA32eモード(64ビットモード)でのOSプログラミングのハマりどころ ・アセンブリで関数を書く際、スタックを16バイト整列しないといけない ・red zoneの存在"
Red zone (computing) - Wikipedia
書籍の補足情報
x64 Assembly Language
GNU CとUNIXシステムコールだけで実行時アセンブラ ( ソフトウェア ) - 一人一党党 - Yahoo!ブログ

コードレビュー

Kazuho Okuさんのツイート: "今日はコードレビューで、ファストパスはインライン展開できるようにしつつ、スローパスはコードの密度が問題にならないようextern関数に追い出して下さいという話をして、それは一般論としては正しいんだけど最近の分岐予測の発達したIntel CPUでどうなのか誰か定量的なコメントくだしあ"
Kazuho Okuさんのツイート: "マイクロベンチで関数展開しない方が速くなるケースがあるのは知ってる"

x64

るくすさんのツイート: "@liva_jy すみません。超基本的な質問なんですけど、x64のiretq命令実行時のスタックって、rip,cs,rflags,rsp,ssを全部*64bit*でスタックから降ろしてくるんでしたっけ...."
satさんのツイート: "x86_64の初見殺し仕様です Architecture defines a 64-bit virtual address. Implementations can support less. Currently supported are 48- and 57-bit vir… https://t.co/Om2VjPitlS"
まさみさんは語りたいさんのツイート: "君らが聖典としているintel SDMもバグってることが多いから注意な。"
まさみさんは語りたいさんのツイート: "SDMのopcode mapを読むと色々見えてくる。特に最初の命令セットは結構キレイに並んでる。… "
るくすさんのツイート: "x86もだ。意外と知らなかった超基礎知識。 いやバラバラに並べる意味なんてそりゃあないんだけど。 x86 architecture condition codes https://t.co/NMGe3Mv79a"
sandpile.org -- x86 architecture -- condition codes
パーフェクト・鳥頭・ジュニアさんのツイート: "@uchan_nos 確認は出来てないですが、push ax ってオペランドサイズプレフィックス付いてて、push cs には付いて無くないですか?"
ロボ太さんのツイート: "YMMのシャッフル系命令がいつもごちゃごちゃになるのでチートシート作ってみた。 https://t.co/4kv02PA6uf"
中村 実さんのツイート: "Intel先生やべえよ。アフィン変換用の命令を追加するつもりだ。その上、VMMの制御で4KBページを128バイトのサブページ単位に区切って各サブページ毎に書き込み保護を出せるようにするとな。 https://t.co/Tm0IoW8ZHV"
くまぎさんのツイート: "ハードウェアトランザクショナルメモリは人類にはまだ少し早過ぎる。トランザクション中はprintfもログもデバッガでのトラップも出来ないし、アボート要因の情報が限られるので最終的にはエスパーしかない。あと僕の使い方が悪いのか意外と速くない。"
とみながたけひろさんのツイート: "整列例外ですね。ロードストア命令でアクセスするアドレスの下位何ビットか(命令や特権レジスタの設定によって異なる)が0じゃないときにでます。x86でもがんばればだせますが普通はでないやつ… "
moraさんはTwitterを使っています 「動的にバイナリにパッチを当てようとすると、x86の場合当該箇所がpop raxみたいな1バイト命令だとjmp xxxに変えられず困るが、強引にpop raxをjmp命令(e9)にしてしまい「jmp 謎アドレス」に飛ばした上でその「謎アドレス」をmmapしてそこにパッチバイナリを置く手法があるらしい(instruction punning」 / Twitter
moraさんはTwitterを使っています 「ところで「謎アドレス」が既に使われていたり確保できない場所だったりする場合にはうまくいかないが、jmp &lt;固定アドレス&gt;とする代わりにnear jump命令に書き換えることで問題を先送りにし、near jump先で同様の手続きをするようにすると、ほとんどのバイナリでパッチができるらしい https://t.co/SfYIURRxHY」 / Twitter
moraさんはTwitterを使っています 「pwnみたいで面白い https://t.co/MF5lM9apTE」 / Twitter

Ring1, 2

品川 高廣さんのツイート: "x64 (x86_64) の long mode では ring protection は廃止されて user mode と kernel mode しか無いと思い込んでいたけど、ちゃんと segment 定義して call gate 経由で呼び出せば 64 bit の ring 1 も ring 2 も使えるのね。"
Nerry さんのツイート: "リング1やリング2が使えてもセグメントベースやセグメントリミットでアクセス制限かけれないしページ属性的にはカーネル扱いなので使い道がない気がします… "
品川 高廣さんのツイート: "遅ればせながら、ACM CCS 2018 のこの論文(の動画)を見て、使い道を知ったのですよ。https://t.co/uRVxKJDme7… "
Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86 - YouTube
Nerry さんのツイート: "あとで動画見てみます… "
Lord of the X86 Rings: A Portable User Mode Privilege Separation Arch…
品川 高廣さんのツイート: "2018年にもなって Intel x86 のリング保護を使った論文が出るとはね。SOSP '99 の Palladium とどう違うのかとも思ったけど、普段は 64bit で動いて一時的に 32 bit に戻してセグメント&リング保護を有効にしたり、Ring 1 でゲートを作ったり、結構複雑にはなっているんだな。https://t.co/dEQGO5VyI1"
[1805.11912] Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86
品川 高廣さんのツイート: "ACM CCS 2018 の論文はこちら。Hojoon Lee, Chihyun Song, and Brent Byunghoon Kang. Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86. In Proc. 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS '18). https://t.co/oxAe4bBkWz"
Lord of the x86 Rings

users

@hisak

Hisaki Oharaさんのツイート: "SkylakeとGoldmontがArchitectural Performance Monitoring version 4ってのをサポートしているのか。いつのまにこんなにversionが上がっていたとは。もうよく分からん。。 #IntelSDM"
Hisaki Oharaさんのツイート: "Intel SDM Vol.3 8.2節 MEMORY ORDERING をみて、何言ってんだこいつってなった人には大変お勧めだった RT Memory Reordering Caught in the Act https://t.co/Z1JZiXvcti"
Hisaki Oharaさんのツイート: "いま 48-bit長 CR3 -> PML4E (9-bit) -> PDPTE (9-bit) -> PDE (9-bit) -> PTE (9-bit) -> 12-bit offset"
Hisaki Oharaさんのツイート: "将来 57-bit長 CR3 -> PML5E (9-bit) -> PML4E (9-bit) -> PDPTE (9-bit) -> PDE (9-bit) -> PTE (9-bit) -> 12-bit offset"
Hisaki Oharaさんのツイート: "GAする前にPCOMMIT命令が消え去った経緯がまとめられてるw https://t.co/mexxGMsIDw"
Hisaki Oharaさんのツイート: "CLWB命令の記述はInstruction Set ExtensionsからSDM Vol.2に移動してた"
Hisaki Oharaさんのツイート: "Intel SDM rev.64を斜め読みしたけどVol.3はminor updateが多いかなあ。IOMCAの記述でPCIeのspecに触れているのは珍しかった。 https://t.co/WNOD1I9XRN"

@uchan_nos

OS作れないマン WalB担当さんのツイート: "Intel SDMの9.10.2にあるSTARTUP.ASMが全然本文のアップデートに追随できてなくてワロタ。"
OS作れないマン WalB担当さんのツイート: "保護モードからIA-32eモード(64ビットモード)に遷移するためにはLMA=1にする必要があるが、LMAは読み取り専用ビットだから、4レベルページングを有効化する手順を行うことで間接的に1にするしかないらしい。64ビットモードではページングが必須と言われるゆえん。"
ファッション自作OSマンさんのツイート: "カノニカルアドレスは僕もやられた https://t.co/qq4LEbmGYd"
c - Canonical address - Stack Overflow
技術書典4 け-51 x86-64-128さんのツイート: "Interrupt ID でもふつうに通じるよねっていう話。… "
uchanさんはTwitterを使っています 「これ,まさか,stiの直後にcliしているから,stiの特例によってまったく割り込み許可状態にならないまま永久ループしておるのか?」 / Twitter

@deep_tkkn

Deep(Ph.D Go player)さんのツイート: "smp_affinityもいじったし、MSIのdest_modeもlogicalになるようにしてみたけど、割り込みが1コアに集中するのなんで"
Deep(Ph.D Go player)さんのツイート: "CONFIG_HOTPLUG を無効にしろみたいな記事みたから無効にしたが効果ない"
Deep(Ph.D Go player)さんのツイート: "intremap=off しないと MSI の dst-mode が physical になるからそれもやった"

@liva_jy

Livaさんのツイート: "@utshina2 なるほど、ありがとうございます!つまり、カーネルコード側のセグメントを事前にチェックしておいて、システムコールの度に毎回チェックするのを避けるという事ですよね。確かにそれはかなり早くなりそうです。"
Livaさんのツイート: "一回くらい自分でfastcallとint $$の性能比較をした方が良さそう。 #liva_notebook"

@NerryN3

光宙🌟さんのツイート: "#DB(Debug Exception)っていつの間にReservedになってたの"
光宙🌟さんのツイート: "https://t.co/wCoBYm7kPW"
Nerry@求職中さんのツイート: "x86のpush命令のFF /6エンコーディングと一見対になりそうなFF /7はずっと未定義命令で、実際に対になってるpop命令の8F /0エンコーディングの/0以外はずっと未定義っていう謎の組み合わせ"
Nerry@求職中さんのツイート: "よく調べたら8Fの/0以外はAMDのXOPプレフィックスに使われてた"

Fadisさんのツイート: "Intel、10nm世代のプロセッサでECCエラーなどのハードウェアの異常を検知する(EDAC)ドライバ、i10nm_EDACをLinuxカーネルに追加。新しいマイクロアーキテクチャの呼び名、それで良いんだ… https://t.co/NvFJYUJ53F"
I10nm Is Intel's New EDAC Linux Driver For Icelake Server CPUs - Phoronix

tanakmura🌛さんのツイート: "https://t.co/k7h93oJ0kp これの話してもいいかな。紹介と、正しい値を取るための細かいテクニックとか。知ってる人は知ってるだろうけど、一覧にしてあれば、どれか知らない人にヒットするかもしれないし、一回ぐらいちゃんと説明したい気がする。"
tanakamura/instruction-bench: instruction-bench
Kazuho Okuさんのツイート: "SkylakeでPAUSE命令が14倍遅くなってスピンロックやばいって話 / “Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing …” https://t.co/6yus862byg"
Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing Code – Alois Kraus
InstLatX64さんのツイート: "#Intel released the 68th edition of the Software Developer’s Manuals with V2 Extended Topology Enumeration Leaf in CPUID.1Fh for Module/Tile/Die levels https://t.co/qh7jNcQQFN… https://t.co/WthEDZNp0Y"
高梨陣平さんはTwitterを使っています 「Intel CPUの隠し命令を探すお話。Intelのドキュメントの貧弱さを嘆きつつ、過去に起こった問題をさらい、最大15byteに及ぶ命令空間を全部実行するのは無理なので戦略が必要との解説。optesterが公開されている。 https://t.co/RWH8b5nYuz」 / Twitter
Hacker News 100さんはTwitterを使っています 「Undocumented CPU Behavior: Analyzing Undocumented Opcodes on Intel x86-64 https://t.co/ITvc94IBfE (https://t.co/6rglM7O3r4)」 / Twitter
undocumented-cpu-behavior.pdf
Undocumented CPU behavior: analyzing undocumented opcodes on Intel x86-64 (2018) [pdf] | Hacker News
Satoshi TandaさんはTwitterを使っています 「Intel SDM added the Ice Lake specific MSRs. Ice Lake introduced the concept of the access level to lock the configuration registers as the 2nd line of defense. Once the DONE bit is set, they are automatically RO. @CHIPSEC detects it if the bit is not set https://t.co/fFoB1y7Dnw https://t.co/vo0yBgY2mE」 / Twitter
Add ICL support · chipsec/chipsec@35a614c
(1) Satoshi TandaさんはTwitterを使っています 「Happy to see the platform-level improvement to reduce a chance of shipping devices without proper security configurations (eg, setting lock bits individually).」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「Linus Torvalds on how AMD and Intel are changing how processor interrupts are handled https://t.co/ggkdgU7EFH @ZDNet &amp; @sjvnから AMDとIntelが長年蓄積されたx86の例外周りのおかしな仕様を何とかしようとしてる。」 / Twitter
Linus Torvalds on how AMD and Intel are changing how processor interrupts are handled | ZDNet
Makoto Kato ︎︎さんはTwitterを使っています 「Houdini: run Arm 32-bit and 64-bit applications on an x86_64 system https://t.co/aPKWdCzIGf」 / Twitter
Houdini: run Arm 32-bit and 64-bit applications on an x86_64 system – random blog

Microkernel・LibraryOS

L4 以降

L4 - Wikipedia
L4 microkernel family - Wikipedia
L4 ‐ 通信用語の基礎知識
マイクロカーネル - Wikipedia
Microkernel - Wikipedia
代替OS (PC用) | Netsphere Laboratories
2011年11月24日 Linux&Linusにモノ申す!? あのTanenbaum教授が久々にメディアに登場:Linux Daily Topics|gihyo.jp … 技術評論社
マイクロカーネル - マイクロカーネルの概要 - Weblio辞書
Microsoft Word - shousai.doc
L4 · oraccha/omicron Wiki
An Introduction to Drawbridge(ja) // Speaker Deck
品川 高廣さんのツイート: "「Secure Enclave は、Apple がカスタマイズした L4 マイクロカーネルを実行します。」って知らなかった。https://t.co/NBXlx0OfKn"
iOS_Security_Guide.pdf
yuYabu☕️さんのツイート: "L4の仕様がまとまってるl4hqというサイト https://t.co/Ig7Z5bzxLn #osdev_moku2"
L4HQ - The L4 Headquarters
ぬるぽへさんのツイート: "組み込みではモノリシックなライブラリOSを提供することが多い #osdev_moku2"
ぬるぽへさんのツイート: "最近のトレンドだと「メモリ空間管理はカーネル空間に持たすことが多い」と表現するらしい、ポリシーはユーザー空間で制御するがマッピングはカーネルでやることを指して > マイクロカーネル #osdev_moku2"
L4Android
社会人でもOSを作りたいさんのツイート: "今日の自作OSもくもく会の発表はほんまに濃かった。L4マイクロカーネルって全体をアセンブリ言語で書くことにより高速化したっていう話、コンパイラの限界を感じる。"
Takeharu KATOさんのツイート: "正確にはL4の前身のL3がアセンブラでL4の世代は部分的にCで書かれて後々C++になったと思います(C++になった当たりからはちゃんと追ってないのですが)。… "
ぬるぽへさんのツイート: "唐突に気づいてしまったんですが、マイクロカーネルには厳密にはプロセスという概念はないのに、実行プリミティブ間通信をIPCと呼ぶとはこれいかに"
HermiTux | A binary-compatible unikernel
ssrg-vt/hermitux: A binary-compatible unikernel
unikernelのruntimejsを試してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Shinichi MiyazawaさんはTwitterを使っています: 「形式検証済みのマイクロカーネルといえば、seL4が有名。 https://t.co/zli9rN7cXA」 / Twitter
Home | seL4
The seL4 Microkernel – An Introduction - seL4-whitepaper.pdf
mumumuさんはTwitterを使っています 「Evolution of the PikeOS Microkernel VMMもMicrokernelの一種という思想で,L4から派生した自分たちのOS(VMM)の上にRTOSとGPOS,そのた実行エンジンを載せて,組込み環境で使おうぜ,みたいな主張.jailhouseとかQuest-Vとかの源流.07年の論文だが,プロ時ジェクトは現存https://t.co/H1sQyYTBmS」 / Twitter
PikeOS Certified Hypervisor - SYSGO - Embedding Innovations

Unikernel

MirageOS のインストールから Hello World までを試す - Qiita
MirageOS Unikernel の概要 - Qiita
11se252.pdf
cetic/unikernels: Unikernel and immutable infrastructures
A Binary-Compatible Unikernel
unikernelのruntimejsを試してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
unikernelの最新人気記事 30件 - はてなブックマーク
Docker ContainerとUnikernelの比較 - コードログ
atc18-zhang-yiming.pdf
Unikernelについての現状調査 - Fixstars Tech Blog /proc/cpuinfo
ガラスボーさんはTwitterを使っています 「Rust製UnikernelのRustHermitの紹介 https://t.co/WY5OnHkGEu HermitCoreについては以前自分のブログで紹介した論文があるのだけど、同じ研究グループがやっているっぽい? https://t.co/n4jRpDYlBU」 / Twitter
The RustyHermit Unikernel | Rust OSDev
ガラスボーさんはTwitterを使っています 「RustHermitを使った論文もVEE '20にあったらしい。追えていなかった https://t.co/qa6ZOCMxZF」 / Twitter
Intra-Unikernel Isolation with Intel Memory Protection Keys - vee20-mpk.pdf
FadisさんはTwitterを使っています 「Unikernel: ひとつのアプリケーションとそのアプリケーションを動かすのに必要最小限のカーネルをセットにした物。その実装の一つがMirageOS #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「unikernel systems社: Dockerに買収されたケンブリッジ大学発のベンチャー。MirageOSは彼らによって開発されている #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「unikernelではOSのイメージは書き換えが保存されないようにする。ユーザのコンセプトも必要ないので捨てる。このように必要ないものを削って小さなフットプリントにする。さらにシンプルなブート方法だけをサポートする事で起動を高速にする #kernelvm」 / Twitter
まちカドおるみんさんはTwitterを使っています 「Linux をそのまま unikernel にするものとして UKL や UniLinux はちょっと古くて、最近は Lupine や LKL というかんじです #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「小さいカーネルを手に入れる方法には、スクラッチから必要最小限の機能を持った小さいカーネルを作る手法と、既存の大きいOSからいらないものを削って小さくする方法の2つがあって、ネットワークスタックみたいな再実装したくない物が絡んでくると後者が美味しく見えてきちゃうんだよな…」 / Twitter
retrageさんはTwitterを使っています 「UKLはRedHatのinternのプロジェクトでやってHotOSで出てきた話だけど,結局ちゃんとした実装になってなかったはず #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「unikernelは必ずしもハイパーバイザの上で動かなくても良いが、ホストに抜けられると困るのハイパーバイザを通す事もある。同等の効果を期待してseccompを絞る事もある。ハイパーバイザが相対的に大きいのでunikernelに必要最小限のハイパーバイザを作る事もある、と #kernelvm」 / Twitter
2015年5月14日 フロッピーの呪いがクラウドに!? 久々の大型脆弱性「VENOM」の影響範囲:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「ハイパーバイザが使いもしないデバイスをサポートしていると、アタックサーフェスが増える。たとえばVENOM(CVE-2015-3456)ではQEMUのフロッピーディスクドライブのエミュレーションのバグを突いてハイパーバイザの外で任意のコードを実行する、と #kernelvm」 / Twitter

Solo5

retrageさんはTwitterを使っています 「今日ちょうどSolo5の話をまとめようとしてたところなのでタイムリー」 / Twitter
まちカドおるみんさんはTwitterを使っています 「process の isolation でも hardware assisted な VMM 並に強力な isolation が可能であるという主張はどちらかといえば container より(libOS とは関係ない)picoprocess そのもののアイディアに近い」 / Twitter
まちカドおるみんさんはTwitterを使っています 「picoprocess はもともと Xax というブラウザのプラグインを sandboxing するための仕組み(“ Leveraging Legacy Code to Deploy Desktop Applications on the Web”)」 / Twitter
まちカドおるみんさんはTwitterを使っています 「container があくまで kernel shared でかつ 300 以上の syscall が許容されてるのに対して,unikernel の single address space や libOS といった性質上 hypercall がたかだか 4,5 のままで既存のアプリのコードが使えてるのは強みなので,この設計構造を潰さないまま process isolation に」 / Twitter
まちカドおるみんさんはTwitterを使っています 「持っていくと,アプリコードはそのままでも syscall は数個のより narrow な attack surface しか持たない process になるので,同じアプリを動かすにしても secure だし,性能の劣化が unikernel より少ないし,gdb 噛ましたり簡単になるし,いいことだらけだぞっていうのが彼らの主張」 / Twitter
まちカドおるみんさんはTwitterを使っています 「ほかにも ASLR やメモリの dedup が効くだとか,ブート周りや MMU 周りのアーキテクチャ依存が減ってより minimum なコードになるぞとかいろいろ恩恵があるのは 3.4 節の other benefits を参照のこと。」 / Twitter
retrageさんはTwitterを使っています 「LKL+muslなlibOSをSolo5に移植してPythonとか動くようにした retrage/frankenlibc at solo5 https://t.co/uRlNV4YizR」 / Twitter
retrage/frankenlibc at solo5
retrageさんはTwitterを使っています 「これ、実装よりの細かい話とか書こうとしてるんだけどまだ自分の中でまとまった知見とかがあるわけじゃなくてやるだけ、みたいな気持ちになっているので筆が進まず」 / Twitter
Unikernels as Processes | Proceedings of the ACM Symposium on Cloud Computing
212-Williams
retrageさんはTwitterを使っています 「そういえばシステム系の論文に出てくるコードって大抵発表されたあと放置されることが多いけど、これはちゃんとメンテされていてすごい。 Solo5/solo5: A sandboxed execution environment for unikernels https://t.co/o8rXWxLfDf」 / Twitter
Solo5/solo5: A sandboxed execution environment for unikernels
まちカドおるみんさんはTwitterを使っています 「@retrage “Unikernels as Processes” とかの研究の実装にも利用されているので、研究が一発ネタで終わらずそれを叩き台にした後続が居る、というのも強みなんだと思う。HermitCore → HermiTux、RustyHermit なんかもそうだし、OSv も Mikelangelo Project とか Iso-UniK とかあるし。」 / Twitter
retrageさんはTwitterを使っています 「@kotatsu_mi なるほど。後続が作れるほど発展性のあるテーマを後の研究のベースにできるぐらいちゃんとしたコードが書かれているということでもあるのでやっぱりすごいと思う。」 / Twitter
retrageさんはTwitterを使っています 「これとか参考にしつつSolo5のI/F拡張したら面白そう。 Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing | USENIX https://t.co/n8XnZpVgAg」 / Twitter
Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing | USENIX

HarmonyOS

huawei-iot/HarmonyOS: 鸿蒙系统资料。Docs about HarmonyOS.
Shinichi MiyazawaさんはTwitterを使っています: 「Harmony OSで面白い点の一つは、形式検証を使っている点。 https://t.co/xJzy2mK95d」 / Twitter
Harmony-OS-Huawei-Developer-Conference-14-1.jpg (1170×540)

Rump Kernel

Rump Kernelをつかってみる
おるみんちゃんさんのツイート: "Rump Kernel が実は論文や学術雑誌以外に本の形でドキュメント化してたのに気がついて Mendeley に放り込んだ"
おるみんちゃんさんのツイート: "のはいいんだけど,このタイトルページを Mendeley が OCR してこうなるの完全に謎。何をどうしたんだ……?(本の最初のほうに書いてある git の revision がなにかの ISBN にひっかかったとか?… "
おるみんちゃんさんのツイート: "https://t.co/siYxJuyJjn"
The Design and Implementation of the Anykernel and Rump Kernels
おるみんちゃんさんのツイート: "おそらく,Rump Kernel の作者 Antti Kantee の博士論文の改訂ですね。"
おるみんちゃんさんのツイート: "博論はこれ https://t.co/QKhIrddQ1c"
Flexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernels

Linux kernelをUnikernelのライブラリ化する - めもちょー
まちカドおるみんさんはTwitterを使っています: 「Unikernel というか Library OS の源流には Exokernel が居るんだけど,その上流には SPIN や Chorus,V や Amoeba,Accent といった第一世代の Microkernel/Distributed OS が居るし,Exokernel と Unikernel の間にも Xen や kvm,QEMU だけじゃなくて Nemesis や Libra が居る」 / Twitter
Unikernel - Wikipedia
Unikernelな情報 (in Japanese) - Qiita
FadisさんはTwitterを使っています 「「コンテナならユーザ空間だけ立ち上げるからはやーい」から 「コンテナのセットアップするやつに脆弱性があるとやばーい」になって「やっぱりVMで隔離したーい」になって「でも起動に時間がかかるのやだー」になってUnikernelにたどり着くのか #kernelvm」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@syusui_s マイクロカーネルの IPC が遅くてパフォーマンスが……は定説でしたが最近は IPC も十分速くできる,という研究がぽつぽつあります。https://t.co/fG6NokSb5J」 / Twitter
YCSB-A_Zircon.eps - skybridge-eurosys19.pdf
コンテナ目線で考えるUnikernelとmicroVM / MicroVM and Unikernel in the container world - Speaker Deck
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、昔は現代的OSというとマイクロカーネルだったけど、結局実用上はカーネル・リビルドなしにドライバ動的ロードできれば、ユーザ的にはもう十分だった感(笑)」 / Twitter
microkernel-book.pdf
CとRustで一から作るマイクロカーネルOS
mumumuさんはTwitterを使っています 「正しくはATCでした(suzaki先生ありがとうございます. この研究,色々なことをやってて研究として綺麗かと言われるとよくわからんのですが(超上から目線),できること全部突っ込んだ感があって純粋に読み物として面白いかも」 / Twitter
mumumuさんはTwitterを使っています 「Harmonizing Performance and Isolation in Microkernels with Efficient Intra-kernel Isolation and Communication [OSDI '20] Microkernelのサーバ間の新しいIso.としてMPKによる手法を提案.そのためにKernelメモリをUserメモリとしてMapしていたり色々ヤバイことやってる.オタクは是非読んで」 / Twitter
FadisさんはTwitterを使っています 「RedLeaf: Rustで実装されたマイクロカーネルOS。ドメイン間通信のための共有メモリを多用する→ RRef&lt;T&gt;型で共有メモリをラップしてRustに共有メモリの抱え落ちを防がせる https://t.co/9fI2XusVxf #kernelvm」 / Twitter
mars-research/redleaf: RedLeaf Operating System
FadisさんはTwitterを使っています 「一般的なOSの機能、MS-DOSとマイクロカーネル原理主義みたいなヤツらとライブラリOS系のやつらで積集合を取ると、一般的なOSの機能とは空集合の事であるみたいな結論が得られそう」 / Twitter
FadisさんはTwitterを使っています 「MS-DOS: タスク管理やプロセスの空間の分離は別にOSに必須じゃないかもしれないよ マイクロカーネル: デバイスドライバやファイルシステムは別にOSに必須じゃないかもしれないよ ライブラリOS: ハードウェアの上でブートローダから起動される事は別にOSに必須じゃないかもしれないよ」 / Twitter
natsutanさんはTwitterを使っています 「@fadis_ 組込系のOSだと、ファイルシステムもメモリ保護も標準入出力も無く、割り込みはタイマー以外自力で処理みたいなのもあるので、一般的なOSって難しい。」 / Twitter

仮想化

その他

英SophosがWindowsサンドボックスの「Sandboxie」を無償化、将来はオープンソースに | OSDN Magazine
Chapter 10. Technical Background

睡分不足

APIC, MSI-X

MSI/MSI-Xとx2APIC - 睡分不足
x2APICとinterrupt remapping - 睡分不足
I/O APICについて - 睡分不足
Local APICについて - 睡分不足
MSI/MSI-Xとx2APIC - 睡分不足
X540のMSI-X設定 - 睡分不足

QEMU/KVM

KVMの準仮想化機能 - 睡分不足
KVMにおけるcpuid命令の取り扱い - 睡分不足
KVM GPUパススルー設定 - 睡分不足
QEMU/KVM上のゲストのハイパーコールをQEMU側に渡す方法 - 睡分不足
QEMUコードリーディングメモ - 睡分不足

VMM

Bareflankを使ってみる - 睡分不足
クロスプラットフォームなハイパーバイザ Intel HAXM - 睡分不足
VMWare Fusionメモ - 睡分不足

virshのvcpupinとvcpuinfoで表示されるaffinityの違い - 睡分不足
Ownership is theft? TockのTakeCellについて - 睡分不足
x86におけるメモリアクセス権のルール - 睡分不足
perf, ftraceのしくみ - 睡分不足
VFIOによるデバイス操作 - 睡分不足
複数の仮想ページに同じ物理ページをマッピングする方法 (Linux) - 睡分不足
x86_64 Linuxでの仮想アドレス/物理アドレス - 睡分不足
仮想アドレスから物理アドレスを求める - 睡分不足
per cpu data シンボルのアドレス - 睡分不足

MS

MyIgnite - OS internals: Technical deep-dive into operating system innovations
ネットワーク コントローラーの高可用性 | Microsoft Docs
仮想化ベースのセキュリティ (VBS) | Microsoft Docs
【笠原一輝のユビキタス情報局】Windwos 11はなぜTPMが必要で、CPU制限が厳しいのか? その理由を詳しく説明 - PC Watch
「VirtualChecker」仮想化支援機能に関するCPUの対応状況を手軽にチェックできるツール - 窓の杜
AMD CPUに待望の“Nested Virtualization”対応 ~プレビュー版「Windows 10」で - 窓の杜
とみながたけひろさんはTwitterを使っています 「@retrage @mhiramat 最近はUEFIがバグってる(悪意のあるハードウェアが繋がってると色々やられてしまう)ことがあるので、できるだけ早くhv上げてその下でUEFIというかハードウェアの初期化するなども聞きます」 / Twitter
retrageさんはTwitterを使っています 「@takehiro_t @mhiramat そうですね,話せなかったんですが,WindowsだとVirtualization Based Security (VBS)というHVベースのセキュリティ機構がOS Loader(winload.efi)の段階で立ち上がったりします.」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@retrage @takehiro_t なるほど、x86だとそういうことも可能ですね。armだと実行レベルは一方通行だから、最初にvmmを起動するとkvmが使えなくなってしまうんですが。」 / Twitter
とみながたけひろさんはTwitterを使っています 「@retrage @mhiramat win11で必須になるとゆーやつですね。どんどん生のハードに触れなくなっていく、、、😀」 / Twitter

Intel TDX

Intel® Trust Domain Extensions
tdx-module-1eas-v0.85.039.pdf
Intel® Trust Domain CPU Architectural Extensions - intel-tdx-cpu-architectural-specification.pdf
Intel® Trust Domain Extensions - SEAM Loader (SEAMLDR) Interface Specification - intel-tdx-seamldr-interface-specification.pdf

Intel VT

MSI/MSI-Xとx2APIC - 睡分不足
syuu1228/howto_implement_hypervisor: Software Design誌の連載「ハイパーバイザの作り方」の原稿公開用リポジトリ
ハイパーバイザの作り方
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第5回 I/O仮想化「割り込み編・その2」
BitVisor Updates in 2016
Intelの仮想化支援機能「Intel VT」とは? - @IT
22.9. BIOS で Intel VT-x と AMD-V の仮想化ハードウェア拡張を有効にする - Red Hat Customer Portal
Intel Virtualization Technology - 自作パソコン入門
第6期末セミナー2006-1rev1.ppt
スライド 1
KVM PCIパススルー (PCI PassThrough) | nexia inc
VT-x を有効にしたく て 3 日程できなかったのだが、Windows が余計なお世話をしてた件 | ピックワールド(PIC World)
VT-d 割り込み再マッパーが無効になっていると ESXi IO 接続の問題または PSOD が発生する (2149592)
仮想マシンのプロセッサ設定の構成
dmamapping.pdf
sec 1-48 - Willmann2008.pdf
Satoshi's note: Introductory Study of IOMMU (VT-d) and Kernel DMA Protection on Intel Processors
iommu.c - drivers/iommu/iommu.c - Linux source code (v5.12.4) - Bootlin
Hideki EIRAKUさんはTwitterを使っています 「センシティブ命令といっても VMEXIT につながらない命令もあるから厄介」 / Twitter
【仮想化道場】サーバープロセッサのターニングポイントになる? 「Xeon Scalable Processor」(前編) - クラウド Watch
コード整合性に対する仮想化ベースの保護を有効にする - Windows security | Microsoft Docs

VPID

イスラエルエリカちゃんさんのツイート: "VPIDって、TLBにVM番号のタグ付けたいって理解でいいよね。Nehalem以前はVMentry/exit時にTLB全フラッシュ必要ってIntelが言ってるけど、それって透過的に行われてたのかな、自分でやるのかな。VPID有効時はINVVPIDで選択的にFlashで良いのかな。"
VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful
最近の話題 2008年4月5日
最近の話題 2008年8月23日
SMP環境下でのTLB Consistencyについて - syuu1228's blog

準仮想化

Linux KVM上でSEIL/x86を使う
3.4. 仮想化ハードウェアデバイス - Red Hat Customer Portal
第10章 KVM 準仮想化 (virtio) ドライバー - Red Hat Customer Portal
Virtioについてのまとめ - Qiita
KVMの準仮想化機能 - 睡分不足
KVM - ArchWiki
QEMU - ArchWiki
Fadisさんのツイート: "virtioを介してホストとゲストで共有されるファイルシステムvirtio-fsを作ろうとしている人の話がLWNの記事になってる。ネットワークを介さずvirtioでホストのfsを共有する事でホストとゲストでページキャッシュとロックの共有が可能になるのが利点らしい https://t.co/tEyrwt9S6x"
Subscription required [LWN.net]
virtio virtualbox - Google 検索
Makoto Kato ︎︎さんはTwitterを使っています: 「virtio-fsか」 / Twitter
まちカドおるみんさんはTwitterを使っています: 「virtio を hardware で実装してしまうハナシ。確かにどの OS も driver 持ってるしなあ(xv6 でさえ!)&gt;&gt; Virtio without the "virt" [https://t.co/4Z5bszp3QR] https://t.co/gG1Sfcx37N」 / Twitter
まちカドおるみんさんはTwitterを使っています: 「註・xv6 は元々 IDE driver を持つが RISC-V 版から virtio に切り替わっている」 / Twitter
virtiofsについて - Qiita
FadisさんはTwitterを使っています 「virtio-videoドライバがバニラカーネルに入りたがっているらしい。virtio-videoはホストのカメラやキャプチャデバイスからの入力をゲストが直接読む機能と、ホストの動画エンコード、デコードの為のハードウェアをゲストが利用する機能を提供する準仮想化デバイスのドライバ https://t.co/EHbOncnBy0」 / Twitter
VirtIO Video Driver Coming Together For The Mainline Linux Kernel - Phoronix
ガラスボーさんはTwitterを使っています 「準仮想化ってXenが最初だと思いこんでいたのだが、どうやらDenaliっていうプロジェクトが初出だったらしい。ずっと勘違いしていた」 / Twitter
FadisさんはTwitterを使っています 「VirtIO SoundのドライバがLinux 5.13でバニラカーネルに入りたがっているらしい。VirtIO Soundは「パススルーのようにデバイスを占有せず」「Intel HDAのエミュレーションより軽量かつホストがマルチチャネルをハードウェアで処理できる場合それに乗れる」準仮想化デバイス https://t.co/uv7avXPNZL」 / Twitter
VirtIO Sound Driver Coming For Linux 5.13 - Phoronix

libkrun

10分で理解したかったlibkrun / I wanted to understand libkrun but - Speaker Deck
FadisさんはTwitterを使っています 「libkrun: Red Hatが作り始めた新しいVMM。KVMの上で動く。デバイスのエミュレーションはvirtioを中心に最低限を実装 https://t.co/ULiNjSC3cD #kernelvm」 / Twitter
containers/libkrun: A dynamic library providing Virtualization-based process isolation capabilities
Yoshikazu GOTOさんはTwitterを使っています 「・最低限のデバイスエミュレーションとC APIを備えたRust性のMicroVM →virtio-console, virtio-fs, virtio-vsockなどを実装 →Firecrackerなどkらコードを拝借しているらしい #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「・C APIを提供しているのでライブラリとしても使える ・ネットワークコンポーネントにvirtio-netは使わず、vsockベースのTSIという「革新的な方法」で自前実装 #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「・ランタイムの分離レベルがVMなので、いわゆるサンドボックス型のランタイムに分類できる #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「inductorさん:既存のVM型ランタイムとの違い: ・既存の実装は、namespaceをPodごとに分割 ・VMがnamespaceごとなのでコンテナ感では共有のVMを使う →コンテナプロセスはKVMの子プロセスの一つに #kernelvm #kernelvm_tw」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「inductorさん: ・これが ・VMをが分かれていても、同じコンテキストで処理が行われる #kernelvm #kernelvm_tw」 / Twitter
Hiroshi ShimamotoさんはTwitterを使っています 「PodとVMの内包関係が逆になっているのか #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「QEMUを使ったコンテナのサンドボックス化では同一のPod内の複数のコンテナは同一のQEMUの中で実行される。libkrunはPodの中でコンテナ毎に軽量なVMMを動かす事でよりよい分離を提供する #kernelvm」 / Twitter

Confidentail VM

suzakiさんはTwitterを使っています 「Googleが発表したデータを暗号化したまま処理する「Confidentail VM」はAMDのSEV: Secure Encrypted Virtualizationが使われています。 SEVではハイパーバイザー非依存でVMイメージに復号をCPUが行います。鍵はリモートアテステーションを使って渡されます。 CCS19論文が詳細 https://t.co/lG0BS0a298」 / Twitter
Insecure Until Proven Updated:Analyzing AMD SEV's Remote Attestation - 1908.11680.pdf
suzakiさんはTwitterを使っています 「「Confidentail VM」の説明で紹介したCCS19で発表された論文名は Insecure Until Proven Updated: Analyzing AMD SEV’s Remote Attestation でリモートアテステーションを行うファームウェアに脆弱性につての論文。」 / Twitter
PublickeyさんはTwitterを使っています 「Google、データを暗号化したまま処理する仮想マシン「Confidentail VM」発表。Google Cloud Next '20:OnAir https://t.co/yUZ1vl0M1y」 / Twitter
Google、データを暗号化したまま処理する仮想マシン「Confidentail VM」発表。Google Cloud Next '20:OnAir - Publickey
suzakiさんはTwitterを使っています 「Confidentail VMにはGoogleのAsyloがベースになっている。SGX対応は知っていたがAMD SEVも対応していた。 私の知識はOPEN-SOURCE ENCLAVES WORKSHOP (OSEW 2019)で止まっている? https://t.co/iRts3FY11y Asylo’s unified enclave identity framework (Anna Sapek) ビデオ https://t.co/rFcy1h0WAN」 / Twitter
Open Source Enclaves Workshop: July 2019
suzakiさんはTwitterを使っています 「思い出したけど、AMD Secure Encrypted Virtualization (SEV) を活用したTEEはRedhatが開発しているEnarxがある。 これはIETF106のTEEPでも紹介さ入れた。 https://t.co/AxO7d5lW7l https://t.co/Yvh5DDSSke」 / Twitter
slides-106-teep-sessa-enarx-a-teep-use-case-00.pdf

QEMU

TCG

msyksphinz_devさんはTwitterを使っています 「もちろん、QEMUのドキュメントや論文にはかなり目を通しました。しかし、やはりコードに触って、デバッグして、書き直して、車輪の再発明をしないと、理解できなかったんですよね。 例えば、「3.4 Direct block chaining」だけ読んで、Block Chainingのイメージを理解できる人が、どれだけいますか?」 / Twitter
Miura HidekiさんはTwitterを使っています 「Direct block chainingの所、mrubyのJITでそっくりなことをやっているので理解できました。問題は、PCだけではなくCPUの状態でも次のブロックが変わりうると思うのだけど、直接チェックなしでジャンプしちゃっていいのか?と思う。まあ、大部分は問題ないと割り切っているんだろうけど。 &gt;RT」 / Twitter
Miura HidekiさんはTwitterを使っています 「ここでいうPCはプログラムカウンタね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「qemu、mrubyのJITとよく似た構造なので技術をぱくりたいと思って調べたけど、意外と最新版の詳細が見つからない。ソースがでっかいのでソースを読むにもどこを読んだらいいものか...」 / Twitter
Miura HidekiさんはTwitterを使っています 「qemu tcgのソースコードあった https://t.co/bKskd4vGNt」 / Twitter
tcg · master · QEMU / QEMU · GitLab
Miura HidekiさんはTwitterを使っています 「qemuのTCGの最適化処理を見つけた。定数の畳み込みとかやっている https://t.co/o8Xdul48fH」 / Twitter
tcg/optimize.c · master · QEMU / QEMU · GitLab
Miura HidekiさんはTwitterを使っています 「マシンコードレベルで畳み込みとかって効果あるのかしらん?」 / Twitter
Miura HidekiさんはTwitterを使っています 「READMEに全部書いてあった https://t.co/3YrCVi1PS1」 / Twitter
tcg/README · master · QEMU / QEMU · GitLab

m68k

FadisさんはTwitterを使っています 「Linuxカーネルに謎の高性能m68kマシンで動くようにするパッチが現れた話。謎のm68kマシンはCPUこそ古のm68kだが、Android emulatorで使われるGoldfishデバイスが生えており、更にvirtio-gpuやvirtio-9pを含む豊富なvirtioデバイスが生えている https://t.co/hDBxPN953g」 / Twitter
Linux Kernel Patches Sent Out For A More Powerful Virtual M68k Machine - Phoronix
FadisさんはTwitterを使っています 「勿論このマシンは実在する訳ではなく、QEMUに実装された仮想のm68kマシン。最も高性能な物理m68kマシン(Quadra 800、1993年)でもメモリを1GBより多く積むことができず、I/Oも貧弱で、「今尚m68k向けにパッケージを作っているディストリ等が苦行を強いられる」問題を解決するために作られた物らしい」 / Twitter
henrichさんはTwitterを使っています 「ちなみにPortingしてる当のdistro開発者の一人、Amigaかなんかを山積みで貰って嬉々として車に積んでたなー」 / Twitter
https://twitter.com/toshi_kd/status/1374682701609922569

QEMU, a Fast and Portable Dynamic Translator | USENIX
x86 - Where are local APIC addresses in QEMU? - Stack Overflow
QEMU Developer’s Guide — QEMU 5.1.0 (v5.1.0-11824-g8699890d91-dirty) documentation
QEMU 5.1.0 Documentation
QEMU for Windows – Installers (32 bit)
QEMU for Windows – Installers (32 bit)
フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記
Rustで作るフルスクラッチQEMU型エミュレータ - Speaker Deck
uchan 『ゼロからのOS自作入門』3/22発売予定さんはTwitterを使っています 「QEMU(qemu-system-x86_64)でUbuntu 20.04 Desktop版のインストーラを起動しようとしたら、10分くらい待ってもCPUファンがうるさくまわりつづけ、すごいゆっくりとしか処理が進まないんだけど、これはインストーラが重い?あるいはメモリ2GB、CPUは1コアしか割り当ててないのが原因?」 / Twitter
uchan 『ゼロからのOS自作入門』3/22発売予定さんはTwitterを使っています 「KVMを使ってないからでは?と教えてもらって、-accel kvmを付けたらCPUファンも回らなくなったし普通の速度で動くようになった。もしかしたら自作OSもKVM有効にして動かしたらもっと省エネになるかも。」 / Twitter
Yoshikazu GOTOさんはTwitterを使っています 「msyksphinz さん:エミュレーションの方法: ・インタプリタ型 →ゲスト命令を1命令ずつ解釈 →実装が簡単だが遅い ・バイナリ変換型 →ゲスト命令をホスト命令に変換 →速い #kernelvm #kernelvm_tw」 / Twitter
FadisさんはTwitterを使っています 「QEMUはバイナリ変換型で、ゲストの命令セットとホストの命令セットの間に中間言語TCGを持っており、TCGで最適化も行われる、と #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「自作QEMUが動的に生成したコードをgdbから漁れないのでデバッグが辛い→自作QEMUを本物のQEMUの上で実行すれば全ての動きが追いかけられる! #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「QEMUは命令を「分岐にぶつかるまで」のブロック単位でTCGに変換する。→分岐にぶつかった時、分岐後のジャンプ先は大抵固定のアドレス→一度ジャンプ先に飛んでジャンプ先のTCGが出来たらジャンプ元に生成したジャンプ先のアドレスを埋め込んでジャンプ先を別ブロック扱いしなくて良くする #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「QEMUがやっているような事をそのままRustで書くとRustが知らない所で生成するコードが山ほど出てきてunsafe祭りになる、と #kernelvm」 / Twitter
無料のWindows仮想マシンをQEMUで動かす - Qiita
第592回 QEMUでGPUの3Dアクセラレーションを利用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
第572回 GNOME Boxesを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
QEMUのトレース機能でOSのデバッグを支援する - uchan note

Disk Images

IMG (file format) - Wikipedia
Disk Images - OSDev Wiki
ISOイメージ - Wikipedia
ISO image - Wikipedia
Apple Disk Image - Wikipedia
Disk Images — QEMU 5.0.92 (v5.1.0-rc2) documentation
virtualization - RAW disk image and .Img format, Difference? - Super User
第11章 QEMU-img および QEMU ゲストエージェント Red Hat Enterprise Linux 6 | Red Hat Customer Portal
14.12. qemu-img でサポートされる形式 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
28.3. qemu-img の使用 Red Hat Enterprise Linux 5 | Red Hat Customer Portal
GitHub - libarchive/libarchive: Multi-format archive and compression library
libarchive - C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats @ GitHub
libarchive-3.2.0
LIBARCHIVE-FORMATS(5) - File Formats - YOS OPENSONAR

コンテナ

Kubernetes

スライド

チェシャ猫さんはTwitterを使っています 「本日 Infra Study Meetup の登壇資料です。#InfraStudy Kubernetes の拡張性を活かし、エッジに延伸するためのプロジェクト @KubeEdge 。単なる軽量化版かと思いきや、調べてみたら普通の Kubernetes とは一味違った仕組みが隠されていました。 猫でもわかる KubeEdge https://t.co/Ksfu0uMkrz」 / Twitter
猫でもわかる KubeEdge #InfraStudy / Infra Study Meetup 7th - Speaker Deck
拡張性の高い CNI プラグイン Coil v2 の紹介 - Speaker Deck
2020 年の秋、改めて学ぶ Scheduling Framework #k8sjp / Kubernetes Meetup Tokyo 35th - Speaker Deck

技術評論社

第641回 LXDとmicrok8sでシングルサーバーをKubernetesクラスターにする:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
2020年12月4日 AWS,Kubernetesディストリビューション「Amazon EKS Distro」をオープンソースで公開:Linux Daily Topics|gihyo.jp … 技術評論社
第670回 Kubernetes IDEであるLensをMicroK8sで使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

infoQ

Kubernetes Operatorの深層
マイクロサービスを正しい方法で監視する
ConfluentがConfluent for Kubernetesを一般向けに提供することを発表

Publickey

軽量でインストールも簡単なシングルバイナリのKubernetesディストリビューション「k0s」、Mirantisがオープンソースでリリース。LinuxとWindowsに対応 - Publickey
Kubernetes上でVMのライブマイグレーション、バックアップ、PXEブートなど可能に。ハイパーコンバージドインフラを実現する「Harvester」、Rancher Labsがベータ公開 - Publickey
KubernetesのノードとしてWebAssemblyランタイムを用いる「Krustlet」、CNCFのサンドボックスプロジェクトに申請 - Publickey

blog

Kubernetes Internal #1を開催しました - bells17 - Medium
BuildKitを使ってKubernetes上でイメージをビルドする [KubeCon EU発表レポート] | by Akihiro Suda | nttlabs | Medium
Kubernetes 用 CNI プラグイン Coil v2 の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
Neco の宣言的なサーバー全台再起動の仕組み - Cybozu Inside Out | サイボウズエンジニアのブログ
Flaky Testとの戦い - Cybozu Inside Out | サイボウズエンジニアのブログ
【暫定版】 Kubernetesの性能監視で必要なメトリクス一覧とPrometheusでのHowTo - kashionki38 blog
Kubernetes 1.20からDockerが非推奨になる理由 - inductor's blog
Dockerは非推奨じゃないし今すぐ騒ぐのをやめろ - Cloud Penguins
あなたの知らないKubernetesのServiceの仕組み | IIJ Engineers Blog

たった60秒でKubernetes環境を構築できる「MicroK8s」にHAクラスター機能が追加 - GIGAZINE
How to Schedule Machine Learning Workloads Nicely In Kubernetes | CloudNative Days Tokyo 2020
チェシャ猫さんはTwitterを使っています 「正直、Kubernetes で Docker が非推奨になって影響を受けるのはクラスタをセットアップする側だけで、大多数の Kubernetes を使う側の人間には大して影響ないと思うが何故こんなに盛り上がってるんだ…。」 / Twitter
qwerty2501さんはTwitterを使っています 「そういえば同僚氏がk8sやってGAEやCloud Runのほうが断然良いって言ってたの思い出した」 / Twitter
App Engine アプリケーション プラットフォーム  |  Google Cloud
Cloud Run: コンテナを秒単位で本番環境にデプロイ  |  Google Cloud

Kata Container

コンテナランタイムKata Containersの実行検証 - Qiita
Kata Containers Home | Kata Containers
コンテナの軽量さと仮想マシンの堅牢さを兼ね備えた新しいコンテナ実装「Kata Containers」、OpenStack Foundationが発表 - Publickey
コンテナを軽量VMで隔離するKata Containersがついにv1.0をリリース | TechCrunch Japan
runC vs. cc-runtime vs. kata-runtime?コンテナランタイムの内部構造と性能比較 | Think IT(シンクイット)
カタコンテナはいかにしてDockerコンテナのセキュリティを強化しているのか | S-Port|鈴与シンワート
Kata Containers
Why Kata Containers doesn’t replace Kubernetes: – Kata Containers – Medium
Kata Container – Kata Containers – Medium
OpenStack発のコンテナ実装「Kata Containers 1.0」リリース | OSDN Magazine
Firecrackerはコンテナランタイムなのかという話 - inductor's blog

システムコール

FadisさんはTwitterを使っています 「linuxによそのプロセスのアドレス空間で処理を実行するprocess_vm_execを追加する提案の話。この関数は引数で指定したpidのプロセスのアドレス空間で引数で指定したレジスタの状態から実行を開始する。シグナルやシステムコールの呼び出しが起こると呼び出し元に戻ってくる https://t.co/AXlfb1pShG」 / Twitter
FadisさんはTwitterを使っています 「コンテナ型仮想化はホストとカーネルを共有している為1つの脆弱性がホストに通る攻撃に繋がりやすい。一方ハイパーバイザ型はオーバーヘッドが辛い。そこでgVisorは、コンテナ内からのシステムコールをカーネルではなくカーネルのふりをするユーザ空間プロセスに処理させる https://t.co/cmTRZXyMNw」 / Twitter
google/gvisor: Application Kernel for Containers
FadisさんはTwitterを使っています 「gVisorは現状「システムコールをユーザ空間プロセスで受ける」というマジックをptraceで実現している。ptraceは汎用すぎて性能が良くないので、より効率よくユーザ空間でシステムコールを受ける手段としてprocess_vm_execが役に立ちそう、と」 / Twitter
Shinji KonoさんはTwitterを使っています 「コンテナはプロセスに対するメタ操作として定義されるべき」 / Twitter

blog

dockerと称するもの | IIJ Engineers Blog
我らの時代のコンテナデプロイ – Nomad, Consul, Vault | IIJ Engineers Blog
Project Zero: Who Contains the Containers?
コンテナレジストリの可用性を高める取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ
分散ストレージCephのオーケストレータRookのデータ破壊バグを修正しました - Cybozu Inside Out | サイボウズエンジニアのブログ
軽量Dockerイメージに安易にAlpineを使うのはやめたほうがいいという話 - inductor's blog
コンテナのデザインパターンを学べる論文「Design patterns for container-based distributed systems」を読んだ - kakakakakku blog
Docker rootlessで研鯖運用 - drgripa1
Java 8ランタイム・コンテナ・イメージの作成とデプロイ - 赤帽エンジニアブログ

Publickey

Docker Hub、6カ月使われていないコンテナイメージの削除計画を保留に。従量課金ベースの料金プランを検討へ - Publickey
AWSがDocker Hubの代替サービスを発表予告。パブリックにコンテナイメージを公開可能で50GBまで無料、AWSからなら何度でもプルし放題に - Publickey
Docker Hubの無料プランにおける利用制限、オープンソースのプロジェクトは適用外にするとDocker社が発表 - Publickey
コンテナランタイムの仕組みと、Firecracker、gVisor、Unikernelが注目されている理由。 Container Runtime Meetup #2 - Publickey
GitHubによるDockerコンテナレジストリ「GitHub Packages Container registry」が正式サービスに - Publickey
「Docker Dev Environments」発表。Dockerコンテナを使ってコードと同様に開発環境をバージョン管理、共有、再現可能に - Publickey

GIGAZINE

無料のLinux向けAndroidエミュレーター「Anbox」レビュー、カーネルをホストと共有するコンテナ方式 - GIGAZINE
DockerコンテナやKubernetesクラスタをGUIで管理できる「Portainer」レビュー - GIGAZINE

GitHub

flouthoc/vas-quod: Minimal linux container runtime.
rrreeeyyy/container-internship
うたもくさんはTwitterを使っています 「Rustの自作コンテナランタイムを公開しました!🎉🎉 コンテナ界隈に入門したかもしれない。 devcontainerで実行できるのでvscodeとかを使って簡単に開発環境を構築できるのでぜひ試してみてください。 反応が良かったらゼロから作るコンテナランタイムとか書きたい。 https://t.co/wkfeYansug https://t.co/8Lc32LKk4f」 / Twitter
utam0k/youki: Rust experimental implementation of the oci-runtime
うたもくさんはTwitterを使っています 「Dockerで動かせるのでぜひぜひ遊んでみてください。そしていっぱい壊れると思います…」 / Twitter
R. ShioyaさんはTwitterを使っています 「Docker で外部からマウントしたディレクトリへのアクセス時に root とか Docker 内のユーザー ID になってしまうので困る問題,verilator の Dockerfile に模範解答があった.単にユーザー ID 指定で起動してマウントしたディレクトリに直に行けば良いだけだった・・・ https://t.co/JhFXsbognf」 / Twitter
verilator/ci/docker/run at master · verilator/verilator
R. ShioyaさんはTwitterを使っています 「あらかじめ内部にユーザーを作っておいて後から外部のユーザーと ID を同期させるとか考えるから話がややこしいのであって,ユーザーもホームディレクトリも作らずいきなりユーザー ID 指定でマウントしたポイントから起動すればいいだけだったわ・・・」 / Twitter

infoQ

Dockerがイメージの有効期限の適用を一時停止し、サブスクリプションプランを発表
Docker Hub公開イメージ400万の半数に重大な脆弱性が見つかる
Sysdig: コンテナセキュリティのシフトレフトとDocker利用の減少
Docker Engine 20.10リリース:cgroups v2とデュアルロギングをサポート
Docker、AWS ECSおよびMicrosoft ACI用Composeのオープンソース化を発表
悪意を持ったコンテナイメージを直接ホスト上に構築する攻撃手法が明らかに
Compose仕様コミュニティに関するQ&A
AWS App Runnerについて - AWSコンピュータサービスVPのDeepak Singh氏とのQ&A

Zenn

Docker 20.10のリリースノートを眺める

Twitter

R. ShioyaさんはTwitterを使っています 「今まで Docker を使ったことなくて触ってみたのだけど,とりあえずクロスコンパイラを中にいれて外部ディレクトリをマウントしてポータブルなコンパイラを… というのが内部のユーザー ID と外部の ID を動的に一致させるきれいな方法がなくていきなりつまずいた」 / Twitter
R. ShioyaさんはTwitterを使っています 「Mac だとなんか勝手に外部のユーザー ID の権限に変換してくれるみたいだし,Windows も大丈夫くさいのだけど,Linux は内部の ID のままの権限で書き込むようで,結構大事なところだと思うんだけど挙動が揃ってなくていいんだろか」 / Twitter
Akso de la MalbonoさんはTwitterを使っています 「ホストのディレクトリを bind mount して Docker コンテナ内から書き出したファイルをローカル側から見ると owner が root になることに対する怨念が蓄積していくことで世界は急速に滅亡の道を辿っている.」 / Twitter
FadisさんはTwitterを使っています 「@Cryolite 雑要約: その問題を解決するためにいくつかの方法が提案されてきたが、バニラカーネル入りを果たした物はまだ無い https://t.co/XJSKVk0VpH」 / Twitter
mumumuさんはTwitterを使っています 「FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds [NSDI '19] コンテナから,Portabilityを保ったままやRDMAを使うために,仮想的なRDMAモジュールが実際のRDMAをinterceptする.その際のメモリ構造をどうするか(ポインタの意味の扱いや性能劣化防止)といった問題に対処」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「コンテナの中でさらにnamespace使ってリソース制限するのって可能なのかしら」 / Twitter
神速さんはTwitterを使っています 「フロントエンドに限らず、開発環境でDockerを使わない方が速いのは、それはそう。 Dockerを使うのは日常の開発速度じゃなくてコントリビュートの敷居を下げる(=開発環境の初期構築を早くする)必要があるかどうかの違いだと思ってる。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そうなんだけど、ディスクが余った &amp; capability が制限できるようになった &amp; overlayfs が使えるようになった、の3要素が揃ったからこそ、ようやく使い物になったというのもあって」 / Twitter
Kazuho OkuさんはTwitterを使っています 「linux、一時期はサーバOSとしての「マインドシェア」あったけど、最近は「コンテナのランタイム」であってホストOSなんか気にしなくなりつつイメージ」 / Twitter

OCI Distribution Specification v1.0 - Open Container Initiative
opencontainers/distribution-spec: OCI Distribution Specification
About · Container Security Book
とほほのDocker入門 - とほほのWWW入門
ASCII.jp:Windows 10にはコンテナーがいっぱい (1/2)
第47回 非特権コンテナの可能性を広げるseccomp notify機能:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
日本と世界のDockerコミュニティ
podman docker 違い - Google 検索
podman - Google 検索
LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術:連載|gihyo.jp … 技術評論社

メモリバルーニング

メモリバルーニング【仮想化】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
メモリ (バルーン)
ESXiでのバルーニングはいつ起こるのか - Qiita
メモリのバルニーングについて - NETWORK ENGINEER BLOG
VMware ESXにおけるメモリ管理(8) - バルーニング - Simple is Beautiful
仮想化におけるメモリー管理テクニック | 仮想(VMware & Hyper-V)/クラウド・エンジニア技術ブログ
メモリバルーニング(メモリの動的追加) – VirtualBox Mania
VMwareの監視を始めてみませんか - SiteScope技術情報 | アシスト
Linuxエンジニア日記 VMware ESXのメモリバルーニング
ゲスト OS の物理メモリが大量に使われている
5.2. クラスターのタスク Red Hat Virtualization 4.1 | Red Hat Customer Portal
メモリ (バルーン)
Dynamic Memory使用時に仮想マシンでは何がおきているのか / 開発者向けブログ・イベント | GMO Developers
macos — バルーニングOSX kernel_taskと有線メモリ使用量を診断する方法は?
バルーニングOSX kernel_taskと有線メモリ使用量を診断する方法は? | MACOS 2021
Kazuho OkuさんはTwitterを使っています 「paravirt、メモリバルーニングがあるようにタスクバルーニングもあればいいのに(意訳: VMで並列ビルドしているせいでTwitterが重い)」 / Twitter

/var/log/hdk.log

日記 (2014 年 4 月中旬)
日記 (2014 年 4 月下旬)
日記 (2014 年 4 月下旬)
日記 (2015 年 1 月下旬)
日記 (2015 年 2 月上旬)
日記 (2015 年 2 月上旬)
日記 (2015 年 10 月上旬)
日記 (2016 年 12 月下旬)
日記 (2017 年 1 月下旬)
日記 (2017 年 1 月下旬)

blog

サーバレスの次は「ストレージレス」の実現へ。NetAppがストレージレスを実現する新サービス「Spot Storage」を発表 - Publickey
KVMのなかみ(KVM internals) - るくすの日記 ~ Out_Of_Range ~
https://www.kernel.org/doc/Documentation/virtual/kvm/api.txt
KVMみたいなハイパーバイザを作った
「なぜか最初のDHCP DISCOVERに返信がこない」バグ
仮想マシンのメモリを、ネットワーク経由でほかのサーバから拝借して増やせる「VMware Cluster Memory」、VMwareが開発中 - Publickey

スライド

Hypervisor.framework(HVF)の中身 - Speaker Deck

Wikipedia

仮想化 - Wikipedia
仮想機械 - Wikipedia
ハイパーバイザ - Wikipedia
x86仮想化 - Wikipedia
インテル バーチャライゼーション・テクノロジー - Wikipedia
LPAR - Wikipedia
PPAR (曖昧さ回避) - Wikipedia
PowerVM - Wikipedia

GitHub

intel/haxm: Intel® Hardware Accelerated Execution Manager (Intel® HAXM)
bao-project/bao-hypervisor: Bao, a Lightweight Static Partitioning Hypervisor
jovanbulck/0xbadc0de: A Tale of Two Worlds: Assessing the Vulnerability of Enclave Shielding Runtimes
ARM向け自作ハイパーバイザーT-Visorを公開しました | 己の不学を恥じる

Zenn

IOMMUについての調査
EPTについて
ちょっと詳しいEPT
割り込みと仮想化について
VMMとコンテナの歴史とか

Qiita

めくるめくLinuxカーネルじゃないLinux実装の世界 - Qiita
VirtualBoxの仮想マシンの時計がずれるのを防ぐ - Qiita
ハイパーバイザを作ってみた - Qiita
Windows Hypervisor Platform (WHP) の使い方 - Qiita
BitVisor の IOMMU の話 - Qiita
VT-xとHyper-VとVirtualBoxの関係についてのメモ - Qiita

Twitter

histric-1

ぬるぽへさんのツイート: "あとあれですね、ファイル共有とメモリの割り当てだけは鬼門なんだけどwsl2はどうするんだろ、前者は9pで普通にsharedやるってちらっと見たけど後者は?hyper-vと同じhot plugで削除はホストOS側から無理やりスワップ?"
るくすさんのツイート: "単純な興味なんですけど、メモリ割り当てが鬼門になる状況ってどういう時があるんですか? ゲストがOS程行儀よく振る舞ってくれない故ですかね… "
ぬるぽへさんのツイート: "今回はゲストが本物のlinuxカーネルなので、wsl1と違って一度linux側に割り当てたメモリを解放後にホストに返すのがゲストにだいぶ手を加えないと難しいのでは?という… "
るくすさんのツイート: "なるほど。恐らくXenのVMコントロールチャンネルみたいな機構があるのかなと思いますが、いずれにせよ多少の準仮想化は必要になるでしょうね MSがこれからオープンにすると言っているオレオレLinuxパッチはその手のドライバかと… "
ぬるぽへさんのツイート: "ですかねー、まぁやる気とリソースさえあればやればいい話っすからね… "
るくすさんのツイート: "MSのパワー半端ないすね… "
SODA Noriyukiさんのツイート: "これって、linux/drivers/hv/hv_balloon.c にある Hyper-V 用 balloon ドライバでは機能が足りないって意味なんでしょうか?もしそうだとするとどのあたりが足りないんでしょう?… "
ぬるぽへさんのツイート: "実は良いかもしれませんがあまりうまく行った思い出がなく言及し忘れてました... 4年くらい前にhyper-vを使ってた時、バルーニングは全然メモリをホストに返てくれなかった思い出があります(数百MBくらいしか返してくれなかった) 今の状況が改善していればまんま動いてくれるかもしれません… https://t.co/xedpDkniEz"
SODA Noriyukiさんのツイート: "なるほど、ありがとうございます!… "
品川 高廣さんのツイート: "Technion 相変わらず頭のおかしいことやってるなぁ(SMTを使ったNested Virtualizationの高速化: https://t.co/eg0fAMv8Ac)。低レイヤ大好き企業だな。… "
Using SMT to accelerate nested virtualization
hrk先生さんのツイート: "次はイスラエルのテクニオンから。SMTを使ってネストされた仮想マシンを高速化する。Hyperviser+VMon VM of cloud environment, etc. 下から、Host Hypervisor, Guest VM, Nested VM etc. VMどうしのスイッチが増えるOverheadを押さえるためSMTの同時実行を使う。"
hrk先生さんのツイート: "ただアプリが全コアをフルに使うならばコンテクストスイッチの機会が増え、結局オーバーヘッドの減少が限定される。それを解決するため、SVT(実行は1本だがコンテクスト多重をする)を提案。凄くあたらしくはないが、良く考えられている良い結果に見える。ただHWを改造するので現実性はない。"
Takashi KawasakiさんはTwitterを使っています: 「WindowsでほぼHyper-Vが必須コンポーネントになってしまったので、VMwareもVirtualBoxも使えなくなってしまって、実のところ従来よりも不便になっているのは事実なんだよなぁ。金で解決できない不便さ。」 / Twitter
Takashi KawasakiさんはTwitterを使っています: 「@kthrtty Hyper-V、使いにくい上に機能も足りないですが、仕方がない部分もありますよね。」 / Twitter
だよもんフレンズは転職したいさんはTwitterを使っています: 「@masaru0714 @n12i @BsdHacker 仮想環境はXenとかでも同様に、ユーザドメインのOSがLinuxでも*BSDでも同様に、時刻が狂いますね。倍速で遅れたりするのでntpdで同期が間に合わない。性能測定でtimeコマンドが信用できなくて困る。」 / Twitter
FadisさんはTwitterを使っています 「ハイパーバイザ型のVMでコンソールから電源を落とすだけの為にゲストのlinuxがACPIイベントを正しく処理してユーザ空間のacpidに投げて、ってやるのアホっぽいって事で、電源ボタンのイベントだけを拾ってinitに直接シグナルを投げるtiny power buttonドライバが出来たらしい https://t.co/ooGrKrrhfi」 / Twitter
Linux 5.7 Getting A "Tiny Power Button" Driver - Phoronix
[PATCH 0/2] ACPI: Tiny power button driver - Josh Triplett
retrageさんはTwitterを使っています 「Nabla Containers触ってたときに思ったけどコンテナでもプロセス生成以外にいろんなところが走るので結構遅いんだよね。runncだとコンテナイメージからISO作ったりしてるし」 / Twitter
だんぼーだよさんはTwitterを使っています 「結構誤解されているぽいですが、最近のハードで Windows 10 を動かしている場合、CPU から見た OS は Hyper-V のハイパーバイザーで、Windows 10 は Hyper-V の上にいることが多いです。意識していないと思いますがセキュリティのため仮想化されています。msinfo32 を昇格して実行すると確認できます。 https://t.co/4g1RgKDjID」 / Twitter
まちカドおるみんさんはTwitterを使っています 「1960 年代から 2020 年までの仮想化の歴史と分類と特徴をまとめた最高のサーヴェイ論文が 5 月に出たのでみんな読もう #arm_study &gt;&gt; The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers: ACM Computing Surveys: Vol 53, No 1 https://t.co/2aW7emmj0i」 / Twitter
The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers: ACM Computing Surveys: Vol 53, No 1
suzakiさんはTwitterを使っています 「@kotatsu_mi ACM Computing Surveysは有料ですが、同じ著書によるarXiv版があります。こちらはPDFが無料。 The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers https://t.co/raeoWNkaGK ちゃんとJournal referenceにComputing Surveysが書かれています。」 / Twitter
[1904.12226] The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers
suzakiさんはTwitterを使っています 「「めくるめくLinuxカーネルじゃないLinux実装の世界」 https://t.co/a0ZnkgGUGJ カーネル/マイクロカーネル/ライブラリOSのAPI互換、市スコールエミュレーション、アプリケーションレベル互換の話。 TEEのABIの脆弱性を解析したA tale of two worlds[CCS19]を思い出した。 https://t.co/h6IR1xjRmT」 / Twitter
Shinji KonoさんはTwitterを使っています 「VMの中でVMを上げるのは初期に研究があって、sensitive instructions をすべて実装とか言う条件があれば良い。当たり前だが、それを書くのが論文。実際にはCPUがそれようの機能を持ってるかどうかが大きかった。なくてもなんとかしてたが。」 / Twitter

@oshibori_vmm

histric

histric-1

おしぼりさんはTwitterを使っています 「CPUIDの[bit5]を調べてVMXがEnableなことは確認できた。その後cr4のvmxeビットを1にしてvmxonして例外発生してないが、これはOKなのだろうか。vmxonしてるかどうかを示すフラグとかあれば良いんだけど。」 / Twitter
おしぼりさんはTwitterを使っています 「0x1F0番portへのioハンドリングできた。 (つまりin命令を正常にハンドリングできるようになった) xv6のkernelとxv6.img をhexdumpしてバイナリ見まくった。たのしー。」 / Twitter
おしぼりさんはTwitterを使っています 「あ、ちょっと間違い。0x1F0番目のread commandが動くようにしただけなので、ioハンドリングというか本当にin命令が動くようにしただけ。(write commadはまだなので。)」 / Twitter
おしぼりさんはTwitterを使っています 「これをやる前は.imgの構造について全然理解してなかったけど、hexdump -s 512 -n 4 -C xv6.imgしてkernelのELFファイルのマジックナンバーを見つけたのは結構感動したし理解が深まった気がする。」 / Twitter
おしぼりさんはTwitterを使っています 「理解も何もただのバイナリだけど。」 / Twitter
おしぼりさんはTwitterを使っています 「mmioはバイナリをデコードしてオペコードとオペランドを取り出してエミュレートしなけゃダメっぽい。stosb命令でこれが発生している。」 / Twitter
おしぼりさんはTwitterを使っています 「mp floating pointerのlapic addresからmp configuration tableを参照してlapicのmemory mapped adressをゲットする、というのがxv6のマルチプロセッサ初期化処理で最初にやってること。」 / Twitter
おしぼりさんはTwitterを使っています 「kvmのAPIC Virtualizationではゲストのlapic 物理アドレスへのアクセスをVMCS経由で予め用意した仮想的なlapicアドレスへリダイレクトする。VMExitが発生しないためオーバーヘッドが小さくなる。」 / Twitter
おしぼりさんはTwitterを使っています 「というのは分かったが、lapic addressにはそもそも何が置かれているのか、その中身もkvmが初期化してくれるのか、書き込み、読み込みのインターフェースはあるのか、みたいな所をさらに調べないといけない。」 / Twitter
おしぼりさんはTwitterを使っています 「ちなみにこれは確保したゲスト用メモリサイズがxv6のメモリレイアウトで必要になるサイズ(4G)よりも小さかったので範囲外のメモリアクセスがMMIOとして認識されてただけというオチ」 / Twitter
おしぼりさんはTwitterを使っています 「ホスト仮想アドレス→ゲスト物理アドレス→ゲスト仮想アドレスと辿る必要がありちょっと混乱するな。ゲストはIdentity Mappingにしてくれというお気持ちになる。(そもそもゲストのメモリ仮想化手法が常に既知とは限らないので、ゲストに割り当てたメモリへの書き込み自体KVMインターフェースを介さずに」 / Twitter
おしぼりさんはTwitterを使っています 「やるべきではないんだろうな。」 / Twitter
おしぼりさんはTwitterを使っています 「とはいえSeaBIOSを動かすのちょっと面倒だしなぁ。でもframeBufferとかまでこちらで仮想化する手間を考えるとちゃんとBIOSから起動させた方が早い気もする。」 / Twitter
おしぼりさんはTwitterを使っています 「KVMのAPIドキュメントが結構overview的な範囲しか網羅してなくて、実際にコード読まないと厳しい気がしてきた。」 / Twitter
おしぼりさんはTwitterを使っています 「SeaBIOSの仕様調べるの重いなぁ LAPICのエミュレート飛ばして動かせるか考えてみるかぁ( ˙-˙ )」 / Twitter
おしぼりさんはTwitterを使っています 「mmioを一旦後回しにしてuartを動かすようにした。 とりあえず外部ファイルに「xv6...」を出力するところまではできた。(qemuみたいに別ウィンドウを出してそこにconsole出力させたいのだけど、やり方がわからない)」 / Twitter
おしぼりさんはTwitterを使っています 「xv6(のmmioを完全に排除してシングルコア前提に書き換えたやつ)が自作VMMが動かすVM上で動いた。 まずは画面出力しないとな…。」 / Twitter
おしぼりさんはTwitterを使っています 「最終的にはちゃんとlsなどのコマンドが実行出来るようにして、かつSeaBIOSから既読させるようにしたい。」 / Twitter
おしぼりさんはTwitterを使っています 「mmioを機能させるには、EBA(一部)を正確にエミュレート or SeaBIOSを動かすのどちらかが必要なんだけど、今のところ前者の方が良さげ。(SeaBIOSの中身を知らなすぎる)」 / Twitter
おしぼりさんはTwitterを使っています 「EBDAの間違い」 / Twitter
おしぼりさんはTwitterを使っています 「とりあえずLAPICもI/O APICもBDAから取ってきてることはわかった。 1. モックで動かす 2. BDAにちゃんと置く の順番でいけるだろうか…」 / Twitter
おしぼりさんはTwitterを使っています 「KVMにLAPICの仮想化支援機能があることはわかってるのだけど、VMM側で何をすればいいのかわからん。」 / Twitter
おしぼりさんはTwitterを使っています 「@tenpoku1000 そうですね、情報量はかなり少ない気がします。 以下の記事を読むと、ring0レベル(BitVisorやKVM)ではVMCSを用いたVMExitを発生させない方法 or EPT Violationによる例外フックのどちらかでAPICを仮想化してそうです。 https://t.co/yvN2NkD792」 / Twitter
今週の進捗 - bitvisor-summit-5-3-tomita.pdf
おしぼりさんはTwitterを使っています 「基本的にはKVMは全てのMMIOをフックしてるんかな。(APIの利用者がどこまでフックしたいかを事前に知る術がないため)」 / Twitter
おしぼりさんはTwitterを使っています 「メモ: qemu-kvmのコード読めばなんかヒント得られるのでは?(kvmから見たらqemuはユーザランドのVMMなので、今僕がやっているようにAPIでやり取りしているはずなので)」 / Twitter
おしぼりさんはTwitterを使っています 「ソフトウェア割り込みはin-kernelの割り込みコントローラでハンドリングされるのでVM Exitしないっぽい。 (user-spaceで割り込みコントローラを独自エミュレートしたい場合は指定のAPIを叩いてKVMにそれを伝えればOK)」 / Twitter
おしぼりさんはTwitterを使っています 「問題はPITだ…。 デバイスをKVMに作る時に設定を渡すのだけど、どんな値を渡せばいいのかAPIドキュメントを見てもさっぱりわからん。」 / Twitter
おしぼりさんはTwitterを使っています 「タイマー割り込み動いた… 嬉しすぎる……!!」 / Twitter
おしぼりさんはTwitterを使っています 「色々と悩んで調べた結果、「LAPICとIO APICのbase addressを正しく設定すればVM Exitするまでもなくkvmがよしなにやってくれる」が答えだったのはちょっと残念だが…。」 / Twitter
おしぼりさんはTwitterを使っています 「まだ不備はあるものの、とりあえず内部割り込みと外部割り込みを動かすことは出来た。vmmからkvmに割り込みを依頼する方法があるはずなので、それを使ってデバイスアクセスの完了を通知する割り込みとかを実装できる気がする。」 / Twitter

histric-2

おしぼりさんはTwitterを使っています 「最終目標がシェルを動かすことなので、そのために必要なことを整理しよう。」 / Twitter
おしぼりさんはTwitterを使っています 「ioapicについて理解が進んだ」 / Twitter
おしぼりさんはTwitterを使っています 「タイマー割り込みが1回だけ動いているので、『LAPICは正常なのでPIC/IOAPICからの割り込みの受信は行えていて、PIT -&gt; PICへ割り込みが送られているので一度だけ割り込みを受信するけどIOAPICによるEOIの書き込みが失敗しているので2回目以降は割り込みが発生しない』なのか?」 / Twitter
おしぼりさんはTwitterを使っています 「EOIが正しく書き込まれていない事を考えると、やっぱりIOAPICへのmmio全般が失敗している気がする。」 / Twitter
おしぼりさんはTwitterを使っています 「ちょっと勘違いしていた。xv6ではlapicwriteを使ってtrap内でEOIを書き込んでいるので、lapicへの書き込みが失敗している可能性を考えなくてはいけないのか。 (lapicへの書き込みとioapicへの書き込み, 読み込みあたりが正しく動いていない気がする)」 / Twitter
おしぼりさんはTwitterを使っています 「kvmのmmioをハンドリングしている部分を読まないとわからないな。lapicもioapicもin-kernelでエミュレートするならこちらからすることはほとんどないと思っていたけど、何かしら設定しないといけないのかも。」 / Twitter
おしぼりさんはTwitterを使っています 「&gt;KVM emulates 82093AA datasheet (with in-kernel IOAPIC implementation) which doesn't have EOI register naruhodo」 / Twitter
おしぼりさんはTwitterを使っています 「kvmのコード読むめっちゃ学びがある。(最初からAPI仕様書に書いて欲しいけど)」 / Twitter
おしぼりさんはTwitterを使っています 「r = kvm_pic_init(kvm); if (r) goto create_irqchip_unlock; r = kvm_ioapic_init(kvm); if (r) { kvm_pic_destroy(kvm); goto create_irqchip_unlock; } ??????」 / Twitter
おしぼりさんはTwitterを使っています 「なぜdestroyするのだ…」 / Twitter
おしぼりさんはTwitterを使っています 「しかもこの後irq_routingを設定するとioapicもdestroyしてる」 / Twitter
おしぼりさんはTwitterを使っています 「お、ioapicのredirection tableは設定出来ている。(でもベクタ番号が32~55の24個になっている) ベクタ番号は0から24じゃないのかな」 / Twitter
おしぼりさんはTwitterを使っています 「0から23、だ」 / Twitter
おしぼりさんはTwitterを使っています 「execの中ののnameiの中のnamexの中のilockの最後の方でpanicしてる。 そもそもsuper blockの情報を見るとinodeの数が0とかになってるのでそこからおかしいのか?」 / Twitter
おしぼりさんはTwitterを使っています 「どうやらディスク読み込みを通知する割り込みが機能していないみたい。」 / Twitter
おしぼりさんはTwitterを使っています 「IOAPICをuser-spaceでエミュレートしないといけない気がしてきた。 どう頑張っても今使っているAPIだとPICを一緒に作っちゃうので外部割り込み出来ない。(MSIとかは分からないけど)」 / Twitter
おしぼりさんはTwitterを使っています 「ioapicのエミュレートを自分でやる場合はPITをin-kernelで作るか検討しないといけない。」 / Twitter
おしぼりさんはTwitterを使っています 「もはやLAPICをin-kernelでやる意味を見いだせなくなりつつある…。 user-spaceに作るかぁ…。」 / Twitter
おしぼりさんはTwitterを使っています 「いい感じに割り込みをpendingしておく仕組みさえ作れば普通に動作する気はする。」 / Twitter
おしぼりさんはTwitterを使っています 「in-kernelなLAPICを引退します」 / Twitter
おしぼりさんはTwitterを使っています 「とりあえず割り込みのエミュレートが上手くいってユーザプロセスが動くようになったらブログ書きたい。」 / Twitter
おしぼりさんはTwitterを使っています 「雑にLAPICをuser-spaceでエミュレートした。」 / Twitter
おしぼりさんはTwitterを使っています 「PITもエミュレートしないといけないやんけ(絶望)」 / Twitter
おしぼりさんはTwitterを使っています 「とりあえずuser-spaceから外部割り込みをinjectしてxv6のtrap(割り込みハンドラ)を呼ぶことに成功した。」 / Twitter
おしぼりさんはTwitterを使っています 「xv6のpanicもちゃんと消えた。」 / Twitter
おしぼりさんはTwitterを使っています 「uartのエミュレートもやる事はわかってるので後はやれば行ける気がする (今はwriteだけを前提に雑にやってるのをちゃをreadされても良いようにデータを保持すればよいはず)」 / Twitter
おしぼりさんはTwitterを使っています 「ちゃを→ちゃんと」 / Twitter
おしぼりさんはTwitterを使っています 「人に発表したりブログを書くとなると、そもそもどうやって非64bit環境向けにコンパイルされたバイナリを実行しているのかちゃんと知らないといけない。 ホストで実行は普通に無理なはずなので、qemu使ってるのかな…。」 / Twitter

histric-3

おしぼりさんはTwitterを使っています 「自分とは全く違うやり方だったのでとても参考になる。」 / Twitter
かずみんさんはTwitterを使っています 「はてなブログに投稿しました #アドベントカレンダー2020 ホスト型ハイパーバイザー の作り方 part.1 - KazuminEngine https://t.co/TnDIJAulWt」 / Twitter
ホスト型ハイパーバイザー の作り方 part.1 - KazuminEngine
エミュレーターの作り方(はりぼてOSが動く) - KazuminEngine
kazuminn/EEMU: toy Emulator to hariboteOS and xv6 and toy hypervisor
おしぼりさんはTwitterを使っています 「年末に自作VMM(と言ってもKVMを使ったホスト型)のここまでの進捗をブログに書くぞ(多分)」 / Twitter
おしぼりさんはTwitterを使っています 「せっかくなのでuserプロセスがちゃんと起動する(シェルはまだ使えない)ところまで実装したいけど、今週そこまでいけるか微妙」 / Twitter
おしぼりさんはTwitterを使っています 「割り込みの(正確な)エミュレート、難しすぎるな…。 KVM側の仕様も理解していかないと厳しそう…。」 / Twitter
おしぼりさんはTwitterを使っています 「fs.imgを正しい場所にロードすれば今の問題は解決する気がするんだよなぁ。うーん。(ファイルシステムのメタ情報などはdisk1にあって、kvmmはまだdisk0しか仮想化できていなかった)」 / Twitter
おしぼりさんはTwitterを使っています 「こいつのコードリーディングをやりたいと思っているが、「いや、まずはKVM読めよ」というもう1人の自分がいる・・・。(読んではいるけどまだまだ理解が浅い) https://t.co/oFspcpIVkh」 / Twitter
google/novm: Experimental KVM-based VMM for containers, written in Go.
おしぼりさんはTwitterを使っています 「そもそも32bit環境向けにコンパイルしたバイナリを実行しようとした場合はqemuに投げてIntel VT-xは使ってないと思ってるんだけど合ってるのかな。」 / Twitter
おしぼりさんはTwitterを使っています 「自作VMMでxv6のコマンド待ち受けらへんまで動いた。(正確には"$"を出力する所まで。その後panicする)」 / Twitter
おしぼりさんはTwitterを使っています 「コマンドの実行までいけなくとも、コマンド待機する所まではいきたいな〜っと思ってたので目標達成できた。」 / Twitter
おしぼりさんはTwitterを使っています 「うーん、lockされてちゃいけないinodeがlockされてるっぽい?」 / Twitter
おしぼりさんはTwitterを使っています 「直ったかも…?🙄 (怪しさを感じるところを直したらpanicしなくなったものの全く自分で説明できないし納得感もない顔)」 / Twitter
おしぼりさんはTwitterを使っています 「sleep内にデバック用で挟んでたcprintfを削除したらpanicしない。 何回か試したけどちゃんと再現性はある。」 / Twitter
おしぼりさんはTwitterを使っています 「ブログはまだ書けてないけど、一足先にREADMEなどをちょっと整えました。(ちゃんとリポジトリを整えるのが初めてなので、間違いやアドバイスなどあれば指定して頂けると嬉しいです)https://t.co/nBSr658PDh」 / Twitter
tomoyasuzuki/kvmm: kvmm is a type2 hypervisor that uses the Linux Kernel Virtual Machine(KVM).
おしぼりさんはTwitterを使っています 「ライセンス等はまだ自分がちゃんと理解出来ていないので、調べてからちゃんと記載するつもりです。」 / Twitter
おしぼりさんはTwitterを使っています 「実装はカスなんだけど、コードは全部main.cに書いてあるし700行くらいしかないので、kvm使いつつハードウェアエミュレーションまでやってるリポジトリの中ではめっちゃ小さくて理解しやすいと思います(可読性がい良いとは言っていない)」 / Twitter
おしぼりさんはTwitterを使っています 「動作環境はUbuntu18.04です。 他の人の環境で動かすにはxv6のパスを書き換えなくちゃいけないのはいつか直します…。(とはいえコード見れば秒で終わる修正です)」 / Twitter
ykskb/dax86: xv6-runnable x86 Emulator
おしぼりさんはTwitterを使っています 「ホストのSerial PortをVMのSerial Portへマップするにはどうしたらいいのだろう。QEMUとかが実現しているので可能なはずなんだが…。」 / Twitter
おしぼりさんはTwitterを使っています 「僕に必要なのはキーボード割り込みではなくUART割り込み+ホストとVMのSerial Portのconnectなんだ、って事までは分かった。あとは実現方法がわからん…。」 / Twitter
おしぼりさんはTwitterを使っています 「ホストのSerial Portへの書き込みは普通に出来るはずで、問題はそれをどうやってゲストのVMに繋げるかなんだよな。」 / Twitter
おしぼりさんはTwitterを使っています 「確かこれをuchanさんがサラっと言っていた気がするんだけど、ちゃんと実現方法まで聞いとけばよかったな。」 / Twitter
おしぼりさんはTwitterを使っています 「なんとなくイメージは出来たかも(?) ホストのPortへread/writeできれば、ホストからの入力をちゃんとVMの方にセットしてuart割り込み発生させればいける、気がする。」 / Twitter
おしぼりさんはTwitterを使っています 「/dev/ttyS0は見えてるのにInput/Output errorとやらが出るな」 / Twitter
おしぼりさんはTwitterを使っています 「見えてるけど setserial すると UART: unknownになるな。」 / Twitter
おしぼりさんはTwitterを使っています 「標準入力をUARTにマップしてxv6側で出力させるとこまで出来たのだけど、なぜかコマンドが実行できない。」 / Twitter
おしぼりさんはTwitterを使っています 「しばらく悩んで時間かかりそうだったらMP対応からやるかなぁ…。」 / Twitter

histric-4

おしぼりさんはTwitterを使っています 「BitVisorはvmxon_region用のメモリを動的確保しているけど、(後で修正するとしても)今はグローバル変数でいいかも。とにかくステップバイステップで進めたい。」 / Twitter
おしぼりさんはTwitterを使っています 「VT-xの有効化はcr0とcr4あたりのビット立てたりしてvmxonするだけなので、まずはvmxonで例外が投げられないことが目標だと思う。その次に仮想CPUのセットアップ、vmcsのセットアップと続くのかな・・。」 / Twitter
おしぼりさんはTwitterを使っています 「例外は全部シリアル通信でやる様にしてたのでやっぱ先にシリアル通信だろうか。一時的に例外ハンドラを書き換えればprintデバッグでも問題ないけど・・・。」 / Twitter
おしぼりさんはTwitterを使っています 「kvmが提供するAPIをつかってVMMつくる方針のほうがまだ現実味ある気がしてきたな。Intel VT-xの機能はkvmから提供されるのでエミュレートの方がメインになるけど。 (Type1をいきなりつくるのが厳しすぎる)」 / Twitter
おしぼりさんはTwitterを使っています 「Type2ハイパーバイザでまともに動くのもそんなに多くないし頑張れば新規性出せるのでは (願望)」 / Twitter
おしぼりさんはTwitterを使っています 「とても参考になる。本当にminimalって感じだ。 https://t.co/JptDUJpQOF」 / Twitter
dpw/kvm-hello-world: A minimal kvm example
おしぼりさんはTwitterを使っています 「もうちょっと大きい https://t.co/Zk1o6BolrZ」 / Twitter
kvmtool/kvmtool: Stand-alone Native Linux KVM Tool repo
おしぼりさんはTwitterを使っています 「memo https://t.co/5Wj0zkNv4i」 / Twitter
sparkler/main.c at master · shuveb/sparkler
mumumuさんはTwitterを使っています 「xMP: Selective Memory Protection for Kernel and User Space [S&amp;P '20] Data-Orientedな攻撃のMitigationというコンテキストで,VUMFUNC/EPTを活用することで細かくメモリの権限を制御(Excutable-onlyや存在するがアクセスできない)したドメインの作成・遷移プリミティブを実装」 / Twitter
まちカドおるみんさんはTwitterを使っています 「Intel VT-x/Intel VT-d/Intel EPT に対応する AMD 用語、それぞれ AMD-V/AMD Vi/AMD RVI なんだけど、いっつも後者は AMD-V までしか覚えてない」 / Twitter
まちカドおるみんさんはTwitterを使っています 「あとこれを確認しようとして、IA-64 の Intel VT 技術が Intel VT-i、SR-IOV のようなネットワーク I/F の仮想化とかそこらへんは Intel VT-c の一部、ということをさっき把握した。」 / Twitter
てらモス♋️さんはTwitterを使っています 「&gt; NIC は SRIOV 経由で VM に渡されるため、ネットワーク トラフィックがハイパーバイザーをバイパスできます。 その結果、標準の Mellanox OFED ドライバーが、ベアメタル環境と同様に HBv3 VM にロードされます。 https://t.co/CWpyJGzi8P」 / Twitter
HBv3 シリーズ VM の概要、アーキテクチャ、トポロジ - Azure Virtual Machines - Azure Virtual Machines | Microsoft Docs
おしぼりさんはTwitterを使っています 「Intelの場合VMCSへのアクセスがvmread, vmwriteなどの特権命令でしか行えないのがNested Virtualizationにおいてはつらいっぽいな。AMD だとVMCBへのアクセスは普通のメモリアクセスなのでguest hypervisorからのexit回数が段違いっぽい。」 / Twitter
おしぼりさんはTwitterを使っています 「まあ実際hypervisorのexit handlerでほぼ確実に複数回のVMCSへのアクセスが必要になるのでこれはつらい。準仮想化する or 動的バイナリ変換で通常のメモリアクセスを行う命令に変換する研究もあるっぽい。」 / Twitter
おしぼりさんはTwitterを使っています 「Software Techniques for Avoiding Hardware Virtualization Exits [USENIX ATC'12] VMExitにおける時間的なローカリティ(あるexitの近くにexitがある)を利用して、exitを起こす連続した命令をまとめることでexitの回数を減らす。面白かった。」 / Twitter
おしぼりさんはTwitterを使っています 「仮想化とバイナリ変換は結構関連の深い分野なんだなー (QEMUとかを念頭に置くとそれはそう、という気もしなくはない)」 / Twitter
おしぼりさんはTwitterを使っています 「とりあえずx86がnested virtualizationに向いていないことはわかったよ...」 / Twitter
おしぼりさんはTwitterを使っています 「キャッシュ汚染や割り込み終了時のEOIで発生するオーバーヘッドに関しては、VPIDやAPIC virtualizationである程度解決できる部分ではあるのかな。」 / Twitter
おしぼりさんはTwitterを使っています 「SDMを読んでてVMCS shadowingとVMREAD/VMWRITE bitmapなるものを知った。ちゃんと対策してきているんだなあ...(古い論文を読んでいると古い知識を仕入れたちなので、定期的にSDM読むの大事だなと思った)」 / Twitter

おしぼりさんはTwitterを使っています 「バイナリ計装でいい感じに任意の行にデバックコードを挿入する、みたいな方法とかツールないのかな。 QEMUにgdb繋いだらゆーて似たようなもんか…?」 / Twitter
おしぼりさんはTwitterを使っています 「VMMの開発をしているとVMで動かすコードの挙動を追いたいことが結構あるのだけど、KVMとかを使うType2だとKVMの提供するタイミングでしかExitできないので柔軟性が微妙な気がする。となると動かすバイナリに自体にデバッグコードを挿入してprintデバッグしたくなるみたいな…。」 / Twitter
市川 真一さんはTwitterを使っています 「@oshibori_vmm CPUID 命令(の、空き領域)をデバッグ用途で埋め込んでおけば、そのタイミングで vm_exit してくれるかもとか、思いました: KVMにおけるcpuid命令の取り扱い - 睡分不足 https://t.co/9BqJVvcKPp」 / Twitter
おしぼりさんはTwitterを使っています 「@tenpoku1000 似たようなやり方でio命令でexitさせことは簡単に出来るのですが、あくまでexitするだけでデータが渡しにくいのが悩みですね…。 ポインタを無理やり書き換えて未割り当て領域へのアクセスをmmioでexitさせる、とかは割とアリな気がします。(これもちょっと面倒な気もしますが)」 / Twitter
おしぼりさんはTwitterを使っています 「mmioでexitさせると最大8バイトまでデータを渡せるのが嬉しい。」 / Twitter
市川 真一さんはTwitterを使っています 「@oshibori_vmm CPUID 命令で渡せるのは EAX, EBX, ECX, EDX の各レジスタなので、ゲストのアドレスを渡すことは可能だと思います。(ホスト側からゲストの空間が見えるなら)データを引っ張って来れるかなと」 / Twitter
市川 真一さんはTwitterを使っています 「@oshibori_vmm 訂正:EAX と ECX ですね」 / Twitter
おしぼりさんはTwitterを使っています 「標準出力がバッファリングされてしまってうのはfflushで解決できた。 あとはユーザーの入力と同じ出力が繰り返されてしまう問題。(標準入力の値を仮想UARTにバッファリングして割り込みを起こしているけど、xv6の割り込みハンドラでも出力してしまう為)」 / Twitter
おしぼりさんはTwitterを使っています 「入力を監視してコマンド実行プロセスを起こすのも割り込みハンドラがやっているので、割り込みは必須だし値を渡さないといけないのも必須なんだよなぁ。1番簡単なのは、xv6のコードを書き換えて割り込みハンドラ内で出力だけさせないようにする。」 / Twitter
おしぼりさんはTwitterを使っています 「うん、これは理想通りの挙動をするな。本来OSがやることをホスト側でやってるのだから、OSに若干手を加えないといけないのは当たり前か。」 / Twitter
おしぼりさんはTwitterを使っています 「なんかコマンド動かないなと思ったけど、単純にコマンド用のバイナリがルートに置かれているので、新しく作ったディレクトリでコマンド実行できないな。(qemuでも同じ挙動なので仕様か)」 / Twitter
おしぼりさんはTwitterを使っています 「@t9jyc termiosが何かすらよく分からなかったので調べてみました。エコー関係の設定とはc_iflagフラグに設定するECHO,ECHOE 等のことで、今回の文脈では標準入力をエコーしないように設定すればよい、という話でしょうか?」 / Twitter
おしぼりさんはTwitterを使っています 「@t9jyc termiosも知らなかったので勉強になりました。出来るだけOS側は書き換えたくないので、このやり方でやってみます。 ありがとうございました!!」 / Twitter
おしぼりさんはTwitterを使っています 「@t9jyc c_lflagでしたね。僕の勘違いでした。」 / Twitter
おしぼりさんはTwitterを使っています 「自作VMMでコマンドによるVMの操作ができるようになった。ブレークポイント貼ったりもできます。」 / Twitter
おしぼりさんはTwitterを使っています 「今はアドレスでしかブレークポイント貼れないので、それを関数名で貼れるようにELFの解析もしていくぞ。」 / Twitter
おしぼりさんはTwitterを使っています 「VMM経由で自作OSに簡単にネットワーク機能を実装できるようにする、を次の次の目標くらいにしたい。 とりあえずはデバッグ機能やトレース機能をもう少し充実させるところから。」 / Twitter
おしぼりさんはTwitterを使っています 「プロトコルスタック自作したりvirtioに対応させたりするのは面倒すぎるので、VMMで用意した独自のレジスタへのread, writeだけでネットワーク通信できるようにする、みたいのが理想(できるかは本当にわからないので半分妄想みたいなものだけど)」 / Twitter
VMMを自作してみた - おしぼりの日常
おしぼりさんはTwitterを使っています 「VM外からゲストOSのシステムコールを呼び出してセマンティックギャップを解決するのはそれなりに一般的な手法だと思うのだけれど、lsやpsなどのコマンドの出力先を良い感じにいじらないと情報が得られない気がするな...(うまく言語化できない)」 / Twitter
Satoshi TandaさんはTwitterを使っています 「@oshiborii アンチパターンなはずです。VMM -&gt; Non VMM call out は脆弱性になります。ゲスト内エージェントがVMMに情報を送るか、VMMがメモリを解析してゲストに戻らずゲストの状況を把握するのが一般的かと」 / Twitter
おしぼりさんはTwitterを使っています 「@SatoshiTanda アンチパターンだったんですね、割とメジャーな手法だと思ってたので意外でした(どの論文もセキュリティリスク自体には触れていたので当然といえば当然かもですが...)。VMMからメモリを解析する場合、生のメモリから意味のある情報を得るのは難しかったりするのでしょうか?」 / Twitter
Satoshi TandaさんはTwitterを使っています 「@oshiborii 簡単ではないはずですが、メモリーフォレンジックの分野と重複しているので、そちらを利用することで実用レベルになっています。LibVMIが代表で、メモリーフォレンジックのフレームワークであるVolatilityと統合して動作しますね」 / Twitter
おしぼりさんはTwitterを使っています 「@SatoshiTanda LibVMIについてもちょっと調べてみます!ありがとうございます!」 / Twitter

@mumumu_vm

mumumuさんはTwitterを使っています 「Directvisor: Virtualization for Bare-metal Cloud [VEE '20] ベアメタルクラウド向けのVMMで,性能とManageabilityの両立をがんばる.高性能化のため,HW(既存手法IOデバイスが主だがこの研究はIPIやTimerも含む)を直接OSに見せる.MigrationはGuest Agentに手伝って貰い仮想HW経由で行う等工夫.」 / Twitter
mumumuさんはTwitterを使っています 「Reducing World Switches in Virtualized Environment with Flexible Cross-world Calls [ISCA '15] 現在のHWはApp-&gt;OS(syscall), VM -&gt; VMM(vmcall)などの遷移のみサポートしているが,アドレス空間と権限を一般化したWorldという単位を導入してVM1'App-&gt;VM2'OS等の遷移もサポートしようという提案」 / Twitter
mumumuさんはTwitterを使っています 「vSlicer: Latency-Aware Virtual Machine Scheduling via Differentiated-Frequency CPU Slicing [HPDC '12] VM環境でIO-boundなApp性能が低い原因の1つがVCPU Sched.であることを指摘し,より短いタイムスライスでより頻繁に動作させることでFairnessを保ちつつ性能向上」 / Twitter
mumumuさんはTwitterを使っています 「Gleaner: Mitigating the Blocked-Waiter Wakeup Problem for Virtualized Multicore Applications [ATC '14] VMMでマルチスレッドなAppを動かしたときに性能が劣化する問題のあまり知られていない原因(BWW, よく知られたLHPの双対問題)を紹介し,そのMitigation(トレードオフが厳しい)を提案している」 / Twitter
mumumuさんはTwitterを使っています 「vTurbo: Accelerating Virtual Machine I/O Processing Using Designated Turbo-Sliced Core [ATC '13] 各VMがある特定のvCPUにIO処理(IRQ Handling)を割り当て,VMMはそれらのvCPUをまとめてあるコア上で短時間(0.1ms~)でスケジューリングすることで,VMM上のIO性能改善.vSlicerの発展版.」 / Twitter
mumumuさんはTwitterを使っています 「Micro-Sliced Virtual Processors to Hide the Effect of Discontinuous CPU Availability for Consolidated Systems [MICRO '14] VMM上のIOやMultithreadなAppが遅いことは既知だが,その対処の一つとしてタイムスライスを短くすることがあげられる.その際の性能変化の様子がたくさん載っている」 / Twitter
mumumuさんはTwitterを使っています 「Preserving I/O Prioritization in Virtualized OSes [SoCC '17] 仮想環境下でIOが遅い理由として「既存のOSでうまくIO処理を*優先*していた手法が,仮想環境でうまく動作しない」から,という事実を実験的に示し,仮想環境でも十分優先度を高めるための手法xBalloonを提案.」 / Twitter
mumumuさんはTwitterを使っています 「Towards a lightweight embedded virtualization architecture exploiting ARM TrustZone タイトルの通り.組込み向けVMMの文脈でGPOSをNon-Secureで,RTOSをSecure Worldでそれぞれ動作させる.ここでのRTOSは周期タスクと割り込みさえ最優先で対応すればよくて,その思想はTrustZoneに合う気もする」 / Twitter
mumumuさんはTwitterを使っています 「XtratuM: a Hypervisor for Safety Critical Embedded Systems 航空機の安全の基準を満たす組み込み向けVMMの実装.いわゆるマイクロカーネルっぽいアーキテクチャで,「普通のOS + App」と「VMMコンポーネント」をスケジューリング. https://t.co/WqdXQMehaj」 / Twitter
XtratuM Hypervisor - fentISS
mumumuさんはTwitterを使っています 「Bobtail: Avoiding Long Tails in the Cloud [NSDI '13] EC2(のXen)におけるNWのTail Latencyの原因はNWそのもではなくNodeであることを突き止め,さらに実験で pCPUの数より CPU-boundなvCPUの数が多いと問題があることを結論づけた.Nodeの良しあしの判定方法も提案. https://t.co/DErHOv8kI0」 / Twitter
Bobtail: Avoiding Long Tails in the Cloud | USENIX
mumumuさんはTwitterを使っています 「GiantVM: A Type-II Hypervisor Implementing Many-to-one Virtualization [VEE '20] Scale-upからScale-outを目指す中で,分散OS的な「一つのOSが複数の物理マシンで動く」ことを仮想化技術を用いて実現する.Type-2なVMMで実現することで,HWサポートやデプロイが容易に. https://t.co/oks2mGCjdD」 / Twitter
GiantVM | Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
mumumuさんはTwitterを使っています 「そういえばInterfaceの低レイヤ号よんだんだけど,ハイパーバイザの話で「仮想化は,完全仮想化が必要とされることが多くあります」って記述としてどうなんだろう.組込みとかならそうなのかもだけど,クラウドでは基本的に程度の差あれ準仮想化じゃない?」 / Twitter
mumumuさんはTwitterを使っています 「Paravirtual Remote I/O [ASPLOS '16] VMExitを避けるために仮想環境IO時に共有メモリ経由で隣のコアに処理をオフロードする手法を発展させて,SRIOVでDirect-IOしたNICの先に繋がるデバイスまでIOをオフロードしたときの性能評価.性能は多少悪化するが,コスト面でアド. https://t.co/a0QJwRWuDC」 / Twitter
vrio-asplos-2016.pdf
mumumuさんはTwitterを使っています 「Analyzing the Impact of CPU Pinning and Partial CPU Loads on Performance and Energy Efficiency [CCGrid '15] 仮想環境における性能Isolationの文脈で,NUMA,SMT環境でのCPUの配置(Pinningによる)がCPU-boundなAppの速度にどのような影響を与えるかを調査. https://t.co/wa89OkaBi8」 / Twitter
Analyzing the Impact of CPU Pinning and Partial CPU Loads on Performance and Energy Efficiency - IEEE Conference Publication
mumumuさんはTwitterを使っています 「vIOMMU: Efficient IOMMU Emulation [ATC '11] タイトルどおりIOMMUをVMMがSWでエミュレーションすることで仮想化.性能を犠牲に無修正OSのDMAに関するメモリ情報等を確認することができるなどのメリット.セキュリティを差し出して性能を得るやべぇ最適化とかもやってる.https://t.co/RXO99llMZf」 / Twitter
vIOMMU: Efficient IOMMU Emulation | USENIX
mumumuさんはTwitterを使っています 「Towards Fair and Efficient SMP Virtual Machine Scheduling XenのVM間のunfairnessがper-pCPUのvCPUスケジューラによることを指摘し,モニタしたCPUの実行状況からFairnessを満たせるように各vCPUのスケジューラをフィードバックで制御.並列計算の性能劣化も防ごうとした https://t.co/njhlcHL4WA」 / Twitter
PPoPP2014.pdf

@utshina2

品川@学生/共同研究募集中さんはTwitterを使っています 「国際会議 OSDI 2020 に Rust で書いた OS の話が2つある。Theseus は全てのコンポーネント間の厳密な隔離を目指した実験的OS(単一アドレス空間、単一特権レベル、no POSIX)、RedLeaf は主にデバイスドライバ等の一部のドメインの隔離を目指した設計(POSIX subset)。https://t.co/iEzuC0zAyP」 / Twitter
OSDI '20 Technical Sessions | USENIX
品川@学生・共同研究募集中さんはTwitterを使っています 「文脈的に Bitrise → BitVisor じゃないかな。」 / Twitter
ログミーTech|エンジニア向け書き起こしメディアさんはTwitterを使っています 「[新着記事]けしからんSoftEther VPNを作ったら怒られた 登大遊氏のVPN構築ソフトを日本政府が配布停止した理由 情報科学若手の会とは、情報科学に携わる学生、若手研究者、エンジニアのディスカッションと交流の会です。NTT東日本特殊局員の登氏が政府に配布停止要請さ… https://t.co/nP3vPsaMTn https://t.co/a8s19Vp5HA」 / Twitter
けしからんSoftEther VPNを作ったら怒られた 登大遊氏のVPN構築ソフトを日本政府が配布停止した理由 - ログミーTech
品川@学生・共同研究募集中さんはTwitterを使っています 「もともとは TypeII 的な VMM も想定されていて FreeBSD をベースにする案もあったけど、私がこれでやりたいと言って2007年春頃に故山口英先生と交渉しに行った。最初は Single VM に難色を示されたけど、最終的には認めていただいて誕生したのが今の BitVisor の準パススルー型アーキテクチャ。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「なので登さんが VPN モジュールを作った頃は、まだ VMM のアーキテクチャは決まっていなかった。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「この間の BitVisor Summit 9 で話すネタが無くて、BitVisor の歴史をしゃべったら、研究室の学生ですら初めて知った話だったらしく、時代の流れを感じた。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「どこかに BitVisor の歴史を記録としてまとめて書いておいた方がいいのかな。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「そういえば私の博士課程の研究は「細粒度保護ドメイン」というプロセス内に保護ドメインを作る話だったんだけど、私の教え子ですら保護ドメインというOSの教科書に載ってる用語を知らなかったりするので、時代の流れと指導力不足を感じる。」 / Twitter
品川@学生・共同研究募集中さんはTwitterを使っています 「BitVisor の「保護ドメイン」は、一般名詞を固有名詞的に使っている形です。」 / Twitter

retrageさんはTwitterを使っています 「VT-xとか使ったシステムのCI、どうするのがいいんだろうか。普通のCIサービスだとNested Virtualizationに対応してなさそうだし自前でCI runnerを持っておく必要がありそう」 / Twitter
FadisさんはTwitterを使っています 「Bareflank: ハイパーバイザは仮想マシン以外にも色々な応用が可能だけど、既存の実装は仮想マシンを念頭に置いている事が多く、それ以外の応用はまず自力でハイパーバイザを実装することから始まりがちなので、部品として使えるハイパーバイザを作った、というC++ライブラリ https://t.co/PDjXx5LjeB」 / Twitter
Bareflank/hypervisor: lightweight hypervisor SDK written in C++ with support for Windows, Linux and UEFI
FadisさんはTwitterを使っています 「Linux 5.13にVirtIO Bluetoothのドライバが入りたがっているらしい。VirtIO Bluetoothを使うとホスト環境から見えるBluetoothデバイスをゲスト環境からペアリングできるようになる https://t.co/p0kggoBZz1」 / Twitter
VirtIO Bluetooth Driver On The Way To The Linux Kernel - Phoronix
Kazuo MoriwakaさんはTwitterを使っています 「@fadis_ low latencyな実装を求めるとvirtioほしくなりそうですね。BTはリアルタイム用途も狙ってるらしいのでvirtio生やすのも納得……。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「paravirt、メモリバルーニングがあるようにタスクバルーニングもあればいいのに(意訳: VMで並列ビルドしているせいでTwitterが重い)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「DMAとキャッシュ関連の話、IRIXでDMA転送完了しても一瞬だけ旧CPUキャッシュが見える問題を思い出したり。 (=ページ境界に揃えずDMA転送というミスが原因だった) https://t.co/cTjPt1CsNu」 / Twitter
marsee101さんはTwitterを使っています 「@ciniml 当たりです。 ありがとうございました。 ハードウェアDMAを行う前はXil_DCacheFlush();ですが、ハードウェアDMA後はXil_DCacheInvalidate();でした。 最初はキャッシュに書いた値をメモリにフラッシュで、次はメモリに書かれたので、キャッシュをインバリデートしてメモリをキャッシュに読み込むですね」 / Twitter

ページャ/TLB/キャッシュ管理

その他

GIGAZINE

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まだこの手の気休めソフトが存在するのね。 https://t.co/OU7VMY9AZN (再利用が期待されない)バックアップ的なコピー(=ファイルキャッシュ)で他の仮想ページ追い出さない、といった「事前に汚さない」機能にしないと意味がないのだけれども。」 / Twitter
放置しておくだけでメモリの使用を激減させてくれるフリーソフト「Reduce Memory」 - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「4~16KB単位で読んでの比較とか、あまり意味ない。 I/Oサイズ1MB以上で、Direct I/O + Async I/O でユーザバッファに直接DMA転送するのが一番速い。 (Async I/O で重畳できない時は 4MB以上が望ましい) https://t.co/wITXWqQPrF」 / Twitter
rryu🕳さんはTwitterを使っています 「まさかのAVX。mmapの方が速いのはバッファ等への余計なコピーが発生しないとかだと思っていたが… / “プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE” https://t.co/qnNovvTeGU」 / Twitter
プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「同じPCIブリッジにぶら下がったNVMe間でダイレクト転送(PCI P2P DMA)という実験的パッチの話。 https://t.co/thzgoKJgCi https://t.co/jOdFaW1kz6」 / Twitter
Experimental Linux Patches Allow User-Space Peer-To-Peer DMA Between NVMe Drives - Phoronix
PCI Peer-to-Peer DMA Support — The Linux Kernel documentation

セキュリティ・キャンプ2016で使用した、熊猫のテキストを公開しました。: 熊猫さくらのブログ
The OOM CTF
Implementing cooperative multitasking in Rust
pmap ソースコードリーディング
pmap でプロセスのメモリマッピングについて調べる
DSAS開発者の部屋:最近のPython-dev(2017-08)
Chapter 10. Linux® Binary Compatibility
2010年10月7日 Linuxバイナリ互換機能の仕組みの紹介:FreeBSD Daily Topics|gihyo.jp … 技術評論社
2012年5月31日 Linuxバイナリ互換機能にDTrace:FreeBSD Daily Topics|gihyo.jp … 技術評論社
フルボッコのリソース制限値(limit)の修正をした話 | Developers.IO
【翻訳】goroutine の仕組み - まるまるこふこふ
FastContainerアーキテクチャ構想 - 人間とウェブの未来
実行環境の変化に素早く適応できる恒常性を持つシステムアーキテクチャと今後の課題 - 人間とウェブの未来
Rump Kernelのreadが遅くてハゲかけたので調査 - livaの雑記帳
第二回 #wsa研 でHTTPリクエスト単位でコンテナを再配置する仮想化基盤の高速なスケジューリング手法について発表しました - 人間とウェブの未来
次期Windows 10、タスクマネージャーのメモリ報告が変更 - PC Watch
プロセスイメージ (Sun Studio 12: パフォーマンスアナライザ)
セキュリティキャンプと自作Slab allocator SLOBA - 空き地の資料室
atsisy/sloba: Simple and fast slab allocator using slob interface
こんなところに増えたコアが効く ~【2018年度版】マルチコアCPUはこう使え! - PC Watch
詳解xv6 Page tables 2
x86_64での再帰ページマッピング - Qiita
自作OSのから見たメモリ管理概論 - Qiita
自作OSにDemand Pagingを実装した話 - むむむ日記
xv6-riscv のメモリ管理方法 - daikimiuraの日記

キャッシュ

false sharing

Livaさんのツイート: "anderson lockの論文実装だとx86の64Bのキャッシュラインに乗ってしまって、false sharingが起こるという話の事 だね! #liva_notebook https://t.co/FL6aqBf1Su"
slankdevさんのツイート: "True/False SharingとC++について https://t.co/JlMlZT4kqg #liva_notebook #slankdev > . @liva_jy 氏の排他制御の話が参考になった"
C++1z false sharingとtrue sharingの制御 - Faith and Brave - C++で遊ぼう
今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
false sharingの整理 - yoskhdia’s diary
C++1z false sharingとtrue sharingの制御 - Faith and Brave - C++で遊ぼう
Ryzen1800xでfalse sharing - Qiita
とみながたけひろさんのツイート: "フォールスシェアリングですね。単純に見えるデータ構造ほど、意外なはまりがあってつらい(ポインターのサイズが変わってて違う環境で激しく遅くなった、とか)… "
マルチスレッド開発ガイド: 3.4 スレッド間のフォルス・シェアリングの回避と特定 | iSUS

フラッシュと無効化

Tips IA32(x86)命令一覧 Wから始まる命令 WBINVD命令
Tips IA32(x86)命令一覧 Iから始まる命令 INVD命令
Linuxメモ : キャッシュ操作(Invalidate、clean、flush)の意味
用語の意味を教えてください。 Cache Flushといった時、それによ… - 人力検索はてな
tsujamin/comp3300-cache-disable-kmod: cpu cache disabling kmod for linux ~3.8
[SOLVED] Disabling CPU caches
Linuxでユーザー空間で動作するプログラムとハードウェアがメモリを共有するためのデバイスドライバ(キャッシュのフラッシュと無効化を追加) - Qiita
先日U-Bootに投稿したARMv7MのLinux起動時にデータキャッシュを無効にするパッチについての備忘録 - /home/tnishinaga/TechMEMO
ストリーミング SIMD 拡張命令 2 のキャッシュ操作
x86 に 3 オペランド論理演算命令と新キャッシュフラッシュ命令が追加 - 教育は参考ブログ

DMA

DMAとキャッシュの関係 | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
DMA対応と言われたら(2) | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
夜でもアッサム: [クイズ]DMAをする時に、いつcacheを操作するか

Ryzen

satさんのツイート: "Ryzen1800xは - 8コア16スレッド - 4コアごとにCCXという一塊になってる - L1~L2キャッシュはコアごとに持つ - L3はCCXごとに持つ と、PC用の石としては比較的複雑な構成です。そいつらの性能を事細かに測ってた途中に天使が降りてきて「それ本に要るんか、締め切りいつや」と言われたのでほぼ捨てた"
まさみさんは語りたいさんのツイート: "L3をCCXごとにまとめるところがAMDらしいなあ。IntelだとL3は全部共有が基本だし。… "
satさんのツイート: "こういう構成のおかげで初心者用の本に「CCX」という単語が載ってます。でないとL3なんでこんなところで切れてるの、という説明ができなかったから… "
まさみさんは語りたいさんのツイート: "L3の影響まで測ってるんだ・・・・… "
Fomalhaut Weisszwergさんのツイート: "同人誌として出版というのはいかがでしょうか… "
satさんのツイート: "そのうちやるかもです。一般に売れなさそうなのとか、売れるかわかんないものを、これまで同人誌に投入してます… "

ACPI

まさみさんは語りたいさんのツイート: "ACPIにはPPTTというのが入って、これでキャッシュ階層を定義できるらしいぞ。 https://t.co/NMaZUdHMnd"
[RFC,3/4] ACPI/PPTT: Add Processor Properties Topology Table parsing - Patchwork

blog

キャッシュは諸刃の剣 | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
beagleboard を触ろう - CPU キャッシュ:組み込みエンジニアの週記:So-netブログ
Linuxエンジニア日記 ページキャッシュの効率化
ファイルアクセスを高速化する方法を調べてみた - a9bのブログ
CPU とキャッシュのはなし - graphics.hatenablog.com
ADCX, ADOX, PERFETCHW, RDSEED 命令が追加 - 教育は参考ブログ
Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
perf statでL1,L2(,L3)キャッシュミス測定 | 俺とお前とlaysakura
2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog

Qiita

Linuxのdrop_cachesにwriteした時の動きを追う - Qiita
キャッシュメモリの恩恵をてっとりばやく体感する - Qiita

Wikipedia

キャッシュメモリ - Wikipedia
Windows SuperFetch - Wikipedia
Windows ReadyBoost - Wikipedia

Twitter

電力

とみながたけひろさんはTwitterを使っています: 「最近のタブレットやノートPCは動画再生時間とかで電池の持ちが書かれてるけど、CPUはほぼ負荷なし、限界まで最適化されてしまったHW動画デコーダーの電力はどの製品もほぼ同じ、なのでCPUの最小パワー状態の電力と、画面とWiFiチップの電力ベンチ状態な気がしてならない…」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@nminoru_jp @satoru_takeuchi ヒットしないであろうwayにクロック供給しないという、回路規模は増えるけど性能は落ちない仕組みはかなりまえからありましたが、電源まで切ってしまう、しかも性能落ちるのに勝手に、というのは割とビックリしました(と言う意味ですげーな、とわたしは思った」 / Twitter
とみながたけひろさんはTwitterを使っています: 「最近のCPUはクロック下げると勝手にL2$のwayがへる(電源オフになる)らしいが、これ、こういうベンチとか向けなんやろな。まあいつでも10並列とかでコンパイルしてるわけちゃうからやるのが当然なんやけど」 / Twitter
とみながたけひろさんはTwitterを使っています: 「なおインテルは「製造ばらつきの関係で電力を多目に使う」wayを優先的に電源オフにするとかいう仕組みをいれてるらしい。工場で電力を測る行程があるんだろうけど、よくやるなあ」 / Twitter
とみながたけひろさんはTwitterを使っています: 「温度とか一定にしてそれなりの時間かけて測定しないといけないはずなので、理論上は動くけど実際にわかるぐらいの成果を出すのは大変そうなんだよねえ」 / Twitter
とみながたけひろさんはTwitterを使っています: 「参考資料(これはAppleのA11,A12プロセッサの比較で出てきたもの) https://t.co/Raza8z0vSy より &gt;The conclusion is here is that Apple is employing partial cache power-down in what seems to be per-bank granularity.」 / Twitter
The Apple A12 - First Commercial 7nm Silicon - The iPhone XS & XS Max Review: Unveiling the Silicon Secrets
中村 実さんはTwitterを使っています: 「@satoru_takeuchi @takehiro_t ソフト屋さんから見ると一見凄そうに見えるのですが、CPU側からするとN-way cacheってそういうハードがあるわけじゃなくて1-wayつまりdirect cacheがN枚あって、N個の結果をセレクターで選んでるだけなんですよね。2のべき乗でないwayとかも割と簡単に作れます。」 / Twitter
中村 実さんはTwitterを使っています: 「@satoru_takeuchi @takehiro_t キャッシュ読み込みはN-wayの中でデータを持っている1-way分のdirect cacheがラインを返しているんじゃなくて、N個のdirect cacheが同時にラインを返してセレクターが選ぶので、N-1個のキャッシュは毎回無駄に動作しているんですな。」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@nminoru_jp @satoru_takeuchi ヒットしないであろうwayにクロック供給しないという、回路規模は増えるけど性能は落ちない仕組みはかなりまえからありましたが、電源まで切ってしまう、しかも性能落ちるのに勝手に、というのは割とビックリしました(と言う意味ですげーな、とわたしは思った」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "キャッシュラインを意識すると、処理性能が2~5倍くらい変わることがある話。 カメラ画像90度回転処理で、簡単に例示してみる…「分かり易い」と思ってもらえると嬉しいけれど、さて? https://t.co/X5UIyCl0nH… "
キャッシュラインの意識は大事という話 // Speaker Deck
INADA Naokiさんのツイート: "これで重要なのはキャッシュラインサイズではなくて、何本のキャッシュラインにメモリへのライトバックなしに同時に書き込めるかだと思います。 例えば8wayキャッシュなら下位アドレスが一致するラインを8本しか持てない。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "アドバイスありがとうございます。 L1についても考えると、結構この辺に肝がある可能性が高いかもしれません。 ともあれ、もう少し追試してみねば…… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、キャッシュライン+AVX2版だと、8K画像(120MB)の回転 = 合計120MB read + 120MB write を 22msで完了=合計240MB/22ms = 10.65GB/s でメモリアクセスできている計算。なかなかすごいな。 https://t.co/X5UIyCl0nH"
Shirouzu Hiroaki(白水啓章)さんのツイート: "INADAさん(@methane)に n-Wayセットが原因では?という示唆を頂いた。 確かに有りそうと思って、同時アクセスするアドレスを極力被らない形にしたところ、見事に64byte~128byteが最速となった。 最後の疑問は、なぜAVX2 gatherではその影響を受けなかったか、という点。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "キャッシュライン版は図示した通り、srcを1ライン読み取ってscatter I/O的にdstに分散配置している。だが、AVX2にはgatherしかないため、dst 1ライン分をsrcからgather的にかき集めている点が違う。 だがentryの同一wayへの被り方という意味では、どちらも大差ない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "逆に言えば、キャッシュライン版も gather I/O的な配置に逆転させると、もっと安定して高速化する可能性がある? (entryを極力被らない形にするとAVX2版とキャッシュライン版の差は2倍→1.5倍程度に近づいた)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにエントリが被る場合も、dirtyなentryを無効化するよりも、cleanなentryの無効化するほうがずっと軽いはず。 そっか、ではキャッシュライン版はgather版にしたほうが良さそうだ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "あとでスライドも変更しておこう。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "やはり、scatter ではなく gather にすることで、エントリが被る場合のペナルティが圧倒的に減った。常にAVX2 gather に肉薄する速度に。(性能差は概ね10%以内)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、個人的には、 「(メモリアクセスで)scatterとgather、どちらでも使えるなら、gatherを使え」 という教訓を得た。(wayが重なった時のペナルティが圧倒的に軽い)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "実験前の目論見では「64byte単位最速に見えるけど、128byteにするとお隣の先読みも発生してさらに多少高速になるよ」というおまけストーリーを付与するつもりだった。 むしろ32byte最速でおや?となったのだが、ともあれn-Way補正後判明したのは、今回は先読みによる実数値改善はほぼ無かったこと。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "いずれにせよ、実験・実測は大事。 (一方で、特定環境・特定条件による一側面結果、ということも忘れずに)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「キャッシュラインの意識は大事」のスライドを更新。 (32byte最速の原因は競合性ミス、その影響をscatter→gather形にすることで改善し、理論通り 64byte/line~128byte/line が最速となった例で説明) https://t.co/X5UIyCl0nH… https://t.co/IwUfDhIBIQ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "githubに置いたテストコードも更新。 https://t.co/0YE3TThEO2 ともあれ、スライドのアップロード&公開は初体験だったが、レベルの高い低レベルな方々?にも見て頂けているようで良かった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「scatterによる競合性ミス」と結論したところ、ヘネパタにi7について、こんな記述があった。本当にラインサイズ未満の書き込みで競合性ミスが出るのか、単に10エントリのwriteバッファ数を超えたためなのか、再調査が必要になった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにscatter版だと、32byte/line扱いで同時8ラインへの追記、64byte/line扱いで同時16ラインへの追記、が発生していて、10エントリのwriteバッファ数の境界となるため、状況証拠としてはこちらが原因である可能性も小さくない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "一方、それだと素数*32などの画素数で改善する話と整合しないところはある。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ソフトでもハードでも、キャッシュ機構を要所に入れれば威力抜群。 だが同時に、複雑度増大(改変が大変に・バグも混入しやすい)、コヒーレンス解決に手を焼く、といった問題を抱えるので、バランス大事と。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(…とキャッシュ機構を入れて、少し手を焼いたので書いてみた)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のCPUも、メモリアクセスがL1並みの帯域/レイテンシが出来てキャッシュ不要の単一階層になったら、どれだけシンプルになるのかしらん?とか、ふと思ったり。」 / Twitter

@mhiramat

ひらナツさん@散文家さんのツイート: "はー、なる。MSRを使って処理しているからタスクスイッチングのところでマスクをクリアしてやれば、そのタスクが使っていたL2/L3のエントリは別に使うことができるようになるわけか。#linuxcon"
まさみさんは語りたいさんのツイート: "キャッシュラインで配列舐める話はprefetchの使い方まで考えるとバラエティが増えるし、実は2のべき乗単位でないほうがいい時もある、という話を15年ぐらい前のYLUGで聞いた。吉岡さんがPMU使って測ってた気が。"
まさみさんは語りたいさんのツイート: "あれ?だれかNかFの人が発表して、吉岡さんがPMU使うとキャッシュミス測れていいですよ、みたいなコメントしたんだっけ?"
まさみさんは語りたいさんのツイート: "あと当時のintelプロセッサはキャッシュ先読みアルゴリズムが結構複雑でコロコロ変わるので、世代によって最適なやり方が違うとか聞いた気がする。"
まさみさんは語りたいさんのツイート: "「キャッシュメモリからレジスタにアクセスする際のレイテンシ」は、「キャッシュメモリからレジスタに読み出す際のレイテンシ」でいいと思う。。前者だとキャッシュが主体的に動いてるみたい。"

@fadis_

Fadisさんのツイート: "clflushがマニュアルではフラッシュの完了を待たないことになってるけど、Intelさんがフェンス忘れても大丈夫なように実際には完了を待つようにしてたら、不揮発メモリ用に高速なフラッシュが必要になってマニュアル通りの挙動のclflushoptを追加する羽目になる話面白い"
Fadisさんのツイート: "gcc-4.9はskylakeで追加されたCLFLUSHOPT XSAVEC XSAVESが吐けないみたいだけど、ユーザ空間でこれ使って嬉しい状況そうそう無さそうだし4.9でemerge続けるか…"
Fadisさんのツイート: "イマドキのNICはL3キャッシュに直接DMAしてくるからCPUからデータが見えるようになった時点ではまだflushされていない、と #kernelvm"
Fadisさんのツイート: "clflushopt、clflushが同期的に動かないかもしれない事になってるけどみんな同期的に動くことを期待するから、同期的に動くようにしてたけど、NVMMするのにあたってそれでは困る状況になったから作った「本当に同期的に動かないclflush」だっけ #kernelvm"
Fadisさんのツイート: "@uchan_nos x86_64の多くのプロセッサはスヌープ方式でキャッシュ一貫性を保っている。ただスヌープ方式は単一のバスが混雑してスケールしないためコア数が多いプロセッサでは使いにくく、そういったプロセッサではディレクトリ方式が併用される"
Fadisさんのツイート: "キャッシュ一貫性が保たれる複数のCPUのうち1つが書き込みを行うと、一般には他のCPUが持っている同じ位置のキャッシュは破棄される。これはキャッシュラインの長さ単位で行われるため、隣接する2つの値に別々のCPUが読み書きしていると、同じ値を触らなくてもキャッシュの捨て合いが生じることがある"
Fadisさんのツイート: "これはC++ではvectorのように隙間なく並んだ値を複数のCPUで処理する場合L1 cacheの長さ単位で同一CPUに処理させないと性能が落ちる可能性があるという話なので、C++17から同じL1 cacheに乗らない為に十分な幅を表す定数 std::hardware_destructive_interference_sizeが用意されている(n4659 §21.6.5)"
Fadisさんのツイート: "正しく綴ることが難しいstd定数選手権で上位狙える"

@hisak

Hisaki OharaさんはTwitterを使っています: "Intel MPX, Cache Allocation TechnologyにCode and Data Prioritizationを追加、Intel Processor Traceに大幅な追記、あたりがrev.55での差分かな。今回は結構でかいですね。"
Hisaki Oharaさんのツイート: "IntelのCache AllocationってL2も対象になったってマジか #linuxcon"
Hisaki Oharaさんのツイート: "ちなみにcache monitoringはHaswellからで、allocationはBroadwellから。どのSKUが持っているかは知らん。 #linuxcon"
Hisaki Oharaさんのツイート: "Haswell-EPも一部のSKUはCAT持ってるらしい。ガチャだ。 https://t.co/aS0zkAL1No https://t.co/LL8Pqv0twy"
Hisaki Oharaさんのツイート: "LinuxConで聞いたIntel Cache Allocation TechnologyがL2にも適用できる件、調べてみたら今年4月に出たIntel SDMのDocumentation Changeに記載されていた。すっきり。"

@satoru_takeuchi

sat@引退さんのツイート: "端的にいうと(ID,キャッシュの範囲)の組があって、IDはどう使っても良い。タスクでもコンテナでもVMでも。IDごとに独立したキャッシュを割り当てる"
satさんのツイート: "linux豆知識: /sys/devices/system/cpu以下を見ると、各CPUがどのノードに属しているかとか、どのCPUとキャッシュを共有しているかとかがわかるよ"

@KuniSuzaki

suzakiさんのツイート: "CAT:Cache Allocation TechnologyではL3のキャッシュをアプリケーション(CPU?)毎に分け、Noisy applicationからのキャッシュアクセスを封じ込める。L3_QoS_MASKで実現。"
suzakiさんのツイート: "L2 Cache用にもL2_QoS_MASKがMSRにあって、L3と同じことができる。"

@tanakmura

tanakmuraさんはTwitterを使っています: "CLFLUSHOPT の謎がとけた。 http://t.co/xBQA5WkDmI の CLFLUSH と https://t.co/nQS8eDg7Kl の CLFLUSHOPT の挙動を比べても CLFLUSHOPT のほうが改善される理由が不明だったが、"
tanakmuraさんはTwitterを使っています: "「CLFLUSHは実はこれまでの全CPUで順序付けてたから、MFENCEはいらなかったよ。順序が必要ないときは、CLFLUSHOPTを使って、最後にSFENCEしてね。」と、いうようなことが、7.5.6 CLFLUSH Instruction に書いてある。"
tanakmuraさんはTwitterを使っています: "CLFLUSH は、3A, 2A では、「CLFLUSH命令間では順序保証しないから、順序付けるならMFENCE入れろよ」と書いてあるが、最適化マニュアルには、"

Tsukasa #01さんはTwitterを使っています: "【Intel SDM 更新】 Revision 055 での主要な変更点は、Intel MPX と PT にマトモなドキュメントがついたことと、Skylake 以降のアップデートですかね。キャッシ
なかがわがくたろうさんのツイート: "Intelのプロセッサにcache QoS機能があるの知らなかった https://t.co/6xd26SENze"
naoさんのツイート: "挙動のおかしいドライバーが最適化を外すと動く場合、ちゃんとvolatile宣言が入ってるか、キャッシュの一貫性は保たれてるか、100回チェックしてからコンパイラのバグを疑え、というのが家訓。"
Kazuho Okuさんのツイート: "特に最近のCPUだとキャッシュや分岐予測あてるの重要だから選べるところではlinked listやハッシュよりarray使うんだけど、arrayは末尾以外の挿抜ができないから使いづらいことも多いよね #マジレス"
InstLatX64さんのツイート: "Useful Prefetch* chart… "
みやた二進いちろうさんのツイート: "webサーバでcpu 1次キャッシユのどのラインがホットかを計測して、Cの構造体の中の順序を変えるnetflixと比べればヌルいのでは。… "
mattnさんはTwitterを使っています 「CPU キャッシュを生かすなら配列インデックスに気を付けろという話。Go に限らないあるあるな話。 #golang https://t.co/9jIYNXkqer」 / Twitter
Go and CPU Caches - Teiva Harsanyi - Medium
satさんはTwitterを使っています 「CPUのキャッシュメモリにおける大きな問題の一つ、スラッシングについて、実際に問題を発生させて凄まじい性能劣化が起きる様を確認した記事です。高級プログラミング言語ではこういうのがいいかんじに隠蔽されてたりします キャッシュのスラッシング|sat https://t.co/J7FFZm252r #zenn」 / Twitter
キャッシュのスラッシング | Zenn
青子守歌さんはTwitterを使っています 「D$とI$って書いて「データキャッシュ」「インストラクションキャッシュ」と読ませるのはまぁ確かに界隈が狭すぎるか…。」 / Twitter
Shinji KonoさんはTwitterを使っています 「Intel64にはキャッシュ予告コマンドがあるのだが、それは計測でちゃんと差が出た。それを出すようなコンパイラがあるのかどうかは知らないのだが。」 / Twitter
x64 - Wikipedia
Shinji KonoさんはTwitterを使っています 「一応、CPU/IO Burstとかはやるわけなんだが、それが何を意味するのかはわからないものだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「キャッシュや仮想メモリの性能の問題、つまり hit率=性能 も、問題は解けても、それが何を意味するのかを理解してるかどうかとは別。自分でも学部生の頃、おんなじようなこと言われた。 この問題はなんのために用意されてるのか ってことね。先生の顔色を読んで欲しいわけじゃない。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そういうイベント、スワップのないスマホとかにしかないイメージ。スワップのあるOSだと、キャッシュはファイルに書く!が正しいんだと思ってる。ファイルに書くことでOSが必要に応じてメモリにキャッシュしたり追い出したりしてくれるし再起動にも対応できるので…」 / Twitter
渋川よしきさんはTwitterを使っています 「GCというか、OSからのメモリ開放プレッシャーを受け取るイベントハンドラがあればキャッシュの実装には良いきがするのだけどねぇ。GCだとメモリあるのにタイマーで勝手にキャッシュが消えちゃうとかだとキャッシュ効率下がりそう #tng36」 / Twitter

CPUID : キャッシュメモリの大きさ - 研究日誌。
Intel SDM version 049 | Hisak's Tumblr
インテル-CMT-猫マスターで/ README・01org /インテル-CMT-猫
キャッシュ制御組み込み関数
VTune でキャッシュのヒット/ミス回数を取得するには | インテルソフト あるある情報局
intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap12.pdf
コンピュータアーキテクチャの話 (184) キャッシュコヒーレンシ | マイナビニュース
今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
Dragon protocol - Wikipedia
DMA リソースの管理 - デバイスドライバの記述
バスの仕様 - デバイスドライバの記述
プログラムの動作が異常に遅い原因は「ランダムアクセス」かもしれない - GIGAZINE
Intel 64ビットマシンでキャッシュを有効/無効にする:CDビットは常に設定されていますか?

TLB

コヒーレンシ取られない

VPID

しゅううGXさんはTwitterを使っています: "VPIDって、TLBにVM番号のタグ付けたいって理解でいいよね。Nehalem以前はVMentry/exit時にTLB全フラッシュ必要ってIntelが言ってるけど、それって透過的に行
なかみりさんはTwitterを使っています: "“VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful” http://t.co/cAaAHyJxSx"
VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful
最近の話題 2008年4月5日
最近の話題 2008年8月23日

Fadisさんのツイート: "TLBはハードウェアがコア間でコヒーレンシをとらない → 1つのコアでEPTエントリを追っていた為よそのコアのTLBで立っていたdirtyページを見逃す → 一部のメモリが古い状態でマイグレーション先が動き出してしまう #kernelvm"
NOKUBI Takatsugu野首貴嗣さんのツイート: "修正 EPTEを読む前に全コアでTLB shootdownをする コードにすると数行 これで2〜3ヶ月を無駄にした #kernelvm"
蟹の赤ちゃんVS蛸の赤ちゃんさんのツイート: "別々のCR3を持っているのでTLBのキャッシュコヒーレンシが維持されない #kernelvm"
_さんのツイート: "一部のdirty bitはTLBからまだメモリに落ちてきてなくて情報が古い #kernelvm"
るくすさんのツイート: "dirty bitまでTLBキャッシュに載るのやばくない... #kernelvm"
_さんのツイート: "EPTはコア間でコヒーレンシーが取られない #kernelvm"
Deep(Ph.D Go player)さんのツイート: "@RKX1209 EPTを全てクリアすれば、次のメモリアクセス必ずViolationします。 もししないなら、TLBに乗ってるマッピングを使われてるか、別コアからアクセスされているかだと思います。"
EPT と TLB でしくじった話
とみながたけひろさんのツイート: "ページテーブル、マルチコアでコヒーレンシとられないほか、投機実行で勝手にTLB載るのも辛いんだよね。超ハマりパターン、、、 https://t.co/4n6S3WeOxZ"

DPDK

NOKUBI Takatsugu野首貴嗣さんのツイート: "DPDKのその他の高速化手段 Hugepages: TLB missを避ける CPU affinity: 特定のCPUにスレッドをはりつける SSE, AVXなど使えるものは全部使う #kernelvm"
NOKUBI Takatsugu野首貴嗣さんのツイート: "Hugepageでのメモリ割付 OSはhugepageが常に有効 #kernelvm"

PCIDs

Hisaki OharaさんはTwitterを使っています: "Haswellで入ったのはinvpcidという命令のことではなかったっけ。それまではただのpcidでTLB selective invlは出来なかったから非常にいまいちだったという。"
なまえだよさんはTwitterを使っています: "FreeBSD 10ではIntel CPUのProcess-context identifiersに対応するパッチにより、コンテキストスイッチの度にTLB全体をフラッシュする必要がなくなったのでコンテキストスイッチのレイテンシも改善されるようですね…"
Tsukasa #01さんはTwitterを使っています: "oO( ってことは、最新の Intel CPU における TLB ってエントリ当たり 24 ビットものタグがついてるのか……。いや、どれほどのオーバーヘッドなのか知らんけど。 )"
Tsukasa #01さんはTwitterを使っています: "@hisak 調べてみると PCID 自体は Westmere (Sandy Bridge の 1 個前) まで遡れました。"
Tsukasa #01さんはTwitterを使っています: "@syuu1228 だいたいそんな感じみたいですね。付け加えて言うと、タグ付き TLB に相当するような機能は Intel 製プロセッサだと VPID と PCID の 2 種類が存在
品川 高廣さんのツイート: "INVPCID命令ですね。CR4の読み書きによるflushよりINVPCID命令の方が217ns速いのでLinux起動時にINVPCID命令を呼ぶようになったけど、BitVisorはINVPCID命令に対応してなかったので落ちたという話だそうです。 https://t.co/oQmyPQXrb4"
凍ってない方のアカウントさんのツイート: "x86、何故にtagged tlb実装(= PCID)したのがめちゃくちゃ最近なんだろう、ないと普通に性能落ちない…? VPIDでどうせtaggedになるから載せるか、みたいな話なんかしら(正確な登場時期も含めよく分かってない"
Ryou Ezoeさんのツイート: "@syuu1228 Linuxカーネルが対応したのが4.14で多くのVMがゲスト側に見せてないので現状だと割と使用不可(AWSだと半々)という実情と書いてあって不思議な気持ちになっている。 https://t.co/5dPE6uZbaM"
中村 実さんのツイート: "@syuu1228 PCIDがSDMに登場したのが2011年10月の040版からですな。 https://t.co/pC1mrC8s33 もともとi386がコンシューマ向けでサーバー向けにこんなにガリガリ使われることを想定してなかったからコンテキストスイッチでTLBフラッシュでOKOKのお気楽仕様に… https://t.co/K0OfETdyvC"
Hisaki Oharaさんのツイート: "PCIDはWestmereからで、invpcid命令はHaswellからだった気がする"
Hisaki Oharaさんのツイート: "VPIDとPCIDは異なるもので、PCIDのOS enablingはめちゃ遅れていたことは知っておいて良いと思う"
Hisaki Oharaさんのツイート: "そもそもbit長が違う。VPIDは16-bitだけどPCIDは12-bitだ。たったの12-bit !?と驚くと思う。自分は驚いた。。"
suzakiさんのツイート: "@hisak 確かに。意味を考えると、VPID(Virtual-processor ID)が16-bitで、PCID(Process-Context Identifiers)が12-bitと変な気がしますが、PCIDはCR3 registerなのに対して、VPIDはメモリ上のVMCS fiel… https://t.co/13C2tsw2hF"
Gil Teneさんのツイート: "PCID is now a critical performance/security feature on x86 - Google Groups https://t.co/NuL7UXGHNG"
PCID is now a critical performance/security feature on x86 - Google グループ
Vladimir Danylevskiyさんのツイート: "lshw -C cpu | grep -oiw pcid for Linux users. If you a regular user, don't panic, the patch will be shipped with a new update for your OS/… https://t.co/PgidcInc7M"
Dan Guidoさんのツイート: "If you have an Intel CPU with the "PCID" feature, then the security fix for Spectre/Meltdown will have less performance overhead. On macOS,… https://t.co/XlAgqQne1z"
Nasir Zubairさんのツイート: "@msgeekuk @epakskape Seeing the same thing on Dell systems with microcode update as well as MSFT patches. All green except for PCID Optimization. Can someone she… https://t.co/s5BqVGSwpb"
Martijn Brantさんのツイート: "Good to hear the PCID is not related to security. Was seeing a lot of results with false. Be sure to patch microcode though! https://t.co/oyasPYiRs6"
Hisaki Oharaさんのツイート: "PCIDについてはこの記述が気になるんだよな "To make matters worse, past attempts to use all 12 PCID bits have resulted in slowdowns instead of speedups."… https://t.co/5oavpdYYut"
Linux_4.14 - Linux Kernel Newbies
Intel64 and IA-32 アーキテクチャ仕様書が改訂 - 教育は参考ブログ

INVLPG

TLB · oraccha/omicron Wiki
Tips IA32(x86)命令一覧 Iから始まる命令 INVLPG命令
悪魔のツール“ルートキット”最前線 - 第7回 メモリー上のデータを見えなくする(後編):ITpro
Linux カーネル 3.8 では i386 がサポート外に | スラド Linux

TLB shootdown

RAR

Anderson NascimentoさんはTwitterを使っています 「Experimental Features Feedback Forum Remote Action Request (RAR) based TLB Shootdowns https://t.co/NFan9uTPBX https://t.co/MmskgAwWg0」 / Twitter
Experimental Features speedup TLB shootdowns
341431-remote-action-request-white-paper.pdf

るくすさんのツイート: "linuxのTLB shootdownは割り込みベクタに専用の関数追加して中でflush_tlbしてるみたいだ"
無視できないフラグメンテーション問題への解答は?(2/2) - @IT
/proc/interruptsに関するメモ - お菓子食べる部
SMP環境下でのTLB Consistencyについて - syuu1228's blog
BitVisorの仮想メモリーマップ - Qiita
EuroSys 2020さんはTwitterを使っています 「#EuroSys20 Best Paper Award: “Don’t shoot down TLB shootdowns!” by Nadav Amit, Amy Tai and Michael Wei (VMware Research Group) — congratulations! https://t.co/fGsBrN8cAj https://t.co/6wky5sCZ2V」 / Twitter
Don't shoot down TLB shootdowns! | Proceedings of the Fifteenth European Conference on Computer Systems
Kazuho OkuさんはTwitterを使っています 「マルチスレッドプログラムにおいてmmap, munmapが間接的に呼び出されるケースでは、freeのほうが圧倒的に重たいという理解して(tlb shootdownのため)」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「一昔前の「malloc より free の方が重い」という通説が今でも真なのかも私にはよくわからんし、この辺は本当にちゃんと実装をおっかけてないとわかんねーんだなこれが。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「malloc/freeの重さは実装や条件によって変わるから、前提なしに色々言うひとの意見は無視するぐらいでいい」 / Twitter

Twitter

Deep(Ph.D Go player)さんのツイート: "Ryzen 案件、BIOSの設定でコア数一つにして試してみてほしい"
Deep(Ph.D Go player)さんのツイート: "TLB周りならそれで発生しなくなるから一つの切り分けになりそう"
EPT と TLB でしくじった話
NAKAMURA Minoru's Diary (2013年2月)
x86-64-128さんのツイート: "QEMUで自作OSを動かし、そこでページングの実験をしているんだけど、ページディレクトリエントリのPresentビットを0にしてアクセスしてもPage Faultが発生しないように見える。"
x86-64-128さんのツイート: "ページディレクトリエントリを更新したら何かCPUに教える必要あるのかな。メモリを書き換えるだけで行ける?"
Fadisさんのツイート: "本題の前にまずFacebookの人が「バイナリ内の実行頻度が高い関数8MB分を1箇所に集めてHugePageに乗せる事でTLBミスを回避して5~10%の性能向上」とかやってて、Webサービスの性能向上の努力が極まりすぎている事に定評のあるFacebookが平常運転で安心した(リンク先有料記事) https://t.co/4fi5TzNv91"
ロボ太さんはTwitterを使っています: 「malloc動画といえば、「京」でハイブリッドとflat-MPIで等価な計算してるはずなのにハイブリッドの方がが有意に遅いのに悩んでて、後で直接の原因がTLBスラッシングとわかるんだけど、その理由がわかんなくて、malloc動画で勉強したら、アリーナの大きさが違うのが原因とわかってなるほどな、と。」 / Twitter
ロボ太さんはTwitterを使っています: 「これ、最初は完全にスレッドまわりが原因と思って調べてて、でもプロファイル見てもそうは見えなくて、ある日ポスターで話したら筑波大の朴先生が「TLBじゃないかな」って言って、その時は「まさか」って思ったんだけど、その数年後にTLBスラッシングが原因とわかって、プロってすごいなと。」 / Twitter

トランスレーション・ルックアサイド・バッファ - Wikipedia
HPC性能が大幅に強化されたHaswell(中編) - TLBミスによる性能低下を減少 | マイナビニュース
本の虫: Linus Torvalds、Microsoftが「ジャンプしてみろよ」と言えばIntelとAMDはジャンプする
0から作るOS開発 ページングその1 ページとPTEとPDE
ハードウェアキャッシュとTLBの制御 - 詳解Linuxカーネル Wiki*
ASCII.jp:仮想メモリーを支えるもうひとつのキャッシュ TLB (1/3)|ロードマップでわかる!当世プロセッサー事情
仮想メモリ方式の分類
イケてるエンジニアになろうシリーズ 〜メモリとプロセスとスレッド編〜 - もろず blog
スケジューラの挙動は三巨頭会談で決まるのだ?(1/2) - @IT
2章 Linuxカーネル - メモリ管理1
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第2回 Intel VT-xの概要とメモリ仮想化
[BitVisor-devel:88] Re: [PATCH] Re: Ubuntu 16.10 beta2 (linux 4.8.0-17) が BitVisor 上で動作しない
インテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) プログラミングの注意事項
ASCII.jp:仮想メモリーを支えるもうひとつのキャッシュ TLB (1/3)
日記 (2020 年 12 月)

メモリ保護

その他

特権分離 (Privilege Separated) OpenSSH
ラージページについての考察 | iSUS
メモリーリマッピング
「実在には存在しない情報」をメモリキャッシュに埋め込むというセキュリティ対策 | スラド セキュリティ
Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介 - 脱力系日記
Linuxなどのスタック管理機構において権限昇格が可能な脆弱性が発見される。多くのLinuxディストリビューションに影響 | スラド オープンソース
glibcにStack Guard Page迂回の脆弱性(CVE-2017-1000366) — | サイオスOSS | サイオステクノロジー
linux kernelにStack Guard Page迂回の脆弱性( CVE-2017-1000364 ) — | サイオスOSS | サイオステクノロジー
続・サンドボックスの透明性 | 一生あとで読んでろ
サンドボックスの透明性 | 一生あとで読んでろ
はりぼてosにページング機能を追加する - Qiita
MIT、プロセッサ性能を犠牲にせず「Meltdown/Spectre」脆弱性を解決する新手法 - PC Watch
418.pdf
suzakiさんのツイート: "NDSSソフトウェアセキュリティ5つ目。User After Freeなど本来存在してはいけないメモリへの攻撃を検出するRedzone-based memory error detectionのMEDSの発表。MEDSではpage aliasing を使い、物理メモリを割り当てずにvirtual memory の空間を見るmemory allocation mechanism (MEDSALLOC)で管理"
デダルスユメノ 技術書典6・う38さんのツイート: "ページサイズは伝統的に4KBが使われてきたけど64ビットシステムでは2MBページでいいんじゃね?と一瞬思うけど、遅いストレージを考慮するならダーディページの書き戻しが2MBだときついかも。HDDを対象にするならページキャッシュの部分は4KBのままがいいか。"
mumumuさんはTwitterを使っています 「Thwarting Memory Disclosure with Efficient Hypervisor-enforced Intra-domain Isolation [CCS '15] OSやAppを乗っ取られてメモリDiscloseされる脅威のMitigationとして,予めユーザが定義したメモリ領域secretと動的・静的解析で検出したそれを操作する関数をVMFUNCでIsolationするSeCageを提案.」 / Twitter
mumumuさんはTwitterを使っています 「No Need to Hide: Protecting SafeRegions on Commodity Hardware [Eurosys '17] Deterministic(=ASLR等 確率的なものでない)なIntra-ProcessのMemory Isolation手法について,既存手法の分類と性能評価.そのためにMPK,MPX(SFI), VMFUNC等を用いて評価ツールMemSentryを実装https://t.co/xD7u4nTyGV」 / Twitter
memsentry_eurosys17.pdf

Intel

EPT-Based Sub-Page Permissions

品川 高廣さんのツイート: "EPT-Based Sub-Page Permissions が消えてる… https://t.co/k9qDDRAHEb"
品川 高廣さんのツイート: "と思ったら SDM 本体の方に入ったのか。ということはもうすぐ実装が出てくる?"
VT-x に128バイトサブページ単位の書込み保護が導入される予定 - 教育は参考ブログ
東京大学 品川研究室さんはTwitterを使っています 「品川研究室を卒業した小澤洋介君の論文が国際会議 2021 IEEE 14th International Conference on Cloud Computing (IEEE CLOUD 2021) に short paper として採択されました。128バイトのサブページ単位で書き込み保護を出来る Intel SPP を用いたライブマイグレーションの話です。」 / Twitter

5-Level Paging

5-Level Paging and 5-Level EPT white paper
5-level paging [LWN.net]
Fadisさんのツイート: "5 level paging: x86_64の既存の4段のページングでは扱いきれない巨大なメモリを持つマシンの為に将来的にIntelプロセッサで採用されることになっている拡張。Linuxの場合4段ページングでは64TiBを超えるメモリを扱えないが、5段ページングでは4PiBまで対応することができる"
Fadisさんのツイート: "Linuxの5 level pagingは実装されたばかりで、ドキュメントには「将来的にはブート時に4段と5段を切り替えられるようにしたい」と書かれているが今のところそうした仕組みは無い為、5段を有効にしてビルドしたカーネルは4段しか扱えないプロセッサで実行するとコケる"
Fadisさんのツイート: "LKMLに投げられているのパッチの説明によると、既に一部のサーバが64TiBのメモリを実際に積んでおり、この問題は喫緊の課題になっているらしい… "
FadisさんはTwitterを使っています: 「@d_kami こういう巨大なメモリを持つマシンって大体小分けにしてクラウドサービスを提供するためのマシンだったりして、今日クラウドサービスが無くてはならない物になっていることを考えると、どちらが特殊なのかな感はある」 / Twitter
ちくわさんのツイート: "以前にそれについての記事を書いたのでよろしければどうぞ https://t.co/uhEkuOHv9J… "
Linux kernelの5-Level Paging有効化部分を読んでみる - めもちょー

CET(Control-flow Enforcement Technology)

インテル、ROP攻撃をチップレベルで阻止する新技術を発表 - ZDNet Japan
R.I.P ROP: CET Internals in Windows 20H1 – Winsider Seminars & Solutions Inc.
新しいオプション
qcf-protection、Qcf-protection
20160611
品川 高廣さんのツイート: "CPUレベルで shadow stack と control flow integrity を入れるのか。https://t.co/NuHzLftmFe"
Control-flow Enforcement Technology Preview
品川 高廣さんのツイート: "VMX, SMM, TXT, SGX にも影響を与える複雑な変更だな。"
品川 高廣さんのツイート: "shadow stack は call 時に shadow stack pointer (SSP) が指すところにリターンアドレスだけを積んで、ret 時にスタックの値と一致してなかったら exception が発生するという感じか。"
品川 高廣さんのツイート: "indirect branch tracking は jmp 先が ENDBRANCH 命令(未対応プロセッサではNOP相当)でなかったら exception ということでいいのかな。命令列の真ん中に jmp するような ROP chain は組み立てられなくなるわけか。"
品川 高廣さんのツイート: "AMD も EPYC でメモリ暗号化とか入れてるし、アーキテクチャの拡張競争みたいにもなってる。AMD と Intel のアーキテクチャがズレていくのはシステムソフトウェア屋的にはつらそうだけど。"
Intel Releases New Technology Specifications to Protect Against ROP attacks | Intel® Software
るくすさんのツイート: "Intel CET With Indirect Branch Tracking & Shadow Stack Land In Glibc https://t.co/fjIJnqPpxt"
Intel CET With Indirect Branch Tracking & Shadow Stack Land In Glibc - Phoronix
まさみさんは語りたいさんのツイート: "https://t.co/341S8w5ovM うーむ、これROPとかJOP対策だと思うけどkprobes jump optimizationの存続に関わる問題っぽいぞ・・・。"
Control-flow Enforcement Technology Preview
まさみさんは語りたいさんのツイート: "ARM pointer authentication https://t.co/lZ87vSuU9t ARMはポインタとして使われるアドレスを符号化して検証する命令を追加してROP対策しているというわけか。このあたり、明示的に機能を使わせるARMと、バックグラウンドで検証するIntelの思想の違いか・・・?"
ARM pointer authentication [LWN.net]
まさみさんは語りたいさんのツイート: "多分Intel CETは(Spectre v2の時にも言及したが)投機的実行の効率化のために用意したシャドウスタックをセキュリティに転用しました、ということなんだろうなあ。つまり投機的分岐実行の失敗=脅威発見とみなす、という。"
Fadisさんのツイート: "glibcにIntel CETのサポートが入った模様。 CET対応のプロセッサではSHSTK(一部の命令だけが書ける第二のスタックにリターンアドレスを積んでROPを検知)とIBT(着地命令以外のアドレスにジャンプ出来なくしてジャンプ先の書き換えを検知)をユーザ空間のプロセスで使えるように https://t.co/247IN0psYI"
Intel CETをサポートした「GNU C Library 2.28」公開 | OSDN Magazine
Fadisさんのツイート: "LLVM、リターンアドレスだけが積まれる第2のスタックでROPを検知するShadow Call Stackを廃止。x86_64用の実装が遅くてinsecureだったのが理由。最近のIntel CPUには同様の事をハードウェアで行うCETが備わっているが、LLVMの実装はソフトウェアでそれとは無関係 https://t.co/RnKlqj2wey"
LLVM Drops Its Shadow Call Stack Support For x86_64 - Phoronix
Intelがマルウェア攻撃をチップレベルで防御する新技術「CET」を次世代モバイルプロセッサ「Tiger Lake」に搭載 - GIGAZINE
実に15年ぶり、インテルがCPUへ追加するマルウエア対策機能の実力 | 日経クロステック(xTECH)
WhitepaperCSME - intel-csme-security-white-paper.pdf
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ntel TigerLake から Shadow Stack が実装(Intel CET)されていたのね。 ただC++での仮想関数TBLの書き換え系には無力だよねと思っていたら、"indirect branch tracking" も含まれていて、飛び先がENDBR命令以外は例外という、(やや弱そうな)防御が追加されていた。 https://t.co/NAIiq8S8Lc」 / Twitter
【pwn 36.0】Intel CETが、みんなの恋人ROPを殺す - newbieからバイナリアンへ
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ShadowStack での exception/longjmp は return が同じ値になるまで、ShadowStack を popしつづけるのが定番らしい。 https://t.co/TfSryDB2RP」 / Twitter
Shadow stack - Wikipedia
巧妙な攻撃もシャットアウト! Windows版「Google Chrome 90」にハードウェアによるスタック保護が導入 - 窓の杜

UMIP

Intel User-Mode Instruction Prevention Support Revised For The Linux Kernel - Phoronix
るくす(Ren Kimura)さんのツイート: "Intelの次のプロセッサからSMEPならぬUMIP(User-Mode Instruction Prevention)という、ユーザーモードで実行できる命令をさらに制限するセキュリティ機構が追加されるらしい。 これはカーネルエクスプロイトかなりしんどくなるぞ… https://t.co/aLr5CtSr3P"
ka0ruさんのツイート: "@RKX1209 これそんなに強いですかね〜"
るくす(Ren Kimura)さんのツイート: "@infvhj まあ理屈としてはそんなに強くないんですが、肌感覚でしんどくなりそうな気はします。というのも、AAWでカーネル内の関数ポインタを書き換えてユーザー空間からの操作でそいつをtriggerする流れで、このtriggerはなるべく他に副作用を与える操作であってほしくないんですよね。"
るくす(Ren Kimura)さんのツイート: "@infvhj 余計な操作が多い複雑なシステムコールとかをtriggerにすると、RIP奪う前にカーネルクラッシュしたりとか。で、このパターンが少ないのがGDT/LDTみたいなユーザー空間から参照できてかつprivmitiveな物をtriggerにした時なので結構重宝するんですよ。これができない… https://t.co/JlBLhxcqVX"
ka0ruさんのツイート: "@RKX1209 Linuxは余り詳しくないのでアレですが、カーネルのwriteプリミティブ持ってるならそのSMEPとかで使うaddr_limit的なのも同時にいじれるかなぁっていうのとret2usrは楽というのは最もですがPTE弄ってカーネルにシェルコードをいれるーとかでもありなんじゃないすかね"
るくす(Ren Kimura)さんのツイート: "@infvhj あいや、というかRIPをそもそも奪う前にクラッシュする事があって、例えばfops->iops->openを何かのコードの先に書き換えるためにfake iopsとか作ってopenシステムコール呼ぶと、関係ない別の所でiopsの他のメンバ触られてクラッシュとか"
るくす(Ren Kimura)さんのツイート: "@infvhj 要するにシステムを正常に動かしつつ、特定の関数ポインタだけexploit codeに飛ばすというが難しくて、この両立がしやすいのがGDT/LDT書き換えとかですね。メモリアクセスなんて他に邪魔されずすぐに発生してくれるのでスッとtriggerしてくれる"
るくす(Ren Kimura)さんのツイート: "@infvhj あとSMEPのONOFFはレジスタが管理してるので、OFFにするには直接writeプリミティブでは難しくて、レジスタいじるROP gadgetみたいなコード実行に一度飛ばしてやる必要がありますね"
るくす(Ren Kimura)さんのツイート: "@infvhj ring0のアドレス範囲addr_limitを書き換えるというのはGDT書き換えにあたると思います。"
イトー君さんのツイート: "@RKX1209 一般ユーザーにとってこれはgoodなの?badなの?"
るくす(Ren Kimura)さんのツイート: "@TaKeZo_I 一般ユーザー的にはおそらく良い方向だと思いますねー これを追加して何か不具合が起きるというのはそんなに無さそう"
イトー君さんのツイート: "@RKX1209 待つほど価値があるもの?"
るくす(Ren Kimura)さんのツイート: "@TaKeZo_I あー そこまでではないと思います。比較的高度な攻撃に対する対策技術なので、そもそも一般ユーザーで特にWindows環境以外をお使いならそんなに遭遇しないかなぁと"
イトー君さんのツイート: "@RKX1209 了解です、ありがとう"
2018年1月29日 Linux 4.15が正式リリース, Meltdown/Spectreにフルパッチ対応:Linux Daily Topics|gihyo.jp … 技術評論社
x86: enable User-Mode Instruction Prevention [LWN.net]
Linuxカーネル4.15リリース、Meltdown/Spectreへの対処が組み込まれる | OSDN Magazine
InstLatX64さんのツイート: "QuadCore #Intel Celeron J4105 (#GoldmontPlus) 706A1 CPUID dump added - according to this, Goldmont+ supports SGX, SGX_LC, UMIP, RDPID features, and also the 3 #Spectre/#Meltdown mitigation features (#IBPB/#IBRS, #STIBP, IA32_ARCH_CAPABILITIES) in: https://t.co/37mJQ4r9bT… https://t.co/y8zSIn9c80"
Intel 80286 - Wikipedia

Memory Protection Keys

Memory Protection Keys (MPK) Submitted For Linux 4.6 - Phoronix
Memory Protection Keys Support Finished Up In Linux 4.9 - Phoronix
LLVM Begins Looking At PKU Memory Protection Keys Support - Phoronix
[RFC] x86: Memory Protection Keys [LWN.net]
Linuxカーネル4.6が登場 | OSDN Magazine
Linuxカーネル4.9リリース、Greybusのサポートや各種ドライバの強化などが行われる | OSDN Magazine
x86 の仮想ページに Protection Key が付いた - 教育は参考ブログ
品川 高廣さんのツイート: "Intel MPK 流行ってるな。VMFUNC も良く見かける。保護ドメイン系は永遠のテーマだな。"
retrageさんはTwitterを使っています 「ちょっと前までSGX使ったシステムの論文が雨後の筍のごとく出てて、その後SGXへの攻撃手法が出てSGX使われなくなったような感じがあった」 / Twitter
retrageさんはTwitterを使っています 「今アツいのはMPKなのかな」 / Twitter
mumumuさんはTwitterを使っています 「Hodor: Intra-Process Isolation for High-Throughput Data Plane Libraries [ATC '19] Kernel BypassなIOを提供する等重要なライブラリの安全性を担保するためにPKUを用いてIsolation(Appの制御が奪われる脅威を想定).ローダがバイナリを走査しデバッグレジスタを用いて意図しないpkruの変更を検出」 / Twitter
mumumuさんはTwitterを使っています 「libmpk: Software Abstraction for Intel Memory Protection Keys (Intel MPK) [ATC '19] MPKのサポートはすでにLinuxに実装されているが,それらを改良し既存のSWが使用しやすく(mprotectのプロセスレベルアクセス管理のSemanticsを再現やPkeyの仮想化),Securityの強化等を実装した研究.」 / Twitter
Intel MPKについて - Google スライド
FadisさんはTwitterを使っています 「ライブラリOSはOSとアプリケーションが単一のメモリ空間で動くのが性能を稼ぐ上で強みだが、それはセキュリティとのトレードオフになっているためMPKを使ってライブラリOSをより堅くしたい、と #kernelvm」 / Twitter

SMEP

【仮想化道場】IDF北京から、2013年のIntelサーバープロセッサのロードマップを見る - クラウド Watch
Tsukasa #01さんはTwitterを使っています: "@yuzuhara x86 の PAE にあるような NX ビット (ARM での XN ビット) に加えて、ページ毎に Ivy Bridge の SMEP ができる PXN ビットというのがページテーブルに存在
本の虫: カプコンのPC版ストリートファイター5にチート対策として誰でもカーネルモードで任意のコードを実行できるルートキットが仕込まれている問題
Windows カーネルモードの脆弱性「CVE-2014-4113」を検証 | トレンドマイクロ セキュリティブログ

SMAP

x86 の新しいメモリ保護機能 Supervisor Mode Access Prevention(SMAP) - 教育は参考ブログ

MPX

技術者見習いの独り言: Intel Memory Protection Extensions (MPX)
るくすさんのツイート: "Intel MPXというポインタの値をランタイムにチェックするskylake以降のセキュリティ用拡張命令があるんだけど、GCCが次のバージョンからサポートを打ち切るそうな。 https://t.co/gH1sQz0EmT"
GCC Developers Potentially Deprecating Intel MPX - Phoronix
Richard Biener - Re: [PATCH][www] Deprecate MPX for GCC 7
www.ffri.jp/assets/files/monthly_research/MR201502_Intel_Memory_Protection_Extensions_JPN.pdf
るくすさんのツイート: "うわー ついにIntel MPX(Memory Protection Extensions)のサポートがLinuxからも消えるってよ... 結局gccもサポート切ったし、セキュリティ支援機構なんて使われなきゃ意味ないよなぁ https://t.co/Vl4ZUoxbvK"
The Linux Kernel Might Drop Memory Protection Extensions Support - Phoronix
x86 に AVX-512、SHA Extensions、Memory Protection Extensions(MPX)、Processor Trace(PT) が追加 - 教育は参考ブログ
suzakiさんのツイート: "3E4-1: ヒープ領域に対するソースコード不要のIntel MPX命令適用手法  ◎ 加藤 周良(名古屋工業大学) メモリの領域チェックを行うIntel Memory Protection Extensions(MPX)命令はコンパイラで適用されるのが一般的だが、PINによる動的バイナリ解析からヒープにも適用する。"

SGX

Intel

Intel SGX - セキュリティ
Intel® Software Guard Extensions SDK | Intel® Developer Zone
WebHelp
ISCA 2015 tutorial slides for Intel® SGX
ISA Extensions Intel SGX | Intel® Developer Zone
Introducing the Intel® Software Guard Extensions Tutorial Series | Intel® Software
Intel SGX Homepage | Intel® Software

SGAxe

SGAxe.pdf
DynaomoREA - slides.pdf
s-81: Hardware - YouTube
LayerX Newsletter for Tech (2020/11/30-12/06) - LayerX Labs Newsletter

MSDN

InitializeEnclave function (Windows)
CreateEnclave function (Windows)
IsEnclaveTypeSupported function (Windows)
LoadEnclaveData function (Windows)
ENCLAVE_INIT_INFO_SGX structure (Windows)
ENCLAVE_CREATE_INFO_SGX structure (Windows)

Firmware Security

Signal use of Intel SGX | Firmware Security
Monotonic Counter in Intel SGX and ME | Firmware Security
EnclaveDB: A Secure Database using SGX | Firmware Security
Upcoming Intel SGX Features Explained: Improved Virtualization, Configuration Management, and Key Sharing | Firmware Security

FPGA開発日記

Intel Software Guard Extensionのチュートリアルを読む(1. SGX Foundation) - FPGA開発日記
Intel Software Guard Extensionのチュートリアルを読む(2. Application Design) - FPGA開発日記
Intel Software Guard Extensionのチュートリアルを読む(2. Design an Application) - FPGA開発日記
Intel Software Guard Extensionのチュートリアル サンプルプログラムを実行(Part-3 PasswordManagerCore) - FPGA開発日記

Twitter

Leon Anaviさんのツイート: "#Intel SGX can leak #crypto keys tested on #Thinkpad T460S with #Ubuntu 16.10 https://t.co/Zxl0ySkj9H"
NOKUBI Takatsugu野首貴嗣さんのツイート: "これはACCS 2.0もアカンのでは…"
Tsukasa #01 [要出典]さんのツイート: "えーっと、サイドチャネル攻撃か。Intel は元々 SGX におけるサイドチャネルは注意事項として挙げてあったような、と思って検索してみたら、もっと直接的な言及をしているページを発見。 SGX and Side-Channels https://t.co/JlBBQiJ1BZ"
NOKUBI Takatsugu野首貴嗣さんのツイート: "UHD-BD対応のソフトウェアプレイヤーがSGX必須になってるけど、結局それだけじゃ意味ないんだな"
Takekazu OmiさんはTwitterを使っています: "Haven は、Windows 版Dockerなのかと思ったら、「SGX を使うと、hypervisor ではなくてコンテナでも高いisolation を実装できるぜ」って話しらしい、面白い。intel頑張るなあ"
品川 高廣さんはTwitterを使っています: "OSDI 2014 の Best Paper 3つ目は Haven. Intel SGX を活用して既存のWindowsアプリをクラウド上で安全に実行する。クラウド業者やVMM、物理層による攻撃にも耐えられる(CPU=Intelさえ信用すれば良い)。"
DJ MISONIKOMIUDONさんはTwitterを使っています: "Intel SGX拡張を使うマルウェアの可能性について。へー / Virus Bulletin : SGX: the good, the bad and the downright ugly https://t.co/11GXY6TtQ5"
NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています: "Intel SGX Enclave Page Cache Mem 暗号化されて外部からメモリ空間が見られない機構 #kernelvm"
royさんはTwitterを使っています: "ていうかその界隈の人はもう考えてるんだろうけどIntel SGXがまともに使われ始めたらメモリフォレンジック非常に困難では。プロセスごとに同じ空間で動くエージェント挿入するとかしないと解析できないのでは。"
suzakiさんのツイート: "ハードウェアⅡ三つ目。クラッシュやリブートしてもIntel SGXが提供するProtected Module Architectureを保証するために不揮発メモリを用意して状態保存するAriadneの発表。No Rollback, Continuous, Livenessを保証。"
suzakiさんのツイート: "OSDI OS-I四つ目。Forkでプロセスを作る代わりに、rollbackやreference monitorを考慮し、且つ効率的に処理を可能にする新しい抽象LwC: Light-Weight Contextsを導入する話。"
suzakiさんのツイート: "LwC論文ではIntel SGXで再設計する話が出てきている。こちらにも興味あり。"
suzakiさんのツイート: "質問にもあったけど、プロセスのisolationではキャッシュの攻撃やマルチスレッドを使った攻撃も考慮する必要がありますね。その意味でもSGXは重要か。"
suzakiさんのツイート: "明日のOSDIで発表される”SCONE: Secure Linux Containers with Intel SGX”の方がIntel Clear Container https://t.co/5OJRSIVzEi よりセキュアと思うのは気のせい?"
suzakiさんのツイート: "NDSS TEE五つ目。TEEは小さくと言われているがハイパーバイザーもカーネルも大きい。SGX にLibOSの技術を使い、Systcall,スレッド,イベントハンドラ, Forkなどのサポートしつつ小さいTEE(20K行)を保つPanopyの発表。Multi-Enclaveあり"
suzakiさんのツイート: "ハードウェアⅡ一つ目。Intel’s Software Guard Extensions (SGX)と同じ機能を提供するハードウェア拡張Sanctum (RISC-V上で実装) の発表。セキュアなサンドボックス(ここではSecure containerと呼んでいる)を提供する。"
suzakiさんのツイート: "security一つ目。ベストペーパ。Intel SGXを使ったサンドボックスのRyoan。SGXのenclave内のmoduleが用意され、秘密情報を管理。秘密情報はサンドボックス化による出ることはない。moduleは処理が終われば廃棄。"
suzakiさんのツイート: "ASPLOS メモリ2セッション3つ目。Intel SGXが使えるメモリEPC:Enclave Page Cache は128 MBに制限されているため、これ以上をつかうためにはnon-EPCにSwap-out/inする必要がある。しかし、MAC Integrityなどのオーバーヘッドのために40K サイクルかかる。(続く)"
suzakiさんのツイート: "SGXのメモリ拡張のオーバーヘッド問題を解決するためにUnified SGXで使われるデータ管理木を可変にしたVAULT: variable arity unified treeの提案。"
suzakiさんのツイート: "EuroSysストレージ2つ目。SGXにKVS: Key-Value Storageを作るとEPC (Enclave Page Cache 128MB)でSGXのPage Outが起こるので遅い。この性能低下を防ぐため、Sematic Aware Protectionを提案。独自に暗号してEnclave外のProtected Memory に保存するShieldStore。Enclave内にはKVSのSubTreeのRootのみ。"
suzakiさんのツイート: "ハードウェアセキュリティ4つ目。Intel SGXを実際に使い、その経験の発表 by 富士通。Trust領域とNonTrustの領域の通信が遅いのが問題。"
suzakiさんのツイート: "Dark ROPの肝は暗号化されているEnclave内でpop命令を見つける方法。コードのある領域はわざとPage faultを起こして見つける。次にENCLU命令(Enclaveで暗号化された命令を復号する命令)を見つけ、(EEXIT命令も使って?)popが使うレジスタを推定。"
suzakiさんのツイート: "これは知らなかった。 PC Watch 2017/03/07『Ultra HD Blu-rayの著作権保護機能である「AACS2.0」は従来のBDよりもはるかに強固なセキュリティを実現するため、PCでの再生においてはプロテクト解除のために「SGX対応」が必須とされているのだ。』 https://t.co/yWt59i8u4n… https://t.co/dK9pwD3Guy"
PCで4K&HDRなUltra HD Blu-rayを観るにはどうすればいい? 世界初の対応ドライブ パイオニア「BDR-S11J」の動作環境などをチェック!
suzakiさんのツイート: "【緩募】WindowsあるいはLinuxでAACS2.0対応のUltra HD Blu-ray再生アプリって何があるのでしょうか。"
suzakiさんのツイート: "裏が取れないのだけど、「DVDFabがAACS2.0の解除機能を実装」https://t.co/bhaHfQx8C6 ってIntel SGXを突破したってこと?"
DVDFabがAACS2.0の解除機能を実装 | E.i.Z
Intel SGXをコアとしたコンフィデンシャルコンピューティングの実現 - ITmedia エンタープライズ
Intel CPUの「Plundervolt」の欠陥が電圧操作を介して秘密を流出 - 自作ユーザーが解説するゲーミングPCガイド
retrageさんはTwitterを使っています 「ちょっと前までSGX使ったシステムの論文が雨後の筍のごとく出てて、その後SGXへの攻撃手法が出てSGX使われなくなったような感じがあった」 / Twitter
retrageさんはTwitterを使っています 「今アツいのはMPKなのかな」 / Twitter
suzakiさんはTwitterを使っています 「メモ。 ざっとしか見てないがSGXの解説が良さそう。 Trust is in the Keys of the Beholder: Extending SGX Autonomy and Anonymity [Master Thesis 2017] https://t.co/4hkOFnQASV」 / Twitter
Trust is in the Keys of the Beholder — Extending SGX Autonomy and Anonymity - jackson-msc-thesis.pdf
suzakiさんはTwitterを使っています 「RAID 2020の採択論文には色々興味深いものがある。 https://t.co/eUWLwO0RiK SGX関連が2件、 A Framework for Software Diversification with ISA Heterogeneity や Dark Firmware: A Systematic Approach to Exploring Application Security Risks in the Presence of Untrusted Firmware も惹かれる」 / Twitter
Accepted Papers – RAID 2020
suzakiさんはTwitterを使っています 「AnonifyのTEEが気になった調べた。 ブロックチェーンにおける次世代のプライバシー保護技術「Anonify」の ホワイトペーパー及びソースコードをLayerX R&amp;D部門が公開 https://t.co/A4sP3lLhg6 TEEにはIntel SGXを想定しているようだ。 ホワイトペーパもよく書けていそう。 https://t.co/QmdJmA8BCF」 / Twitter
ブロックチェーンにおける次世代のプライバシー保護技術「Anonify」の ホワイトペーパー及びソースコードをLayerX R&D部門が公開 | LayerX
anonify.pdf
suzakiさんはTwitterを使っています 「メモ。 RusTEE: Developing Memory-Safe ARM TrustZone Applications[ACSAC20] メモリセーフ言語Rustを活用してARM TrustZoneのセキュリティを強化するRusTEE。アイデアは単純だが、RustはTEEシステムをサポートしていないため、Rustコンパイラを拡張した。 TEE研究にツールチェーンの重要性を示した」 / Twitter
suzakiさんはTwitterを使っています 「メモ。 Faulty Point Unit: ABI Poisoning Attacks on Intel SGX[ACSAC20] KU Leuvenの研究者が発見したx87(FPU)およびSIMD拡張命令(SSE)の制御および状態レジスタがIntel SGXで常に適切にサニタイズされるとは限らないことを活用した攻撃についての発表。TEE内のサニタイズについての示唆を与えた」 / Twitter

インテル® SGX 命令とデータ構造の概要 | iSUS
ダウンロード Windows* 用インテル®ソフトウェア・ガード・エクステンションズ (インテル® SGX) ドライバー
Intel CPUのセキュリティ機構「SGX」にマルウェアを隠すことでセキュリティソフトで検出できない危険性、概念実証用のプログラムも公開済み - GIGAZINE
sgxrop/sgxrop: The code to the SGX-ROP paper
Intel SGXからのデータ奪取手法が開発 - ごった日記
Intel SGX のアップデート、および認証キーのリカバリー
wolfSSL FIPSのIntel® SGX対応 – wolfSSL:Blog
WolfSSLとWolfCryptのベンチマーク | wolfSSL
本当の進化とはこういうこと:質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (2/2) - ITmedia PC USER
マイクロソフト、クラウド上のアプリを隔離する新技術「Haven」を開発 - CNET Japan
北森瓦版 - 【Intel】“Skylake”でSoftware Guard Extensions (SGX) を有効化へ
204.pdf
跳ね橋を叩いて渡る An introduction to DrawBridge まとめ #kernelvm - by shigemk2
www.dell.com/support/manuals/us/en/19/latitude-e5570-laptop/LatitudeE5570_OM/Intel-Software-Guard-Extensions-画面オプション?guid=GUID-5D0F897B-F35D-45E9-8B65-F4B2CF32F5E7&lang=ja-jp
インテルSkylakeプロセッサのリビジョン!I7 / I5 / E3フルリニューアル@goodchinabrand.com
2016年2月24日のtwitterセキュリティクラスタ – twitterセキュリティネタまとめ
48146462.pdf
Teechanの決済プロトコル - Develop with pleasure!

TME

Shirouzu Hiroaki(白水啓章)さんのツイート: "ディスクやメモリの暗号化では、XTSというブロック暗号モードが最近の定番、という点を初めて知った。 https://t.co/AlgOrzHujH… "
Disk encryption theory - Wikipedia
Fomalhaut Weisszwergさんのツイート: "Intel 製 CPU にもメモリ暗号化機能。Intel TME (Total Memory Encryption) なる機能が追加されました https://t.co/Z5orBwxmY2"
Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linu… · torvalds/linux@9e1909b
Shirouzu Hiroaki(白水啓章)さんのツイート: "昔、サーバで暗号化してのファイル保存が必要になった際、CBCだとランダム書込みができず、CTRだとランダムな上書き(=事実上NONCE再利用状態)で脆弱性発生で、解決に頭を悩ませた記憶。 XTSという手を知らなかったので、別途NONCE配列(1ブロック=1NONCE)を設ける手しか浮かばなかった。… https://t.co/x76fuJuhga"
Shirouzu Hiroaki(白水啓章)さんのツイート: "CTRだとランダムな上書き(=事実上NONCE再利用状態)で脆弱性というのは、「ある時点でのスナップショットを取り、変更後にもう一度スナップショットを取る」という操作で、スナップショット差分=元内容と上書き内容のビットパターン差分が見えてしまう、という意味。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、XEX/XTSの後段のXORは、どういう効果があるのか良く判らない…気休め程度にも見えるのだけど。"

TDX

Intel® Trust Domain Extensions - tdx-whitepaper-v4.pdf
InstLatX64さんはTwitterを使っています 「This #Intel #TDX pdf has a comprehensive list of CPUID bits on p.116-123. It mentions a few new one (at least for me): FZM, MPRR, SGX_TEM, SGX_KEYS, ULI, DEDUP, HRESET, Fast REP*s, and - according to the XFAM bits - #AVX512-related #FP16 and #ADL_VNNI https://t.co/cRvQtcgU2A https://t.co/WeXCJgWl5m」 / Twitter
Architecture Specification: Intel® Trust Domain Extensions(Intel® TDX) Module - intel-tdx-module-1eas.pdf
https://twitter.com/InstLatX64/status/1306525230379290627
https://twitter.com/InstLatX64/status/1306530044584644609

本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
Hisaki Oharaさんのツイート: "よくまとまってる。最後のCETっての知らなかった。。Intel CPU security features https://t.co/zKazJKnSY5"
Intel CPU security features · huku-/research Wiki
x86におけるメモリアクセス権のルール - 睡分不足
社会人でもOSを作りたいさんはTwitterを使っています: 「きっとx86-64のOSを自作してる人なら誰もが持ってる思うけど,4階層ページングの仮想アドレスを各部分(PML4,PDP,PD,PT)に分割する,または逆に各部分の値から仮想アドレスを作るツールを作ってみた。 https://t.co/aaAXYAS1lz」 / Twitter
x86-64 Virtual Address Composer
NT カーネルのページング基礎 - Qiita

ページキャッシュ

Linuxのメモリキャッシュを削除する | 俺的備忘録 〜なんかいろいろ〜
OSキャッシュの便利な利用方法|サイバーエージェント 公式エンジニアブログ
Linuxでページキャッシュを確認・解放してみた - Qiita
Windowsカスタマイズ - キャッシュを極める

メモリ管理

Linux のメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止)(Kodama's tips page)
6. システムがパフォーマンスを維持するためのメモリ管理について
4.メモリ使用率(第5章 パフォーマンス管理~上級:基本管理コースII)
Windows OS入門:第4回 メモリ管理 - @IT
freeコマンドで確認するOSのメモリ情報 - SHOYAN BLOG
【RHEL】linuxのメモリ使用率(利用率)の計算方法 - のぴぴのメモ
linuxにおけるメモリと関連コマンド(free, vmstat, top, sar) - 銀色うつ時間
Linuxにおけるメモリ管理 - MogLog
どうしてメモリはスワップするのか!? - インフラエンジニアway - Powered by HEARTBEATS
Rui Ueyamaさんのツイート: "このミニOSにページングを実装する課題かなり目処がついて来た。最初は若干途方に暮れていたけど少しずつ作れば難しくはなかった。まずmmap()をやっつけで実装、そのあとスタック拡張も実装、そのあとページアウトも実装、みたいな。"

Meltdown:Variant 3: rogue data cache load (CVE-2017-5754)対策:Kernel page-table isolation

meltdown.pdf
kaiser.pdf
Kernel page-table isolation - Wikipedia
python sweetness — The mysterious case of the Linux Page Table...
The mysterious case of the Linux Page Table Isolation patches : linux
The mysterious case of the Linux Page Table Isolation patches | Hacker News
Linux page table isolation is not needed on AMD processors | Hacker News
The mysterious case of the Linux Page Table Isolation patches | Hacker News
Kernel page-table isolation merged [LWN.net]
The current state of kernel page-table isolation [LWN.net]
The current state of kernel page-table isolation [LWN.net]
The current state of kernel page-table isolation [LWN.net]
「Intelの脆弱性情報の開示が遅すぎた」ことでLinux開発者が大変な目に遭っていたことが発覚 - GIGAZINE
CPU脆弱性Meltdownのパッチ適用でベンチマークスコアが25%低下した - Qiita
Meltdown cpu脆弱性カーネルアップデートでほんとに性能ダウンした - Qiita
Meltdown - Wikipedia
Meltdown (security vulnerability) - Wikipedia
satさんのツイート: "Meltdownを使った攻撃のいろんな派生 https://t.co/7eZjlerhKN"
meltdown/libkdump.c at master · IAIK/meltdown
Microsoft Windows: Kernel Virtual Address (KVA) Shadow: mitigating Meltdown | Firmware Security
Windows 7のMeltdown対策パッチに脆弱性 ~セキュリティパッチがより深刻な問題を生む結果に、3月で修正済み - PC Watch
Hideyuki Tanakaさんのツイート: "インテル去年だけで16ビットレジスタを分割して使うときの不具合とか、中で変なOSが動いてる問題が発覚するとかいろいろあったのに、これはそれとは比べ問にならないぐらいまずそうだけど(´・_・`)"
KVA Shadow: Mitigating Meltdown on Windows - Microsoft Security Response Center
Rogue System Register Read
Instructions Affected by Rogue System Register Read

Foreshadow(L1 Terminal Fault(L1TF)) - CVE-2018-3615, CVE-2018-3620, CVE-2018-3624

その他

Intel CPUの投機実行にサイドチャネル攻撃による新たな脆弱性が発見 - PC Watch
インテルのプロセッサに新たな脆弱性「Foreshadow」--仮想化環境に対する大きな脅威 - CNET Japan
Intel製CPUのセキュリティ機能“SGX”に情報漏洩の脆弱性 ~“Foreshadow”が発表 - 窓の杜
Intelが発表、キャッシュタイミングを利用したサイドチャネル攻撃の脆弱性「L1TF」:仮想化利用時に課題あり - @IT
Microsoft、2018年8月のセキュリティ更新プログラムを公開 ~OSの最大深刻度は“緊急” - 窓の杜
インテルのプロセッサに新たな脆弱性「Foreshadow」--仮想化環境に対する大きな脅威 - ZDNet Japan
HW由来の脆弱性 (L1 Terminal Fault (L1TF) / Foreshadow: CVE-2018-3615, CVE-2018-3620, CVE-2018-3646) – 脆弱性情報ブログ(仮)
L1 端末の障害から保護するための Windows Server ガイダンス
インテルCPU脆弱性「Foreshadow」の影響をまとめる - orangeitems’s diary
“L1TF”脆弱性への対策を盛り込んだ「VMware Workstation」「VMware Fusion」最新版 - 窓の杜
IntelのCPUで新たに発見された脆弱性「Foreshadow」の解説ムービーをRedHatが公開中 - GIGAZINE
【CPU】 Intel CPUに新たな脆弱性『L1 Terminal Fault(L1TF)』。2018年8月度のWUで緩和策を実装 : ニッチなPCゲーマーの環境構築
herumiさんのツイート: "社内勉強会用のメモ Foreshadow L1FT https://t.co/43HbIRyzv3 TLBleed https://t.co/RZ8wHm7IDl LazyFP https://t.co/er6rVg2V7F"
misc/security/L1FT at master · herumi/misc
Microsoft、Spectre V3a/4とL1TF脆弱性対策のIntel CPU向けマイクロコード更新を公開 - 窓の杜
2018年8月24日号 LXDの.deb→snapパッケージ移行,続Spectre・“L1TF”(Foreshadow/Foreshadow-NG)への対応:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
2018年8月27日 Linux 4.19-rc1が登場,「L1TF」脆弱性にも対応:Linux Daily Topics|gihyo.jp … 技術評論社
MS、インテルのマイクロコード更新プログラム公開--「Spectre」「Foreshadow」対策 - CNET Japan
【セキュリティ ニュース】MS、「Foreshadow」対策でアドバイザリ - アップデートや追加対応策の実施を(1ページ目 / 全3ページ):Security NEXT
Intelが新たな投機的実行脆弱性"L1 Terminal Fault"を公表

@mhiramat

まさみさんは語りたいさんのツイート: "L1Dから読めちゃう問題というか仕様、昔からlock prefix付けないとL2が変わってもL1から読めるだけ読んじゃうって動作だったように思うんだけども。"
まさみさんは語りたいさんのツイート: "なんかbusy waitのバグを再現しようとして、フラグをatomicにするのを忘れてループ回したら、片方のCPUの演算結果が受け取れなくてL1Dは更新されないんだー、へーっていくのを実際にやった覚えがある。"
まさみさんは語りたいさんのツイート: "L1TF問題、armではどうなるんだっけか。"
まさみさんは語りたいさんのツイート: "L1TFって実際に書き込み出来るバグなの?"
Tsukasa #01 [要出典]さんのツイート: "No. Spectre 類似攻撃で、投機実行パスでメモリ保護機能の一部が無効になっていることを悪用して情報を "読む" ことがメイン。概要だけ抜き出したら Spectre や Meltdown と違う部分がなくなってしまいましたが、変種ということで……。… "
まさみさんは語りたいさんのツイート: "やはり読むだけですよね。いくら投機実行できるとは言え、投機的に書き込む場合コミットできるかどうか確認してからでないとメモリに書き込みは出来ないですよね。… "
Tsukasa #01 [要出典]さんのツイート: "はい。逆説的に言えば、その点さえ守ってれば投機的実行パスで何してもいいだろ的に色々やり過ぎたのが最悪の形で暴かれてしまってるのではないかと。… "
まさみさんは語りたいさんのツイート: "なんかこう、投機的実行とか先読みとかのせいで、Intel CPUを使うメリットだった強い一貫性のあるメモリモデルが一転して信じられなくなってる上、ISA上確認できないしコントロールも出来ないので最悪だなーっていう話になってきているな。"
まさみさんは語りたいさんのツイート: "そもそもメモリモデルがある程度弱い一貫性とかキャッシュを自前である程度制御しないといけない、という話だと、それに対応する命令ややり方があるんだけど、ソフトウェアの外側にある投機的実行や先読みが勝手にキャッシュしたりすると、制御する術がないか、あるけど牛刀になるという・・・。"
まさみさんは語りたいさんのツイート: "うーん、非常に嫌な話が出ていて、ページテーブルを共有する複数のコアで、1つのコアが一部のPTEを変えた場合、他のコアで勝手にそれがTLBにロードされているかもしれないっていう話。そしてそれを明示的にshootdownできない(他のコアなので)ので危険かもと。"
まさみさんは語りたいさんのツイート: "もはやTLB shootdownとは()という話だな。これどうしようもないなら、全部のコアでページテーブルを共有してはいけないっていう話にならないか?"
beepcap@HTTPSの強制には反対さんのツイート: "最近「まさかそんな実装になってるんけないやろwwww」みたいなのが、サイドチャネル攻撃のお陰で次々あらわになって笑えるし、MIPSの正しさが示される"
まさみさんは語りたいさんのツイート: "現状の予想 ・とりあえずカーネルのページテーブルは共有 ・微妙な操作をする場合に専用スレッドを立て、専用ページテーブルを利用する(カーネルスレッドだけど少し違うメモリ空間になる)"
まさみさんは語りたいさんのツイート: "これが他のspectreと違って厄介なのは、TLBエントリが勝手に追加されてしまった場合、その後のメモリアクセスは投機実行だけでなく、実際にコミットされうるところだな。つまりRWマップしていたら、書き込みも可能になると。"
まさみさんは語りたいさんのツイート: "このTLBのspeculative read-ahead(というのが適切に思う)の問題は、本質的には他のプロセッサでも起きる可能性がありそうなんだけど、どうなんだろう?"
まさみさんは語りたいさんのツイート: "処理の途中でswitch_mmしちゃう(専用スレッドは作らない)方向になった。まあ、その方が簡単だけども。"

@utshina2

品川 高廣さんのツイート: "10秒で分かるForeshadow: まずenclave内の秘密のデータをL1に乗せさせてアクセスするコードのout-of-order実行を可能にしつつ、pageを読み書き禁止にしてpage faultを発生させてダミー値への置き換えを防ぎ、page walk中にMeltdown的なside-channel攻撃でL1上の秘密のデータを読み出すって感じかな。"
品川 高廣さんのツイート: "page walk には時間がかかるのだけど、その間に同じページのデータが既にL1キャッシュに乗っていたら、次の命令が out-of-order で投機的に読めてしまうのが問題らしい。インテルが L1 Terminal Fault と呼ぶのはそういうことかな。"
品川 高廣さんのツイート: "page table entry の present bit が 0 (存在しない)の場合、本来残りのビットはOSが自由に使っていい領域なのだけれど、物理アドレス部分が(たまたま)キャッシュされている内容と一致していれば、次の命令で投機的に読めてしまうらしい。えーっ"
品川 高廣さんのツイート: "page table entry の物理アドレス部分がたまたま有効な値であれば、ユーザ空間から本来アクセス権がないOSや他プロセスのデータを読めてしまう可能性がある。キャッシュを共有しているVM間であれば、ゲストOSで適当に page table entry を設定すれば他VMのデータを読めてしまう可能性がある。"

@kazuho

Kazuho Okuさんのツイート: "PTEのPresentビットが立ってなくても、格納されている物理アドレスをspeculativeに利用しちゃうから副作用があるのかー / “deep-dive-intel-analysis-l1-terminal-fault” https://t.co/qKY8UK7vcv"
Kazuho Okuさんのツイート: "L1TF はゲストOSが信頼できないとなると hyper-threading をオフにする必要があって、それってつまり vps とかそういう系にはとても大きなパフォーマンスインパクトがあるってことになるからなぁ https://t.co/sgvOGMIqnv"
Intel Side Channel Vulnerability L1TF
https://software.intel.com/security-software-guidance/insights/deep-dive-intel-analysis-l1-terminal-fault

@jovi0608

Shigeki Ohtsuさんのツイート: "今度は Intel SGX を狙った L1 Terminal Fault か。 / “Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-…” https://t.co/aPzuaSE1j1"
Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution

@KuniSuzaki

suzakiさんのツイート: "新たな投機的実行の脆弱性 "Foreshadow"(Intelでの命名はL1TF: L1 Terminal Fault)はIntel SGX、SMM、VMMまで影響を及ぼす。これはUSENIX Sec18で発表される。 https://t.co/2isrd8lko8 USENIX SecのHP https://t.co/uylwnCo89D"
Intel CPUの「SGX」機能に新たな脆弱性、仮想マシンなどにも影響 - ITmedia エンタープライズ
suzakiさんのツイート: ""Foreshadow"論文はまだUSENIX Sec18のHPからは公開されていないが、著者らのHPからダインロードできる。 https://t.co/0wpfRoXaXx"
foreshadow.pdf
suzakiさんのツイート: "投機的実行の脆弱性 "Foreshadow"脆弱性は、 SGX関連 CVE-2018-3615(CVSS 10.0) OS/SMM関連 CVE-2018-3620(CVSS 7.1) VMM関連 CVE-2018-3646(CVSS 7.1) だそうだ。 共通脆弱性評価システム(CVSS)最高値は10.0なので影響が心配。 https://t.co/2isrd8lko8"

@masami256

このコード、オシャカルトっ!さんのツイート: "PTEからPFNを調べるところでprotnone_mask()って関数が追加されてPビットのチェックが入ったり。https://t.co/eNCpazBHtG"
kernel/git/torvalds/linux.git - Linux kernel source tree
このコード、オシャカルトっ!さんのツイート: "記事にも書いてあるけど、実際のpatchを見るとkvmの方が対応がめんどくさいな"
このコード、オシャカルトっ!さんのツイート: "https://t.co/6MfwZRO9gaのMeltdown strikes back: the L1 terminal fault vulnerabilityってまた新しい手法か?まだ読んでない。"
このコード、オシャカルトっ!さんのツイート: "Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution https://t.co/qBXFHNqfL1"
Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution
このコード、オシャカルトっ!さんのツイート: "PTEのPビットが0ならページが存在しないんだから、ページフォルトが起きた時にPTEのPFNは読む必要ないんだけど、Intel CPUは先読みしちゃうのでL1キャッシュにデータがあると読み出せてしまうって感じかな。"
このコード、オシャカルトっ!さんのツイート: "データがL1に存在する必要があるとか条件は面倒そうだ。"
このコード、オシャカルトっ!さんのツイート: "コメントが細く書かれてるな https://t.co/eNCpazBHtG"
kernel/git/torvalds/linux.git - Linux kernel source tree
このコード、オシャカルトっ!さんのツイート: "(´-`).oO(カーネルも脆弱性対応で変数にアクセスするにもちょっとひと手間加える必要があったりするし、セキュリティはそこまで気にしないシンプルな実装の学習用のカーネルというものの需要はあるだろうな。"
satさんのツイート: "これよいですよ https://t.co/yd2t2H5LpE… "
このコード、オシャカルトっ!さんのツイート: "Meltdown strikes back: the L1 terminal fault vulnerability のpteの説明でpfnに46bit使ってるところはSDM Vol3のTable 4-19. Format of a 4-Level Page-Table Entry that Maps a 4-KByte Pageだと物理アドレスとなってるので違いがあるのか。 https://t.co/qO6Fm4kZpy"
Meltdown strikes back: the L1 terminal fault vulnerability [LWN.net]

Foreshadow (security vulnerability) - Wikipedia
Analysis and mitigation of L1 Terminal Fault (L1TF) - Microsoft Security Response Center
L1 Terminal Fault
INTEL-SA-00161
Processors Affected: L1 Terminal Fault
Deep Dive: Intel Analysis of L1 Terminal Fault | 01.org API

MDS

Microarchitectural Data Sampling - Wikipedia
Fadisさんのツイート: "MDS: 一部のIntelプロセッサ内のStore Buffer(メモリ書き込み予定表)、Fill Buffer(L1 cacheへのロード待ち表)、Load Port(メモリからの読み出し待ち表)が完了後にクリアされておらず、これらを踏む命令で見えない位置にあるはずの値の存在を確認できるサイドチャネル脆弱性 https://t.co/10QjZh7YJC"
【CPU】 Intel CPUに新たな脆弱性『Microarchitectural Data Sampling (MDS)』。AMD CPUは影響なし : ニッチなPCゲーマーの環境構築
Intel CPUの投機実行機能に新たな脆弱性「MDS」 ~サーバーは緩和策によるストレージ性能への影響あり - PC Watch
2011年以降のほぼすべてのIntel製プロセッサに影響する脆弱性「MDS」の存在が明らかに - GIGAZINE
Intel製CPUに新たな脆弱性「ZombieLoad v2」が発見される、Cascade Lakeにも影響あり - GIGAZINE
2019年5月17日号 Meltdown/Spectre/Foreshadowの後の世界:“MDS”攻撃への対応,WSL2のFAQ:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
2019年11月22日号 Meltdown/Spectre/Foreshadowの後の世界・“TAA”, “MCEPSC”への対応:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
ZombieLoad: Cross-Privilege-Boundary Data Sampling
New ZombieLoad v2 Attack Affects Intel's Latest Cascade Lake CPUs
Microarchitectural Data Sampling
Processors Affected: Microarchitectural Data Sampling
Intel Side Channel Vulnerabilities: MDS and TAA
Deep Dive: Intel Analysis of Microarchitectural Data Sampling
Deep Dive: Intel® Transactional Synchronization Extensions (Intel® TSX) Asynchronous Abort

Rowhammer

shinichiro hamajiさんのツイート: "#misreading https://t.co/m82S1poS4x Rowhammerは仕事のタイミング的にすごく困った。clflush禁止→無くても、ARMとかでもできた→JSからでもできた(https://t.co/nuwXNhlHqZ)と案の定悪化していった。基本ハードウェア上の処置(頻繁にリフレッシュとか)しかないという理解で、そのへんは面白みが無い"
Episode 18 – Exploiting the DRAM Rowhammer Bug to Gain Kernel Privileges – Misreading Chat
1507.06955.pdf
Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
kim-isca14.pdf

Page Cache Attacks

ハードウェア非依存の新たなサイドチャネル攻撃“Page Cache Attacks”が発表 - 窓の杜
[1901.01161] Page Cache Attacks

Google

米Google、WebKitベースの新レンダリングエンジン「Blink」を発表、Chromeでの導入を視野に | OSDN Magazine
Google Developers Japan: プロセス外 iframe で Chrome 拡張機能のセキュリティを向上
Rockridgeさんのツイート: "Chrome 56以降、エクスプロイト攻撃への対策として、拡張機能の設定ページなどで用いられるiframeを拡張機能のプロセスから分離し、セキュリティを強化した。 / “Chromium Blog: Improving exte…” https://t.co/45P64PWoZj"
Chromium Sandbox を用いた保護モード - NyaRuRuが地球にいたころ

Mozilla

WebExtensions

Rockridgeさんのツイート: "WebExtensions拡張機能の別プロセス化は、contentプロセスの複数化とは別の話である。contentプロセスが4つ埋まっていても、拡張機能向けのプロセスは別途設けられる。 / “Out-of-process Web…” https://t.co/q6gGS6PDPX"
Rockridgeさんのツイート: "WebExtensionsの別プロセス化とサンドボックス化について、実装時期は未定だが開発は進行しているとのこと。参照:https://t.co/8DrgHzDhHy / “WebExtensions in Firefox 51…” https://t.co/uJICsXuEIU"
Rockridgeさんのツイート: "WebExtensionsからSpiderNodeを別プロセスで起動させる実験が行われている。このプロセスはサンドボックス化されることが想定されている。参照:https://t.co/u7RAcFgA7Z / “Node and…” https://t.co/5MhRCjTwro"
Rockridgeさんのツイート: "ローカルファイルを読み書きするシステムをWebExtensions向けにどのように実装するか検討中。サンドボックス化されたプロセスと整合性のある実装が求められる。参照:https://t.co/yYPsAl35af / “Web…” https://t.co/t0U4WcPAI4"

5x

52

Rockridgeさんのツイート: "Fx52:Linux版におけるプロセスのサンドボックス化が強化され、原則としてcontentプロセスにおいてファイルシステムへの書き込みは禁止されるようになった。参照:https://t.co/lkLuRqHfsI / “Gar…” https://t.co/fqlvHTovZc"

55

Rockridgeさんのツイート: "Fx55:Windows/macOS版でcontentプロセスのサンドボックス化が常時有効化。最低限のサンドボックスが偶然に無効化されることを防ぐ。 / “1358223 - Hard code the lowest allow…” https://t.co/AGCUlQaEJA"
Rockridgeさんのツイート: "Fx55:GPUプロセスにも最低限のサンドボックスが適用されるようになった。 / “1347710 - Enable sandbox protections for the Windows GPU process” https://t.co/JP5oODpbBj"
Rockridgeさんのツイート: "Fx55:サンドボックス機能を実装するために使うChromiumのコードが、Chromium 56ベースのものにアップデートされた。前回はFx51でChromium 49ベースのコードが導入されていた。 / “1337331 -…” https://t.co/nzmPvITBKo"

56

Rockridgeさんのツイート: "Fx56:Windows版Nightlyで、contentプロセスのサンドボックス化が従来よりも強化された。 / “1366694 - Enable Windows level 3 content process sandbox…” https://t.co/lU3hKqxwNh"
Rockridgeさんのツイート: "Fx56:Mac版でcontentプロセスのサンドボックス化が強化され、そのままデフォルト有効で投入される。参照:https://t.co/OKJU6oOYr9 / “1377522 - Let the Level 3 cont…” https://t.co/WJQReMCVn2"

57

Rockridgeさんのツイート: "デスクトップ版Firefox 57はプラットフォームを問わずファイルシステムのアクセスがプロセスサンドボックス内に限定されるようになった。Windows向けFx58ではサンドボックスがさらに強化されるという。 / “Firefo…” https://t.co/kUV49pletZ"

59

Rockridgeさんのツイート: "Fx59:Chromiumから取り込んでいる、プロセスのサンドボックス化に関するコードがアップデートされた。Chrome 62と同等か。参照:https://t.co/kz6ENgKo7p / “1366701 - Update…” https://t.co/FjTyMfiFby"
Rockridgeさんのツイート: "Firefoxはプロセスのサンドボックス機能を実装するにあたりChromiumのコードを利用している。ところがChromiumがWindows XP/Vistaのサポートを打ち切ったため、Chromium 50以降の新しいものを使… https://t.co/a1lsFDKzck"
Rockridgeさんのツイート: "Windows版Firefoxのビルドにおいて、Windows 10 SDKのバージョン10.0.10586以降が必須となる。プロセスのサンドボックス化に関するChromiumのコードを取り込むのに必要な措置だという。 / “P…” https://t.co/Zq1gPwfZrW"
PSA: Making Windows 10 SDK version 10.0.10586 the minimum for building Firefox - Google グループ

Rockridgeさんのツイート: "Fx58:contentプロセスにおけるサンドボックスのセキュリティ水準を強化した。 / “1415250 - Let level 4 for the Windows content sandbox ride again.” https://t.co/PUIKKXCNJr"

6x

60

Rockridgeさんのツイート: "Fx60:macOS版で、contentプロセスのサンドボックスが強化され、ディスクの書き込みに例外なく制約がかかるようになった。今後はWindows版やLinuxにもこの措置を適用していく。参照:… https://t.co/mwZ8F8D5Kr"

Rockridgeさんのツイート: "サンドボックス化の対象となるFirefoxの各種プロセスについて。 / “Security/Sandbox/Process model - MozillaWiki” https://t.co/QxYBng4ADa"
Rockridgeさんのツイート: "近日中にWindows/macOS版Nightlyでcontentプロセスのサンドボックスが強化される予定。 / “Enabling filesystem read-restrictions for content proces…” https://t.co/hTx048KnbY"
Rockridgeさんのツイート: "Firefoxに実装され、あるいは将来実装予定のサンドボックス機能について、概要を説明した文書。Compositorプロセスの導入がFirefox 53になりそうだという話も。 / “Security/Sandbox/Archi…” https://t.co/GGOo0nXJhE"
Rockridgeさんのツイート: "MozillaはFirefoxのサンドボックス化されたプロセスが破られた場合に、被害を最小化する仕組みについても検討している。参照:https://t.co/nKOqk4k2rm / “Hardening the Firefox…” https://t.co/oQAY9QD8x4"
Rockridgeさんのツイート: "MozillaはWindows版Firefoxのサンドボックスを強化する"win32k lockdown"について検討中だが、2019年3月以降の導入になりそうだ。Chromeは導入済み。参照:… https://t.co/otgOjeezZK"
Security/Sandbox/2018-04-12 - MozillaWiki
Rockridgeさんのツイート: "Mozillaは、将来的にサイト単位のプロセス分離を導入するため、1つのプロセスが消費するメモリを減らす取り組みを続けている。2018年11月現在、7~8か月前と比べて3分の2以下になっている模様。 / “Project Fis…” https://t.co/3mHR3xsA81"

Linux

eBPF

睡分不足

SpectreとeBPF - 睡分不足
LinuxのBPF : (1) パケットフィルタ - 睡分不足
LinuxのBPF : (2) seccompでの利用 - 睡分不足
LinuxのBPF : (3) eBPFの基礎 - 睡分不足
LinuxのBPF : (4) ClangによるeBPFプログラムの作成と,BPF Compiler Collection (BCC) - 睡分不足
LinuxのBPF : (5) eBPFによるLinux Kernel Tracing - 睡分不足

blog

ブログ: Linux Enhanced BPF (eBPF)トレース・ツール
Berkeley Packet Filterの基礎と応用 - Part 1
LinuxのBPFとbccでデバッグする - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネルの新機能 XDP (eXpress Data Path) を触ってみる - yunazuno.log
eBPF命令セット - Packets are too Fast
ubpfで遊んでみる - livaの雑記帳
Linux eBPF Tracing Tools
eBPF: One Small Step
How to send/receive raw packets on Linux
Persistent eBPF map object with bcc - yunazuno.log
eBPF tail call 使い方メモ - yunazuno.log
gRPCが遅すぎる?eBPFでカーネル内で動かす!. gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、ま… | by FUJITA Tomonori | nttlabs | Medium

スライド

BPFの現在 - SSSSLIDE
eBPF関連用語メモ - Speaker Deck
eBPFをFreeBSDにポーティングしようとしている話 - Speaker Deck
eBPF verifier - Speaker Deck

GitHub

susanow/bpf: BPF Implementation using Xbyak JIT Assembler in Userland
bpf-docs/eBPF.md at master · iovisor/bpf-docs
IO Visor Project
eBPF – IO Visor Project

Twitter

Kentaro Ebisawaさんのツイート: "Linux 4.10 に IPv6 Segment Routing 入ったんだ。VRFもいろいろ拡張されてる。あとは BPF for lightweight tunnel encap か。 https://t.co/N4EmE5IcmI"
Yojiro UOさんのツイート: "「イマドキのBPF復習しとかなきゃ」っていろいろみてたら、見つけた。更新されてるし網羅性も高い? Dive into BPF: a list of reading material https://t.co/C0PDApgWGZ"
Dive into BPF: a list of reading material
るくすさんのツイート: "まあ普通の使い方じゃなくて、各ソケット一つに付随してるBPF JITコードを延々と増やしてJIT sprayするためという、明らかに攻撃者始点の使い方。"
まさみさんは語りたいさんのツイート: "あー、これはBPFとフレームワークを共有しているからか。"
まさみさんは語りたいさんのツイート: "netmapはNICのパケットバッファをユーザ空間にmmapする。VALEはカーネル空間にmmapして、スイッチングロジックをカーネルモジュールで書ける。ただしこのモジュールを書くのは非常に難しい。"
まさみさんは語りたいさんのツイート: "VALE-BPFということでBPFでVALEモジュールを書けるとのこと。"
まさみさんは語りたいさんのツイート: "VALE-BPFはXDPよりも2%ほどパフォーマンスが良くなる"
まさみさんは語りたいさんのツイート: "個人的にはeBPFを勘違いしていて、バイトコードをある程度自由にカーネル内から構成できると思っていたんだけど、実際にはユーザ空間から渡されたコードをVerifyしたりする結構面倒な手続きを飛ばせないと言われたのが最近のeBPFの記憶のハイライト。"
品川 高廣さんのツイート: "Spectre は Intel だけでなく AMD や ARM の CPU でも実行できるけど、読み取りたいメモリへのアクセス権限をもったある種のコードが必要。Google は eBPF を使ってるし、この論文では ROP 的な手法を使っている。攻撃は簡単じゃないけど防御も一筋縄… https://t.co/nwCuRhOvnr"
品川 高廣さんのツイート: "とりあえず、eBPF は無効にした方がいいんじゃないか。"
るくすさんのツイート: "bpf JITと言うと、grsecurityが昔bpf JITでJIT sprayして権限昇格やるkernel exploitやってた気がする(SMEP bypass可"
shinichiro hamajiさんのツイート: "#misreading ep.6 は完全に俺得回でした。依存関係解析はAndroidでやったことがあって、straceをseccomp-bpf使って改造高速化して入出力全部調べるという一般的な手法だった https://t.co/Kkg9qXGo5R 実際これでかなりたくさんのぶっこわれてる依存見つけて、修正の例としては https://t.co/rFVCOdqVFZ"

https://www.kernel.org/doc/Documentation/networking/filter.txt
Berkeley Packet Filter - Wikipedia
BPF for lightweight tunnel infrastructureについて調べてみた - Qiita
2018年8月14日 Linux 4.18がリリース ―AMDGPUサポートの拡充,BPFILERフレームワークなど:Linux Daily Topics|gihyo.jp … 技術評論社
「LLVM 3.7」リリース、eBPFサポートがマージされターゲットとして選択可能に | OSDN Magazine

seccomp

mode 2 seccompの話 - yuzuharaの日記
Linuxカーネル3.5リリース、ファイルシステムやネットワーク、ドライバ関連で多くの強化が行われる | OSDN Magazine
Berkeley Packet Filterの基礎と応用 - Part 3
seccompめも( ..)φカキカキ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linux 3.19はkernelからX.509証明書をロード(IMA)するらしい - つれづれ日記2015年05月
本の虫: ChromiumがLinuxカーネル3.17より前のサポートを打ち切り
Rockridgeさんのツイート: "Linux版Firefoxにおけるプロセスのサンドボックス化にはSeccomp-bpfを利用しており、Linux 3.5(2012年7月21日リリース)以降がその動作環境となる。 / “Security/Sandbox - Mo…” https://t.co/NJBc9k8kRI"
OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する - 人間とウェブの未来

SELinux

SELinuxの現在の動向 — | サイオスOSS | サイオステクノロジー
SELinuxのCIL (Part1) — | サイオスOSS | サイオステクノロジー

Firejail

Firejail - ArchWiki

Linuxカーネルモジュールでret2usrによる権限昇格をやってみる - ももいろテクノロジー
LinuxカーネルモジュールでStackjackingによるSMEP+SMAP+KADR回避をやってみる - ももいろテクノロジー
wiki/linux-boot-process.md at master · hfm/wiki
Linuxカーネルの基本機能 - 第5回 カーネル・メモリー管理:ITpro
kmem_cacheさんはTwitterを使っています: "linuxのpage allocatorでcompactinoの実行を管理するのはcompact_zone()か。実際にpageを移動させたりはmigrate_pages()とかになる。 http://t.co/ilEruADd0M"
平田豊ひらたゆたか🐬さんのツイート: "Linuxのカーネル空間では、ヌルポアクセスすると、ページフォルト処理の延長でOopsに遷移します。下記メッセージ(ARMの場合)が表示されます。 "Unable to handle kernel %s at virtual address %08lx\n" https://t.co/Qxae8BVGut"
るくすさんのツイート: "SMAF(Secure Memory Allocation Framework)がLinux4.10から入りそう。 Webカメラって案外IOMMUがないらしく外部のIPからDMA attackができるらしいがそれの防止もできるとか https://t.co/moS8t8y7Fy"
NsJail
google/nsjail: A light-weight process isolation tool, making use of Linux namespaces and seccomp-bpf syscall filters (with help of the kafel bpf language)
革命の日々! transparent hugepage considered harmful
www.ffri.jp/assets/files/monthly_research/MR201404_Building secure Linux application with privilege separation_JPN.pdf
2016年5月13日 ヤバめのアプリはまず"火の檻"で ―サンドボックス「Firejail」がX11に対応へ:Linux Daily Topics|gihyo.jp … 技術評論社
2017年9月25日 AppArmorをDebianでもデフォルトに!? ―Tails開発者が提言:Linux Daily Topics|gihyo.jp … 技術評論社
Linuxカーネル4.16リリース | OSDN Magazine
2018年4月4日 Linux 4.16がリリース ―Jailhouseハイパーバイザのサポート,usercopyホワイトリストなど:Linux Daily Topics|gihyo.jp … 技術評論社
第40回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[4]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
KOSAKI Motohiroさんのツイート: "Turing Complete FM #31 聞いてる。Linuxだとsuper pageからnormal pageからのdemoteは行っていない。なぜならfreebsdに入れたときよりだいぶあとに入ったので、デスクトップPCの平均メモリ量がかわってしまい、ふつう全部2Mページでも困らないぐらいだし、いらない、という意思決定をした"
KOSAKI Motohiroさんのツイート: "transparent hugepageで面白かったのは、いらなくなったときに2M単位でスワップアウトするか、その時点で4kに分解して、ちょびちょびスワップアウトするかで議論して、平均性能よりも性能劣化を最小化するほうがリアルワールドで受け入れてもらうために重要だろうという話をして、4kに分解することに"
suzakiさんのツイート: "1998年か。「スタックを非実行領域にするLinux向けのパッチ(修正差分)は,1998年には既にOpenwallプロジェクトなどが提供していた。しかし,Torvalds氏はこれを無意味だとしてパッチの取り込みを拒否している」https://t.co/1GyILfaHq8"
Windows XP SP2の新セキュリティ機能,Linuxでも標準装備を(2ページ目) | 日経 xTECH(クロステック)
Fadisさんのツイート: "Linux 5.0までのページ管理はページの参照数を32bit符号付整数のatomic値で保持していて0になるとページを捨てるようになっており、多くのコンパイラは符号付整数が最大値を超えた時最小値からカウントするコードを吐く為、約42億箇所から参照されるページの参照が減るとページが消えてしまうらしい"
Fadisさんのツイート: "ただし、リソースを大食いせずに、ulimitの制限も回避しながらユーザ空間で1つのページに対して42億もの参照を作るのは容易ではなく、この不具合が悪用される可能性は極めて低いとされている"
Fadisさんのツイート: "32bit整数が一周するほど参照する方法とか、Linux 5.1でどうしたのかとかの詳細はLWN(リンク先有料記事) https://t.co/q6MImoJmMs"
Subscription required [LWN.net]
suzakiさんのツイート: "セキュアメモリ二つ目。同じアドレスを複数回t叩くRowHammerをPTE に適用し、権限昇格を行う攻撃がある。 これに対して現在のDRAMでは01のロジックが逆のCell (True-Cells, Anti-Cells)を組み合わせいる。 True-Cellのみが使われるようにするCell Type Aware (CTA) memory Allocationの提案。"
suzakiさんのツイート: "LinuxではPage Tableの割り当てにZONE_PTPを使つっているので、これを活用。"
suzakiさんのツイート: "Security I 二つ目。 すべてのメモリアクセスにCapabilityが付く命令セットCHERI: Capability Hardware Enhanced RISC InstructionsでPointer Provenanceを保証する仕組みを導入した話(Best paper, SRI)。 (論文ではProvenanceの意味をcorrect operationと定義している)"
suzakiさんのツイート: "ライブラリはソースコード(sbrk, mmap, and shmat? )の変更が必要だが、通常のアプリは大抵不要。 元々入っていたFAT PointerをProvenance更に付加した?"
複数の仮想ページに同じ物理ページをマッピングする方法 (Linux) - 睡分不足

FreeBSD

はっきり見えてきたFreeBSD 10の行方(2/3) - @IT
CAPSICUM(4) - 特殊ファイル - YOS OPENSONAR
【レビュー】新しいセキュリティモデル「Capsicum (キャプシカム)」を知る | マイナビニュース
FreeBSDのCapsicumとは(その1) - Qiita
2011年11月8日 新セキュリティ「Capsicum」:FreeBSD Daily Topics|gihyo.jp … 技術評論社
第9回 カーネル内部のセキュリティを強化,ネストカーネルでメモリ区画化:BSD界隈四方山話|gihyo.jp … 技術評論社
第10回 セキュリティを大幅に強化するCheriBSD:BSD界隈四方山話|gihyo.jp … 技術評論社

OpenBSD

OpenSSLのフォーク「LibreSSL」を含んだ「OpenBSD 5.6」がリリース | OSDN Magazine
20周年を迎えたOpenBSD、「OpenBSD 5.8」を公開 | OSDN Magazine
「OpenBSD 6.0」が公開 | OSDN Magazine
「OpenBSD 6.2」リリース、カーネル保護機構などを強化 | OSDN Magazine
第25回 OpenBSD 5.8登場 - sudo(8)を廃止してdoas(1)を導入:BSD界隈四方山話|gihyo.jp … 技術評論社
第29回 OpenBSD 5.9の新しいセキュリティ機能pledge(2):BSD界隈四方山話|gihyo.jp … 技術評論社
第35回 OpenBSD pledge(2)システムコール,5.9で正式登場:BSD界隈四方山話|gihyo.jp … 技術評論社
第108回 OpenBSD,KARLセキュリティ機能を開発:BSD界隈四方山話|gihyo.jp … 技術評論社
第111回 BSDカーネル脆弱性調査:BSD界隈四方山話|gihyo.jp … 技術評論社
第112回 OpenBSDに新しいセキュリティ機能「RETGUARD」:BSD界隈四方山話|gihyo.jp … 技術評論社
第120回 OpenBSD 6.2登場:BSD界隈四方山話|gihyo.jp … 技術評論社
第122回 OpenBSD新セキュリティ機能KARL:BSD界隈四方山話|gihyo.jp … 技術評論社
第128回 OpenBSD pledge(2)システムコール進捗報告:BSD界隈四方山話|gihyo.jp … 技術評論社

NetBSD

このコード、オシャカルトっ!さんのツイート: "設計の内容が説明されてるので良い感じ( ̄ー ̄)bグッ! GSoC 2018 Reports: Kernel Address Sanitizer, Part 3 NetBSD Blog https://t.co/cRb87HEGnx"
NetBSD Blog
このコード、オシャカルトっ!さんのツイート: "NetBSDのKASANの説明記事はLinuxはこんな感じでNetBSDではこうしたよって形の説明の仕方なのでちょっとお得 😊"

ASLR

Yamamoto, Hirotakaさんのツイート: "ASLR が性能にこんなにインパクト与えることあるのか。 https://t.co/qpep0x0CaX"
Øystein on MySQL Optimizer: Improving the Stability of MySQL Single-Threaded Benchmarks
ASLR回避技術とChromeのsandboxの突破exploit | Scene Research Station
Address Space Layout Randomization in Windows Vista – Michael Howard's Web Log
Address Space Layout Randomization - NyaRuRuが地球にいたころ
Tsukasa #01 [要出典]さんのツイート: "ところで、セキュリティキャンプ 2018 の本番中に (参加者のフィードバックに応じて) ファイルやデータのエントロピー計算をやるのを (講師として) 突貫で勉強して突貫で実装したわけですが、あれって凄くシンプル (かつ条件によっては騙しやすい) ものだったんですね。"
Tsukasa #01 [要出典]さんのツイート: "早い話が 0x00 - 0xff の頻度表を作ってそこからエントロピーを計算するもの (実装の違いとしては "どこから" データを取るか、くらいか) で、00 01 02 03 .. FE FF な超規則的なバイナリデータでもエントロピー 8 (最大) になるよね、という話をしていました。"
OSセキュリティチュートリアル
ASLR – 研究室の裏庭 – Medium
Windows 10: 強化された脆弱性緩和技術で攻撃のコストを上げる – 日本のセキュリティチーム
JVNVU#91363799: Windows 8 およびそれ以降のバージョンにおいて、アドレス空間配置のランダム化が適切に行われない脆弱性
「Windows 8」以降のセキュリティ機能に脆弱性 - CNET Japan

ページング方式 - Wikipedia
メモリ保護 - Wikipedia
chroot - Wikipedia

ページテーブルのランダム化

suzakiさんのツイート: "システムセキュリティ1。4つ目。Page Tableはpermissionもあり、変更されるとデータがコードになる。これを防ぐためにPage TableをランダムにするPT-Randの提案。ランダマイゼーション情報はLeakage resilientなDebugレジスタに隠す。"
まさみさんは語りたいさんのツイート: "Page Tableをランダムにするにはハードウェアの補助が必要な気がしますが、ソフトウェアだけで処理ですか?(Page tableに割り付けるページをランダムに選ぶ?)… "
suzakiさんのツイート: "発表を聞いていた範囲ではpage walk中にはソフト割り込みを禁止するなど説明しており、特別なハードウェア機能を使わないようでした。… "

サンドボックス

サンドボックスとは?標的型攻撃への定番対策の仕組みと課題
巧妙なマルウェアに対抗する最先端のサンドボックス技術 | トレンドマイクロ セキュリティブログ
合法マルウェアで実感「リアルとサンドボックスの違い」 (1/3):マルウェアの視点で見るサンドボックス - @IT
ASCII.jp:検知を回避するマルウェアが使用するメカニズムを徹底解説
今更聞けない!サンドボックスの基本を徹底解説! | CodeCampus
ASCII.jp:サンドボックス型製品すらも回避、最新の標的型攻撃事情
ウォッチガード、次世代サンドボックスによるマルウェア検知・自動レスポンスを機能拡張 – UTM/NGFWでマルウェア・標的型攻撃対策|ウォッチガード・テクノロジー
サンドボックス機能|機能紹介(FortiSandbox)|日立ソリューションズがお届けするFortinet Products
「サンドボックスだけでは標的型攻撃を防げない」――フォーティネットが提唱する3つのステップとは? | ビジネスネットワーク.jp
Project Zero: You Won't Believe what this One Line Change Did to the Chrome Sandbox
Project Zero: FF Sandbox Escape (CVE-2020-12388)
Site Isolation 及び Web のセキュリティモデルの更新 | blog.jxck.io
オリジン全体にポリシーを適応するOrigin PolicyをChromeで試す - ASnoKaze blog
品川 高廣さんはTwitterを使っています 「iOS の sandbox はパス名ベース。TOCTTOU 攻撃には弱そうだな。#arm_study」 / Twitter
iOSとmacOSでiMessageを強固にするためのサンドボックスとその他の手法

セキュリティ

Intel

サービス拒否攻撃

ページサイズ変更によるマシンチェックエラー: CVE-2018-12207 - Red Hat Customer Portal
Deep Dive: Machine Check Error Avoidance on Page Size Change
Processors Affected: Machine Check Error Avoidance on Page Size Change

SPOILER

Intel製CPUに見つかった新たな脆弱性「SPOILER」はまたもシリコンレベルでの再設計による修正が必要 - GIGAZINE
まさみさんは語りたいさんのツイート: "CPUのOut of Order実行をしている時にストア命令とロード命令の実行順序が投機的に入れ替わるのを利用。ロードはストアを追い越すが、実行後に直前のストアが終わっていないことが分かったらやり直す。これを利用するとロードにかかる時間が変わることを利用してどこをアクセスしてるか推測できる。"
まさみさんは語りたいさんのツイート: "問題はこのロードとストアの衝突の検知のため物理アドレスを比較するときに、アドレスのごく一部のビットだけ利用しているということ(またリソースケチったのかよ・・)。このため、全く違うアドレスをストアでスキャンするとロード命令に影響が出るらしい。"
まさみさんは語りたいさんのツイート: "これだけだとASLR破りに使えそうだなという印象。ロード命令はどこにでもあるから・・・。"
CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
More Information on Spoiler

L1D Eviction Sampling

Intel製CPUの新たな脆弱性「L1Dエビクションサンプリング」を利用してデータを引き出す攻撃「CacheOut」が報告される - GIGAZINE
L1D Eviction Sampling
Processors Affected: L1D Eviction Sampling

Vector Register Sampling

Vector Register Sampling
Processors Affected: Vector Register Sampling

HT

TLBleed

Intel CPUの脆弱性「TLBleed」は修正困難 - OpenBSD開発者 | マイナビニュース
TLBleed - Wikipedia
iTWire - OpenBSD chief de Raadt says no easy fix for new Intel CPU bug
suzakiさんのツイート: "マイナビ『SperctreやMeltdownを根本から防ぐSafeSpec』https://t.co/MFqNVS83Tw 投機実行で見えてしまう情報をシャドウキャッシュやシャドウTLBで隠す提案。 オリジナル論文はhttps://t.co/Pq7yQ1jjc8 ツイートしたTLBleedにも関連しそうだが、BlackHat、USENIX Secで発表なので待たないといけない。"
SperctreやMeltdownを根本から防ぐSafeSpec(2) Spectre/Meltdownを防ぎ、安全な投機実行を可能にするSafeSpecの考え方 | マイナビニュース
[1806.05179] SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation
suzakiさんのツイート: "ちなみにオリジナルのarXiv論文のタイトルは SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation https://t.co/Pq7yQ1jjc8 PDFを確認したところ、さすがにTLBleedは論文で言及されていない。"
まさみさんは語りたいさんのツイート: "インテルのCPUに新たな脆弱性「TLBleed」--インテルは有効性を否定 https://t.co/2xZrIOECow @zdnet_japanから crypto処理をhugepage上で実行するだけで防げたりして…。"
インテルのCPUに新たな脆弱性「TLBleed」--インテルは有効性を否定 - ZDNet Japan
Shigeki Ohtsuさんのツイート: "さんざん噂になってた TLBleed ですが、ようやく発表者からのアブストとpaperが出てきましたね。17秒で256bit EdDSAを98%の確率で秘密鍵を取得できるのか。こりゃすごい。 HTをdisableするしか対策がない… https://t.co/KgtRGrODUQ"
TLBleed - VUSec
Fadisさんのツイート: "EdDSAの特定の実装に対するローカルからのサイドチャネル攻撃で鍵を特定できました、と。よかった、Curve25519も信用ならねぇとかぞういう話ではなかった"
Fadisさんのツイート: "Intel CPUのHyperthreadで1つのプロセッサを共有する複数のスレッドが同じTLBキャッシュを見ているのを利用して、同じプロセッサ上で動く別のスレッドの動きを覗く話っぽい。EdDSAの署名をするサーバで隣でそれを覗くプロセスを動かすことで、EdDSAの秘密鍵を短時間で特定できる程度まで絞り込めた、と"
まさみさんは語りたいさんのツイート: "TLBleed、intelのSMT実装ミスみたいなものなんじゃなかろうか。リソースはたしかに減らせるんだけども。他のSMTプロセッサではどうなってるのか気になる。"
Kazuho Okuさんのツイート: "TLBleed が定数時間アルゴリズムのバグの指摘でないという論拠がわからんというか、秘密鍵の値によって TLB の触り方が変わるプログラムは定数時間アルゴリズムとは呼べないよね?"
Shigeki Ohtsuさんのツイート: "Intelはこれを脆弱性と認めてないんだよね。Intel IPPライブラリはconstant timeだからそれを使えと。 / “TLBleed : Trasnlation Leak-aside Buffer の論文を読む - …” https://t.co/LclZUq4PNA"
TLBleed : Trasnlation Leak-aside Buffer の論文を読む - FPGA開発日記
TLBleedはTLB上でスヌーピングすることで、CPUからの暗号鍵を漏洩できる
misc/tlbleed.md at master · herumi/misc

PortSmash

20181103
PortSmash attack punches hole in Intel's Hyper-Thread CPUs, leaves with crypto keys • The Register
IntelのCPUで新たな脆弱性「Portsmash」が発見される、ハイパースレッディングに関する2つ目の脆弱性 - GIGAZINE
Hyper-Threading搭載のIntel CPUに新たな脆弱性 ~“PortSmash”が明らかに - 窓の杜
Hyper-Threading有効時にスレッド上の情報が盗まれる「PortSmash」 ~Intel製品のほかRyzenにも影響か - PC Watch
Hiromichi Itouさんのツイート: "締切に追われているけど、気分転換で、PortSmashのPoCコードを動かしてみた。ちゃんと動いてタイミンググラフも取得できた。タイミング情報から秘密鍵を探すのは、過去の手法と同じなのかなー https://t.co/K8Kj96Nqe4"
bbbrumley/portsmash
まさみさんは語りたいさんのツイート: "Portsmash、解決する方法としてはsensitive sectionを開始したらsiblingの他のスレッドの動作を一定時間停止するシステムコールかなにかを使うしか無いのでは(SMT_lockみたいな)。それか運用で逃げる。"
CVE-2018-5407 - Red Hat Customer Portal
まさみさんは語りたいさんのツイート: "今年はIntelにとっては厄年だなあ。PortsmashのコードがWebブラウザから実行できたら、影響は個人レベルに及ぶので、もうHTは完全に廃れていくのではないか。"
PortSmashで学ぶ高性能プロセッサの同時マルチスレッディング - FPGA開発日記
「Linux 4.20」性能問題、原因はSpectre v2対策STIBPの有効化--トーバルズ氏が変更を要求 - ZDNet Japan
More Information on PortSmash

IntelのSkylake&Kaby Lake世代のCPUにはハイパースレッディング有効でデータ欠損やプログラムエラーにつながる重大なバグがあると判明 - GIGAZINE
Major Hyper-Threading Flaw Destabilizes Intel Kaby Lake, Skylake CPUs - ExtremeTech
ハイパースレッディングに深刻な脆弱性が報告される | スラド
OpenBSD、セキュリティ優先でハイパースレッディング機能を無効化 | マイナビニュース
Hiromichi Itouさんのツイート: "OpenBSDがIntel Hyper-threadingをデフォルトで無効にするそうだ。脆弱性が見つかった訳ではなく予防的に行う措置の模様 https://t.co/qXlwlB0lXg"
CVS: cvs.openbsd.org: src
Makoto Kato ︎︎さんのツイート: "HyperThreadの実行効率の向上って、初期実装時(Pentium 4)は10%から20%くらいなので、今のCPUでHyperThreadが無効になっても、クロックを10%上げられれば、まぁ実行時間は変わらなくなるのではとは思うだけど"
一つのCPUで複数のスレッドを実行する技術「SMT」が合理的でなくなってきているとの指摘 - GIGAZINE
More information on SMoTherSpectre

デバッグ

本の虫: Intelの古いマニュアルを誤読したために生じた脆弱性
WindowsやmacOSなど主要OSに共通する深刻な脆弱性が発覚、原因はOSベンダーによるCPUアーキテクチャの仕様解釈ミスか - GIGAZINE
Ryou Ezoeさんのツイート: "信じられん。OpenBSDではユーザースペースにハードウェアブレイクポイントの利用を許可していないため今回のIntelのスタックレジスタ書き換え時の割り込み遅延の脆弱性の影響は受けない。 https://t.co/edGk31XuQg"
'Re: CVE-2018-8897' - MARC
本の虫: OpenBSD、1985年に追加されたIntelの最新の誇大広告された機能を使わないことにより脆弱性を華麗に回避
日記 (2018 年 5 月下旬)
Shiro Kawaiさんのツイート: "#tcfm 第20回。ハードウェアブレークポイントって、メモリアクセスを捕まえたい時は有用と思うけど、実行を捕まえるのにソフトウェアより有利な点て何があるんだろう?(デバッグレジスタ直接使ったこと無い人。) 既にROMに焼かれてるプログラムを調べなきゃならない時とか? https://t.co/Oc3IpHPSCE"
Miura Hidekiさんのツイート: "H/W開発とか初期のファームウエアを開発するときはデバッガの実装が簡単になるので嬉しそうです… "
Shiro Kawaiさんのツイート: "textエリアの書き換えが面倒な実機上では確かに便利だと思います。普通の汎用マシンのデバッガでもそれ使ってたのはなんでかなあと。最近はOSも共通だし区別しない方が普通なんでしょうか。… "
Miura Hidekiさんのツイート: "すみません、頓珍漢なリプライをしてしまったようです。gdbにあるH/WブレークポイントはやはりROMのデバッグ用って書いてあります https://t.co/VdTNhIBGrw… "
Debugging with GDB: 5.1.1 ブレイクポイントの設定
Shiro Kawaiさんのツイート: "pop ssの脆弱性の話は、別に普通にデバッガが利用するからじゃなくて、アーキテクチャによって有用だからと用意されたシステムコールが予想外に利用されたと理解すればいいんでしょうかね。… "
Shiro Kawaiさんのツイート: "アーキテクチャによって、というより、使われるシステムによって、ですね。… "
Miura Hidekiさんのツイート: "ちょっと調べてみましたらMSでdllのデバッグに便利という記述がありました。確かにこれはH/Wじゃないと無理だと思います https://t.co/13x27QnxzO… "
ブレークポイント
Shiro Kawaiさんのツイート: "「読み込み時に通知を送る~」のくだりがわからないんですが、dllを実際にマップする以前に(アドレスが判明した時点で)BPを仕掛けたいというシナリオがあるんでしょうか。… "
Miura Hidekiさんのツイート: "dll中で落ちるソフトウエアのデバッグで、ソフトウエアの実行前にブレークポイントを仕掛けておけるのではないかと思います。ソフトウエアブレークポイントでは命令列を書き変えてもdllロードで無効になってしまいます。… "
Miura Hidekiさんのツイート: "dll中のどこかにブレークポイントを仕掛けたいシナリオです… "
Shiro Kawaiさんのツイート: "あ、なるほど。gdbだとmain実行前にdso内の関数にBPしかけようとするとpending on future shared library loadになりますね。… "
Miura Hidekiさんのツイート: "確かにgdbだとそんなメッセージが出ますね。Cygwinだと確かうまく動かないので無視していましたけど…… "

I/O bitmap

高梨陣平さんのツイート: "これはカーネルハッカーで386以来のx86の機構に詳しい方なら爆笑できそう。30年物のセキュリティホールがOpenBSDに発見された。切っ掛けは32bit版のOSのみがクラッシュする問題。調べる内に一般ユーザがI/Oポートを読み書き可能なセキュリティホールが発見された。ここから怒涛の懇切丁寧な説明が続く… https://t.co/KhB6rWVVwH"
Hacker Newsさんのツイート: "The History of a Security Hole: https://t.co/EDUYnJ7sW3 Comments: https://t.co/3djgXHwKPD"
The History of a Security Hole | OS/2 Museum
The History of a Security Hole | Hacker News
Hideki EIRAKUさんのツイート: "I/O bitmap はそもそもアクセスサイズ分取らなきゃいけない仕様が変だよね。CF8h の 32bit アクセス (PCI configuration) を許したかったら CF9h のバイトアクセス (システムリセットなど) も許さないといけないなんて。"

未定義命令

x86 アーキテクチャに潜む脆弱性、未定義命令実行後の挙動 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
Black Hat USA 2017 | Briefings
まさみさんは語りたいさんのツイート: "x86の未定義命令(UD以外の定義されていない命令)がたくさんあるのは、opcode mapを書いたことがある人なら誰でも知ってる公然の秘密(笑)。 arch/x86/lib/x86-opcode-map.txt に詳しい。(そして最近でも新しいのが見つかる)"

TXT

インテルTXTによるトラステッド・コンピューティング:第1回 インテルTXTが実現する真のセキュアなプラットフォーム - ITmedia エンタープライズ
仮想化の技術&製品トレンド - 仮想環境のセキュリティを高めるインテルTXT:ITpro
invisiblethingslab.com/resources/2011/Attacking_Intel_TXT_via_SINIT_hijacking.pdf
Intel TXT and vSphere
Intel、vProをアップデート | スラド
Windows adds TXT-supported MLE to boot security | Firmware Security

ME

Firmware Security

Finnbarr on state of Intel ME hacking tools | Firmware Security
PTSecurity on Intel ME | Firmware Security
coreboot and Intel ME | Firmware Security
More on INTEL_SA-00086 (Intel ME update) | Firmware Security
a bit more on INTEL-SA-00068 (Intel ME) | Firmware Security
more on Intel-SA-00068 (Intel ME) | Firmware Security
System76 to disable Intel ME (Dell as well) | Firmware Security
Intel ME coverage from BHEU | Firmware Security
BHEU slides on Intel ME vuln uploaded | Firmware Security
Tanenbaum: more comments regarding Intel ME | Firmware Security
more on Intel-SA-00068 (Intel ME) vuln | Firmware Security
AMI response to Intel-SA-0068 (Intel ME vuln) | Firmware Security
Matthew’s 2nd blog on Intel ME vuln | Firmware Security
Pepijn on Apple use of Intel ME | Firmware Security
more on Intel-SA-00068 (Intel ME) | Firmware Security
Intel ME research paper | Firmware Security
Intel ME at CCC | Firmware Security
ME Analyzer 1.42.0 released | Firmware Security
PTSecurity: how to run code in Intel ME | Firmware Security
Intel-SA-00068 updated (Intel ME) | Firmware Security

mjg59

mjg59 | The Intel ME vulnerabilities are a big deal for some people, harmless for most
mjg59 | Potential impact of the Intel ME vulnerability

Skylake・Kaby Lake・Coffee Lake

Download Intel-SA-00086 Detection Tool
Intel製CPUに特権の昇格の脆弱性、公式チェックツールがWindows/Linux向けに公開 - 窓の杜
Intelプロセッサの重大な脆弱性(SA-00086)に対処してみた話 – 内向型人間の知恵ブログ
インテル®マネジメント・エンジンの重要なファームウェア・アップデート (intel-sa-00086)
第6〜8世代Coreプロセッサなどに脆弱性、Intelがチェックツールを公開 | スラド セキュリティ
Intel,第6~第8世代Coreプロセッサ搭載システムに関する重要な脆弱性情報を公開。脆弱性の有無を調べる検出ツールもリリース - 4Gamer.net
Intel Management Engineなどに8個の脆弱性が発見 ~第6世代Core以降が影響、ThinkPadなどがすでに対策開始 - PC Watch
Intel、第6~第8世代Coreなどの脆弱性情報公開、対策はファームウエア更新 | マイナビニュース
OS停止時でも攻撃可能?Intel マネジメント・エンジンの脆弱性への対策 | トレンドマイクロ セキュリティブログ
インテルの「Management Engine」などに複数の脆弱性--ファームウェアを修正 - CNET Japan

MINIX

インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている - Publickey
Google、ユーザーの知らないところで動くUEFIの脆弱性に警鐘 ~オープンソース化で回避を提唱 - PC Watch
Hiromichi Itouさんのツイート: "Intel Management EngineでMINIXが動くようになったのは、Intel ME 11を搭載しているIntel 100 Series Chipsets(2015年)以降なので、世界で一番の稼動OSではないと思われる。(とマジレス)"
Minixを使用していると言われているIntel ME、BSDライセンス違反の疑い | スラド

企業向けのみに存在する脆弱性

Download INTEL-SA-00075 Detection and Mitigation Tool
Intelのここ10年内に登場したCPUに潜むリモート操作される脆弱性に緊急パッチがリリースされる - GIGAZINE
IntelのCPUのセキュリティ問題について電子フロンティア財団が指摘 - GIGAZINE

回避困難な脆弱性?

Intel x86プロセッサに含まれている遠隔管理システムに危険性? | スラド セキュリティ
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor…
Intelプロセッサに回避困難な脆弱性、研究者ら指摘 | マイナビニュース
Intel製CPUの「修正済み」脆弱性が実は修正不可能であったことが判明、特権によるコード実行やDRMの回避などが可能 - GIGAZINE
インテルのCSMEバグは当初の予想より深刻の可能性--セキュリティ専門家が指摘 - ZDNet Japan
INTEL-SA-00213

無効化

Intel ME 11を無効化する方法が公開される - GIGAZINE
Intel MEの脆弱性を発見し保護システムを無効化した方法をセキュリティ研究者がBlack Hat Europe 2017で発表すると告知 - GIGAZINE
NSAが開発した隠し機能でIntel MEを無効化する動きがPCメーカーに広がる - PC Watch

platomav/MEAnalyzer: Intel Engine Firmware Analysis Tool
【やじうまPC Watch】米国ではじめてATM遠隔攻撃が確認 ~Intel MEの脆弱性が利用される可能性も - PC Watch
Intel® Product Security Center
デュアルソケット・ザ・ワールド ME-HECI ME Subsystem とは何か?
Introduction to the Intel Management Engine OS (Part 1) | Peter Bosch’s website
Introduction to the Intel Management Engine OS (Part 2) | Peter Bosch’s website
高梨陣平さんはTwitterを使っています 「Google Working To Remove MINIX-Based ME From Intel Platforms https://t.co/lajfCP20m6 Intelがほぼ全てのCPUの中でMinixを動かしているのは有名になったがGoogleがそれを削除させる方向で動いているとの記事。IntelのMEはclosedなMinixだがHWに完全なアクセスが可能で攻撃の入口として最適との話」 / Twitter
Google Working To Remove MINIX-Based ME From Intel Platforms | Tom's Hardware

AMT

mjg59/mei-amt-check: Check whether AMT is enabled and provisioned under Linux
Intel AMT Checker for Linux | Hacker News
インテルが開発したリモートコントロール技術 - 第三の謎 インテル® アクティブ・マネジメント・テクノロジーとは?のレビュー | レビューメディア「ジグソー」
mjg59 | Intel AMT on wireless networks
mjg59 | Intel's remote AMT vulnerablity
Embedi on Intel AMT vulnerability | Firmware Security
Intel AMT Upgradable to Vulnerable Firmware | Firmware Security
new Windows UEFI security protections deciphered | Firmware Security
Intel AMT developer documentation updated | Firmware Security
NVD - CVE-2017-5698
Intelのここ10年内に登場したCPUに潜むリモート操作される脆弱性に緊急パッチがリリースされる - GIGAZINE
インテルの「AMT」や「ISM」に脆弱性--緩和策など公開 - ZDNet Japan
リモート管理機能「Intel AMT」、リモートから任意のコードが実行可能な権限昇格の脆弱性 -INTERNET Watch
笠原一輝のユビキタス情報局
シリアルオーバー LAN(SOL) ホワイトペーパーインテル®サーバーボードシステム
Intel vPro テクノロジを使用するコンピューターには、Windows 7 のデバイス マネージャーで認識されないデバイスが搭載されていることがある
AMTを利用した全盲ユーザのBIOS操作について(DQ45CB編)
Intel AMT (5)PC: リモートから情報取得、遠隔操作する方法(Intel AMT 10編)
Intel MeshCommander (AMT tool): now available for Mac and Linux (not just Windows) | Firmware Security
F-Secure: new Intel AMT security issue | Firmware Security
パスワード「admin」で簡単にIntel AMTに入れ、リモートアクセスできる問題が発覚 - PC Watch
Lenovo: Intel AMT MEBx Access Control Bypass | Firmware Security
Intel製品に複数の脆弱性、修正版が一斉公開 ~最大深刻度は“CRITICAL” - 窓の杜
20180721

DCI

Intelの新型CPUにUSBポート経由でシステムのフルコントロールが奪われるデバッグの仕組みがあることが判明 - GIGAZINE
そうだ、Intel DCIをしよう! | J’s Lab
そうだ、Intel DCIをしよう! | J’s Lab
Intel DCI 続編(資料まとめ) | J’s Lab
Intel® System Studio | Intel® Software
RU.EXE + RU.EFI
Enable DCI debugging on Gigabyte-BKi5HA-7200
blog/section.txt at master · JP3BGY/blog
USB View - Google 検索
Setting Up Kernel-Mode Debugging over a USB 3.0 Cable Manually - Windows drivers | Microsoft Docs
Publications/2018/DEFCON26 at master · eclypsium/Publications

SMM

1997年から2010年までのIntel製CPUに脆弱性? | スラド セキュリティ
1997年から2010年までのインテル製CPUに脆弱性、ルートキット埋め込み可能で対策はほとんどなし - Engadget Japanese
https://www.blackhat.com/docs/us-15/materials/us-15-Domas-The-Memory-Sinkhole-Unleashing-An-x86-Design-Flaw-Allowing-Universal-Privilege-Escalation-wp.pdf
My aimful life: Building reliable SMM backdoor for UEFI based platforms
Cr4sh/SmmBackdoor: System Management Mode backdoor for UEFI
My aimful life: February 2016
1997年から2010年までのIntel製CPUに脆弱性? | スラド セキュリティ
Embedi SMM_USBRT_POC: CVE-2017-5721 UsbRt SMM EoP | Firmware Security
Intel Sytem Debugger on debugging UEFI and SMM | Firmware Security
SMM rootkits: a new breed of malware | Firmware Security
mjg59 | Creating hardware where no hardware exists

Intelのプロセッサの脆弱性を利用したNetCAT攻撃はSSHセッションの入力内容や通信内容の窃取が可能 - GIGAZINE
Intelのプロセッサ内蔵GPUに脆弱性、ドライバ/カーネル更新を推奨 - PC Watch
INTEL-SA-00314
Side Channel Methods – Analysis, News, and Updates
Software Guidance for Security Advisories
Host Firmware Speculative Execution Side Channel Mitigation
Refined Speculative Execution Terminology

MS

その他

Windows 10のシステム呼び出しとカーネル内部セキュリティー対策
Windows 10 1703/1709、セキュリティー、CPU問題
Windows 8 Enterprise Flexible Workstyle Full Deck RP (To Customer)
Windows10とコルタナのデフォルト設定の脆弱性を報告
ランサムウェア対策が「Windows 10 Fall Creators Update」に追加! さっそくトライ - やじうまの杜 - 窓の杜
なかのん DAYS''さんのツイート: "Windowsはいい加減、管理者権限が必要なexe以外を、管理者以外が書き込めるフォルダからは実行できないようにするオプションを提供して欲しい。"
「C:\Temp」「C:\Intel」フォルダーは不正ツールが設置されやすい? 標的型攻撃に類似点~J-CRAT報告 - INTERNET Watch
「Windows 10」に新たなセキュリティ機能「InPrivate Desktop」が追加か - CNET Japan
Microsoft、「Windows Defender」をサンドボックスで実行する機能を追加 - 窓の杜
未認証のワクチンですけど試してみませんか?――Windows Defenderのサンドボックス化の話 (1/2):山市良のうぃんどうず日記(140) - @IT
エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~Arbitrary Code Guard~ « 他人の空似
Heap spraying攻撃の手順と原理解説 – 他人の空似
YurikaさんはTwitterを使っています: 「数々のMS製品の0Dayを発表しまくってましたSandbox Escaperさんが、MSに入る前に(NDAにサインする前に)その手法を世に公開しまくるということでブログが公開されてますよ。https://t.co/ZFeRteMcHp」 / Twitter
Place where polar bears dwell: Chasing polar bears: part one
Windows 10の脆弱性を諜報機関の「NSA」が報告したことを専門家が重視する理由とは? - GIGAZINE
楠 正憲さんはTwitterを使っています: 「だいぶヤバい脆弱性では?→ ECDSA署名と曲線領域パラメーターの制御を考えると、元の署名秘密鍵を知らなくても、元の公開鍵と一致する2番目の秘密鍵を作成するのは簡単 / “From a conversation with Thomas Pornin, a plausible explanation given the detail... | Hacker…” https://t.co/huOVOpL8ww」 / Twitter
From a conversation with Thomas Pornin, a plausible explanation given the detail... | Hacker News
Shigeki OhtsuさんはTwitterを使っています: 「WindowsのECDSAの脆弱性 CVE-2020-0601 の証明ってこんな感じでいいんですかね? 間違いあればどなたかご指摘ください。 https://t.co/hNkOqt7lyw」 / Twitter
Windows 8やWindows 10でウェブサイトのライブタイル提供に使われていたサブドメインが放棄された状態に - ZDNet Japan
ファイルレス攻撃を阻止するエクスプロイト防止機能の概要
the-backdoor-factory – シェルコード付きPE、ELF、Mach-Oバイナリパッチ(未サポート) – GitHubじゃ!Pythonじゃ!

Vulnerability & Exploit Database

Vulnerability & Exploit Database | Rapid7
Microsoft Windows - Assembly Execution (MS12-005)
Exploiting a 64-bit buffer overflow – bytes > bombs
Windows x64 Shellcode | McDermott Cybersecurity
TeamViewer 11 < 13 (Windows 10 x86) - Inline Hooking / Direct Memory Modification Permission Change
Exploit Development-Everything You Need to Know « Null Byte :: WonderHowTo
Pentest Tips and Tricks – EK
gynvael/asmloader: Simplified Assembly Loader - a small tool to run (headerless) machine code.
Windows x64 and x86 kernel shellcode for eternalblue exploit
m4ll0k/Awesome-Hacking-Tools: Awesome Hacking Tools
0xAX/asm: Learning assembly for linux-x64
GDSSecurity/Windows-Exploit-Suggester: This tool compares a targets patch levels against the Microsoft vulnerability database in order to detect potential missing patches on the target. It also notifies the user if there are public exploits and Metasploit modules available for the missing bulletins.
Infosec_Reference/Exploit Development.md at master · rmusser01/Infosec_Reference

TechNet

「Emotet」の大規模感染を阻止した人工知能のしくみ – 日本のセキュリティチーム
挙動監視と機械学習で大規模な「Dofoil」によるコイン マイニング攻撃を阻止 – 日本のセキュリティチーム
Windows Administration: Inside the Windows Vista Kernel: Part 3

Windows Blog

Windows 10 のエンドツーエンドのセキュリティ機能を紹介 - Windows Blog for JapanWindows Blog for Japan
次世代型のマルウェア対策機能を提供する Windows Defender ウイルス対策の本当の実力とは? - Windows Blog for JapanWindows Blog for Japan
Windows Defender ウイルス対策が企業で最も採用されている理由 - Windows Blog for JapanWindows Blog for Japan
マイクロソフトのセキュリティ エクスペリエンスを共有 - Windows Blog for JapanWindows Blog for Japan

@IT

Windows 10はEMETに頼らずとも安全?:山市良のうぃんどうず日記(58) - @IT
Windows 10に組み込まれた多層かつ高度なマルウェア対策機能:企業ユーザーに贈るWindows 10への乗り換え案内(10) - @IT
ユーザーアカウント制御(UAC)の奇妙な体験――デスクトップは暗転しない?:その知識、ホントに正しい? Windowsにまつわる都市伝説(101) - @IT
Windows 10の新しい「電卓」と「ビルトインAdministrator」に見る“セキュリティの落とし穴”:山市良のうぃんどうず日記(72) - @IT
本当は怪しくない(?)Windows 10の“不明なアカウント”の正体は……:その知識、ホントに正しい? Windowsにまつわる都市伝説(99) - @IT
システム監査対決! Windowsコマンドライン監査 vs. Sysmon:山市良のうぃんどうず日記(27) - @IT
EMETからExploit Protectionへの乗り換え案内――Windows 10 バージョン1709の新しいセキュリティ機能 (2/3):企業ユーザーに贈るWindows 10への乗り換え案内(14) - @IT
パスワード時代の終わりはくるのか? Microsoftが新しいセキュリティやAIのサービスを発表:「Microsoft Ignite 2018」で発表された新サービスとは - @IT

サンドボックス

Windows XP/7/8/10のプロセス間親子関係とサンドボックス
AppContainer 導入による Windows 開発への影響 - NyaRuRuが地球にいたころ
整合性レベルに基づく保護モード - NyaRuRuが地球にいたころ
Rockridgeさんのツイート: "Anniversary Update後のMicrosoft Edgeはプロセスのサンドボックス機能も強化されている。なお、拡張機能やFlashはそれぞれ独立したプロセスを割り当てられてサンドボックス化されている。 / “Stre…” https://t.co/KGw32AYYMd"
Windows 10 Creators Updateで強化されるEdgeのサンドボックス機能 - 阿久津良和のWindows Weekly Report | マイナビニュース
Strengthening the Microsoft Edge Sandbox - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
次期Windows 10ではアンチウイルスソフトは保護されたプロセスでの実行が必須に - PC Watch
山市良のえぬなんとかわーるど: 保護されたプロセス(Protected Process)か否かの確認方法
Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法 - Qiita
Windows 10プレビューに“サンドボックス”機能。隔離環境でEXEファイルを実行可能に - PC Watch
AppContainerでデスクトップアプリを起動してみた « 他人の空似
AppContainer関連API情報まとめ « 他人の空似
AppContainer関連サンプル紹介 « 他人の空似
PrivateNamespaceを使ったAppContainerとのプロセス間通信 « 他人の空似

権限

Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsのsymlinkは、パス読み取りに特権が必要だったり、symlink自体のアクセス権も必要、という謎仕様。 前者は開発者モードで解除できるようになったものの、何を懸念してその仕様にしたのか理解不能…junctionと違い、symlinkはユーザの手打ちと等価(=クライアント側再解釈)のはず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Edgeでリンク実行を選ぶと AppData\Local\Packages\Microsoft.MicrosoftEdge_xxx¥TempState\Downloads で実行されるが、このフォルダは、管理者昇格のためのShellExecute(verb=runas)がコケる縛りがある様子。 (ファイル移動すればコケないので、副次Streamによる信頼リージョンの話ではなさそう)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コケるフォルダは、Edge配下のTempState, LocalCache, LocalState の3つ。 このフォルダに置くと(Edge非経由)一般権限でもコケるので、VirtualStoreのような何らかの特殊フォルダ登録でもあるのかしらん? ただ、右クリックで初手からの管理権限起動は可能という謎。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "これらのフォルダには Low Mandatory Level という整合性レベルがSASLに設定されていた。この場合、ShellExecute(verb=runas) がコケる動作をする様子。 (低整合性レベル=IE等のsandbox動作でアクセス可能なので、この挙動自体は理解できる。一般権限実行でも拒否は厳しめだけど)… https://t.co/LW0BSRLz4u"
Shirouzu Hiroaki(白水啓章)さんのツイート: "低整合性レベルなディレクトリ(EdgeのDownloadフォルダ等)から起動したプロセスは、一般フォルダへの書き込み権限がなくなる+昇格リクエスト(verb=runas)もリジェクトされる。 低整合性レベルから起動された場合、「別フォルダに移動して起動する」ようにユーザに促すしか手がない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「Integrity Level」の訳が「整合性レベル」。 低整合性=矛盾がある、みたいな語感があると思うのだが。 なお、integrity の一般的な訳は「高潔、誠実、清廉、完全な状態、無傷」らしい。"

マルウェア対策ソフトウェア

Shirouzu Hiroaki(白水啓章)さんのツイート: "アンチウイルスソフトのヒューリスティックでの誤検出されやすさ経験。 シマンテック >> カスペルスキー > ESET > Windows Defender (シマンテックは何度ホワイトリスト登録しても、次のバージョンで誤検出されるという…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "その後、シマンテックはホワイトリスト申請制度自体を止めてしまったが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "カスペルスキーとESETさんは、ホワイトリスト申請用FTPサイトがあって、そこに載せれば自動的に検査される仕組み。 (前者の場合、最初に物理的な契約書を取り交わした後、FTPサイトのアカウントが通知される流れ) ちなみにどちらのFTP転送も、モデム接続なみに遅い(笑)"

MIC

必須整合性コントロール - Wikipedia
Mandatory Integrity Control - Wikipedia
Mandatory Integrity Control (Windows)
What is the Windows Integrity Mechanism?
MIC
Mandatory Integrity Control in Windows 10/8/7
Windows Server:システム管理者の視点 - 正式に認められた「Whoami」コマンド:ITpro
Windowsコラム - 【TechEd】悪意のある攻撃に強くなるWindows Vista:ITpro
【レビュー】ファイルやフォルダーの“整合性レベル”をチェックできるGUIツール「MicEnum」 - 窓の杜
管理者でも削除できないフォルダ・ファイルを作る - イグトランスの頭の中
Windows版FireFox、MICを利用したセキュリティ対策 - Qiita
Windows用インストーラのセキュリティ問題 - Qiita
情報セキュリティ技術動向調査(2009 年下期):IPA 独立行政法人 情報処理推進機構
アプリケーションを管理者に昇格させながらのAllowDrop: DOBON.NETプログラミング掲示板過去ログ
Vistaのセキュリティ対策が抜け穴に――Symantec、2つ目の報告書 - ITmedia NEWS
管理者権限での実行を制限するユーザー・アカウント制御UAC(後編)(3/3) - @IT
漢(オトコ)のコンピュータ道: 新たなOSX安全神話の検証:Sandboxでウィルススキャンは不要になるか?

Arbitrary Code Guard

Microsoft Edge での任意のネイティブコード実行の影響の緩和 | Microsoft Edge Japan
Microsoft Edge概要 物江氏
変わるWindows、変わる情シス:第4回 「Windows 10」は情報漏えいをどう防ぐ? (2/2) - ITmedia エンタープライズ
Microsoft Edgeのセキュリティ機能「ACG」の未修正脆弱性、Googleが公表、 - INTERNET Watch
高梨陣平さんのツイート: "GoogleのProject Zeroが再びMicrosoftのEdgeブラウザの脆弱性を修正前に公開。JITの使用するメモリ空間の位置が事前に予測可能なためリモートからの任意コード実行が可能に。GoogleはIntelのSpectreとMeltdownに関しては90日ルールを自ら破っている。… https://t.co/ZGAyZswisg"
1435 - Microsoft Edge: ACG bypass using UnmapViewOfFile - project-zero - Monorail
2018-02-18 セキュリティニュースまとめ: Microsoft Edge にメモリ保護機能 ACG (Arbitrary Code Guard) をバイパス可能な脆弱性 - 拡張頭蓋 | Extended Cranium

HeapEnableTerminationOnCorruption

Rockridgeさんのツイート: "Fx55:Windows版で、chromeプロセスにおいてHeapEnableTerminationOnCorruptionを有効化し、エクスプロイト攻撃に対するセキュリティを強化した。 / “805173 - Consider…” https://t.co/5EIJuBWrzl"
805173 - Consider enabling Windows' HeapEnableTerminationOnCorruption for browser and plugin-container
HeapSetInformation function (Windows)
Direct2D SDK コーディング規則 (Windows)
HeapSetInformation function (Windows)
HEAP_INFORMATION_CLASS enumeration (Windows)
Brief Q&A on the HeapEnableTerminationOnCorruption heap information flag – The Old New Thing
Windows における例外ハンドリングとか 64-bit プロセス固有のあれそれとか - NyaRuRuが地球にいたころ
Windows-classic-samples/CustomLayout.cpp at master · Microsoft/Windows-classic-samples
Windows-classic-samples/UiaCleanShutdownHost.cpp at master · Microsoft/Windows-classic-samples

Windows Sandbox

品川 高廣さんのツイート: "こういうのずっと欲しかった。Windows 全体を fork して sandbox しているようなイメージかな。https://t.co/881nADf623"
Windows Sandbox - Microsoft Tech Community - 301849
マイクロソフト、Windows Sandbox発表。デスクトップアプリを分離した環境で安全に実行可能に - Publickey
“使い捨て”のアプリ実験環境「Windows Sandbox」を追加 ~「Windows 10 19H1」Build 18305 - 窓の杜

Windows Information Protection

Microsoft Intune での Windows Information Protection 設定 - | Microsoft Docs
Windows Information Protectionを簡単に使い始める方法 | Always on the clock
2つの情報保護技術、クラウドのAIPとWindows 10のWIP(その3):企業ユーザーに贈るWindows 10への乗り換え案内(13) - @IT
情報を保護するWindows 10の「BitLocker」と「WIP」 (1/2):Windows 10が備えるセキュリティ機能(4) - @IT
第11回 新機能「Windows Information Protection」の登場で、BYODを安心して活用できるように - 中堅・中小企業のためのWindows 10講座:日経 xTECH Active
Dropbox Business と Windows Information Protection – Dropbox
Windows Information Protection - YouTube
Windows Information Protectionのデバイスポリシー
【連載】MS ゆりか先生が教えるWindows 10 セキュリティのアレコレ [6] OSレベルで個人/企業データを切り分け「Windows Information Protection」|セキュリティ|IT製品の事例・解説記事
Windows Information Protection(WIP) | MobiConnect(モビコネクト)

Windows Defender Advanced Threat Protection

Windows Defender Advanced Threat Protection の機械学習: 未知の侵入アクティビティの検出 – 日本のセキュリティチーム
Creators Updateを控え、大幅強化されるWindows Defender ATP - PC Watch
Windows Defender ATP の新機能でエンドポイントのセキュリティの有効性と堅牢性をさらに強化 - Windows Blog for JapanWindows Blog for Japan
Windows Defender ATP Advanced Hunting の概要 - Windows Blog for JapanWindows Blog for Japan

Windows Defender Application Guard

Windows Defender Application Guard で Microsoft Edge を最もセキュアなブラウザーに – 日本のセキュリティチーム
Microsoft Edge のための Windows Defender Application Guard の紹介 | Microsoft Edge Japan
Microsoft Edge向けのセキュリティ保護機能「Windows Defender Application Guard」 -INTERNET Watch
【マイクロソフト研究所】Windows 10 Creators Updateの企業向け機能 - クラウド Watch
Windows Defender Application Guardで実現するセキュアなブラウジング環境――Windows 10の新しいセキュリティ機能(その2):企業ユーザーに贈るWindows 10への乗り換え案内(15) - @IT
山市良のえぬなんとかわーるど: Windows Defender Application Guard を VM と日本語環境で使う
次期Windows 10“RS4”が更新、“Windows Defender Application Guard”を強化 - 窓の杜
Windows 10のキオスクモードとWDAGの導入がより簡単に、より柔軟に:企業ユーザーに贈るWindows 10への乗り換え案内(39) - @IT

Windows Defender Exploit Guard

Windows Defender Exploit Guard: 攻撃表面を縮小して次世代型マルウェアに対抗する – 日本のセキュリティチーム
EMETからExploit Protectionへの乗り換え案内――Windows 10 バージョン1709の新しいセキュリティ機能:企業ユーザーに贈るWindows 10への乗り換え案内(14) - @IT

Windows Defender Application Control

Windows Defender Application Control の紹介 – 日本のセキュリティチーム
山市良のえぬなんとかわーるど: Device Guard = Windows Defender アプリケーション制御?
脅威からPCを守るWindows 10の「Device Guard」と「Edge」:Windows 10が備えるセキュリティ機能(2) - @IT
「Device Guard」はWindows 10 Enterpriseの“限定”機能か、否か?:その知識、ホントに正しい? Windowsにまつわる都市伝説(91) - @IT
【特別企画】Windows 10 November Update 2015のエンタープライズ向け機能 - クラウド Watch
デバイス ガードの概要 (Windows)
デバイス ガード: 進化してきた脅威に対抗、Windows 10 のセキュリティ機能 – 日本のセキュリティチーム
Device Guardで保護されているデバイスでのアプリの実行 (Windows)
Device Guard の署名を使ったコード整合性ポリシーへの署名 (Windows 10) | Microsoft Docs
Windows Defender Application Control (WDAC) (Windows 10) | Microsoft Docs

EMET

エメット(EMET)、していますか?:山市良のうぃんどうず日記(3) - @IT
お手柄、エメット(EMET)さん!:山市良のうぃんどうず日記(5) - @IT
新しいエメット(EMET)さんにご用心!:山市良のうぃんどうず日記(14) - @IT
エメット(EMET)さん、破れたり:山市良のうぃんどうず日記(17) - @IT
さらに新しいエメット(EMET)さんにもご用心!:山市良のうぃんどうず日記(20) - @IT
もっと新しいエメット(EMET 5.2)さん、リ・リリース:山市良のうぃんどうず日記(29) - @IT
現行エメット(EMET)さんはWindows 10非対応、最新版はまだベータ――導入する、しないはあなた次第:山市良のうぃんどうず日記(50) - @IT
EMET サポート終了 – Windows Defender Exploitation Guard へ移行を – 日本のセキュリティチーム
お疲れさま、そしてサヨウナラ、エメット(EMET)さん:山市良のうぃんどうず日記(133) - @IT
山市良のえぬなんとかわーるど: あすたらびすたエメットさん

FFRI

www.ffri.jp/assets/files/monthly_research/MR201207_browser_treat.pdf
www.ffri.jp/assets/files/monthly_research/MR201208_Windows8Security_Overview.pdf
Black Hat 技術報告 前編│セキュリティ・リサーチのFFRI(エフエフアールアイ)
www.ffri.jp/assets/files/monthly_research/MR201209_Windows8_Exploit_Mitigation.pdf
www.ffri.jp/assets/files/monthly_research/MR201210_Window 8_AppContainer_Sandbox.pdf
www.ffri.jp/assets/files/monthly_research/MR201308_Understanding bypassing ASLR by a pointer at a fixed address_JPN.pdf
www.ffri.jp/assets/files/monthly_research/MR201312_History and Current State of Heap Exploit_JPN.pdf
http://www.ffri.jp/assets/files/monthly_research/MR201503_Windows_10_Technical_Preview_Security_Overview_JPN.pdf
スライド 1
Monthly Research 「Microsoft Threat Modeling Toolの利用例」│セキュリティ・リサーチのFFRI(エフエフアールアイ)
www.ffri.jp/assets/files/research/research_papers/SystemCall.pdf
windows10_security_ja.pdf
windows10_セキュリティ評価支援報告Phase2

Log.i53

デバッガ検出技術:Debugger Process - Log.i53
Anti-Debug カテゴリーの記事一覧 - Log.i53
Unpack カテゴリーの記事一覧 - Log.i53
Art-of-Unpacking カテゴリーの記事一覧 - Log.i53

Project Zero

Project Zero: Dude, where’s my heap?
Project Zero: Internet Explorer EPM Sandbox Escape CVE-2014-6350
Project Zero: Virtually Unlimited Memory: Escaping the Chrome Sandbox
Project Zero: Escaping the Chrome Sandbox with RIDL
Project Zero: Windows Sandbox Attack Surface Analysis
Project Zero: A Shadow of our Former Self
Project Zero: Did the “Man With No Name” Feel Insecure?
Project Zero: In-Console-Able
Project Zero: Injecting Code into Windows Protected Processes using COM - Part 1
Project Zero: Injecting Code into Windows Protected Processes using COM - Part 2
Project Zero: Windows‌ ‌Exploitation‌ ‌Tricks:‌ ‌Spoofing‌ ‌Named‌ ‌Pipe‌ ‌Client‌ ‌PID‌
Project Zero: Down the Rabbit-Hole...
Project Zero: Windows Kernel Logic Bug Class: Access Mode Mismatch in IO Manager

DKOM

Direct kernel object manipulation - Wikipedia
tfairane/DKOM: Direct Kernel Object Manipulation _EPROCESS
DKOM - おなかすいたWiki!
bh-us-04-butler-jamie 1.ppt
Final_WP_BalanceRiskManagement.pdf
悪魔のツール“ルートキット”最前線 - 第5回 ルートキット実装の2大手口(その2):ITpro

Wikipedia

ユーザーインターフェイス特権の分離 - Wikipedia
ユーザーアカウント制御 - Wikipedia
データ実行防止 - Wikipedia
Kernel Patch Protection - Wikipedia

@shirouzu

偽装

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsだと偽装(impersonate)APIがあり、特権プロセスは(例えばnamed pipe経由で)一般プロセスと通信で、その接続元(権限)に成りすます仕組みがあって、 (例えばユーザモード・プリンタサービス(特権)がPDF生成の際、ユーザ側権限の範囲でファイル作成など) https://t.co/lrlbxFpmB9 https://t.co/UEuGMJTkN2」 / Twitter
Impersonating a Named Pipe Client - Win32 apps | Microsoft Docs
Ryosuke Matsumoto / まつもとりーさんはTwitterを使っています 「新しい研究ネタについて書いた / クライアントプロセスのオーナ情報によるTCPを介した透過的な権限分離 - 人間とウェブの未来 https://t.co/sragt1m9vZ」 / Twitter
クライアントプロセスのオーナ情報によるTCPを介した透過的な権限分離 - 人間とウェブの未来
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(続)偽装の分散システム版イメージっぽい印象。ただ偽装はNT3.1時代からあるが、サービス系の一部で使われているだけの地味な存在…TCP/IP&amp;分散システム拡張だと違ってくるのかよくわからない。 (コンテナ云々はまあそうなんだろうけど、プロセスから見たシームレス度みたいな部分も大事そう)」 / Twitter
🦀葛城玲🦀さんはTwitterを使っています 「@shirouzu webサーバーでも管理プロセスだけ特権ポート開いて起動したら、権限降格して稼働するみたいなの有りましたね… suexecでしたか。」 / Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsのグローバルフック、64bit環境+64bitDLLで実行すると、32bitプロセスでは、SetWindowsHookExを発行したプロセス内のコールバックで実行される。 なので、32bitプロセス内へのDLL注入を前提にしたコードの場合は、別途、32bit版DLL+32bitフック実行が必要となる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、SetWindowsHookExとかCreateRemoteThread等、能動的な他プロセス侵入の枠組みを公式に用意とは豪快だなぁ、といつも思う。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "うーん、署名を入れてもProgram Files下に入れても、EdgeにSetWindowsHookExが効かないな…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Injection自体は出来るようになっていた。(要署名、manifest、ProgramFiles) UWPとWin32Appとの通信をどうするかという話に。 https://t.co/prPu53VXxK"
App-to-app communication - Windows UWP applications | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんのツイート: "整合性レベルは6種類。 (なお、AppContainerは独立した整合性レベルではなく、Lowに含まれる、という話) Windows Internals 7th から。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "そもそも、AppContainerの開発コード名は「LowBox」だったという話。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "PSECURITY_DESCRIPTORは、SECURITY_DESCRIPTOR * と思いきや void * なので、それをメンバに持つ SECURITY_ATTRIBUTES.lpSecurityDescriptor への代入には型チェックが働かない。(そのため1時間無駄にしてしまった)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPとデスクトッププロセス間でmutexやmmapを共有できることを確認できた。 ただしかなり面倒。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPはアプリ毎にSIDを持つが、それはUWPパッケージ名をSHA-2ハッシュにしたものがベースらしい。へぇ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPをWin32でフックして確認。 ・カーネルオブジェクト(mutex等)の名前空間は、UWPアプリ毎のサブ名前空間に変換。 (chroot的イメージ) ・Win32からはUWP名前空間はサブ空間に過ぎないが、普通アクセス権が無い。  しかし、プライベート名前空間を作ると(+要権限設定)、両者から参照できる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(つづき) ・UWPはIE保護モードと同じ低整合性で動作。  (多くのアクセス権限が無い) ・UWPマニフェストに応じて、一部API/アクセス権の有効/無効を切り替え。  (当然だが、フック側から生API発行しても無効) まさに AppContainer で動作、という印象。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(つづき) Windows Internals 7版での、UWP と Win32アプリの比較表はこんな感じ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "UWP、たしかに(基本的にはライトなコンテナで)安全度が高いのはわかった。 マニフェストで許可された範囲以外では抜け穴は少なそう。 (ただ、例えばエディタだとマニフェストでの許可範囲自体が広い類は大丈夫かな。あとアプリ間は(名前分離はあるが)若干壁が弱い感じも)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "自分用に、IME ON状態をカーソルの緑色の丸で表示する「IME Cursor」という Win10用ソフトを作ったので、ご興味のある方はどうぞ。 (Program Files配下に置けば、アプリや管理者動作のソフトでも動きます) https://t.co/pHtbIkeDZ1"
Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、Program Files に置いた署名付きソフトは、UAC下で起動しても(昇格不要で)特権プロセスにフック可能、というのは中々豪快な仕様。 (同様に、UWPアプリにもフック可能になるが、こちらはまだわかる)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "自分用ソフトながら、「もし使いたい人が居ればどうぞ」という位置づけです。 (今のところ、これ以上、大きな改良はしないと思います)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "下記の2つを満たせば、ストアアプリにもhookできます。 ・マニフェストで uiAccess=true ・Program Files配下にコード署名付きのバイナリを置く ただ、ストアアプリはsandbox動作なので、アプリ外にデータを吐き出す方が苦労します(笑)… https://t.co/xxZNrCGopA"
uNagiさんのツイート: "そういえば、キーリマッパーの「のどか」が、ストアアプリの IME 状態が取れずに難儀していて、今もできなかったと思うんだけど、解決方法はあるんだなあ。… "
窓の杜さんのツイート: "IMEのONをマウスカーソル横の緑丸でお知らせするフリーソフト「IME Cursor」が公開/「FastCopy」「IP Messenger」の作者が開発 https://t.co/d2L6tMazcc… "
IMEのONをマウスカーソル横の緑丸でお知らせするフリーソフト「IME Cursor」が公開 - 窓の杜

@t_toyota

Takashi ToyotaさんはTwitterを使っています 「米Microsoft社はAI(とアルゴリズム)を前面に出している。アプリの「振る舞い」をモニターするにはデータが必要だ。どのデータだ?あるカーネル内部のデータを利用すると、「異様な動き」を効率良く検出できる。これは事実だ。驚いた! https://t.co/7JtMmmc5Ck」 / Twitter
Windowsセキュリティーメカニズム
Windows XP/7/8/10のセッションとプロセス
Windowsシステム分析(3/4)
Takashi ToyotaさんはTwitterを使っています 「何をどのようにモニターしているのか?モニター済みデータにはある固定値が加算されることがある。その固定値を減算すれば、元のデータに辿り着ける。」 / Twitter

Windows 10 のセキュリティ機能を使用して脅威を軽減する (Windows 10) | Microsoft Docs
SetProcessMitigationPolicy function (Windows)
AppLocker (Windows 10) | Microsoft Docs
セキュリティエンジニア向けツール(Windows編) - Qiita

カーネル

カーネルエクスプロイト入門 - Linuxカーネル解析の基礎 - - るくすの日記 ~ Out_Of_Range ~
カーネルエクスプロイト入門2 - 特権モードを利用した権限昇格の仕組み - - るくすの日記 ~ Out_Of_Range ~
カーネル空間からのセキュリティ - SSSSLIDE
カーネルエクスプロイトによるシステム権限奪取 // Speaker Deck
カーネル空間からのセキュリティ - Speaker Deck
品川 高廣さんはTwitterを使っています: 「Linux カーネルは過去7年で基本性能がどんどん遅くなっているらしい。select() は2年前と比べて最大100%の性能低下。要因はセキュリティ強化、新機能、設定ミス。今年の SOSP で一番 OS っぽい話。https://t.co/zZjuALAkS6」 / Twitter
An analysis of performance evolution of Linux's core operations
品川 高廣さんはTwitterを使っています: 「セキュリティ対策による性能低下は、Meltdown 対策の KPTI で recv() が最大63%、Spectre v2 対策の Retpoline でpoll() が最大89%、SLAB freelist dandomization で epoll() が最大41%、usercopy の強化で select() が最大18%。」 / Twitter
品川 高廣さんはTwitterを使っています: 「新機能による性能低下は、fault around(page fault 発生時に周辺ページもついでにマップする)で page fault が最大54%、cgroup で munmap が最大81%、transparent huge table デフォルト無効化で read() が最大83%、userspace page fault handling でfork()が4%。」 / Twitter
品川 高廣さんはTwitterを使っています: 「設定ミスによる性能低下は、forced context tracking(reduced scheduling-clock ticks 開発のためのデバック機能)無効化し忘れで最大100%、TLB layout change で munmap() が最大50%。CPU idle power-state support はHaswell上の select() で31%の性能向上があるが、LTS に backport されていない。」 / Twitter
品川 高廣さんはTwitterを使っています: 「上記の11個の要因中8つはカーネルの reconfiguration で、残り3つは簡単なパッチで回避可能。その結果、Redis, Apache, Nginx benchmark の性能がそれぞれ 56%, 33%, 34% まで改善した。」 / Twitter
品川 高廣さんはTwitterを使っています: 「パッチ1: Spectre 対策の retpoline は indirect jump を予測不能にするので、indirect jump をよく使う select や poll が著しく性能低下する。対策は、セキュリティに問題のない if文+ direct jump への置き換え。」 / Twitter
品川 高廣さんはTwitterを使っています: 「パッチ2: KPTI は TLB flush のコストが重い。PCID を使って最適化可能だが、それでも切り替えに 400-500 サイクルはかかる。PCID は CR3 に格納されており、CR3 の書き込み自体 200 サイクルかかる。」 / Twitter
Linux Kernel CVE-2019-9857 の PoC を書いて検証・観察した - hibomaの日記
Linux Kernel CVE-2018-5390 SegmentSmack の PoC を書いて分析・検証した - hibomaの日記
Linux Kernel CVE-2017-18017 の Poc を書いて検証した - hibomaの日記
Linux Kernel CVE-2018-12232 の Poc を書いて検証・観察した - hibomaの日記
Linux Kernel CVE-2018-6554 の PoC を書いて検証・観察した - hibomaの日記
Linux Rootkit Internalsという題でLTをしてきた - 脱力系日記
2019年11月26日 Linux 5.4がリリース,カーネルロックダウン,exFATサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
「Linuxカーネル5.4」公開、exFATサポートやハードウェアサポートの改善などが特徴 | OSDN Magazine
Linuxカーネルのロックダウン機構を試してみる - Qiita
DECAF meets The Sleuth Kit(TSK) - Speaker Deck

サイドチャネル攻撃

サイドチャネル攻撃 - Wikipedia
サイドチャネル攻撃(side-channel attack) | IoT
1011…L†[…‘†[…h
サイドチャネル攻撃に対する安全性評価の研究動向とEMVカード固有の留意点
サイドチャネル攻撃への耐性を備えた超低消費電力プロセッサ - 日本シノプシスホームページ - Synopsys
科学10月独立論文_崎山ほか.indd
dwm009901050.pdf
サイドチャネル攻撃とは - Weblio辞書
PCの電位変化から暗号化データを復号する新手のハッキング手法が登場 - GIGAZINE
サイドチャネル攻撃とは - IT用語辞典
平成28年秋期問10 タイミング攻撃の対策|情報処理安全確保支援士.com
SCIS2013_1E2-5.pdf
Work_5.pdf
Microsoft Word - iokibe_ict-innovation-forum_2014.doc
ir.c.chuo-u.ac.jp/repository/search/binary/p/5121/s/2510/
スライド 1
timing attack (タイミング攻撃、タイミングアタック) とは - 木木木
icchyさんはTwitterを使っています: 「今日の #BitVisorSummit8 のスライドです 1: https://t.co/BIMzw9cMsc 2: https://t.co/El2O2qRqVQ」 / Twitter
how to port * to BitVisor (2)
icchyさんはTwitterを使っています: 「今回のポスター(?)です VMMを用いたタイミングベースサイドチャネル攻撃に対する緩和策 https://t.co/1GwSOI4lIv @SlideShareさんから」 / Twitter
VMMを用いたタイミングベースサイドチャネル攻撃に対する緩和策
icchy/tscjammer
サイドチャネル攻撃に対して脆弱なGPU

脆弱性情報

CVE

CVE - Common Vulnerabilities and Exposures (CVE)
ASCII.jp:脆弱性情報のサイトでよく目にする「CVE」とは?
CVE採番機関CNAの今/ウェブプライバシー保護技術の比較【海外セキュリティ】 - INTERNET Watch
2017年のサイバー攻撃に悪用された脆弱性トップ10/中CNNVDが脆弱性情報の公開日を改ざん?【海外セキュリティ】 - INTERNET Watch
KasperskyがCVE採番機関として認定 ~脆弱性にIDを付与 - 窓の杜
【セキュリティ ニュース】「Bluetooth」に暗号化強度下げる「KNOB攻撃」が判明(1ページ目 / 全2ページ):Security NEXT
Linuxの「sudo」コマンドに脆弱性 - PC Watch
Big Sky :: sudo の特権昇格バグはなぜ起こったのか
GitHubが脆弱性ワークフローを改善してCVE採番機関に

JVN

Japan Vulnerability Notes
JVN iPedia - 脆弱性対策情報データベース
MyJVN API
MyJVN APIを利用した脆弱性情報収集 | Developers.IO
10個のツールで学ぶ、備える!情報セキュリティの脅威と対策:「JVN iPedia」で公開の脆弱性対策情報を取得するWeb APIを活用せよ - ITmedia エンタープライズ
連絡不能開発者一覧

IPA

NOKUBI Takatsugu野首貴嗣さんのツイート: "IPAの脆弱性ハンドリング、始まった初期は割と普通に2週間程度で自分は処理されていたので、だんだんおかしくなっていったんだと思う。まあ日本ではよく見る光景"
ストラトさんのツイート: "「脆弱性を見つけたらまずIPAに通報すべき」とかいう脳内お花畑が一定数いる。彼らはIPAの通報手順がひどく煩雑で時代遅れで役人根性丸出しなクソっぷりであることを知っているのだろうか? もう通報前にグッタリするよこれ。 https://t.co/sXtzDH4tFp https://t.co/mOW0NHyD5K"
AoiMoeさんのツイート: "そういえば、大昔IPAからお金もらってCodeBlogってのをやってて、そこでXサーバのコードを読んでたのだが、脆弱性見つけたのでIPAに報告したら、それがacceptされたの1年後でしたね"

Qiita

セキュリティ脆弱性情報を最速でチーム共有する方法 - Qiita
脆弱性情報の収集→slack通知→backlog登録を自動化してみた - Qiita
あなたのサーバは本当に安全ですか?今もっともイケてる脆弱性検知ツールVulsを使ってみた - Qiita

Twitter

なかのん&マジックさんのツイート: "Mozillaでは、悪用が容易かもしれない場合はQAとかに必要な期間を考慮して(多分)、ギリギリまでツリーへの投入を待たされる。 / Microsoft、Google Chromeのパッチ提供方針を批判 | スラド セキュリティ https://t.co/qPvvKCevbu"
なかのん&マジックさんのツイート: "前提条件が複雑な場合(特定の事をやってるアドオンがインストールされてるとか)や、ユーザに特定の操作を強いる場合は即時投入されるけど。"
ひらナツさん@散文家さんのツイート: "Reactive とProactiveがある。CVEとかを調べたり、ログをとったりAuditしたりするのがReactive。Proactiveな方は強制アクセス制御などをつかって閉じ込める。SELinuxを使うのがいい(Montavista方式か?)#linuxcon"
Fadisさんのツイート: "CVSS v3からAttack Vectorに「攻撃者が物理的にアクセスできる必要がある」タイプの脆弱性が表現できるようになってる。これで「攻撃者が物理的にシステムにアクセスできる場合にハンマーで可用性を損ねる事ができる脆弱性」とかも正しく分類する事ができるな"
suzakiさんのツイート: "この一覧は有用!脆弱性が発見された順に並び、それらが実際に使われたか分かって有益な情報になっています。 Vulnerabilities and Attacks https://t.co/6Anrbzkitc Heartbleed、Shellshockが実際に使われていて、Rowhammer、VENOM、Meltdown、Spectre、Bleichenbacher's CATは使われていない。… https://t.co/HW4D6WtpVn"
hannob/vulns: Named vulnerabilities and their practical impact

オープンソースコンポーネントの積極的管理による大幅な改善の実現をSonatypeが報告
第44回 2018年3月~修正できない脆弱性対応,繰り返される歴史,そして「あたりまえ」を実践すること:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
ほぼ全ての最新ノートPCに脆弱性、コールドブート攻撃で情報盗まれるおそれ - CNET Japan
エフセキュア、スリープ状態のPCの脆弱性に警鐘。盗まれたノートから情報を抜き出される可能性 - PC Watch
Broadcom Wi-Fiの脆弱性「Broadpwn」詳細。ワームの悪夢再び ~Wi-Fiをオンにしているだけで突かれる可能性、Galaxy/Nexus/iPhoneなどが標的に - PC Watch
今度はMarvellのWi-Fiに脆弱性、オンにしているだけで攻撃可能 - PC Watch

ディレクトリトラバーサル - Wikipedia
Shirouzu Hiroaki(白水啓章)さんのツイート: "「セキュリティ目的のchrootは意味がない」 古い記事だけど知らなかった。 chrootした後、namei が mount point 跨りの ".." を特別扱いするのに似た処理はしてくれないね。 https://t.co/KXuoq7WImB"
仙石浩明の日記: chroot されたディレクトリから脱出してみる
Trusted Execution Environmentの実装とそれを支える技術

オーバーコミット

プラットフォーム特有の覚書
Redisで発生したメモリ不足エラーの調査メモ | ソシャゲの作り方
Linux プログラムのメモリ消費量を測る - Qiita
Memory Overcommit | Siguniang's Blog
IBM Knowledge Center - Solaris でのプロセス・フォークの失敗のために DataStage パラレル・ジョブを開始できない
E.2.7 オーバーコミット
mallocの落とし穴 - 組み込みLinuxでのmemory overcommit - 職業としてのプログラミング
Linuxにおけるメモリ管理機構の利用に関する覚え書き · うさぎ小屋
Bug #8711: 最近NoMemoryErrorが多い - Ruby trunk - Ruby Issue Tracking System

Linux

その他

Linuxカーネル4.14リリース、x86_64環境でのメモリ上限が拡大される | OSDN Magazine
【お知らせ】メモリ枯渇時の挙動の安定性が改善された Linux カーネル 4.15 が公開されました | NTTデータ先端技術株式会社
kslr linux - Google 検索
A fork() in the road
A fork() in the road を読んで.md

φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

memory cgroupとpageのLRUめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
弄りながらなんとなく学ぶLinuxのスラブアロケーター - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linux4.14.12(x86_64)のPage Global Directoryの設定を見てみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
ページングでメモリを割り当てる処理の動きを確認できるものを作ってみた - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
xv6のメモリ管理周りのコードリーディング - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
EPTの設定をbhyveで調べる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1のSLUBアローケータ(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1のメモリレイアウト(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1のvmalloc()(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Linuxカーネル4.1の名前空間(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

cgroup

Linux 4.14 で導入された Namespaced file capabilities(1) - TenForward
Linux Kernel: cgroup v1 の制限下で slab_out_of_memory を発生させて観察する - hibomaの日記
第41回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[5]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第42回 Linuxカーネルのケーパビリティ[1]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第43回 Linuxカーネルのケーパビリティ[2]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第44回 Linuxカーネルのケーパビリティ[3]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
2020年4月7日 Linux 5.7の新機能 ―親プロセスとは異なるcgroupへのプロセス生成が可能に:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「Systemd 247からsystemd-oomdが追加されるらしい。systemd-oomdは指定されたcgroups内のプロセスのメモリの使用状況を監視し、システムのメモリが逼迫したらカーネルより先にcgroups内のプロセスを潰す。カーネルのoomkillerがあまりにも公平に何でも潰す問題を解決する https://t.co/OHH5VJmTl7」 / Twitter
systemd-oomd Looks Like It Will Come Together For systemd 247 - Phoronix
第45回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[6]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
第46回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[7]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
Rustでもunshare(というか、Linux Namespaceの分離)したい! - ローファイ日記
eBPF的な意味で使えるcgroup idを取る方法 - ローファイ日記
cgroup v2の、BPFによるデバイスアクセス制御を試す - ローファイ日記

DAMON

FadisさんはTwitterを使っています 「AmazonがLinuxカーネルにDAMONを利用した積極的なページアウトを実装している話。DAMONはLinuxカーネル内でページの利用状況をモニタリングする物で、新しいパッチはDAMONが集めた情報に基づいて長期間触られていないページを、メモリが足りていてもページアウトさせる https://t.co/Yddgzb6eCb」 / Twitter
Amazon Working On New Proactive Memory Reclamation For The Linux Kernel - Phoronix
FadisさんはTwitterを使っています 「Linuxの標準的なメモリ管理はページに割り当てられるメモリがなくなった時点でページアウトさせるページを選び始めるが、これは大きなレイテンシのスパイクを生むため、詰まると更に惨事になるようなサーバではしばしば「暇なときに先読みでページアウト」させたい、という需要がある」 / Twitter
FadisさんはTwitterを使っています 「DAMONは今回の変更と同じくAmazonがLinuxカーネルに入れたがっている物で、メモリが割り当てられたページを稀にページフォルトさせる事でページの大雑把な利用状況を計測する。DAMONを使うことでプロセスのメモリのうちアクセスが多い部分とそうでない部分を見つける事ができる」 / Twitter

SysRq

汎用kumAGIさんのツイート: "windowsが辛い理由、自分がそもそもLinuxの上で走る物を最小の労力で作りたかったからLinuxに引っ越したわけだから、逆の立場ならWindowsに引っ越したと思う。でも何かプロセスを強制終了したくなった時にAlt+Ctrl+Delですら不可能な事がザラにある一方Linuxはkill -9がまず効くのがいい。"
リベラル.3goさんのツイート: "LinuxでもSysRqが効かないことなんてしょっちゅうでしょ"
実は使いどころがわからないWindowsのキー、1位は「SysRq」 -INTERNET Watch Watch
システムリクエスト - Wikipedia
マジックSysRqキー - Wikipedia
SysRqキー ‐ 通信用語の基礎知識
第5回「 SysRq ノススメ」 | NTTデータ先端技術株式会社
magic SysRq keyについて | Miracle Linux Support
SysRqキー(System Request key)とは - IT用語辞典
マジック SysRq キー
一体何に使うのかわからないキーボードのキートップ10 - GIGAZINE
sysrqキーでlinuxを再起動させたりcrashさせたり - うまいぼうぶろぐ

Stack Guard Page迂回

[重要] Linux kernel、glibc および Apache httpd サーバーの脆弱性対応について | Movable Type ニュース
Stack Guard Page迂回の脆弱性 : アジャイル株式会社
【注意喚起】glibcにStack Guard Page迂回の脆弱性について
【セキュリティ ニュース】Linuxにroot権限を取得される脆弱性「Stack Clash」(1ページ目 / 全1ページ):Security NEXT
複数のパッケージに影響するスタックガードページの回避 - Red Hat Customer Portal

memfd_secret

FadisさんはTwitterを使っています 「Linuxでmemfd_createを使って他から見えないメモリを作る機能がバニラカーネルに入りたがっている話。この機能を使ってプロセスに割り当てられたメモリは他のプロセスからも、カーネルからも読み書きできなくなる。OpenSSLのsecure heapをよりsecureにするような用途で用いる https://t.co/kJuWlQDnmX」 / Twitter
Secret Memory Areas For Linux Might Finally Be Ready With memfd_secret - Phoronix
FadisさんはTwitterを使っています 「Linuxのプロセスのアドレス空間はプロセス毎に分離されているが、適切な権限を持ったプロセスが別のプロセスを覗き見する方法が複数存在する。故に攻撃者が強い権限を持っていたりカーネル空間で暴れている場合簡単に他所のプロセスが抱える鍵等を覗けてしまう。新機能はこうした状況への耐性を高める」 / Twitter
FadisさんはTwitterを使っています 「よく読んだら、memfd_createにフラグつける方式じゃなくて、memfd_secretなる新しいシステムコールが生える方式になってる…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味深い…ただコードを読んでも、何故これでカーネルを覗ける強いプロセスからも守られるのか謎。 (仮想ページ範囲外となっている direct map が肝と…ただ root権限でioremapするデバドラ入れて全物理メモリ読むとかも防止できるのかな?) https://t.co/5iI1x52o8R https://t.co/o6W7w2lyUJ」 / Twitter
tools/testing/selftests/vm/memfd_secret.c - pub/scm/linux/kernel/git/next/linux-next - Git at Google

KSM

第8章 KSM
7.3. KSM (Kernel Same-page Merging)
IBM Knowledge Center - Kernel Same-page Merge (KSM) を有効にする
mrwk update: KVMで複数VMを起動してVM間の相互作用を減らしたいときに考えること

Zswap

Zswap - ArchWiki
【Linux】zswap は本当に速いのか - 解き放たれしソフトウェア
本の虫: Zswap: Linuxカーネルに圧縮付き仮想swap機能のパッチが提出される
Linux カーネル 3.11 で性能と効率を強化

hugepage

Linux の hugepage の開発動向
FadisさんはTwitterを使っています 「hugepage: メモリは大容量になったのに仮想アドレスの変換単位であるページが小さすぎてページの情報が巨大になるし特定のアドレスに対応するページの情報を探すのに時間がかかりすぎる→ページをでっかくしようぜ! #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「hugetlb: 古くからLinuxにあるhugepageの対応。専用のメモリプールを使う(=アプリケーションが明示的に使う必要がある) thp: 普通のメモリ確保の裏で透過的にhugepageが使われる。アプリケーションが明示的に対応する必要は無いが動きが読みづらい為DB屋からの評判は良くない #kernelvm」 / Twitter
suzakiさんはTwitterを使っています 「#kernelvm 昔、THP:Transparent Huge Pagesの性能問題を再現できるDockerを作りました。 最近のカーネルには試していないけど、動くのかな。」 / Twitter
suzakiさんはTwitterを使っています 「@satoru_takeuchi @charsiuCat @rioriost メモがあった。 Dockerを使ったHP:Transparent Huge Pagesの問題の再現法。 $ docker run -it suzaki/rust-parallel bash # export PATH=$PATH:/root/.cargo/bin # time seq 1 10000 | parallel echo &gt; /dev/null 昔のログではTHPがneverの場合は3秒程度、alwaysは9秒程度とあります。」 / Twitter
FadisさんはTwitterを使っています 「Hugepage、swapが古典的なページサイズ単位で書き込むからswapに書く瞬間にエクストリームページ分割作業が発生する話があったなぁ #kernelvm」 / Twitter
suzakiさんはTwitterを使っています 「@nhoriguchi ご指摘ありがとうございます 正しくは echo "always" | sudo tee /sys/kernel/mm/transparent_hugepage/enabled 結果は alwaysの場合 time seq 1 10000 | parallel echo &gt; /dev/null real 0m31.957s neverの場合 real 0m1.687s kernel 5.6でTHP:Transparent Huge Pagesが30倍影響しました」 / Twitter

Wikipedia

Security-Enhanced Linux - Wikipedia
TOMOYO Linux - Wikipedia
AppArmor - Wikipedia
Linux Security Modules - Wikipedia
grsecurity - Wikipedia
PaX - Wikipedia
Exec Shield - Wikipedia

posix_spawn

Kazuho Okuさんのツイート: "posix_spawn、linuxだとエラー処理がまともにできなくて自分で再実装するハメになるからオススメできない https://t.co/H4uiG1BIXH"
ケケモコソカメニハさんのツイート: "Linuxですとposix_spawnが失敗したかどうかはwaitpidしてみるまでわからないのに対し、BSDが即座にerrnoを返してくれるのはなぜでしょうどちらもvfork/execのはず、と思ったら、volatile変数経由してました https://t.co/shzoLYQ4Ek"
ケケモコソカメニハさんのツイート: "https://t.co/piAAKLKVv1 いやしかしglibcでもパイプを使ってエラーコードを返してますね?手元ですとwaitpidするまでわからないんですが…… https://t.co/FMbT52rAo5 どうやら2017年06月に改善されたらしい"
ケケモコソカメニハさんのツイート: "手元のUbuntuはglibcがまだ2.23ですのでこの変更が取り込まれていないようです"
ケケモコソカメニハさんのツイート: "というわけでglibc2.26以降ですとちゃんとerrno返してくれるようですので、それまでどうするか……"
ケケモコソカメニハさんのツイート: "https://t.co/pEWCQ6Nqb4 これがglibc 2.26から不要になるようです"

fork

mumumuさんはTwitterを使っています 「A fork() in the road [HotOS '19] fork()が現代のOSにとっていかに有害か(代わりのものを使おうね,そう単純な話ではないけど)をこれでもかと論じている.著者らはfork()に親を殺されたのか?めっちゃ面白い. 日本語での解説をみつけた:https://t.co/0LG1GMPo0o https://t.co/0yplLA93f0」 / Twitter
A fork() in the road を読んで.md
A fork() in the road - fork-hotos19.pdf
UNIX上でのC++ソフトウェア設計の定石 (3) - memologue
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この fork disは、概ね正しく MSR所属は関係無さそう。 (30年近く前でも、自プロセス肥大後のsystem(3)はforkがメモリ不足でコケる可能性あるため、起動直後にsystem(3)依頼用子プロセス作る予防線張ったっけ。今どきはover commitあるとはいえ)」 / Twitter

バッファキャッシュ

Kazuho OkuさんはTwitterを使っています 「えっ違うんだ見ないと」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「当初のUNIX「バッファキャッシュのみ」→SVR4で「mmap/ページキャッシュ導入だが、メタデータのみ旧式バッファキャッシュのまま」みたいな、歴史的経緯の話かと思ったら、ちょっと違っていた。 https://t.co/8lNIxa9UQt」 / Twitter
私的メモ(2004年02月版)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味ある方は「UNIXカーネルの魔法」の下記が参考になります。また「最前線UNIXのカーネル」にも記述あり。 ただ、どちらも古い本なので絶版かも…? (画像の歪みが大きかったので、gimpで補正して再ポスト) https://t.co/kDdn5ltKsa」 / Twitter

blog

あなたの知らない time(1) の世界 - kuenishi's blog
Kernel memory randomization and trampoline page tables – Medium
Kazuho's Weblog: mmapを使ってファイルベースの巨大なバッファを確保する話
ELF実行ファイルのメモリ配置はどのように決まるのか - ももいろテクノロジー
実行中プログラムのイメージを得る - @tmtms のメモ
The mysterious case of the Linux Page Table Isolation patches | Firmware Security
Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する - hibomaの日記
Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する (2) - hibomaの日記
per cpu data シンボルのアドレス - 睡分不足
/proc/pid/pagemapの話 - 睡分不足
仮想アドレスから物理アドレスを求める - 睡分不足
x86_64 Linuxでの仮想アドレス/物理アドレス - 睡分不足
UNIX上でのC++ソフトウェア設計の定石 (3) - memologue
Life with open mind: x86 Linux上で sysenter 命令を使ってシステムコールを呼び出す方法

スライド

FlexSC-Threadsの紹介 -プログラムの変更無しにマルチスレッドプロセスを高速化
cgroup v2とgVisor - Speaker Deck

技術評論社

2016年12月21日 スワップパーティションはもういらない ―Ubuntu,Zapusでは"Swapfiles"に:Linux Daily Topics|gihyo.jp … 技術評論社
2017年11月14日 Linux 4.14がリリース,仮想メモリの上限が128PiBに:Linux Daily Topics|gihyo.jp … 技術評論社
2019年10月2日 Linux 5.4-rc1がリリース,議論となった「ロックダウン」機能も実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
2020年1月8日 Fedora 32がEarlyOOMをデフォルト実装へ,メモリ不足によるフリーズを回避:Linux Daily Topics|gihyo.jp … 技術評論社
2018年4月4日 Linux 4.16がリリース ―Jailhouseハイパーバイザのサポート,usercopyホワイトリストなど:Linux Daily Topics|gihyo.jp … 技術評論社
2020年5月1日 NVIDIA Jetson,GNOME 3.36,EarlyOOM ―Fedora 32が正式リリース:Linux Daily Topics|gihyo.jp … 技術評論社

Qiita

ASLRとKASLRの概要 - Qiita
open+fork+exitで無限ループすることがあるという話 - Qiita
いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita

Twitter

yoh2さんのツイート: "直接のメモリ確保じゃないけど、メモリ不足により fork() 失敗という現象を踏んだことがある。あれは悩んだけど面白かった。 環境内の半分以上のメモリを確保済のプロセスをfork()しようとするとたとえCoWが有効でもダメ出しくらうという。 https://t.co/Wga3xBQ9Qm"
linux - 大量のメモリを使用するプログラムからコマンドを実行する方法 - スタック・オーバーフロー
Fadisさんのツイート: "x86_64のLinuxのユーザ空間、実行したバイナリは先頭の方に置かれていて、ヒープを猛烈に使わない限りそれ以外の多くの物はユーザ空間のアドレスの後ろの方に連なってるから、ライブラリではなく実行可能バイナリ本体を実行している時、そのスタックの境界はeasy 目grepableであるという知見を得た"
Fadisさんのツイート: "試しにDirty COW(CVE-2016-5195)の対策が入る前のカーネル引っ張ってきてexploit動かしてみたら本当に一般ユーザでrootのファイルの書き換えが出来てウヒョーってなってる… "
Fadisさんのツイート: "書き込み権限の無いファイルをMAP_PRIVATEでmmapして、MADV_DONTNEEDで「しばらく触らないから実メモリから剥がして良い」しながらこの領域に書き込みを行うと、本来変更内容はCoWでメモリに置かれてオリジナルを書き換えないはずが、オリジナルの方に書きにいってしまう不具合らしい"
Fadisさんのツイート: "あ、これずっと昔に修正がカーネルに入っている不具合なんできちんとアップデートしてる各位は何も恐る必要は無いやつでござい。(アップデートしないで放置しているとどういう状態になるか、という話をする資料作るのに引っ張ってきた)"
LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術:連載|gihyo.jp … 技術評論社
shinichiro hamajiさんのツイート: "#tcfm linux kernelがenvpより深いスタックにauxvというkey/valueを送ってくれてて、その中のAT_RANDOMの2つ目が任意アドレス書き換えが即IP奪取にならないmitigationとして使われてるというトリビア https://t.co/1DcRYpG7p0 ちなみに1つ目はstack protector https://t.co/Ingenm5bbw"
test/mangled_syms.c at master · shinh/test
Fadisさんのツイート: "CONFIG_MULTIUSER: Linuxカーネルでマルチユーザをサポートするコンフィグ。普通は有効になっていて、切るとあらゆるプロセスはuid0(root)で実行されるようになり、UIDとGIDに関する全てのシステムコールはカーネルから削除されて使用できなくなる… https://t.co/PCcQdwSdcb"
まさみさんは語りたいさんのツイート: "そもそもLinuxでも高性能出すならできるだけアプリには仮想ではないナマのメモリを与えるのが良さげだけど。"
まさみさんは語りたいさんのツイート: "自動検出してくれないかなーという気にもなってる。… "
Kazuo Moriwakaさんのツイート: "systemdは競合するサービスをConflict=で明示的に定義できるからntpd動いてるのにchrony動かそうとすると実際に競合する前に検出して失敗してくれるよ"
まさみさんは語りたいさんのツイート: "それMINCSでもできるよ(ステマ… "
Kazuo Moriwakaさんのツイート: "「linuxはcgroupでリソース制限かけてメモリ+swapの上限とか設定できる」それどうやって使うんだろうと思った人、systemdならサービス毎にcgroup作ってるから設定1行書くだけでできるよ"
Fadisさんのツイート: "主記憶に対してハードディスクが遅くなりすぎて乗ったら負けみたいになってたlinuxのswapが、フラッシュメモリなストレージの目覚ましい性能向上によって実用的になってきて再び改良の対象になっているっぽい"
Fadisさんのツイート: "fork bomb、Linuxならあるプロセスの下に作れる子プロセスの数をcgroupsで絞れるから、そういうものが投げつけられるコーディングのsandboxは絞っておくのがオススメ"
suzakiさんのツイート: "NDSS攻撃2つ目。Linuxカーネル内で初期化せずに使われる変数への攻撃。Syscallを使い、スタックの固定領域にスプレー攻撃を行うDeterministic Stack Sprayingの発表。"
suzakiさんのツイート: "NDSS攻撃3つ目。コード再利用攻撃。Code Pointerを直接ではなく、トランポリンを使うことでコード領域に直接ジャンプしないAddress-Oblivious Code Reuse (AOCR)攻撃。"
Fadisさんのツイート: "Linuxに他所のプロセスのページテーブルの一部をコピーして、任意のアドレスの範囲をゼロコピーで共有できるようにするシステムコール process_vm_mmap を追加しようという提案がなされているが、ワイルド過ぎる機能にいろんな問題が出てきて揉めてる話(リンク先有料記事) https://t.co/ePSbzGAlc2"
DrumatoさんはTwitterを使っています: 「insmodのリンク対象はディスクイメージではなくメモリイメージ,なるほどな. ディスクイメージに対して使用中カーネルのシンボルをリンクしてしまったら, それ以降再配置可能なオブジェクトファイルでなくなってしまう(厳密にはそうでもないんだけど)から, 常に使用中カーネルに追従するようにするのか.」 / Twitter
FadisさんはTwitterを使っています 「systemdに新しいデーモンsystemd-oomdが提案されている。systemd-oomdはFacebookのoomdをsystemdに統合したようなもので、ホストのメモリが不足しているときにカーネルのOOM Killerがプロセスを止める前によりconfigurableな方法でプロセスを止める役割を果たす https://t.co/h5kYgkCd02」 / Twitter
Systemd-OOMD Continues Coming Together For Better Linux Out-Of-Memory Handling - Phoronix
FadisさんはTwitterを使っています 「Linuxのページ割り当てを速くするPG_zeroが提案されている。PG_zeroはページテーブルのフラグで、ページが既に0クリアされている事を表す。Linuxはページ割り当て時にページを0クリアするが、これを暇な時に行っておきPG_zeroを立てる事でページ割り当て時の0クリアを省略する https://t.co/bZSGQGqOcY」 / Twitter
PG_Zero: Faster Page Allocation Proposed For Linux By Zeroing Out Pages Ahead Of Time - Phoronix
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Linux 5.8にコンテキストスイッチのたびにL1をフラッシュするオプショナルなセキュリティ機能が入った。将来のためという文言から陰謀論者はすでに脆弱性が存在しているのではないかと噂している。 https://t.co/Fgo7L9zk6H」 / Twitter
Linux Hardware Reviews, Open-Source Benchmarks & Linux Performance - Phoronix
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Linuxで小さなファイルを読むのに最適化したreadfile syscallが提案されている。中身はファイルをオープンしてバッファに読んでクローズするだけ。一度にカーネルスペースで行うので効率的だそうだ。いまさら? https://t.co/fwWTPFliKx」 / Twitter
Linux Work Culminating On A "READFILE" Syscall For Reading Small Files Efficiently - Phoronix
FadisさんはTwitterを使っています 「L1 cacheヒットを検知するサイドチャネル攻撃に備えてLinuxにコンテキストスイッチ毎にL1 cacheを消す機能(任意)を実装しようという提案にLinus氏が怒り爆発している。これが有効かは状況に依るが性能に影響を与えるのは明らかで、そんな判断をユーザに委ねるなという事らしい https://t.co/l1AZKG7zR4」 / Twitter
Torvalds Blasts "Beyond Stupid" Flushing L1d On Context Switches - Reverts Code For Now - Phoronix
suzakiさんはTwitterを使っています 「カーネルからプロセスのメモリを覗き見させないsecretmemfdシステムコールの提案は面白いが、暗号化はしないようで仮想化によるMemory Deduplication覗き見などは防げないように読める。 Linux Secret Memory "secretmemfd" System Call Remains Under Review https://t.co/gsW7llFUbk」 / Twitter
FadisさんはTwitterを使っています 「Linuxに新しいシステムコールsecretmemfdが生えるらしい。secretmemfdで作ったfdでmmapするとその領域はsecretになる。secretなメモリはカーネルのdirect mappingから見えなくなり、カーネルを介して他所のプロセスのメモリを覗き見しようとする攻撃が難しくなる。 https://t.co/PyMjQknf2L」 / Twitter
Linux Secret Memory "secretmemfd" System Call Remains Under Review - Phoronix
Shinji KonoさんはTwitterを使っています 「Mojave で12GB配列をPerlで確保すると、11GBは圧縮仮想記憶に入れられてしまう。これを調べる課題にすると良いな。Linux は最近は圧縮仮想記憶持ってるの?」 / Twitter
Shinji KonoさんはTwitterを使っています 「Zswap っていうのか。 https://t.co/EetCWPHkHa」 / Twitter
Zswap - Wikipedia
FadisさんはTwitterを使っています 「Linuxに新しいsyscall trusted_forを追加する提案。実行可能バイナリを置かない場所に実行権限付きの物を置けなくする事は攻撃者の選択肢を狭めるが、スクリプト言語の場合読めれば実行できる。これを防ぐためにインタプリタが「実行する為に読むが良いか」を確認する為の物 https://t.co/XaCLGcjgFU」 / Twitter
FadisさんはTwitterを使っています 「Linuxではメモリ4KiBのページ毎にそのページの情報を持つ64バイトのpage構造体が作られる。この構造体はアドレスから高速に引けるように配列になっている為、HugePageを使う場合であっても4KiBページ換算での個数分のpage構造体が作られる。先頭のもの以外は先頭の位置が書かれたものが並ぶ」 / Twitter
FadisさんはTwitterを使っています 「この配列は疎なメモリに効率よく対応する為にそれ自体がページングで必要な部分だけに物理メモリを割り当てている。そこで、HugePageで生じる先頭の位置が64個並んでいるだけのページが同じ物理アドレスを指すようにする事で必要なメモリを抑えよう、という提案がなされている https://t.co/kfmOBR2ouJ」 / Twitter
FadisさんはTwitterを使っています 「Linuxの仮想メモリは赤黒木で管理されているが、赤黒木のバランスは複数の要素を一度に操作する為ロックが必須でカーネルのスケーラビリティを阻害する要因になっていた。そこでRCUで更新できるB-treeベースの新しい木構造MapleTreeで管理しよう、という提案がなされている https://t.co/wJzzTCNBud」 / Twitter

MS

IT談話館

Windows 8/10とJobオブジェクト(基礎)
Job Objects - Windows applications | Microsoft Docs
Sandbox
Windows 8/10のJobオブジェクト
Windows 7/8/10、セキュリティー、Token、SD
WinDbgとCPU
WinDbgとWindowsセキュリティー(旧)
WinDbgとWindowsセキュリティー
SetProcessMitigationPolicy function (processthreadsapi.h) | Microsoft Docs
UpdateProcThreadAttribute function (processthreadsapi.h) | Microsoft Docs
WinDbgとWindowsカーネルアーキテクチャー
WinDbg、WMI、システムロガー

NyaRuRuが地球にいたころ

必要最小ワーキングセット - NyaRuRuが地球にいたころ
ウィンドウ最小化時のワーキングセット縮小 : Vista 編 - NyaRuRuが地球にいたころ
Windows のヒープ管理 - Firefox3 のメモリ使用量 (2) - NyaRuRuが地球にいたころ
デマンドページング - NyaRuRuが地球にいたころ
プロセス終了時のページイン: 実験 - NyaRuRuが地球にいたころ
アプリケーション終了時の大量のページイン - NyaRuRuが地球にいたころ
ハードページフォールト - NyaRuRuが地球にいたころ
ソフトページフォールト - NyaRuRuが地球にいたころ
FILE_FLAG_SEQUENTIAL_SCAN フラグを使用しなかったため,意図せず「メモリの掃除」をしてしまった事例集 - NyaRuRuが地球にいたころ
十分に物理メモリを搭載しているにもかかわらずスワップアウトが発生する理由 - NyaRuRuが地球にいたころ
十分に物理メモリを搭載しているにもかかわらずスワップアウトが発生する理由 - 動画版 - NyaRuRuが地球にいたころ
メモリ搭載量とパフォーマンス - NyaRuRuが地球にいたころ
資料紹介: オペレーティング システムおよび PAE のサポート - NyaRuRuが地球にいたころ
Windows で Large Page は「使える」か? - NyaRuRuが地球にいたころ
ホワイトペーパー: Windows のメモリ管理の進歩 - NyaRuRuが地球にいたころ
仮想メモリ戦略に関する大きな誤解 - NyaRuRuが地球にいたころ
CLR Hosting : 仮想メモリ編 (1) - NyaRuRuが地球にいたころ
UPX 圧縮するとメモリ使用量が増える事例 - NyaRuRuが地球にいたころ
メモリ管理コスト - NyaRuRuが地球にいたころ
Memory Performance Information - MSDN Library - NyaRuRuが地球にいたころ
Swapfile.sys,スケーラビリティ,「多くの場合,最適化は直感に反する」の例 - NyaRuRuが地球にいたころ

Windows OS入門:第3回 プロセスとスレッド (1/2) - @IT
Win32API-プロセスとスレッドの概要
ASCII.jp:Windowsのメモリー管理をx86の仕組みから読み解く (3/4)|基礎から覚える 最新OSのアーキテクチャー
あなたの知らない“Windows 10のメモリ管理”の世界:その知識、ホントに正しい? Windowsにまつわる都市伝説(97) - @IT
メモリを使用する、とは – kekyoの丼
Project Zero: Windows Exploitation Tricks: Trapping Virtual Memory Access

Apple

mach_kernel はドライバ隔離用プロセス? - NyaRuRuが地球にいたころ
なぜ Intel Mac のドライバには 64-bit 化の問題が起きなかったのか? - NyaRuRuが地球にいたころ

本の虫

本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
本の虫: fork()は失敗するんだぜ、覚えときな
本の虫: The Old New Thing: 実行ファイルのベースアドレスが0x00400000である理由
本の虫: GNU/Linuxにおけるプロセス
本の虫: Shebangという謎な事実上業界標準について
本の虫: DOOM 3 BFGの技術ノート

スライド

第6回 自作OSもくもく会 - Google スライド
第7回 自作OSもくもく会 - Google スライド
7/2 LT - Google スライド
cpu_info // Speaker Deck
TEEとIntel SGX入門 - Speaker Deck
RustはOS界の 銀の弾丸になりうるか - Google スライド
Wayback Machine

ASCII.jp

ASCII.jp:Go言語で知るプロセス(1)|Goならわかるシステムプログラミング
ASCII.jp:Go言語で知るプロセス(2)|Goならわかるシステムプログラミング
ASCII.jp:Go言語で知るプロセス(3)|Goならわかるシステムプログラミング

Wikipedia

バックグラウンドプロセス - Wikipedia
プロセス制御ブロック - Wikipedia
LFUとは 「LFU方式」 (Least Frequently Used): - IT用語辞典バイナリ
Least frequently used - Wikipedia
ページ置換アルゴリズム - Wikipedia
Page replacement algorithm - Wikipedia
キャッシュアルゴリズム - Wikipedia
Cache replacement policies - Wikipedia
侵入検知システム - Wikipedia
侵入防止システム - Wikipedia
強制アクセス制御 - Wikipedia
任意アクセス制御 - Wikipedia
アクセス制御 - Wikipedia
必須整合性コントロール - Wikipedia
セキュアOS - Wikipedia
アドレス空間配置のランダム化 - Wikipedia
Address space layout randomization - Wikipedia
Return-to-libc攻撃 - Wikipedia
Return-to-libc attack - Wikipedia
オーバーレイ (コンピュータ用語) - Wikipedia

Twitter

その他

Rockridgeさんのツイート: "Quantum DOMのコンセプトなどを説明した文書。関連するタブをグループ化(TabGroup)するとともにグループ内の同一オリジンのドキュメントもグループ化(DocGroup)し、スレッドを割り振る基準にするようだ。 https://t.co/itCiGJaysq"
Quantum/DOM - MozillaWiki
七誌さんのツイート: "またBSoDの調査を依頼された。ページファイルに不良セクタがあって、ページアウトできずに落ちていたようだ。原因が分かって良かった。"
渋川よしきさんのツイート: "macOSみたいなプロセスのメモリの圧縮ってLinuxにはないのかな?"
るくすさんのツイート: "Linuxカーネルのヒープを初期化後にRead-onlyにするpmalloc関数をHuaweiの技術者が作ったらしい https://t.co/JXzU6pAi3R"
Huawei Continues Working On Protectable Memory Support For The Linux Kernel - Phoronix
infvhjさんのツイート: "stackjackingってマイナーな手法じゃない?iOSで聞いたことない"
Hideki EIRAKUさんのツイート: "fork(2) の性能差比較用 sh スクリプト: m=..;while n=0;do a="$b";while test "$a" = "$b";do b="`date`";n=`expr $n + 1`;done;test $m&&m=${m%.}||echo $n;done"
AoiMoeさんのツイート: "伝統的にforkは遅いのだ。2BSDはvforkなるad hocなsyscallを作った。forkがそんなに遅くなくなったのはデマンドページングとCoWを組み合わせた4BSDからだが、現代では「ページテーブルのコピーが遅せえよ」という話になり、やっぱり遅い"
СЮУ1228🏓さんのツイート: "4K pageで256TB - 128PBとかもうページサイズ増やしたほうがよくない…? TLB的にも"
Fadisさんのツイート: "メモリをたくさん積みたい人に朗報なんだけど、最近Linuxカーネルにサポートが入ったIntelの5レベルページテーブルを使えば物理アドレス空間が64TiB分しかなくてそれ以上メモリを積めない問題が解消されるよ"
ゆたかさん🐶さんのツイート: "Windows ServerのEnterprise版は割り込みベクタが255までしか取れないため、多数のデバイスが搭載できないけど、Datacenter版なら制限解除されている、というのがあります。 https://t.co/1ZfIGEVSgH"
なかのん&マジックさんのツイート: "ふと疑問なんだけど、new/deleteの不一致でのメモリリークを起こすような現場、循環参照地獄とか無縁なんだろうか。それと、細かくプロセスを分離というか再起動というか、そういうOS頼みなメモリ周りのクリーンナップには頼らないんだろうか。"
hikaliumさんのツイート: "特権ユーザー -> 非特権ユーザ -> capability(やれることを制限) -> cgroups(使えるリソースを制限)-> namespace(見えるリソースを制限・仮想化)-> でもまだAttack surfaceがでかい(権限昇格・ネットワークスタック)->というわけでgVisor #gcpug"
2018年もアロハシャツエンジニアさんのツイート: "kernelによるOOMキラーが発動する前に様々な条件でプロセスを殺すuserspace動作のoom killer daemon。プラグインによる拡張も可能。良さそう。facebookから。 / “Open sourcing o…” https://t.co/F2ypXue7MI"
ロボ太さんのツイート: "あるテストのため、メモリを際限なく食いつぶすプログラムをMacで走らせていたのだが、top -o memで監視してるとあるところで使用メモリの増加が止まる。調べたら、MacはMavericksから圧縮メモリという機能がついており、それが働いていた模様。知らんかった・・・ https://t.co/7yiFxy8HL6"
ロボ太さんのツイート: "Macで開発したコードが「メモリを際限なく食いつぶすコード」になっていることに気づかず、そのままスパコンに投げて速攻でメモリ枯渇起こして死んだんだけど、「あれ?この実行時間で死ぬなら、Macでテストしたときに気がつくはず」と思って調べてみたら、Macにはメモリ圧縮機能があったという……"
Takashi Kawasakiさんのツイート: "スレッドの使い方って、典型的には投げっぱなしで結果だけもらう的な粒度の低い奴 or 粒度の高い奴超並列的な二択で世界の9割ぐらいの作業はこなせる感じだし、それ以外のパターンを闇に葬る or unsafe コンテキストでしか使わせないというのは一定の意味はあると思う。"
品川 高廣さんのツイート: "macOS は syscall() 関数を deprecated にしたけど、将来的に Windows みたいにシステムコール番号をカーネルのバージョンごとに変えたりするんだろうか。"
Nerry さんのツイート: "非常に稀なケースだとは思うけど、ページフォルトが発生してCR2の値を読み取る前に別のページフォルトが発生したら、後の例外から回復したあと先の例外がうまく処理できなくて破綻するよね:;(∩´﹏`∩);:"
Nerry さんのツイート: "意図的にこの状況を再現する事は可能だと思うけど、1回目のページフォルトと2回目のページフォルトが初期の段階で分岐して別々のページでCR2を読み取る必要がある 普通に設計したらページフォルトの処理中にページフォルトは発生しないし、そこで万が一例外が発生したら2回目の例外は回復できない"
Nerry さんのツイート: "他にあり得るとしたらページフォルトが発生して例外ハンドラでCR2を読み取る直前にタイマー割り込みでコンテキストスイッチされて別のスレッド実行中にページフォルトで上書きされた時。これは割り込みゲート使えば起こり得ない。"
ryoさんはTwitterを使っています 「しばらくx86のpmap見てなかったけどpmap_pageにmutexが足されてた。やっぱりpmap_page枚にmutex要るよね。間違ってなかった!」 / Twitter
ryoさんはTwitterを使っています 「となるとやっぱりPMAP_PAGE_FINI()的なマクロが必要と思うんだけどもしかしてx86でもdrmkmsなドライバをdetach/unloadしたらmutex残ったまま?」 / Twitter
ryoさんはTwitterを使っています 「adの人に聞いてみたら、LOCKDEBUGするにはページが多すぎるのでx86ではpmap_pageのmutexにはMUTEX_NODEBUGを付けてて、だからmutex_destroyも要らないんだ、と教えてくれた。なるほど納得。」 / Twitter
mumumuさんはTwitterを使っています 「SpaceJMP: Programming with Multiple Virtual Address Spaces [ASPLOS '16] NVMの台頭などに備えて,従来プロセスと仮想メモリの関係を見なおし,OSが仮想メモリも第一級オブジェクトとして扱うことで,より柔軟なメモリ管理を実現する手法を提案してBarrelfishやDragon-Fly BSDに実装」 / Twitter
mumumuさんはTwitterを使っています 「Direct Inter-Process Communication(dIPC): Repurposing the CODOMs Architecture to Accelerate IPC [EuroSys '17] CODOMというアクセス権限がページテーブルベースではなく命令ポインタの位置により決定される拡張アーキテクチャ上で,異なるプロセスの関数を同期的に呼び出す(IPC)手法を提案」 / Twitter
とみながたけひろさんはTwitterを使っています 「まあそのときは意図的にディスクを遅くしてごまかしたのだが、最近、NVMeな環境で細かくメモリ使ってると、hugepageの分割とかでpagetableが増えるほかでswapoutが追いつかず、pagedaemonが回収するペースが追いつかなくてPANICするみたいなのを見て、歴史は繰り返すんだなーって思ったりした」 / Twitter

mmap

SODA Noriyukiさんのツイート: "free()してもカーネルにメモリは返らないんぢゃよみたいな話も昔は確かにあったけど、それはmalloc()が内部的にmmap()を使ってなかった頃の話で、たぶん30年くらい前だと思う。"
SODA Noriyukiさんのツイート: "昔のUNIXにはそもそもmmap()がなかったんぢゃよ...←老害"
MAEKAWA Masahideさんのツイート: "「次は free() をすべきかどうかで争いがあった、とか言うんでしょ? そんなのはプログラム次第ですよ。」… "
OGAWA, Tadashiさんのツイート: "mmap () はシングルストレージ OSである Apollo Aegis (Domain/OS) の優位点 (例えば某地図系ホニャララでの大規模画像データへの対応とか) だったとワカモノは伺っております… https://t.co/cWwJTO07e5"
SODA Noriyukiさんのツイート: "ワカモノ..."
AoiMoe a.k.a. しお兄Pさんのツイート: "あんまり関係ないが、UNIXのmmapは複数のmmapで連続したメモリをマップした後で、一度のunmapで全部ご破算にできるのだが、Win32のVirtualAlloc系では同じことができなくてな"
Shiro Kawaiさんのツイート: "何だかTLにmmapのまめちしきが色々流れてきてためになる。自分あんまり深く使ったことないからネタがないけどそういえばmmapは高速なんだがmunmapが意外に重いというのに引っかかったことがあった気がする。"
Shiro Kawaiさんのツイート: "もう詳細を忘れちゃったけど、数10GBという単位の追記オンリーのデータを複数CPUでread-onlyでmmapするんだけど、データに追加があったら一旦munmapして再map、ってやってた。チューニング時にボトルネックを調べてたらmunmapでべらぼうに時間食ってた(1sのオーダーじゃなかったかな)"
Shiro Kawaiさんのツイート: "Linux限定だったのでmremapにして回避したんじゃなかったかなあ。いつも時間食うんじゃなくて特定の条件の時だったかもしれない。ただマルチCPUでワーカーが動いてるんだけどさすがに一個のワーカーがそんなにブロックするとあちこちつっかえて外から見て妙な動作になっていたんだった。"

ページサイズ

鯉江さんのツイート: "そういえば、なんでページサイズは4KiBなんだっけ?"
SODA Noriyukiさんのツイート: "80386の時代にはそれくらいが手ごろだったってだけでしょう。同じくらいの時期でも8KBのCPUとかありました。… "
鯉江さんのツイート: "64bitにするときにページサイズを大きくしなかったのはなんででしょう? メモリ空間がひろがるけどトランジスタも増えるし微細化で速度も上がるし4Kのままでバランスとれるって判断だったんだろうか?… "
SODA Noriyukiさんのツイート: "よく分かりませんが、32bit時代のバイナリを動かそうと思うと仮想記憶システムは最低ページサイズ4Kで動かさなければいけないし、だったら、まいっかみたいな判断ですかねえ?… "
とみながたけひろさんのツイート: "昔の整列制限のままmmapできないとつらいから、でしょうね。しがらみ少な目のiOSは16KBとか聞いた気がします… "
SODA Noriyukiさんのツイート: "なるほど。32bitから64bitへの移行で問題が生じるのは避けたいですもんね。… "
KOSAKI Motohiroさんのツイート: "Linuxでも、もう32bit互換重要じゃないから16KBに変えようという議論、何回か出てるんですが、進みませんねえ、ほとんどのひとが出来るものならやってみろてきな冷笑的な態度で議論に参加するので… "
SODA Noriyukiさんのツイート: "基盤となるソフトウェアでは、互換性に関して懸念のある変更って嫌われますからねえ… 世の中にあるソフトウェアが、すべてきっちり書いてあるのであれば互換性の問題も出ないんでしょうけど…… "

@kazuho

Kazuho Okuさんのツイート: "read中に、その引数であるメモリ空間をmunmapすると何が起きるか? RT @unak: accept(2)の最中に、その引数であるfdを別スレッドでcloseすると何が起きるか?"
Kazuho Okuさんのツイート: "direct i/oでdmaしてる場合とか何かおもしろいこと起きないのかなぁ"
Kazuho Okuさんのツイート: ".@matsumotory プロセス内ならseteuidやsetrlimit等で十分だし、プロセス分離して「信頼できないコードを実行する」場合に現実的になる要件では、と思っています。インタプリタにsafeモードをつけるという観点だと違うかも"
Kazuho Okuさんのツイート: "h2o の cgi 対応は、CGI の最大同時実行数分だけあらかじめマネジャーを fork しておくというモデルなので、CGI プロセス多すぎになる問題や fork の負荷問題は発生しないのでみんな h2o 使うといいと思う"

@uchan_nos

OS作れないマン WalB担当さんのツイート: "Linuxのバディシステムは物理メモリ管理、スラブアロケータは仮想メモリ管理みたいな考え中でいいの?"
OS作れないマン WalB担当さんのツイート: "vmallocはバディシステムで空いてしまった穴をつなぎ合わせて仮想メモリ空間で連続な領域を作る感じなのかな。ちょっとコード読んでみたいかも。"
OS作れないマンさんのツイート: "やっぱりリクエストごとのforkはよろしくないしfcgiとかを使うのが正解じゃね >RT"
CPU使用率100%のWebサーバをOSのチューニングだけでCPU使用率20%まで改善する - 人間とウェブの未来
特定条件下のclone(2)を4倍速くする - 人間とウェブの未来
デダルス・ユメノさんのツイート: "32ビットページングだと,ページサイズは4KiBまたは4MiB。ちょうど2^10倍。4レベルページングだと,ページサイズは4KiB,2MiB,1GiB。2^9倍ですね。なぜこの違いが出るか分かりますか?"
デダルス・ユメノさんのツイート: "これは4KiBで表現できるページの数が,32ビットページングでは2^10個,4レベルページングでは2^9個だからなんですね。4レベルページングではリニアアドレスが64ビット=8バイトに拡張されたので,4KiBの中に2^9個しかエントリを入れられなくなってしまったのです。"

@shirouzu

SHIROUZU(白水啓章)さんのツイート: "ここ20数年、HDD速度の10~20倍の伸び(10MB/s→150MB/s等)&シーク速度向上(数倍?)に比べ、搭載DRAM量は100倍以上(16MB→4GB等)になったため、瞬間的なスパイク発生時の保険以外でのスワップ多用は(昔より必要時間が増え過ぎて)現実的でなくなった、という印象がありますね。… https://t.co/VXvx03aFxL"
SHIROUZU(白水啓章)さんのツイート: "スワップを設定しなくてもいいというより、設定しても実用性の無い速度に落ち込んでしまう、という感じ。"
SHIROUZU(白水啓章)さんのツイート: "SSDだと(寿命問題以外は)スワップを定義する価値がありそうで、その遠い延長に NVDIMM-P とかかな。 そういえば、NVMDIMM-PはOS/CPUに透過なメモリとして見せると、CPUストール多発しかねないから、DRAMヒットミス時に別スレッドに切り替え可能な仕組みを入れるのかな。後で調べておこう。"
SHIROUZU(白水啓章)さんのツイート: "ただSSDにスワップを確保したとしても、(一般ユーザプロセスでも)搭載メモリサイズを少し超えるメモリを確保して、memsetをループさせるプログラムを動かすと、ほぼカーネルフリーズと言っていい状態に陥る。 (コンソールシェルはエコー反応のみ、sshは切断される状態。kernel3.4時代の実験)"
SODA Noriyukiさんのツイート: "原理的には clean な file cache の物理ページはいつでも解放することができるはずで、回避策はあるような気がしてるんですが、そうなってないんですよね。FreeBSD/DragonflyBSD と Solaris は clean な file cache 専用の page queue があるので実は問題を解決してるかもしれません(←よく知りません… https://t.co/nOlgw8Lmzp"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、NTの開発初期に、カーネルデータは全て物理メモリに置く方針だったのに、ラシッド教授がページアウト可能な方法を示したところ、カトラーはマネをするのも癪だから別の方法でページアウト可能にした、みたいな逸話もあった気も。… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自分用に ps コマンドに PSS/USS を追加表示するコマンドを go で書いたので、公開しておきました。 (VSZ と RSS表示の2つだけだと、実効的なメモリ使用量が調査しづらいため) https://t.co/yE6J4ZiTgm https://t.co/QRQmANANsl」 / Twitter
shirouzu/pss: pss: ps command with PSS/USS information
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「簡単に言うと、smapsのPss/SwapPss と Private_Clean/PrivateDirtyを集計しています。 (PSS/USS以外も集計すると役立つ項目があったりするかしらん?)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「LinuxもNTのように、アドレス空間の予約領域とコミット領域を分離できると良いなぁ。 前者は仮想メモリ確保なし、VSSにも表れない。ページテーブルも使わずAS管理のみ行う(NTと同様)。 使う時は(brk(2)のように)予約領域(の一部)をコミット領域に変更する形。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば、mmap(MAP_NORESERVE)はあった。 (ただ昔実験した時にNTと同様の利用は出来なかった記憶が…) ともあれ、malloc標準だと1スレッド作る毎に128MBもVSZが増えて、必要メモリ予測がしづらいので、最初は空間予約のみにして欲しいところ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「pss(https://t.co/yE6J4ZiTgm)を作っても不十分な点は、直接mallocした領域(≒使う気満々)と、将来に備えた空間確保したいだけの領域を別表示できないことだよなぁ(≠実際に物理メモリが割り付けられた領域)。 これはライブラリ&プログラムがNONRESEVEを積極利用しない限り解決しない。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Netflixがmincore(2)をヘビー利用していた話が興味深い。 リブート前に、DBの実メモリ部分をダンプし、再起動後にそれをロードして、再起動後の性能低下を低減していると。 https://t.co/VfNZtKpdUJ」 / Twitter
Linuxのページキャッシュ攻撃対策の影響は大きく、長期化する見通し【翻訳】 - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FirefoxでYoutube Musicで動画付き再生したら、Firefoxがやたら重くなったので調べてみたら、Firefoxが14GBもコミット済メモリを確保していた。 https://t.co/KE8rPEvrFG」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「アプリのメモリ消費が気になるときは、コミット済みメモリ量を見るのが大事。 (ワーキングメモリ量は騙されやすい)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔からタスクマネージャは、デフォルトではコミット済みメモリを表示しない謎。 (それが「メモリ・クリーナー」的な、まじないソフトが出現した一因とも思うのだが)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみにこの時、Youtube music のタブを閉じても変化無く、Firefox自体を落とす以外ではメモリ解放は出来なかった。 (Firefoxって、タブ:プロセスの関係は m:nなのだっけ…?)」 / Twitter

@EzoeRyou

Ryou EzoeさんはTwitterを使っています: "@shinh なるほど、ulimit -nがMacだと256、Ubuntuのデフォルトでも1024とfork bombを早期に避けるために極めて厳しいデフォルト設定になっているのですね。"
Ryou EzoeさんはTwitterを使っています: "システムコールのコストを下げる方法。1コアをシステムコール専用にする。キャッシュ汚染はそのコアのみにとどまる。 https://t.co/WSROiUv0y0"

@nminoru_jp

中村 実さんのツイート: "Intel64は4-level pagingでも仕様上4PiB(52ビット)の物理メモリ空間を保証しているんだよな。ページテーブルの予約ビットを使えばマックスの16EiBも行ける。物理メモリ制限はチップセット側の仕様だよな。"
中村 実さんのツイート: "ただx86-64/Linuxは256TiBの仮想アドレス空間の半分をカーネルに割り当てて、カーネルの半分を物理メモリとのマッピングを使うので、そのまま64TiBを越える物理メモリを載せてしまうとx86/Linuxみたいな物理メモリを触る時にページ単位に仮想メモリにマッピングする方… https://t.co/joXxY6bXul"

@tociyuki

MIZUTANI Tociyukiさんのツイート: "linux カーネルには、 まだ fs-uid が残っている。 デフォルトで無効にして、カーネル・コンフィグで有効にできないこともないけど利用非推奨で良いのではないかな。 setresuid (2) システムコールが使えるのだし。"
MIZUTANI Tociyukiさんのツイート: "ざっと google で検索した印象では、 POSIX の実uid、実効uid、退避uidの3組でデーモンの実効uidを特権と非特権で交互に行き来するやりかたを日本語で解説しているページはないようだ。それ以前に退避uidの解説ページがないようだ。"

@satoru_takeuchi

satさんのツイート: "とくにHDDだと、ちょっと負荷がかかると要求仕様を満たさない性能に落ちるレベルを突き抜けて、二度と応答がなくなるところまで一瞬で到達しますからね… "
satさんのツイート: "ページテーブルがメモリを食うというのと、それがforkの計算量に効いてくる、という話は頻出だけどあまり知られてない"

@KuniSuzaki

suzakiさんのツイート: "The history of documented Unix facilities でコマンドやシステムコールが導入された初期バージョンが示されて面白い。 https://t.co/rDDtchiU4M これを見てWindowsのシステムコールが有効なバージョンリストを思い出した。こちらも面白い。 https://t.co/FgsUg23Z3Y"
The history of documented Unix facilities
Microsoft Windows System Call Table (NT/2000/XP/2003/Vista/2008/7/8/10)

ロボ太さんはTwitterを使っています 「CPUって、命令セットとか演算性能が注目されがちだけど、実際はキャッシュやメモリとの接続といった「足まわり」がアプリケーション性能に強く影響を与えてて、そこを解決してから演算まわりを考える感じなんだよね……」 / Twitter

OSのデバッグ:メモリアロケーション講座 | POSTD
メモリアロケーションを削減: T.Ishiiのソフト開発記
省メモリーに関するデザインパターン 2011.04.18
スラブアロケータのfree list randomizationの実装について - Qiita

システムコール

SODA Noriyukiさんのツイート: "CじゃなくてPythonで十分デスヨみたいな意味でCPUが速くなれば手を抜いても許されるようになるけど、コンテキストスイッチのオーバーヘッド自体はなくならないので、結局ユーザランドとカーネル境界を意識したプログラミングスタイルも残りますよ。… https://t.co/Ab3604T2Mq"
眼力 玉壱號さんのツイート: "返すのに syscall 呼んじゃうと呼んだ方が block する…のを嫌って bmalloc(Safari が内部的に使ってる allocator)は別の thread 起こしてそいつに返させていた…… "
Shinji Konoさんのツイート: "なんか、今の時代になっても、system callのオーバヘッドとか言ってる不思議。CPU速くなったんじゃなかったのかよ…"
SODA Noriyukiさんのツイート: "バンド幅は急速に向上しますがレイテンシの改善はゆっくりですし、アドレス幅が広がればドライブ能力が必要となりレイテンシが悪化するのでメモリ階層を増やして対応します。結果L1キャッシュの容量は30年経っても同レベルです。キャッシュ外せば途端に遅くなるのでコンテキストスイッチは遅いままです… https://t.co/aCHBrZRlwV"
まさみさんは語りたいさんのツイート: "function failure injectionが拡張されてsyscallが片っ端からinjectableになっていた。"
虚無さんはTwitterを使っています 「Intel: 32ビットモードでsyscall/sysretをデコードせずsysenter/sysexitは32ビット/64ビットどちらでも使える AMD: 64ビットモードでsysenter/sysexitをデコードせずsyscall/sysretは32ビット/64ビットどちらでも使えるみたいな面白いやつも まあカーネル空間の話だからあまりユーザー影響ないですが」 / Twitter
FadisさんはTwitterを使っています 「新しいシステムコールreadfileがLinux 5.13でのバニラカーネル入りを目指してrebaseされた話。readfileはファイルを開いく、指定されたバッファにバッファのサイズ分だけ読んむ、閉じるを1回の呼び出しでまとめて行う https://t.co/XyzGqiEQNv」 / Twitter
READFILE System Call Rebased For More Efficient Reading Of Small Files - Phoronix
FadisさんはTwitterを使っています 「システムコールの発行回数を減らせる(これは特に対策する必要があるCPU脆弱性の多いマシンで重要)為、このシステムコールは小さいファイルをたくさん読むシーン(例えばsysfsの中身を漁っている時とか)において性能向上に寄与するとされている」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「sendfile等と同様、uOP fusion ならぬ、syscall fusion という感じ。 将来、syscallを配列にして呼び出すメタsyscallができてctx sw削減とかあるのかな?」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu システムコールで作ったキューペアにユーザ空間からI/Oリクエストを書くとカーネル空間からそれを拾って行ってくれる「io_uring」がメタsyscall的なものと言えるかもしれません」 / Twitter
FadisさんはTwitterを使っています 「Linux 5.13からカーネルスタックオフセットのランダム化が可能になるらしい。この機能はブートパラメータで有効/無効にする事ができ、有効な場合システムコール毎にカーネルスタックのベースアドレスが変化するようになる。 https://t.co/lahS5hv9TE」 / Twitter
Linux 5.13 Poised To Allow Randomizing Kernel Stack Offset At Each System Call - Phoronix
FadisさんはTwitterを使っています 「Linuxではシステムコールを起点としてカーネルのコードを実行する際にユーザ空間のスタックとは独立したカーネルスタックを使用する。カーネルスタックを壊せる脆弱性があるとカーネル空間で任意のコードを実行される恐れがあるが、開始アドレスが予測できなくなる事で、そうした攻撃が難しくなる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「linux の syscall(2) 使う時の定数、 SYS_xxx 使ってるコードと __NR_xxx 使ってるコードがあるけど、どっちが、より適切なんだろう」 / Twitter
Kazuho OkuさんはTwitterを使っています 「アプリからは SYS_ 使えってことっぽいな https://t.co/o5gAKmkeeW」 / Twitter
c - What are the __NR_-prefixed symbols in glibc? - Stack Overflow

プロセス間通信

signal

ゆたかさん🐬さんのツイート: "シグナルハンドラで使用可能な関数は、下記サイトに記載されていますが、非常に少ないです。printf()やfopen()などがまず使えません。実際に誤って使用しても、それなりに動いてしまうので問題に気付きにくいです。 https://t.co/cvbnhTp8NZ"
signal-safety(7) - Linux manual page
ゆたかさん🐬さんのツイート: "シグナルハンドラで使える関数は決まっていて、思いのほか少ないのですが、その制約を守れていない実装が存外多く蔓延っています。BusyBoxのsyslogdの-mで使われているシグナルハンドラはシグナルセーフではないため、まれにデーモンが暴走することがあります。 https://t.co/mJ6z8u7b2g"
Linux シグナルの基礎 - harasou.jp
だいありー
ぬるぽへさんのツイート: "マルチスレッドなら同じシグナルハンドラが普通に並行に走るな・・・(この動作ってPOSIX的にオッケーなんだっけ"
ゆたかさん🐬さんのツイート: "killコマンドはプロセスに終了してね❤と通知するだけなので、実際にプロセスが死んだか別途確認する必要があります。 PIDは再利用されると、別プロセスが同じ番号を使うので存外難しい。 1.kill PID 2./proc/PID がない 3./proc/PID/exe を確認"
Takanori Watanabeさんのツイート: "とりあえず、SEGVを割り込んで途中で止められるようにして欲しい。 (デバッグ中の数ギガクラスの巨大なイメージのプログラムのコアダンプを20分ほど待ちながら)"
LinuxC | シグナルの操作(2)
スタックオーバーフローのハンドリング (Stack Overflow Handling)
SIGSEGVとSIGILLのあいだ - Qiita
SIG30-C. シグナルハンドラ内では非同期安全な関数のみを呼び出す
Man page of EXIT
c++ - What's the difference between _Exit() and _exit()? - Stack Overflow
_Exit - cpprefjp C++日本語リファレンス
quick_exit - cpprefjp C++日本語リファレンス
terminate - cpprefjp C++日本語リファレンス
mattnさんのツイート: "SEGV は Segmentation Falut の略だよって人、なぜ Violation まで付けて説明しないのか。"
Fadisさんのツイート: "/proc/<PID>/以下ににシグナルを送る為のファイルを作る提案がなされている。既存のシステムコールを使った方法ではPIDが再利用された場合間違ったプロセスにシグナルを送る恐れがあるが、作り直されたディレクトリは以前の物と区別される事を利用してこの問題を回避できる https://t.co/JiKCIwMyVq"
New /proc/pid/kill Interface Proposed For Killing Linux Processes - Phoronix
まさみさんは語りたいさんのツイート: "signalで実装するとsignalハンドラでキャッチした後スリープしてる本体のスレッドを叩き起こし、戻る必要があるが、signalfdで待っておけばepollですぐに本体で対応できる。"
Fadisさんのツイート: "Linuxが新規プロセスに付ける番号(PID)は1から32767までの狭い空間の使用中でない値なので、短時間で終了するプロセスが大量に動くシステムで、PIDを指定してシグナルを送ると、それが既に終了していた場合、シグナルが意図したプロセスとは別のプロセスに届いてしまう事がある。"
Fadisさんのツイート: "この問題を解決する為に、現在Linuxカーネルで対応が進められているのがpidfd。これは/proc/<PID>ディレクトリに対するfile descriptorで、/proc/<PID>が別のプロセスになっても、fd指定でシグナルを投げる事で古い方のプロセスに向かってシグナルを投げている事をカーネルに明示する事が出来る"
ITが分からないbeepcap@HTTPSの強制には反対さんのツイート: "64bit環境では22bitほど割り当てられるので、比較的問題は小さくなる。… "
Fadisさんのツイート: "ちなみにLinuxはnamespaceでPIDの空間を分ける事ができる(よその名前空間のプロセスは見えなくなり、よそではすでに使われているPIDが未使用になる)為、ものすごい勢いでプロセスを作って終了させるヤツを他のプロセスが属すPIDの空間から隔離する事は、古めのカーネルでもできる"
2019年8月22日 Linuxデスクトップにレスポンシブなメモリ解放を提供する「Low-Memory-Monitor」:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「errnoは誰もがerrnoの扱いに関するルールを守る限りにおいて正しく機能するが、君はerrnoを書き換えるかもしれない処理をするシグナルハンドラの最後でerrnoを以前の値に戻すのを忘れたことが無いのか?!」 / Twitter
情報学広場:情報処理学会電子図書館
FadisさんはTwitterを使っています 「strace: ユーザ空間のプロセスが実行中に呼び出したシステムコールと、受け取ったシグナルを横から眺めるための仕組み。この関数は最終的にカーネルに要求を投げてる筈だけどどんなシステムコールを使ってるの?なんて時に調査が捗る #nekoi7yu_tech」 / Twitter

Twitter

CAP定理

TAKI, Yasushi (瀧 康史)さんはTwitterを使っています 「とりあえず、「分散すれば良い」と簡単に思ってる人は、拡張CAP定理について書いたので、読んでほしいな。 https://t.co/M9sXkaJ2m9」 / Twitter
Shinji KonoさんはTwitterを使っています 「本質的にスケールするためにはCAP定理のどこかを諦める必要がある。どれかは明解。そうすれば自明にスケールして、ネット上の情報交換はほぼ無料になる。そして、インターネットは再び儲からないものになる。トランザクションを要求するものは別。」 / Twitter
時空に拡張されるCAP定理:落ちず、速く、確実なサーバをどう作るのか? - JUSTPLAYER インターネットサービス

UNIXドメインソケット

Fadisさんのツイート: "mysqlはlocalhostに接続する時にmysqldが作ったUNIXドメインソケットを使おうとするが、この時mysqldのプロセスがあるかとかは見ていなくて、別のコンテナのmysqldが作ったソケットをbindマウントで持ってきて見える状態にすると、localhostにないmysqldにlocalhostで繋がる、という知見が得られた"
syuu1228さんのツイート: "一般的にこういうアプリでUNIXドメインソケットでつなぐ前にプロセスの生存確認ってわざわざしない気がする(繋がらなければ生存してないとわかるし…"

@kazuho

Kazuho OkuさんはTwitterを使っています: 「可用性が高く、メッセージへの参照を持つことができる、セキュアなメッセージキューがあります。各アプリケーションはメッセージキューの読み書きをすればよろしい、ってのはエンタープライズアーキテクチャには便利だわなぁ」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「スケーラビリティのためにはイベントドリブンプログラミングが必要だけど、単にイベントドリブンするとワークセットがでかくなってパフォーマンスが出なくなる問題」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「ちょっと具体的に言うと、ワークセットを小さくするにはイベントループに戻るケースを最小化すべき → 非同期になった場合と同期的に処理できた場合の両方を統一的にコーディングできるよう設計すべき → tail callが便利 → 返り値を返す関数とcbを引数にとる関数の峻別が必要」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「リソースロケータと読み書き手順の標準化による効率化、ってことなのかな。なるほどねぇ / https://t.co/AOSpdixnST」 / Twitter
中国で公共サービスのブロックチェーン導入進む。十数日かかる企業登記が3日に短縮 ~知的財産権訴訟の和解処理も大幅効率化 - 仮想通貨 Watch
Kazuho OkuさんはTwitterを使っています 「一般論として、大量のパケロスが発生するような状況はキューの積み上がりと再送による遅延が激しくなるので、そこまでアグレッシブに送るメリットがないと理解しています。輻輳ギリギリを狙うのが吉」 / Twitter
ReiOdairaさんはTwitterを使っています 「UDPの性能評価がよくわからん。UDPを生で(?)使ってる人にとってはレイテンシとパケット落ちない最大スループットが重要?パケット30%落ちるけどn Gbps出ます、みたいな領域でUDP使ってる人いるのか?でも最近はUDPの上に到達保障性のあるレイヤー重ねることも多いだろうからまた評価基準が変わるか?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「他のフローを追い出すとか邪悪なことをやりたいならともかく」 / Twitter

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「規格統一の話とは少し違うけれど、A.タネンバウム先生の「分散システム」としてのMS DCOM評を思い出した。 「DCOMを批判することは難しくない。しかし何千万人が毎日使っているという意味で、CORBAや他のいかなる分散システムも遠く及ばない」 https://t.co/JJcrU5Ooub」 / Twitter
深津 貴之 / THE GUILDさんのツイート: "「エンジニアが1ピクセルの精度を軽んじる」っていうけど… デザイナも「エンジニアがミリ秒単位でチューニングしたレスポンスを、デカイjpeg貼って台無しに」とかするので、やっぱ相互理解が大事だよなぁと思いました"
ねこさんはTwitterを使っています 「“システムの作り直しは失敗しやすく困難なので、しばしば悪い方針だと言われます。” そうなのかー…弊社内だとすごくよく見る https://t.co/KisyvzS6gG」 / Twitter
人気順検索のSolrはスケールのためにディスクを捨てた - クックパッド開発者ブログ
ねこさんはTwitterを使っています 「これ,たぶんRPC protocolが統一されてて,micro service architectureと下層の状態が高度に隠蔽されているからな気がする(あと依存系の更新が頻繁に起こってdefacto standardがちょこちょこ変わるのもある」 / Twitter
検索インフラを安全に切り替えた話 - クックパッド開発者ブログ

PC内のプロセス間通信に対する中間者攻撃--パスワードマネージャから情報流出も - CNET Japan
In-Process コンポーネント技術の限界 - NyaRuRuが地球にいたころ
情報学広場:情報処理学会電子図書館
Security Tips for IPC - The Chromium Projects
編集長の眼 - 若手が知らない昔の技術MQ、クラウドではホットだ:ITpro
MSMQと.NET Core
ウェブシステム内の待ち行列をMackerelで可視化してみる - ゆううきメモ
分散キューという名の苦しみ - Software Transactional Memo
分散システム処理モデルに関する動向について(MapReduceからBorgまで) - Yahoo! JAPAN Tech Blog
プロセス間通信 - Qiita
本当は恐ろしい分散システムの話
Oracle Cloud、マルチプラットフォーム対応の運用監視ツール「Oracle Cloud observability and management platform」発表。ログの一元管理から分析、分散トレーシングなど - Publickey
gRPC、Ballerina、Go言語を使用したマイクロサービス開発の実例
Microsoftの「マイクロサービス開発」を支援する分散アプリケーションランタイム「Dapr」がバージョン1.0に到達 - GIGAZINE
KOBA789さんはTwitterを使っています 「分散システムの議論って必ず「まずは分散させるな」「それでも分散させなきゃならない理由は何だ」という話から始まるべきと思ってて、全然キラキラしてないけど一番大事なのはそこだよなっていう」 / Twitter
ゼロコピーで瞬時にプロセス間の大規模データ通信を可能にする「Eclipse iceoryx」ミドルウェア、Eclipse Foundationが公開 - Publickey

同期 API

その他

そろそろvolatileについて一言いっておくか
ホイール欲しい ハンドル欲しい » Archive
5章 カーネルの同期処理 - iplab 2011
DSAS開発者の部屋:並列プログラミング(その3)
emcjp/ at master · herumi/emcjp · GitHub
Thread/Synchronization 補足資料
TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと
データ競合(data race)と競合状態(race condition)を混同しない - Qiita
スリープループによる消費電力とパフォーマンスの改善 | iSUS
RCUの全面書き直しも! 2.6.29は何が変わった?(1/2) - @IT
QCon New York 2017: システム内のイベントの順序付け
x86 に Persistent Memory 用の命令が追加予定 - 教育は参考ブログ
PCOMMIT 命令は廃止に - 教育は参考ブログ
状態機械を合成してデッドロックを検出できる Go 言語パッケージを作ってみました - チェシャ猫の消滅定理
CPUスケジューリング - 13DeadLock.pdf
SPIN モデル検査: 検証モデリング技法 - 中島 震 - Google ブックス
世界で闘うプログラミング力を鍛える150問: トップIT企業のプログラマになるための本 - Gayle Laakmann McDowell - Google ブックス
Rustの `Arc` を読む(4): アトミック変数とメモリ順序 - Qiita
x86 lock 特権 - Google 検索
okamo(aged 5 yrs.)さんはTwitterを使っています 「なんか忘れてしまったけどcoherentかconsistentかみたいな話について似たような議論を繰り広げた記憶がある」 / Twitter
アトミックな加減算命令 x86 - Google 検索

C

条件変数 Step-by-Step入門 - yohhoyの日記
条件変数とデッドロック・パズル(出題編) - yohhoyの日記
条件変数とデッドロック・パズル(解答編) - yohhoyの日記
atomic型と整数型のサイズ - yohhoyの日記
atomic変数間のatomicなコピー - yohhoyの日記
restrictキーワードへの対応状況 - yohhoyの日記
restrictキーワード - yohhoyの日記
続 restrictキーワード - yohhoyの日記
volatile教、あるいはvolatile狂 - yohhoyの日記
(抄訳)N4215 memory_order_consumeの利用と実装に向けて[§5-6のみ] - yohhoyの日記
(翻訳)C/C++のStrict Aliasingを理解する または - どうして#$@##@^%コンパイラは僕がしたい事をさせてくれないの! - yohhoyの日記

メモリモデル

x86

yohさんはTwitterを使っています: 「x86でもStoreLoadバリアが必要なケースあると思われ https://t.co/5a6rNpk6GX https://t.co/FtleEav5eP」 / Twitter
Memory Reordering Caught in the Act
キノコになりたい🍄さんはTwitterを使っています: 「x86-64のCPUはつよいメモリモデルを持つのでOoOでも結局volatileアクセス順序は保たれそう? シングルスレッドだけを見るならvolatileアクセスの逐次一貫性を保証するのに追加のバリアは要らないよねきっと・・・」 / Twitter
omni 鳥頭さんはTwitterを使っています: 「@yohhoy @onihusube9 あれ?この引用されている記事は異なるメモリに対するお話ではないんですか?」 / Twitter
キノコになりたい🍄さんはTwitterを使っています: 「@kariya_mitsuru @yohhoy 私としては、異なるvolatileオブジェクトのアクセス間でも結局x86ならmovで十分なのでは??? と考えていたので、この記事で見事に間違っていることが分かりました・・・」 / Twitter
omni 鳥頭さんはTwitterを使っています: 「@onihusube9 @yohhoy あ~、それはダメですね…」 / Twitter
yohさんはTwitterを使っています: 「@kariya_mitsuru @onihusube9 通常は異なるアドレス(変数)アクセス間のConsistencyが議論の対象ですね。ただ一部の超よわよわメモリモデルプロセッサだと、同一アドレスアクセスの順序すら入れ替わることがありえたり(Intel Itaniumのld命令とか)」 / Twitter
yohさんはTwitterを使っています 「x86メモリモデルのままmany core化とか無理やったんや」 / Twitter

blog

メモリモデル?なにそれ?おいしいの? - yohhoyの日記(別館)
メモリモデル (プログラミング) - Wikipedia
マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌
言語仕様とメモリモデル:柴田 芳樹 (Yoshiki Shibata):SSブログ
C#のメモリモデル、スレッド処理 - tixture55’s diary
プロセッサのメモリコンシステンシモデルについて - FPGA開発日記
メモリコンシステンシについて
std::atomic の挙動がメモリオーダーによりどう異なるか - uchan note
データ競合と happens-before 関係 - uchan note
C++ の release sequence の意味と役割 - uchan note
メモリコンシステンシモデルとリトマステストについて (1. メモリコンシステンシモデルについて) - FPGA開発日記
メモリコンシステンシモデルとリトマステストについて (2. リトマステストについて) - FPGA開発日記

Javaの並行処理を理解する(入門編) - Qiita
C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?) - Qiita
第 1 章 マルチスレッドの基礎 (マルチスレッドのプログラミング)
C++ マルチスレッド 入門
C# - マルチスレッド化でのC#メモリモデルの挙動|teratail
atomic::compare_exchange_weak - cpprefjp C++日本語リファレンス
yohさんはTwitterを使っています 「@uchan_nos https://t.co/pImzOF89xO TSOより強いsequential consistencyを実現するためにXCHG命令が使えますね。」 / Twitter
c++ - Why does a std::atomic store with sequential consistency use XCHG? - Stack Overflow
逐次一貫性 - Wikipedia
メモリコンシステンシモデル memory consistency model - ppt download
yohさんはTwitterを使っています 「C/C++メモリモデル上はbit-fieldの扱い超ややこしくて、隣接するbit-field間は並行アクセスすると全部ぶっ壊れる可能性があった気がする(やや過激な表現)」 / Twitter
yohさんはTwitterを使っています 「“Strong” and “weak” hardware memory models | Sutter’s Mill http://t.co/1HdfybmFRG SeqCstなメモリモデルでARMの新しいinstructionがいけてる(ようになる)みたいな記事があったな と」 / Twitter
“Strong” and “weak” hardware memory models – Sutter’s Mill
yohさんはTwitterを使っています 「AppleM1登場で ARM/x86 memory consistency modelのような超マイナー領域話題に日が当たってるのウケル」 / Twitter
yohさんはTwitterを使っています 「今はなきItanium(IA-64)のよわよわメモリモデル https://t.co/GPalabvCVD 同一スレッドから同一メモリ位置を2回loadする順序ですらひっくり返る(ことがある)位だったらしいので凄い」 / Twitter
[cpp-threads] Brief example ITANIUM Implementation for C/C++ Memory Model
SPARCのメモリオーダリング: 竹下世界塔の計算機よもやま話
yohさんはTwitterを使っています 「メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳 https://t.co/77SfsgR0Wi 続編!!」 / Twitter
メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳
yohさんはTwitterを使っています 「個人的にも "裏技" という印象が強いかなぁ... memory coherence制御ってマルチコアプロセッサの基礎的なレイヤのイメージがあるから そこをOS thread単位で変えられるとか聞くとびっくり(ハード寄り知識不足に起因した印象なのかもしれず)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「良い解説記事。他のメモリモデルをサポートすることは特に禁じられてないだろうし、裏技かどうかはともかく / https://t.co/b2PB8GfcRK」 / Twitter
Kazuho OkuさんはTwitterを使っています 「裏技かどうかは感覚の話であって記事の技術的正確性には関係ない話だけども。個人的には、より制限のきついtsoモードで動くのは仕様準拠である以上、フラグで制御できる省電力モード足すのと変わらん程度では感」 / Twitter
やまささんはTwitterを使っています 「うーん、TSOをいまだに積極的に採用してるのってx86以外だともうSPARCくらいしか残ってないのでは……」 / Twitter
中村 実さんはTwitterを使っています 「(´-`).oO(世の中のプロセッサが概ねTotal Store Orderingに収束しているのは、マルチプロセッサの祖であるIBM System/370がTSOを採用したからだよな。S/370がもっと弱いオーダーリングを採用したら今頃のトレンドもそうなっていたと思うよ)」 / Twitter

メモリバリア

メモリバリア

C++ Developer Guidance for Speculative Execution Side Channels | Microsoft Docs
/Qspectre | Microsoft Docs
NVD - CVE-2017-5753
Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Security Research & Defense
Mitigating speculative execution side channel hardware vulnerabilities – Security Research & Defense
SpectreBustersあるいはLinuxにおけるSpectre対策
本当にわかる Spectre と Meltdown
【図解】CPUの脆弱性[Spectre/Meltdown]と投機的実行の仕組み〜分岐予測とアウトオブオーダー実行〜 | SEの道標
[SpectrePrime] [MeltdownPrime] とCPUのサイドチャネル攻撃 〜Evict-Time/Prime-Probe/Flush-Reload〜 | SEの道標

Twitter

histric-1

Fadisさんのツイート: "小学生「おじいちゃん、今はCPUは書いた順に命令を実行なんてしないし、バリアも置かずにデータを覗き見したら何が読み出されるかわからないし、システムコールはint 0x80じゃないんだよ」 (つまりこういう事か"
СЮУ1228さんのツイート: "おじいちゃんが、というか、初学者が読んだ参考資料が古すぎるために知識がこういう風にずれるのありそうだなぁと思った"
Cocoaにおける同期 – ゴミ箱
ゆたかさん🐬さんのツイート: "最近のプロセッサはOut of orderな動きもするので、volatileだけでは不十分で、メモリバリアも必要なケースもあります。特に、DMA転送する時とか。 https://t.co/QfytuYEgKg"
各種プロセッサのメモリオーダリングについて 竹下世界塔の計算機よもやま話/ウェブリブログ
中村 実さんのツイート: "ストア命令の順序はほとんどCPUで保証しますよ。x86でもSPARCでも。保証しないのはAlphaとIA-64ぐらいです。問題になるのはロード命令とストア命令の順序、ロード命令同士の順序ですな。… "
whymb.dvi
c - gcc memory barrier __sync_synchronize vs asm volatile("": : :"memory") - Stack Overflow
まさみさんは語りたいさんのツイート: "PaulといえばメモリバリアとRCUというイメージがある。RCUの実装にはメモリバリアが避けられないから。"
日記 (2015 年 8 月下旬)
松本 亮介 / まつもとりーさんのツイート: "マルチスレッドなコード、コンパイラレベルでメモリバリアしてもCPUレベルでストアとロードの並べ替えがそれなりにおきて、それに起因して全体としての問題がたまに起きるし、それに気づくのに時間使いすぎるし人類には早過ぎるのだが僕は負けない。つまりmfenceしてやれば良いのだけど大変である。"
社会人でもOSを作りたいさんはTwitterを使っています: 「movとxchgの間のリオーダってどんな感じかな。」 / Twitter
赤提灯さんはTwitterを使っています: 「@uchan_nos メモリオーダリングの話でしょうか?もしそうなら、SDMのxchg命令とVol. 3Aの「8.2 MEMORY ORDERING」見る限りは、xchgの前のmovとxchgのオーダが入れ替わる可能性もあるので、順序保証のためにmfenceは必要かな。xchgだから特別というわけでもなさそうです。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin ありがとうございます。「8.2.3.1 Assumptions, Terminology, and Notation」に登場する「write」と「store」って何が違うんでしょう。もし同じ用語だとすれば,xchgは暗黙的にlockが付与されたread-modify-writeとして実装されているので,他のread/writeと入れ替わることはないような。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin 8.2.2にあるように,read同士,write同士はリオーダされないはずなので,read-modify-writeとして実装されているxchgは他のread/write命令とリオーダされないはず,という推論です。」 / Twitter
tarosukeさんはTwitterを使っています: 「@uchan_nos スピンロックで使うメモリをA、レジスタをB、Aの初期値を0として... 1. 1をBに書く 2. BをAと交換 3. Bが0でなければ2に戻る(x86ならwaitしておくとベター) ...ロック内の処理... 4, ロックを抜けるときには0をAに書く ...だったかな?x86では交換がアトミックなのがミソ。」 / Twitter
tarosukeさんはTwitterを使っています: 「@uchan_nos waitでなくてpauseだったか。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@tarosukenet めっちゃ参考になります。pause以外はおっしゃる通りの実装をしていました。pauseしてみたらパフォーマンスが上がりました。とあるベンチマークが1.7秒→0.8秒くらいに。」 / Twitter
赤提灯さんはTwitterを使っています: 「@uchan_nos レス遅くなりました。writeとstoreは変わらないと思います。理由は、SDM 3A. の8.2 では「processor issues reads (loads) and writes (stores)」と書かれているため、同じ意味とみなしても良いと思います。」 / Twitter
赤提灯さんはTwitterを使っています: 「@uchan_nos レスありがとう!リオーダされないのは「個々の」プロセッサでのRead、Writeが範疇だと解釈しております。8.2.2のFigure 8.1に関する説明では・・・「but because of bus arbitration and other memory access mechanisms」により、複数プロセッサによるWrite順は毎回同じにならないかな、と思います。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin 別々のプロセッサのwriteが同じ順にならないのは全然驚かないですね。それはリオーダとは呼ばないですよね。」 / Twitter
yoh2さんはTwitterを使っています 「「このマルチスレッドプログラム、シングルコアCPUでないと動かないんだ」の経験があります。 複数スレッドから参照される変数には volatile 付けてるし、読み書きがアトミックに済むことも確認済なのに何故……と。コンパイラが順序を入れ替えなくてもCPUが入れ替えることを知らなかったあの頃……」 / Twitter
yoh2さんはTwitterを使っています 「@yuki_shemale あるコアで行われたメモリ読み書きの順序が別のコアからは違った順序で行われたように見えるというものです。 例えば初期値0でx=1とy=1をこの順に行うとx=0かつy=1になる瞬間はないはずですが、他コアからはそう見えることもあるという。 ↓古いですが実験用プログラムです。 https://t.co/BWujQwqMit」 / Twitter
ロード/ストア命令の追い越し例 | Yoh2の日記 | スラド

Makoto Kato ︎︎さんはTwitterを使っています 「memory orderingをエンディアンと勘違いする人いるんだ。out-of-orderとかmuti-threadとかをまず理解すべきだよ」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「C/C++のコードはコンパイラとかCPUが実行順序を入れ替えるなんて想像してないんだろうな、そういう人」 / Twitter
とみながたけひろさんはTwitterを使っています 「@kazuho (私はまだ使ったことがないんですが)LDAR/STAR命令などを使うとバリア命令が内包されるため、ほぼx86的なメモリオーダリングになるように見えるんですよね https://t.co/JFFvEvHc0S」 / Twitter
yohさんはTwitterを使っています 「ARMのLDAR/STLRって 最近のseq_cst memory orderingをそのままHW実装(保証)した感じで x86のTSOよりも"便利"になってたきがしないでもない」 / Twitter
☕sat📷さんはTwitterを使っています 「@try_ymk アセンブリ言語で特殊なヒントを与えます。素直に命令をA,B,Cと並べるだけでは実行順序がハードによって入れ替えられたりするので。「やっぱりアセンブリ言語使ってるじゃん!」と言われたらそうなんですが、素直に書いたとおりには動かないということで」 / Twitter
☕sat📷さんはTwitterを使っています 「@try_ymk それがどこから来ているかというとCPUが実際に実行しているuopという命令の粒度がユーザに見えるアセンブリ言語レベルの命令より小さいから、だったりします。我々はuopの挙動に対するヒントは与えられますが、直接実行はさせられません」 / Twitter

メモリバリアを理解するために必要な3つのこと - yamasaのネタ帳
yamasaのネタ帳
Multithreading - x86 LFENCE、SFENCE、MFENCEの指示はいつ必要ですか? Assembly | サンプルコード [日本語]
Assembly - x86 / x86_64プロセッサでLFENCE命令を使用するのは意味がありますか? X86-64 | サンプルコード [日本語]
全 x86 プロセッサにあるわけではない命令 (July 23, 2006)
メモリオーダリング - Wikipedia
アウト・オブ・オーダー実行 - Wikipedia
メモリバリア - Wikipedia
メモリーバリア ‐ 通信用語の基礎知識
メモリバリア - C言語入門
ロード/ストア命令の追い越し例 | Yoh2の日記 | スラッシュドット・ジャパン
DSAS開発者の部屋:Go のライトバリアに関するバグを修正した話
スレッド同期についてのエトセトラ
スレッド同期のエトセトラ 第2回
スレッド同期のエトセトラ 第3回
Load-Link/Store-Conditionalを見直した
無視できないフラグメンテーション問題への解答は?(2/2) - @IT
マルチスレッドとメモリ同期 - primitive: blog
次期C++に導入されるメモリバリアについて解説してみる - yamasaのネタ帳
C++0xのメモリバリアをより深く解説してみる - yamasaのネタ帳
「強いメモリモデル」と「弱いメモリモデル」 - yamasaのネタ帳
x86よくできてる点 - w_o’s diary
linux/memory-barriers.txt at master · torvalds/linux

排他制御

データの同時更新を防ぐための排他制御 (1/3):CodeZine(コードジン)
排他制御
排他制御のあれこれ - Qiita
排他制御(楽観ロック・悲観ロック)の基礎  - Qiita
データベース利用時に自前で排他制御が必要か - プログラミングメモ
排他制御とは パソコン初心者講座
排他制御
ユーザの設定による排他制御の変更
[SQL] 11. トランザクション 2 | TECHSCORE(テックスコア)
一貫性/独立性を確保する「排他制御」を理解する (1/2):「データベーススペシャリスト試験」戦略的学習のススメ(23) - @IT
何故RISC-Vのアトミック操作命令はLR/SCでCASではないのか - FPGA開発日記
何故RISC-Vのアトミック操作命令はLR/SCでCASではないのか (2. LR/SCの条件) - FPGA開発日記
🎸 ライブロック 🎸について - ねぇうしくんうしくん
PFLab | Graduate School of Information Science and Technology, The University of Tokyo
講義 | PFLab
オペレーティングシステム - OS_04.pdf
オペレーティングシステム - OS_05.pdf

Latch

Concurrency Utilitiesを使った並列処理・マルチスレッドのおさらい - argius note
FutureとPromise | Scala研修テキスト
CountDownLatchを使って、複数スレッド間の同期を取る - Qiita
[Android] 何人かの非同期処理を待ち合わせる | アドカレ2013 : SP #23 | DevelopersIO
Java CountDownLatchは、ラッチをカウントダウンするthread.run()が例外を受け取ると、タイムアウト値を待ちます。 - コードログ
CountDownLatch (Java Platform SE 8 )
7つのサンプルプログラムで学ぶRxJavaの挙動 - クックパッド開発者ブログ
CountDownLatchを改造して、別スレッドの複数並列処理の結果に応じて処理する - 気まぐれな備忘録(仮)
latch, barrier同期プリミティブ - yohhoyの日記
タイムアウト Javaマルチスレッドでカウントダウンラッチはどのように使用されますか? - 初心者入門サンプル

ロック

Twitter

Intel_AMD

まさみさん⋈語りたいさんはTwitterを使っています 「Intel SDMとAMD APMで超基本的な内容が矛盾してることが分かった。Intel SDMではLOCK-REPプレフィックスの組み合わせは許されていないのに、AMD APMでは許されている。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「Linuxで使っているinstruction decoderはIntel SDMに基づいて作っていたので、Legacy prefixは4バイト(4種類)まで、という理解で作っていたんだよね。ところがAMD APMは5バイト(5種類)までOKとか書いていて草」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「最大4バイトまでなんやな、ということでinsn_value_tをu32で定義しちゃってるんだよ。どうしようかこれ。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「違うわ。これはAMD APMの記述ミスや。REPとLOCKは使える命令が限られていて、お互いに違う命令をサポートしているから、どうやってもこの2つが同じ命令に対してかけられることがない。後半の説明にそう書いている。デコーダの説明がおかしい。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@diizuka 詳しくは下記メールを参照のこと・・・。 https://t.co/j5Nw5VcHbH LOCK-REPプレフィックス付けるとintelでは何が起きるのだろうか?(普通に動きそうだけど)」 / Twitter
Re: [PATCH v2 1/3] x86/uprobes: Fix not using prefixes.nbytes for loop over prefixes.bytes - Masami Hiramatsu
まさみさん⋈語りたいさんはTwitterを使っています 「@diizuka あっ、わかったこれはひどい」 / Twitter

lock poisoning

ドッグさんはTwitterを使っています 「Rust の標準ライブラリ(Mutex や RwLock)は lock poisoning の仕組みを持ってるけど,panic の伝搬にはコストがかかるので,それを切り離して必要なときだけ使うようにしたいのか.そもそも lock poisoning とは?という解説もある | 'Launching the Lock Poisoning Survey' https://t.co/FAZHa0Acvc」 / Twitter
Launching the Lock Poisoning Survey | Rust Blog
monochromeさんはTwitterを使っています 「Rust、子スレッドのpanicを親スレッドに伝播させる方法はあるのだろうか」 / Twitter
monochromeさんはTwitterを使っています 「子スレッドがバグると帰ってこなくなってしまうのが辛い」 / Twitter

Distributed RW lock

ytakanoさんはTwitterを使っています 「Distributed RW lock。こんな単純な方法でスケールするの? https://t.co/crubUwVxmR」 / Twitter
1024cores - Distributed Reader-Writer Mutex
ytakanoさんはTwitterを使っています 「これなら自分でも実装は出来そう」 / Twitter

OS作れないマン WalB担当さんのツイート: "タスクの概念がないしカーネル空間でのロックなのでスピンロックで実装していたんが、そういえばハンドラの中からLock呼び出すとデッドロックするよなあ…というかデッドロックが発生したので、TryLockを実装した。"
Community Blog - ファイルロックと新OFDロック
Kazuho Okuさんのツイート: "RDBにおいてはデッドロックはリトライで解決するものという前提が抜けてる? / デッドロックを減らすパフォーマンスチューニング論としては面白い / “デッドロックおじさん戦記 - Mercari Engineering Blog” https://t.co/Aqdjx85hdA"
デッドロックおじさん戦記 - Mercari Engineering Blog
Kazuho Okuさんのツイート: "実際問題としてデッドロックの発生率があがると過負荷になってユーザにエラー返すことになるのはそのとおりだろうけど、その説明がないと、リトライしてないの???ってなる"
ファッション自作OSマンさんのツイート: "割り込みハンドラから書き込んで,メインループで読みだすようなキューを競合から保護するには何使えばいいんだ?割り込みを禁止するのは簡単だけどマルチコア環境だと意味ないしな."
ファッション自作OSマンさんのツイート: "ローカルCPUについてはcliで割り込み禁止しつつ,スピンロックで保護するのがお手軽な感じかな."
satさんのツイート: "正解。linuxでいうところのspinlock_irq{,save}ですね… "
ファッション自作OSマンさんのツイート: "LinuxはそういうAPIがあるんですね.saveって何をsaveする意味なんですか?… "
PEN🍄海猫さんのツイート: "lock cmpxchg でぐるぐる?… "
ファッション自作OSマンさんのツイート: "しかし、flagsを保存する関数のサフィックスがirqsaveなのはちょっと違う気がする。歴史的な命名だとは思うけど。masksaveとか。"
Man page of SEM_OVERVIEW
SODA Noriyukiさんのツイート: "先月、自前のロック作ったばかりなんだよなあ(といってもmutexと条件変数で作った)。 なんかLinuxのmutex/rwlock/POSIX semaphoreを生で使うと、公平性に難が出る(数~数十秒、特定のスレッドがロックを独占する)例に遭遇したんだよねえ。SolarisやNetBSDだとそこまで不公平にはならないんだけど。"
SODA Noriyukiさんのツイート: "もちろん、元々の主旨(ふつうはシステムの提供するロックを使え)には全く同感。 最適化についても、速度に問題が出て、プロファイルでボトルネックを特定してからでいいよね。とはいえ、O(N^2)以上のコストがかかるアルゴリズムとかは使わないように最初から気をつけて書いたほうがいいけど。"
まさみさんは語りたいさんのツイート: "libc由来のゆらぎなのかなあ?それともスケジューラがおかしいか。いずれにしてもmutex使ってるなら問題ないのでは。自前のspinlock(lock xchg)でなければ・・・・。… "
SODA Noriyukiさんのツイート: "自前実装カーネルとかならともかく、いつCPUを失うか分からないuserlandで自前spinlockとかダメダメですよねえ。 原因がどこか全然調べてないです。1000行くらいの再現プログラム(もっと削れるけど、対処を優先してたので削ってない)はあるから、どこかに晒したほうがいいのかしら。… https://t.co/ydUpxMjhaJ"
中村 実さんのツイート: "POSIX mutexはもともとfairnessを無視する機構ですが、POSIX semaphoreにはfairnessに関する仕様上の規定があるような。 https://t.co/7MPUSV90Tu 私が昔調べた範囲ではLinuxのPOSIX semaphoreも守っていたはずです。… https://t.co/yhbdmI3Oom"
NAKAMURA Minoru's Diary (2013年8月)
中村 実さんのツイート: "と思ったら、さらに昔の日記ではLinux上のPOSIX semaphoreがunfairな挙動をしていると自分でも書いていた。 https://t.co/RXeSd64RFm… "
NAKAMURA Minoru's Diary (2007年9月)
NAKAMURA Minoru's Diary (2004年4月)
まさみさんは語りたいさんのツイート: "Linuxカーネル内のロックの選び方はかなり簡単で、割り込み延長の場合はspinlock、それ以外はmutexが基本。"
まさみさんは語りたいさんのツイート: "基本以外のロックについては、それぞれの動作が理解できていないなら使わないで! seq_lock/rcu/rwlockとかね。"
まさみさんは語りたいさんのツイート: "ロックより寧ろメモリバリアをどの場面でどう使うかとかの方が難しい。まあ、基本的には並列性が気になったらatomicを使うこと。"
FreeBSDのread-mostlyロックのソースコードを読んでみた - Qiita
このコード、オシャカルトっ!さんのツイート: "φ(..)メモメモ ロックの初期化時にsleep可能か設定して、設定に応じて内部でのロックの取り方が変わる仕組みなんだ。 FreeBSDのread-mostlyロックのソースコードを読んでみた on @Qiita https://t.co/25iu1dOkqS"
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「公平なロックわかった。賢いな。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「あとで実装してみよ。実用的にはticket lockingで良い気もするが。」 / Twitter
mumumuさんはTwitterを使っています 「The lock holder and the lock waiter pre-emption problems:nip them in the bud using informed spinlocks (I-Spinlock) [EuroSys '17] VMM環境でLockホルダーが動くvCPUのプリエンプトによるマルチスレッドAppの性能悪化を防ぐため,逆に残りのTime sliceが不十分なvCPUにLockをとらせない.」 / Twitter
mumumuさんはTwitterを使っています 「Preemptable ticket spinlocks: improving consolidated performance in the cloud [VEE '13] Ticket LockがVMM上で致命的に相性が悪い(Lock Waiter Preemptionが発生)ことを指摘し,対策としてTicket Lockに(Fairnesssを考慮して)Ticket値に応じたTimeoutをもたせた. https://t.co/uxiEm5M5Dj」 / Twitter
vee13-pmtlock-paper.pdf

スピンロック ‐ 通信用語の基礎知識
ロック(ミューテックス)の再入可能性:柴田 芳樹 (Yoshiki Shibata):So-netブログ
_InterlockedCompareExchange Intrinsic Functions
minix smpのロック実装 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Community Blog - ファイルロックと新OFDロック
失敗ロック例いくつか - 兼雑記
並列プログラミングにおけるロックの効率的な使用 | iSUS
www.nminoru.jp/~nminoru/data/b2con2006_nminoru.pdf
NAKAMURA Minoru's Diary (2009年7月)
Linuxカーネル4.2リリース | OSDN Magazine
分散ロックという名の過ち - Software Transactional Memo
JavaScriptでデッドロックを作ってみた - Qiita
Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する (2) with bpftrace - hibomaの日記
Linux Kernel: カーネルモードで CPU 掴んでるタスクのバックトレースをとりたい - hibomaの日記
Apple M1の参照カウントは本当に速いのか - yamasaのネタ帳

ロックフリー

C言語で苦しむロックフリー入門(仮
Lock-freeとWait-freeアルゴリズム - Wikipedia
64-bit Lock-free queue implementation | Syoyo Fujita's Blog
Xbox 360 と Microsoft Windows でのロックレス プログラミングの考慮事項
Fadisさんのツイート: "メニーコアを活かせるプログラミング、極めて有用なロックフリーデータ構造やそれに用いられる手法が特許おさえられてる事が多くて、分かってても残念な実装にする羽目になる事が稀によくある"
冬のLock free祭り safe
Compare-and-swap - Wikipedia
Lock-Free Algorithm, CriticalSection, IHostCrst - NyaRuRuが地球にいたころ
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ロックフリーアルゴリズムで使う不可分操作 Compare-And-Swap (CAS) をデッドロック発見器でモデル化してミューテックスを作ってみた.2つのスレッドが同時にクリティカルセクションに入らないことが(よく見ると)わかる.右の方を見ると,スレッド Q が果敢に挑戦している.涙ぐましい…(T_T) https://t.co/gpIe6kCe5M」 / Twitter
FadisさんはTwitterを使っています 「ロックフリーなデータ構造を実装する上で難しいのは実装すること自体じゃなくて、特許を回避する事だと思う」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Iock freeやobstruction freeは用語の付け方が変な気がするな。系全体のライブロックフリーとデッドロックフリーならわかる。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「wait freeも、プロセスがライブロックしないか、あるいは弱い公平性が担保されたlock freeアルゴリズムだけど、waitが全く無いわけじゃない。名付け方が謎すぎる。」 / Twitter
꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「ロックフリーはハザードポインタが必要な時点で負けてる感があるな」 / Twitter
mumumuさんはTwitterを使っています 「SPECK: a Kernel for Scalable Predictability [RTAS '15] マルチコア環境でのOSのPredictabilityを向上させるために,Kernel ObjectをLock-lessなデータ構造に置き換えた話.Radix Trieとか本で見たデータ構造がでてきて感動したが,完全に理解できたかというと微妙.自前のComposite OSで実装してる」 / Twitter
An introduction to lockless algorithms [LWN.net]

楽観的並行制御

ogiwaraさんはTwitterを使っています 「ここ10年間でトランザクションのスループットが100倍になってるんですね」 / Twitter
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@designpatterngf 何が効いているんですか?」 / Twitter
ogiwaraさんはTwitterを使っています 「@zacky1972 元々、ロックを一元管理するデータ構造(Hash tableなど)が当たり前のように使われててかなりキャッシュのパフォーマンスが良くなかったんですよね 今はそういったデータ構造を使う事はタブーとなっています」 / Twitter
ogiwaraさんはTwitterを使っています 「@zacky1972 楽観的並行制御、という方法によってreadする時にはlockを取らないようにする、というのが主流になったのも一因ですね」 / Twitter

ベクタークロック

ベクタークロック - Google 検索
ベクトルタイムスタンプ - Google 検索
ベクタークロックと競合検査 - uchan note
データ競合(data race)と競合状態(race condition)を混同しない - Qiita
Efficient on-the-fly data race detection in multithreaded C++ programs - IEEE Conference Publication
FastTrack: efficient and precise dynamic race detection: Communications of the ACM: Vol 53, No 11

futex

Man page of FUTEX
Man page of FUTEX
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「Linux では条件変数は futex で実現されている.面白いことに cond_wait は mutex_unlock; futex_wait; mutex_lock と実装されており unlock と wait は不可分ではないのにデッドロックしない.共有変数版デッドロック発見器による futex および条件変数のモデル化と分析例. https://t.co/Mz7DN4NzOf」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「デッドロックしない秘密(?)は futex が参照する共有変数にある.モデルはここに置いた. https://t.co/ytoAPMjbtJ」 / Twitter
m_prod_cons_futex.ml
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「不可分じゃないとなぜいけないのかという例はこっち. https://t.co/UIpAxNVXWz」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「生産者・消費者問題.セミナーで作るデッドロック発見器を使った例.条件変数の wait はミューテックスのアンロックと待ちに入る動作が不可分とされているけど,試みにこれを分離した条件変数を作って入れ替えてみるとデッドロックする.分離した2つの操作の間でもう1つのスレッドが動けるため. https://t.co/rMd1D3YPuC」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「送受信するデータ量がバランスしていなくて,最終的にデッドロックする例. https://t.co/GSeTKQagV7」 / Twitter

Ticket lock

Ticket spinlockメモ φ(.. )メモシテオコウ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
Ticket lock - Wikipedia
Microsoft PowerPoint - 3Sync [äº™æ‘łã…¢ã…¼ã…›]

TSX

TSX

とよしまさんはTwitterを使っています 「CPUのほうのTMはその後どうなったんだろ。出す時はハード屋の出す数字で盛り上がってたけど、その後コア増えまくりなのにソフト屋さんから評価とか出てないような。」 / Twitter
とよしまさんはTwitterを使っています 「STMはそれなりに流行ってるのになぁ。 やっぱCPUのTMは適用しずらいからかな。プログラミングモデル変えて書き換え変えないといけない上に大きな塊で書き換えないと効果薄いし。自分なら大きなライブラリ内で対応・非対応コードをメンテとかやりたくない。しかもスレッドに関わる部分でとか。」 / Twitter
R. ShioyaさんはTwitterを使っています 「@toyoshim TM のそもそものメリットの1つが雑に書いても結構性能が出る(共有変数の細かいロック制御がいらない)だと思うのですが,マルチスレッドのプログラミングをしてる人は大概玄人でそう言う意味での需要があまりないという点はあるのかなと思っています(昔はまじさんに言われたことでもあるのですが)」 / Twitter
R. ShioyaさんはTwitterを使っています 「@toyoshim あとは,「現状の」ハードウェアの TM 実装が Intel/IBM ともに結構制限がきつくて,一定以上の長さのトランザクションは扱えないとか,デバッグ機能が貧弱すぎて原因がさぐれないというのも大きい気がします.というか,共同研究先で学生さんが今デバッグ機能がまともになくて泣いています…」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@r_shioya @toyoshim ホントに素人がコンテンション気にせず書くとロールバックしまくりで遅くなるわけですしねえ。STXは期待してたのにメルトダウン高速化のためにしか使われてないぞっていう悲しさ。。趣味とCTFで遊んだことありますけど、デバッグしんどいですね。。SDE使えばマシなんだったか」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim たしかに本当に何も知らない人が気軽に書いて使い物になるわけでもないですしね… メルトダウンとかに使われているのは,最初みたときは,ただでさえあんまり使われてないのにこれはサポート切られる流れになるんじゃと暗い気分がありました…」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim 簡単にできる系だと広義にはスクリプト言語一般なんかも入るんですかね.ただ,TX の場合はマルチスレッドのプログラミング自体がそもそも一般にはあんま行われないというのがまず課題?な気もします.」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim はまじさんが書かれている glibc のって lock elision を使うやつですよね.これに関しては適切にロックで書かれているマルチスレッドのプログラムであればあんまり副作用なく機械的に置き換えられて,はまれば速くなって良いはずとは思うんですけどそんなに使われていないのですかね.」 / Twitter
shinichiro hamajiさんはTwitterを使っています 「@r_shioya @toyoshim 正直全てを忘れたのですが、 HLE vs RTM という意味で lock elision と言われてるのであれば、 RTM の方を使ってるはず?当時流通具合を眺めてた時のスライドが出てきました https://t.co/q4dEM0myBI 最後のページに僕の記憶にあった「簡単なケースでは速くなってた」、がありますね」 / Twitter
TSX - 使いかたいろいろ - glibc の pthread_mutex_t
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim てっきり HLE の方だと思っていたのですが,RTM でソフトウェア的に実装するものだったのですね. 最後のページのものについては「クリティカルセクション内でN個のうちM個のカウンタをランダムに選んで更新…」とかだともうちょっといい感じになってたかもと言う気はするのですが,なんともですね.」 / Twitter
R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim なんだかんだシングルスレッド性能がまだ上がり続けているので今のところは良いのでしょうけど,いずれそれが止まってしまった時にはみんなでマルチスレッドやってツケを払うような不幸な時代になってしまう事もあるんだろうかなと言う気もしました.」 / Twitter

Intel、TSX対応で約6倍に性能が向上した「Xeon E7 v3」 - PC Watch
北森瓦版 - “Haswell”のTSX命令にエラッタが発見され、無効化される処置がとられる
北森瓦版 - TSX命令のエラッタは“Broadwell”世代で修正される模様
20140906
20150912
20150509
20140823
Haswell世代のCPUにエラッタが見つかる、Haswellの新機能「TSX」を無効化へ | スラド IT
トランザクションメモリのサポートが明らかとなったIntelのHaswell (4) トランザクションメモリをサポートするハードウェアを推測 | マイナビニュース
トランザクションメモリのサポートが明らかとなったIntelのHaswell (1) マルチプロセサにおけるロックの必要性 | マイナビニュース
Intelの次世代Core「Haswell」のトランザクションメモリを読み解く(前編) | マイナビニュース
Hiromichi Itouさんのツイート: "うーむ セキュリティ最優先な顧客にはTSXを無効化する手段を提供しないとダメかもなー あとTSX登場時には、すでに指摘があったのね https://t.co/4dpFUKjZq1"
TSX improves timing attacks against KASLR | Bromium Labs
scivey/xact: multi-way atomic compare-and-swap with x64/TSX
Restricted Transactional Memory の概要
Intel TSX について x86opti
TSX - TSX RTM
Haswell のトランザクション同期 | iSUS
intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap12.pdf
ASCII.jp:Haswellで導入された新機能「TSX」とは? IDF 2012より (2/4)
Haswell の TSX 機能にエラッタが発見される - 教育は参考ブログ
yohさんはTwitterを使っています 「Intel TSX-NI https://t.co/SRl6EEGujc まじで死んでた SDMからも消えたのね」 / Twitter
Transactional Synchronization Extensions - Wikipedia
TSX は cmpxchg のかわりに使えるか? - Fixstars Tech Blog /proc/cpuinfo

Wikipedia

モニタ (同期) - Wikipedia
ミューテックス - Wikipedia
クリティカルセクション - Wikipedia
排他制御 - Wikipedia
同期 (計算機科学) - Wikipedia
競合状態 - Wikipedia
ビジーウェイト - Wikipedia
テスト・アンド・セット - Wikipedia
スピンロック - Wikipedia
イベント (プログラミング) - Wikipedia
不可分操作 - Wikipedia
セマフォ - Wikipedia

Twitter

@uchan_nos

OS作れないマンさんのツイート: "Linux Weekly News の "What is RCU, Fundamentally?" で勉強しよう https://t.co/Ern7KS6QJd"
OS作れないマンさんのツイート: "Sleepable RCUとかあるのか。奥が深い。"
OS作れないマンさんのツイート: "CONFIG_PREEMPTが定義されていない場合、カーネルコード実行中は明示的にSleepしない限りタスクスイッチが起こらないからsynchronize_rcuがうまく動くのか。"
OS自作したい。技術書典6・う38さんのツイート: "Goならわかるシステムプログラミングの話。同期と非同期、blockingとnonblockingは直行する概念?selectは確かに通知が来ない間はブロックするからブロッキングなのは納得するとして、非同期なのか?本文での「非同期」の説明「入出力準備ができたら通知をもらう」に従うと、まあそうなのかな…… https://t.co/oK4WnKSdXK"
OS自作したい。技術書典6・う38さんのツイート: "多分この違和感は「非同期」の認識の違いに起因するんだな。非同期って言うと、ある処理をOSに依頼しつつ、自分は別の処理をする、という感じがする。selectは、OSに頼んだ複数の仕事の完了を待つ感じなので、仕事が複数になっただけで、あくまで同期処理な気がするんだ。"
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uchan_nos 前提としては,そのatomic変数を共有メモリ上で共有していて,かつatomic性が保証されている必要があります。なのでたとえば,共有メモリでのatomic性を一般には保証しない分散処理をしていると前提が容易に崩れます。」 / Twitter
yohさんはTwitterを使っています 「@uchan_nos FYI: https://t.co/ocoKLlkO3f "The execution of a program contains a _data race_ if it contains two potentially concurrent conflicting actions, at least one of which is not atomic, [...]" でした」 / Twitter
[basic]

スピンロック

Livaさんのツイート: "アトミック命令のコストによって、スピンロックの性能は変わるなぁ。もうちょっとちゃんと検証しないと #liva_notebook"
Livaさんのツイート: "gcc builtinで書けば、__sync_fetch_and_addが使えるならそれを使うのが一番はやくて、__sync_lock_test_and_setがそこそで、__sync_bool_compare_and_swapはとても遅い #liva_notebook"
Livaさんのツイート: "たぶんアーキテクチャ依存だから、silvermontがそう、というだけの話なのだけども #liva_notebook"
Livaさんのツイート: "silvermont(但し1チップの中に64コア詰まってる)"
Livaさんのツイート: "O2つけただけでがクラッシュする問題、結局アラインメントと適切なvolatileが不足してたオチっぽい #liva_notebook"
Livaさんのツイート: "スピンロックを実装する時は、いろんなループにasm volatile("":::"memory");を挟んで最適化を抑制しないといけない。何時も忘れる。 #liva_notebook"
Livaさんのツイート: "ほんの些細な排他制御のミスがあるお陰で、12コアでは動いても256コアでは動かない問題アゲイン"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「一昔前に、Linuxカーネル開発者「スピンロック使うな」、DB屋「性能に必要」という論争があった記憶…スケジューラ周りの合理的な挙動変更なのにDB側スピンロックだけ性能低下、みたいなコンテキストだったかな。 https://t.co/PGVny5T4Ia」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「スピンロックしてる間にスケジューラによってプリエンプションされるケースというのは普通に起こるのでそういう場合にMCSキュー内での追い越しを許容してスループットを高めるスケーラブルなスピンロックCST-Lockというものがあってですねっていう話を期待されている?」 / Twitter
reroさんはTwitterを使っています: 「@kumagi 普通のスピンロックだとNUMAのとき不平等になりそうとか、最悪時間が予測できんとかデメリットもありそう。割り込みとポーリングとかだと違う話になるかもしれんけど。」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian NUMA向けに改良されたスピンロックも結構研究されてます。Lock Cohortingあたりでググると良い入り口になるかと。」 / Twitter
reroさんはTwitterを使っています: 「@kumagi 同一NUMAノード内で待ち行列を作って、待ち行列先頭がグローバルロックを取る。待ち行列が尽きるまでグローバルロックを離さないことで、NUMAノード間での頻繁なロック切り替えを抑制して整流するみたいな感じかな?」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian そんな感じです。MCSでRW-Lockとか亜種がたくさんあります。」 / Twitter
reroさんはTwitterを使っています: 「@kumagi NUMAノードが3個以上の場合はグローバルロックでも待ち行列を作るのかな?って書いてて思ったけど、これトークンリングっぽいので障害とかに弱そう。」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian 一般にNUMAでもマルチコアでもどれかのコアやソケットが壊れる系の障害は潔く諦めています。」 / Twitter
reroさんはTwitterを使っています: 「@kumagi なるほど、そうなのか…」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi スケジュールされるんだったらspinlockじゃないような気がする(実装をミスっている?)んですが、ユーザ空間で実装する人はそういうのも含めてspinlockって呼んじゃうんでしょうか?個人的にはSCHED_FIFOみたいな完全オレオレ制御RTタスクだけが使うものかと思っていましたが・・・。」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@mhiramat 何をスピンロックと呼ぶかに流派があるっていう話ですかね。インメモリDBの文脈でユーザ空間でスピンロックする人などは割と普通にそういう実装使いますよ。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi おお、そうなんですね!ユーザ空間でspinlockは実装できるけど、個人的には普通のアプリでは全く無意味だと思っていました。(意味があればlibcなどで定義してそうとか)」 / Twitter
立木のポーズ界のカリスマさんはTwitterを使っています: 「@mhiramat 大学の授業でpthread_mutexと自作スピンロックで簡単なベンチマークをやったような覚えがあります。速度のためならスピンロックという選択肢は割とよく有ります、1桁ぐらいは性能が違ったはず。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi クリティカルセクションのサイズの問題はありますが、システムコールするとしないとでは大違いですからね。ただ、不平等性などが発生する可能性はユーザが受け入れるか対策すべきという話ですかね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@mhiramat 探してみると、この辺の話ですね。 https://t.co/4i4ZQ7Ivgq」 / Twitter
怒りのLinus――メンテナにかんしゃく玉爆発(1/2) - @IT

排他制御

ロックフリーのkumagiさんのツイート: "そうなんです、排他処理の話をするときにすぐに「ロックの実装にはTestAndSetやCompareAndSwapみたいなread-modify-write命令が絶対必要」って誤った知識をばらまく不勉強な人が大学教授にも散見されるのでこの季節は警戒が必要です。"
ロックフリーのkumagiさんのツイート: "もちろんxchg命令を使えっていう意味でもないですよ。当然ですよ。"
satさんのツイート: "排他制御 == ロック と思ってる人は感覚的にかなり多いですね… "
ロックフリーのkumagiさんのツイート: "セマフォさんが悲しそうにこちらを見ている…… "
Kazuho Okuさんのツイート: "ケースバイケースなんじゃないかな。例えば消費期限が短い場合に家で消費し切れないようなケースなら、奥のやつを取る方が資源の有効活用になるはず… "
まさみさんは語りたいさんのツイート: "これ、あまり良い習慣とは言えないよね。… "
satさんのツイート: "compare and swap: スーパーで自分の手に取った牛乳を陳列棚の奥のほうにある賞味期限が長いものと交換してカゴに入れること"
まさみさんは語りたいさんのツイート: "極端に消費期限が短い場合はそうですね。牛乳とかは微妙かな。うちでは消費速度が一定していない気がする。… "

モデル検査

histric

Kazunori Iriya さんはTwitterを使っています: 「でけた。セミナーで学んだイベント同期による相互作用のモデルの説明に出てきた並行合成の例を自分のコードでも再構成できた! 左がお手本、右が自分のコード。イベント同期まだ一部しか実装できていない。ぼちぼち実装していこう。これまでのソースはこちら。https://t.co/0MBgOGLKUT https://t.co/FdP7l8QZUk」 / Twitter
composition_prep.js
いけべさんはTwitterを使っています: 「Mutex をプロセスで表現する。 Free 状態では lock イベントに応答して Locked に遷移し、逆に Locked 状態では free イベントに応答して Free 状態に戻る。 https://t.co/wLqMiqQF8a」 / Twitter
いけべさんはTwitterを使っています: 「この Mutex と協調して共有メモリープロセスを触る Muter プロセスを定義する。 lock を提示してから共有メモリーに read を投げ、得られた値に 1 を加えて書き戻す。そして free を提示する。 https://t.co/RPiHoV3WlS」 / Twitter
いけべさんはTwitterを使っています: 「ここで二つの Muter プロセスを(同期イベントなしで)並行合成する。すると非常に大きな遷移を持つプロセスになる。(一方のプロセスから他方のプロセスの全状態に遷移しうるので、組み合わせで巨大になる) https://t.co/UJNcwkOgDk」 / Twitter
いけべさんはTwitterを使っています: 「お互いの提示するイベントに関心のない Mutex プロセスと共有メモリープロセスも並行合成する。 ロックされていない状態でも書き換えを受け付ける(!) https://t.co/ua562xSLFL」 / Twitter
いけべさんはTwitterを使っています: 「ここで並行合成した二つのプロセスを、 lock, free, read, write を同期イベントに指定して並行合成する。 すると、結果はご覧のとおり。 ふたつの Muter は他方が lock を取って読み書きする間お行儀よく待つようになる。遷移の可能性は極端に少なくなり共有メモリーには無事 2 が書き残される。 https://t.co/NSbA3bgdlY」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「共有変数(共有メモリ)とロック・同期機構を組み合わせて作るマルチスレッドプログラミングは難しいけど,メモリを共有しない非同期メッセージングを主体としたプログラミングもまた難しい.つまり難しい…」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「いずれにせよ,詳細化検証を体験すると大きく認識が変わると思うのだけど,ギャップがあるので,まずは振る舞い全体の可視化からはじめて,ゆっくり段階的に進めるという感じです…」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「非同期メッセージングをプロセス・スレッド間相互作用とするシステムの検証は、仕掛り的な中間状態が多くて比較的難しい。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「共有メモリと同期機構を組み合わせたマルチスレッドプログラミングでは、デッドロックや安全性、ピンポイントのライブネスのようなものは検証しやすいけど、観測対象をうまく選べなくてなんというかある範囲の振る舞いを網羅するような正当性検証が難しい。」 / Twitter
hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「状態空間を状態変数で規定する状態ベース仕様のための Alloy が欲しい。てか、状態状態うるさい。Z3 でつくるか…」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「マルチスレッドプログラミングにコードレビューとテストだけで臨むのは厳しい.(広義の)モデル検査はテストでは見つけることが難しい問題を発見できるので設計を支援する強力な武器になる.道具として役に立つだけでなく,使い方を学ぶこと自体が設計力をつける訓練になる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「モデル検査で使われる表現形式はプログラミング言語よりも抽象的なレベルで動作や性質を記述できる.単なるお絵描きとは異なり「動く」ので強くフィードバックがかかる.システムを抽象的に表現し理解を確認・共有できる.これにより品質保証だけでなく設計の選択を広く素早く検討することにも役立つ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「スレッドのコードを書いてる(レビューも)ときは全体のことを想定しているつもりでも,実際には想定しきれないほど組み合わせ状態がある.視覚的に見ればわかる.200行程度のコードでそれが確認できる.するとその上でどう検証すればいいかという可能性が見えてくる.そしてステップアップできる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「プロセス代数 CSP (Communicating Sequential Processes) の表示的意味論と操作的意味論のトレースモデル上での等価性証明を公開した.Isabelle/HOL 2014 による.構文は CSP-Prover に合わせてある.領域は Isabelle のライブラリにある完備束を使用. https://t.co/sppc98Cz82」 / Twitter
hatsugai/CSP-semantics
hatsugai@PRINCIPIAさんはTwitterを使っています 「CSP の詳細化検査ツール SyncStitch で使っている主要なアルゴリズムはほぼすべて Isabelle で証明した. - 表示的意味論と操作的意味論の等価性 - 操作的意味論上で定義した表示での詳細化関係と弱模倣存在の等価性 - 発散検出アルゴリズムの正当性 証明していないのは安定失敗のとこ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「通信するシステムの仕様を表現し検証するためには、視点をシステム内部の状態から外部との相互作用に移す必要があります。新しい視点と表現形式の獲得、これがポイントです。「並行システム?関係ない」と思うかもしれませんが、いまや通信しないシステムはほとんどありません。おすすめの技術です。」 / Twitter

hatsugai@PRINCIPIAさんはTwitterを使っています: 「プロセスは同期可能なイベントを外部に提示する.条件が揃うと同期が成立する.イベントを提示してから同期が成立するまでには時間があるので,その間にもプロセスは内部的に動作する可能性があり,結果として提示しているイベントが変わることがある.イベントが同じでも遷移先が変わることもある.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「マルチコア・マルチスレッドプログラム,組み込みシステム,複数の相手と通信するプログラムなどにはこういう振る舞いが含まれている.問題はどう検証するか.特にテストで再現しにくいとき.問題に気づかないかもしれない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「デッドロック発見器(イベント同期を基本相互作用とする並行合成器)をつくるセミナーは明日土曜日開催です.いまのところ再演の予定はないので興味がある人はできればこの機会にどうぞ.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「共有変数版デッドロック発見器では合成するコンポーネントと合成した後のシステムで遷移系の形が違うので,合成は1回しかできない.これに対してイベント同期版では同じ形なので多段階に合成することができ,大きなシステムを段階的に構築できる(閉包性).」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「さらにイベントを観測するという考えに基づいて2つの遷移系を比較することができる.まずは発生しうるイベントを時間的な順序で並べたトレースを比較するトレース比較器に進化させる.これにより安全性を検査することができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「トレースはシステムの振る舞いの表現としてよく使われる(プロトコルとかログとか)けれども,振る舞いを識別する精度という点では少し粗い.同じトレースを生成できるシステムは必ずしも交換可能にはならない.なぜならトレースでは非決定性を表現できないから.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「トレース比較器をさらに進化させて,非決定性も含めて比較できる,より精度の高い比較器を作ることはできる.ただ,あまり直感的ではないので,これについては先に既存ツールを使いながら理解を組み立てたほうがいいように思う.作ることが特に難しいというわけではない.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「目的はプログラムの設計段階でささっと抽象的なモデルを書いて検査して,確信を持って実装することにある.プロトタイプよりも早く書けて,より確実に問題点を明らかにする.道具なのでうまく使いこなすにはしくみの理解と練習が必要だということ.そのために自分で作ってみようという話.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「自分の能力を増幅してくれる道具は1度手にしたらもう手放せない.いままで見えなかったものが見えるようになり,できなかったことができるようになる.」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています: 「表現形式というのはそれだけで力を持っている。表現が手に入るとさらにその上での操作という武器が手に入る。さらにさらに問題の傾向と対策がレシピあるいはヒューリスティクスとして整理できる。つよい。」 / Twitter
hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器で使うアルゴリズムの基礎になる定理を Isabelle で証明した.非決定的な遷移系 P と決定的な遷移系 Q の間に非対称な弱模倣が存在すれば P のトレース集合は Q のトレース集合に含まれる.単に非決定的であるだけでなく内部遷移がある. https://t.co/aslrTzxJ4y」 / Twitter
hatsugai/simulation_traces: Formal proof by Isabelle/HOL: Existence of asymmetric weak simulation between a deterministic transition system and a nondeterministic transition system implies the inclusion of traces.

histric-1

中村 実さんはTwitterを使っています: "POSIXのread-writer lockがwriterがブロックされた後に、後参のreaderがロックを獲りにいった場合にロックを獲れるかブロックされるかは実装依存なのね。 https://t.co/o7mtqLE4K0"
Urabe, Shyouheiさんのツイート: "@yukihiro_matz 結局イベントループで使おうかと思うとブロックする箇所はepollなりkqueueなりの一箇所に集中してくれないと困るわけで、そうなってくるとkqueueのように「なんでも待つ」というAPIにしてくれたほうが使う側は便利です。というかepoll不便。"
shinichiro hamajiさんのツイート: "こさきさんの言う通りlinuxはなんでもfdて思想なんだろうしepoll不便はイチャモンすぎない…というのはともかく、linuxの方向性としてはuserlandで新fd種を定義できると良かったりするのかなぁとかそういう https://t.co/2Ucw8Venq3"
Rui Ueyamaさんのツイート: "@kumagi さすがズバリ。"
The Art of Multiprocessor Programming - 第七章前半
第6章 カーネル
Rui Ueyamaさんのツイート: "前回はカーネルスレッドのレースコンディションで猛烈に大変なデバッグをするはめになったから今回はロックじゃなくてチャネルと通信を使って同期するようにしよ。もうあれはこりごり。"
satさんのツイート: "@yutakakn Cというかlinuxカーネルにはseqlockという楽観的排他の実装があります。read側はとりあえずロックかけずにデータを参照して、データが更新されていることを事後に確認したらやり直し"
Fadisさんのツイート: "ハザードポインタ、少なくともx86においてはポインタ長の倍の長さのCASの登場によってどうしても欲しい代物ではなくなったんだよな"
ABA問題 - Wikipedia
Kazuho Okuさんのツイート: "auto fiberより、基本関数呼び出しは同期オブジェクトを返して、そいつをjoinすると結果が返るみたいなのが好き。そうすればselectみたいにreadとwriteとか文脈ごとに待ち受けコンテクストを用意する必要なくなるし"
SODA Noriyukiさんのツイート: "実は最近公平性で問題が出てticket lockで一旦は解決したんですが https://t.co/Qf0VqKKRAC ticket lockの場合、負荷をかけるとこの条件変数待ちでグルグルCPUを消費するという問題がでて、結局 @yamasa さん式の奴 https://t.co/1HqQbQOQ1O で解決しました。… https://t.co/Hq1Ulxdqzn"
Fadisさんのツイート: "ロックフリーとか頑張っても性能が出るかはアクセスパターン次第だからな。たくさんのスレッドがつつくリソースを高速に捌くためにまず検討すべき事は「それって本当に共有する必要があるの」だよ"
汎用kumAGIさんのツイート: "「STMの設計と進化」も同様にslideboomにしか置いてなかったっぽいのでdropboxに上げ直し。内容は古いけどSTMの研究するならスターターセットとしてオススメしたい資料。 https://t.co/8CpBiHBBY4"
STMの設計と進化_.pptx
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy/IPMsgの自作condは、broadcast相当しか用意してないなぁ。 (一つのcondで待つスレッド数は最大2~10程度) そろそろ、XPは完全切り捨てして Win32 CONDITION_VARIABLE(長い!)を使った方が良いかな。… https://t.co/B56vN00rwY"
SODA Noriyukiさんのツイート: "多コアで broadcast はアカンので signal 推奨じゃないかと思います、たぶん。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "よく考えたら、VS2017なら(C++11以降で導入された)std::condition_variable が使える?(XPでも)"
FadisさんはTwitterを使っています: 「Vulkan 1.2の規格がリリースされた。Vulkan 1.2では「Aが済んだらn増える」「mに達したらBを開始する」ができる新しいセマフォ timeline semaphoresが標準の機能に入る他、シェーダの言語にHLSLを使いやすくする複数の拡張が取り込まれる https://t.co/eRTOlp4OON」 / Twitter
Khronos Group Releases Vulkan 1.2 - The Khronos Group Inc

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「条件変数のコーナーケースの話。 そういえば、'96年頃のUNIX系のネイティブスレッド環境利用が難しかった時代、プロセス間条件変数を自作したが、いろいろと苦労した記憶。 特にwait()=ロックを外す&眠る2操作のギャップに、notify()が実行されると永遠にwakeupせずと。 https://t.co/Ka3XdhyrGj」 / Twitter
条件変数とダンス(Two-Step Dance)を - yohhoyの日記
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「notifyを取り零すことなく眠る」を実現するため、sigmask交換とsleepをatomicに行えるsigsuspend(2)というsyscallを使ってようやく解決。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu pipeのwriter側への1バイト書き込みを semaphore への post reader 側からの1バイト読み込みを semaphore の wait の代わりに使うって手も… これならベル研時代のUNIX でも使えるし(ぉ post が PIPE_BUF を越えて溜まる可能性があるような応用だとまずいですが…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なるほど、普通の用途なら使えそうですね。 なお上記のinterproc-cvには、大量のメモリinodeの利用権確保用でした。=wakeup通知はそのinode開放を待つプロセス群のみwakupしたいと。 (実際の実装だと、開放側は眠りprocリストを走査&開放予定inode番号待ちのprocのみにsig送信してました)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu なるほど。ディスクリプタですから、あまり沢山作るのは避けた方が良くて、その用途だと使えそうにないですね…」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「マルチスレッドプログラミングは同期や排他制御が難しいけど、実は起動と終了も難しい。例えば準備ができる前に走り始めちゃうスレッドがいたり、誰かがゴールを見つけたのでそのことを他のスレッドに通知して終了してもらったり。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「async/awaitによる非同期が特段に難しいだけで、スレッドモデルで考えれば並列処理そのものはそれほど難しくない。」 / Twitter
まっちゃらさんはTwitterを使っています 「wait-free/lock-free/obstruction-freeの定義について https://t.co/TQSWWDKRt2 定義だけじゃなくて直感的理解とかリアルワールドのことも書いてあって最高に勉強になった」 / Twitter
obstruction-free
mumumuさんはTwitterを使っています 「Ad Hoc Synchronization Considered Harmful [OSDI '10] システムの同期プリミティブを使わないで独自に同期機構を実装することをAd Hoc Sync.と名付け,いくつかの並列プログラムに含まれるAd Hoc Sync.とそのバグ数など定量的な調査を行い,ソースコードから自動でそれらを検出するSyncFinderも実装」 / Twitter

スケジューラ

その他

今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
マイクロサービスアーキテクチャにおける分散スケジューラ
Goのワークスティーリング型スケジューラ | プログラミング | POSTD
はじめてのにき(2017-11-03)
ASCII.jp:基礎から覚える 最新OSのアーキテクチャー
CoreOS Container Linuxにおいてリアルタイムプロセスを実行できない問題 - Cybozu Inside Out | サイボウズエンジニアのブログ
マルチプロセッサのタスクスケジューリングに基づいたWebシステムにおけるコンテナのハードウェアスケジューリングのシミュレーション構想 - 人間とウェブの未来
Google、マネージドCronサービスCloud Schedulerを発表
GameTechDev/GTS-GamesTaskScheduler: A task scheduling framework designed for the needs of game developers.
3-CNF SATからpolygraphのacyclicity判定問題への帰着 - すぴすらのろぐ
List of order theory topics - Wikipedia
CiNii 論文 -  単一仮想記憶型OSにおける外部スケジューラの実装
Rustのasync/awaitとスケジューラの話 / rust-async-await - Speaker Deck
000055579.pdf
uchanさんはTwitterを使っています 「リアルタイムOSについて素人でよく分からないんだけど,例えばプロセスのリストをforで処理したりすると,もうそこで処理時間が読めなくて詰む,みたいなことは無いの?」 / Twitter
KubernetesのCPU limits設定時における「不要なスロットリング」を回避する方法とは? - GIGAZINE
Rust 自作 OS 日記/Part 5 マルチタスキング - 借り初めのひみつきち
詳解xv6 Scheduling 1 - うたもく
コアを多数搭載するCPUは「POSIX」によって能力を制限されているとの指摘 - GIGAZINE
スケジューラーと優先順位の逆転 - 借り初めのひみつきち

big.LITTLE

macOS

高梨陣平さんはTwitterを使っています 「素晴しい記事。M1 Macが実際よりも速く感じるのはmacOSの優れたスケジューラのため。人は複数のタスク全体のスループットよりも個々のタスクのレイテンシにより敏感。かつてLinuxのCompletely Fair Queue (cfq) I/O schedulerは全体のスループット最適化をデフォルトで優先したため却って嫌われて消え」 / Twitter
Ars TechnicaさんはTwitterを使っています 「Apple’s M1 is a fast CPU—but M1 Macs “feel” even faster due to QoS https://t.co/DeFFXURRTF by @jrssnet」 / Twitter
Apple’s M1 is a fast CPU—but M1 Macs feel even faster due to QoS | Ars Technica
高梨陣平さんはTwitterを使っています 「てしまった。m1 Macではスケジューラのpriorityが5段階、background, utility, userInitiated, and userInteractive、default存在。defaultはOSがpriorityを決定する。この時、Intel MacでもM1 Macでもこの5段階は変わらない。しかしM1ではOSはできるだけ優先度の低いタスクを遅い Icestormコアで実行」 / Twitter
高梨陣平さんはTwitterを使っています 「し、速いFirestorm コアをpriorityがuserInitiated and userInteractiveのタスクのために空けておく。例えば10GBの。ファイルの圧縮は実際にはM1よりもintelのほうが速い。しかしM1ではシステムがidleでもbusyでも速度がより一定になる。優先度が高いタスクでもM1 Macのほうがパフォーマンスは一定だ。」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「.@jingbay OS QoSに関係するかもですが、Appleキャッシュ系特許に QoS management in L2 (申請: 11/12)、認定 (14/04) https://t.co/flnVulXoeS Application aware SoC memory cache partitioning (19/08)、公開 (21/02) https://t.co/NzNXMBt6u0 ※SoC Fabric概要有 気になるのがいくつもあります。」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=&gt; Patent "QoS management in the L2 cache", Granted: Apr 10, 2014 (Dec 2011) https://t.co/HvwvITMWmN "Parallel coherence and memory cache processing pipelines", Appl, Mar 12, 2020 (Sep 2018) https://t.co/fjiDxjWY5i Memory Latency https://t.co/xKEm3pFC8u https://t.co/BhO1fyfXJU https://t.co/2WahZO7SVd」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=&gt; "Application aware SoC memory cache partitioning", Apple, Patent Application, Feb 4, 2021 (Filed: Aug 2, 2019) https://t.co/LWzSZFZoiI Fabric Coherence Controller SoC Switch bar I/O Switch bar Apple Patent https://t.co/pW4vSGBMGg QoS in Memory, Scalable NN engine, etc. https://t.co/aFxMVcdR5p」 / Twitter
AppleのM1チップはタスクの処理方法を工夫することでユーザーに「処理が速い」と思わせている - GIGAZINE
Kazuho OkuさんはTwitterを使っています 「あのm1のスケジューリングの説明、イマイチ納得いかないっていうか、フォアグランドプロセスがブロック解除したら、いきなり高性能コアで動かしてるってこと? それってバッテリ食わない? みたいな気持ち。クロックの上げ下げとかコア間のミグレーションとかそのへんの仮説棄却もされてないし」 / Twitter

Izumi TsutsuiさんはTwitterを使っています 「bit.LITTLE みたいな symmetrical でない MP を OSはどう処理しているのか、みたいな解説ないんかな(これを低レイヤ質問室に投げればよかったのか)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@tsutsuii ググったところARM的な公式ページは Energy Aware Scheduling (EAS) https://t.co/we4UELISJa っぽい。 ここから辿れるOSPM summit https://t.co/wrBaR20QJ0 にスライドがあった。 ちゃんと見てないけど OSPM II 2018/04/18 の https://t.co/dnadJUfCTh とか詳しそう」 / Twitter
Home of the OSPM Summit 2020
Energy-Aware real-time task partitioning - Parallel or Sequential? - EATaskPartitioning.pdf
suzakiさんはTwitterを使っています 「@n_soda @tsutsuii bit.LITTLE(ヘテロコア)におけるスケジューリングは興味があったので調べてみました。 2013にSamsungがDVFSを使った論文を出しています。 Power-aware task scheduling for big.LITTLE mobile processor https://t.co/l7wVWFDj25 これも決定打ではないですが。」 / Twitter
Power-aware task scheduling for big.LITTLE mobile processor - IEEE Conference Publication

NUMA

Raphine Project

256コアマシン向けのOSを作る – Raphine Project<サイト製作中>
livaの雑記帳(2016/10) – Raphine Project

デュアルソケット・ザ・ワールド

デュアルソケット・ザ・ワールド Windows 7 で NUMA が認識されない件に付いてMicrosoftのサポートに問い合わせてみる
デュアルソケット・ザ・ワールド NUMA (Non-Uniform Memory Access)

AMD

Kazuho Okuさんのツイート: "コアの半分以下しか使いきれないソフトウェアだと、このほうがパフォーマンス上がるし、ゲームとかベンチ対策考えると妥当な設計な気がする / “【後藤弘茂のWeekly海外ニュース】2系統に分かれた第2世代Threadripperのア…” https://t.co/hxMq34LTSe"
【後藤弘茂のWeekly海外ニュース】2系統に分かれた第2世代Threadripperのアーキテクチャ - PC Watch
品川 高廣さんのツイート: "Linux カーネルの automatic NUMA balancing は Ryzen Threadripper 2990WX とはあまり相性が良くないんだろうか。オンにするとかえって遅くなるらしいんだが。"

RHEL

23.31. NUMA ノードの管理
第4章 CPU
8.2. NUMA の自動負荷分散
8.4. NUMA 対応 KSM (Kernel SamePage Merging)

MS

Hyper-V 仮想 NUMA の概要
VMM での仮想 NUMA の展開

blog

NUMAとメモリとゲームとサーバ | ツチノコブログ
NUMAアーキテクチャとネットワーク性能(1)-説明編 - SSD情報
NUMAアーキテクチャとネットワーク性能(2)-実践編 - SSD情報
SQL Server と NUMA at SE の雑記
[パタヘネ:読書メモ]第7章 マルチコアとマルチプロセッサとクラスタ
VMworld 2014速報: Breakout Session 【vSphere / vCenter Operations Manager】編!! - Japan Cloud Infrastructure Blog - VMware Blogs
NAKAMURA Minoru's Diary (2013年2月)
NAKAMURA Minoru's Diary (2013年6月)

Wikipedia

NUMA - Wikipedia
Non-uniform memory access - Wikipedia

NUMA 向けのアプリケーションの最適化 | iSUS
MCAPI事例: マルチコア設計におけるCPU間通信 - Mentor Graphics
Microsoft PowerPoint - Arakawa-20110715.ppt
matsutani_kyushu2008.pdf
KeyStone マルチコア DSP トレーニング | デジタル・シグナル・プロセッサ | TI
Topic cloud/ja - NAIST Ito-Lab - ITS, Mobile and Cloud Computing
Microsoft PowerPoint - shohei-g.poster.pptx
マルチコア組み込みシステムの挙動、
タダ飯を食わせろ
C02.pdf
Slide 1
qemu/KVM を実行してて、Auto NUMA Balancing と ksm の食合せが悪い場合のワークアラウンド “ echo 0 > /proc/sys/kernel/numa_balancing” もしくは ksm を停止 - hiboma のコメント / はてなブックマーク
HPCシステムズ HPC Do It Yourself Clubへ
FadisさんはTwitterを使っています: 「NetflixがFreeBSDのカーネルのネットワークスタックを改良したらEPYCでの帯域が3倍になった話。200Gbpsでデータを吐き続けるサーバにとってNUMAノード間をデータが往復するのは許容できないオーバーヘッドらしい https://t.co/U049CYwMeo」 / Twitter
Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance - Phoronix
FadisさんはTwitterを使っています: 「ネットワークガチ勢は皆カーネルを迂回すると思っていたけど、カーネルを魔改造する一派も居るんだな」 / Twitter
FadisさんはTwitterを使っています 「NUMAなマシンでは、プロセスが使用するメモリとプロセスを実行するプロセッサを同じノードにしておかないと性能ガタ落ちだから、Linuxカーネルは新しいスレッド(=現在のノードのメモリを共有する)を可能な限り同じノード内のプロセッサで動かすような割り当てを行う筈」 / Twitter
FadisさんはTwitterを使っています 「@ipv6labs cgroupsのcpusetを使うと、特定のグループのプロセスが使って良いプロセッサを制限できます。確かnumactlに--physcpubindをつけた場合裏でこれを設定していた筈。」 / Twitter

Processor affinity

プロセッサ親和性 - Wikipedia
Processor affinity - Wikipedia
Tech TIPS:Windowsでプログラムの実行に使用するCPUを限定させる(プロセッサアフィニティマスクを設定する) - @IT
Linux - CPU プロセッサアフィニティ(親和性)の設定! - mk-mode BLOG
プロセスへのCPU割り当てについて
DO’s&DONT’s #14: 絶対にやってはいけないこと – ひとつの CPU に対して affinity mask と affinity I/O mask の両方を ON にする – Microsoft SQL Server Japan Support Team Blog
25.6. KVM プロセッサーアフィニティの設定
CPU/Processor Affinity - SyncHack
北森四葉さんはTwitterを使っています 「Ryzen Threadripper 3990X、Processor Groupの問題が取り上げられてるな https://t.co/yksMCIxRB4」 / Twitter
The Windows and Multithreading Problem (A Must Read) - The 64 Core Threadripper 3990X CPU Review: In The Midst Of Chaos, AMD Seeks Opportunity
Usagi Ito 👩‍💻 High-tech Hermit 🧙‍♀️さんはTwitterを使っています 「なるほどWindowsだと見えるコアが64を超えるとアプリ側で特別変態的にアフィニティー制御を入れて作ってない限り悲しい事になるのね。」 / Twitter
北森瓦版 - Ryzen Threadripper 3990Xが解禁される
Windows 10 Proは128スレッドのAMD Ryzen Threadripper 3990Xを処理できない - 自作ユーザーが解説するゲーミングPCガイド
Windows10+Ryzen Threadripper 3990X問題について整理してみる - 自作ユーザーが解説するゲーミングPCガイド

Tickless カーネル

Twitter

ゆたかさん🐬さんのツイート: "ticklessカーネルだと、1ミリ秒ごとにタイマ割り込みが動かないので、CPUがアイドル状態でCPUの負荷を抑えられるのです。 https://t.co/qBxrbmMvnt"
ゆたかさん🐬さんのツイート: "RHEL6やWindows8などの比較的新しいOSでは、ticklessカーネルなのでタイマ割り込み自体で時刻管理するのではなく、クロックソースを使います。 OSに負荷がかかると時刻が遅れるということはないですが、クロックソースのチップで時刻精度が変わってきます。 https://t.co/brG73hwD46"
Fadisさんのツイート: "紛らわしいからソフトリアルタイムを指すリアルタイムはインタラクティブって呼ぶようにしてる"
Fadisさんのツイート: "ハードリアルタイムで大事なのは、処理が早いかじゃなくて、ある決まった時間内に処理を完了させる事をシステムは保証できるか、だよ。プロセッサがその処理を片付けるのにかかる最長の時間は明確か、とかOSはその処理が完了する前にその処理を中断させる事が無いかとかそういうところが問題になる"
とみながたけひろさんのツイート: "仮想メモリやキャッシュが存在しない環境がなくなりつつある今、私の期待するリアルタイム性はもはや「一番優先度が高いスレッドがCPU時間を全部とれる」ぐらいになりつつある"
とみながたけひろさんのツイート: "最近はLinuxでさえticklessになったし、OSのリアルタイム性よりもUSBのパケットが1msecに一度しか送れないとかそっちのほうが辛くなりつつある"
とみながたけひろさんのツイート: "「無限のCPUパワーでビジーループしててもスレッドが勝手に切り替わったり、スレッド切替粒度が1秒に100回しかなかったりだとつらいだろ?」というの、後者はticklessで解決したし、もう前者があればなんとかなるじゃん、CPUパワーはなくともコア余ってるし、みたいな(電池環境だとそうもいかないけど)"
とみながたけひろさんのツイート: "なおLinuxはデフォルトだとリアルタイムスレッドにはCPU時間の95%ぐらいまでしか使えないので完全なビジーループはできない(5%ぐらいはフツーのスレッドに時間が強制的に割り当てられてしまう)。一応0にできるが大抵の場合は設計ミスだと思うし、そこまでギリギリだと多分0にしても問題は解決しない…"
とみながたけひろさんのツイート: "20年ぐらい前に、Linuxでsnes9xを書いてた頃は「くそーVBlank周期の59.83fps=16.72msec待ちたいのに無駄にたくさん待ってしまう。なんだこのOSはー」とか言ってたわけだが、今や普通に100nsecぐらいの精度でスレッド切替できるのだった。そう、時代は流れたのだ…(当たり前"
とみながたけひろさんのツイート: "まあ裏では多分「ハードリアルタイム」なOS他が動いているマイコンが内蔵された、細かい仕様は教えて貰えないIPやチップがあるからこういう楽ができるんだろうけど、まあ、いい時代になったということで…(本当か?)"
とみながたけひろさんのツイート: "多分このツイートをしている環境だけでも、無線LANやBTのチップ、HDDやSSDのコントローラー、各種PMIC、USBコントローラー、LCDのパネル制御、…とかで、私のような軟弱プログラマが書いたのではない「プログラム」が動いているんだろうなあ"
とみながたけひろさんのツイート: "「インターフェース」とかに、昔はRTOSにおける待ち行列モデルとか色々細かく解説記事が出てたけど、もうそういう時代じゃないんだよな…(こんなこと書いてる自分もほとんど忘れている)"
とみながたけひろさんのツイート: "ガチのOS研究している人に怒られそうなのでこのへんで止めとこ…(すでに無知をさらしている感じのところがいくつかあるが実際そうだしまあいいや…"
mumumuさんはTwitterを使っています 「System Noise, OS Clock Ticks,and Fine-Grained Parallel Applications CPU-boundな大規模並列処理を考えると,OSのノイズによる1コアの少しの遅延が全コアに伝播してしまう可能性がある.ここでは,その原因のノイズとしてとくにTickの影響が大きいことを指摘.https://t.co/2a8Wd97au7」 / Twitter
noise3.dvi - Noise05ICS.pdf

jiffies ‐ 通信用語の基礎知識
Ticklessカーネルとクロックソースに関するお話 - めもめも
2.4. Tickless カーネル
3.6. Tickless Kernel
LinuxのFull ticklessを試してみた
Timekeeping in VMware Virtual Machines
LinuxKernel - ソフトウェアエンジニアリング - Torutk
各々の生き方: Chromeの不具合?とWindowsの仕組み
jiffies更新を追いかける - Linux関係メモ@宇治屋電子
【後藤弘茂のWeekly海外ニュース】Intel CPUの大きなマイルストーンとなる「Haswell」が遂に登場 - PC Watch
「Haswell」って何だ? 第4世代Coreプロセッサが採用するアーキテクチャのポイントを一気に押さえよう - 4Gamer.net
[まとめ]Linuxシステム時刻について - Akira's Tech Notes
Clock / Timer
9月版 タイマにまつわるエトセトラ(1/2) - @IT
時刻と時間の管理、プロセスのスケジューリング
今更Sleepの解説するなんて、と思うのです。
Linuxのしくみを学ぶ - プロセス管理とスケジューリング
カーネルにおけるタイマー事情 ~第1回 カーネル内での時刻/時間の利用~ | VA Linux Systems Japan株式会社
カーネルにおけるタイマー事情 ~第2回 カーネル内の時刻/時間関連サブシステム~ | VA Linux Systems Japan株式会社
カーネルにおけるタイマー事情 ~第3回 IAマシンのもつ各種計時ハードウェア~ | VA Linux Systems Japan株式会社
カーネルにおけるタイマー事情 ~第4回 タイマーハードウェアの抽象化~ | VA Linux Systems Japan株式会社

TSC

MSR_or_ハードコーディング

Time Stamp Counter - Wikipedia
x86/tsc: Set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs [Linux 4.10] - Linux Kernels
Getting TSC rate in x86 kernel - Stack Overflow
[tip:x86/timers] x86/tsc: Set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs - Patchwork
[4/4] x86/tsc: set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs - Patchwork
[v3] x86/tsc: add X86_FEATURE_TSC_KNOWN_FREQ flag - Patchwork
[U-Boot] [PATCH 6/6] x86: tsc: Rename try_msr_calibrate_tsc() to cpu_mhz_from_msr()
[PATCH 0/9] x86: TSC calibration update - Google グループ
mOS/tsc_msr.c at master · intel/mOS
社会人でもOSを作りたいさんのツイート: "PCのタイマーぜんぜん分からん… 正確に時間を測るの不可能では?"
社会人でもOSを作りたいさんのツイート: "まず、驚くことにHPETがレガシーデバイスとして分類されてるIntel製のチップセットがあるので、レガシーフリーを目指す身としてはHPETは避けたい。すると、周波数既知のタイマーとしてはACPI PM TimerかInvariant TSCということになる。(続く)"
社会人でもOSを作りたいさんのツイート: "Invariant TSCの周波数はMSRから取得できるのだが、BIOSの設定でバスクロックが変更されているとタイマーにズレが出る。ACPI PM Timer は、最近流行りのHardware-reduced ACPIでは搭載されてない可能性がある。"
beepcap@HTTPSの強制には反対さんのツイート: "不可能だよ?… "
社会人でもOSを作りたいさんのツイート: "不可能だってことなので、まあ適当にしとくか、という気持ちになった"

CPUクロックに基づく相対時刻の計測
本の虫: 100ナノ秒ぐらいの分解能をもつクロック実装
Livaさんのツイート: "雑魚すぎてTSCの情報を取ろうとして嵌った。ずっとこのページとにらめっこしてて、答えがちゃんと書いてあるのに、華麗にスルーしてた。 https://t.co/GVudVa6n4O"
arch/x86/kernel/tsc.c : set X86_FEATURE_ART for TSC on CPUs like i7-4910MQ : bug #194609 - Patchwork
Livaさんのツイート: "CPUID 15hでTSCの詳細な値取れるじゃーん、あれでも取ってきた値おかしくね?ってずっと悩んでたのだけど、boot_cpu_data.cpuid_level == 13、つまりCPUID 0Dhまでしか取れないから、15hで取った数値になんの意味もない"
AMD Dual-Core Optimizer - NyaRuRuが地球にいたころ
Converting Sandy Bridge TSC to wall clock time
Time Stamp Counters - atp
andyphillips/time_stamp_counters
LKML: Thomas Gleixner: Re: [PATCH] x86/tsc: Always Running Timer (ART) nanoseconds clocksource
時間を計測する
dterei/tsc: Quick and dirty TSC access for benchmarking
TSC frequency variations with temperature
Pitfalls of TSC usage | Oliver Yang
Invariant TSC を 使う - Qiita
Page 1424
bits-2003

Local APIC timer

yuYabu☕️さんのツイート: "今から自作OS作るならPIT,RTC,HPETは使わない方がいいらしい。 #osdev_moku2"
yuYabu☕️さんのツイート: "HPET重要な特性:HPETはmemory maped deviceなのでosを介さずに直接アクセスできる。 RT mark.ユーザー空間にキャッシュできる。レジスタをOS経由で触るよりメモリを参照する方が早い。まだまだ使える(レガシーではない)"
錆ありはぐれベアメタルさんのツイート: "お客様の中にintelの中の人は居ませんか? #osdev_moku2"
yuYabu☕️さんのツイート: "これからの自作OSで利用するタイマー構成は  ACPI PM Timer(初期時計)+Loal APIC Timer(普段使い)がおすすめらしい #osdev_moku2"
社会人でもOSを作りたいさんのツイート: "タイマーイベントの管理は,最小・最大ノードをO(1)で見つけられるヒープツリーが用いられることが多い. #osdev_moku2"
Timers
Nerry さんのツイート: "lapic timerそもそも計測しないと周波数わからない時点で正確なクロックソースとして信用できないことに気付いた。"

アイドル状態

【やじうまPC Watch】ノートPCのバッテリを過剰消費しているChrome長年のバグが解決へ? - PC Watch
本の虫: Google Chromeを使うとファンの回転数が上がる理由
Shinji KonoさんはTwitterを使っています 「マウスの位置をリアルタイムで取得して記録するアプリで「CPU100%」になるのを防げという課題を出したことがあるのだが、誰も解けなかった。」 / Twitter
Shinji KonoさんはTwitterを使っています 「sleep入れるだけなんだが、言われないとわからないもの。その辺りがOS/マルチタスクを理解してるかどうかってことなんだが…」 / Twitter

バックグラウンド処理

「Google Chrome 57」にはバックグラウンドタブの電力消費を抑える仕組みが導入 - 窓の杜
Google Developers Japan: バックグラウンド タブによる電源消費量の削減について

スタッター

【CPU】 超多コアCPUでゲームをするときの注意点 : ニッチなPCゲーマーの環境構築
スタッターの英語・英訳 - 英和辞典・和英辞典 Weblio辞書

コンテキストスイッチ

fiber

c++ - How do stackless coroutines differ from stackful coroutines? - Stack Overflow
Ryou Ezoeさんのツイート: "すごい、ファイバーのコンテキストスイッチのコストとかを示すためにWandboxが使われている。 https://t.co/WXNeFk8A99 https://t.co/IJzj8EyiKG"
Ryou Ezoeさんのツイート: "Fiber(stackful coroutine)は歴史上何度も試みられてきたがパフォーマンス上の恩恵が全くないのでやめておけ。今まともに使っているのはGOだけだがペナルティが大きい。 https://t.co/WXNeFk8A99"
p1364r0.pdf
技術書典6・う38 デダルス・ユメノさんのツイート: "OSスレッドの切り替えには大量のレジスタ退避、復帰処理が必要だが、goroutineの切り替えはプログラムカウンタ、スタックポインタ、DX(多分RDXレジスタのこと)だけで済むらしい。協調マルチタスクの強みやな。 https://t.co/B8eQ4T7NyD"
How Goroutines Work · Krishna's words
技術書典6・う38 デダルス・ユメノさんのツイート: "どうやら,context registerと呼ばれる役割らしい https://t.co/gPKnrPIaDX… "
go - What is a context register in golang? - Stack Overflow
coroutineとasync/awaitのあれこれ - Qiita
async/awaitと合成可能性 | κeenのHappy Hacκing Blog
言語によってちょっと違うFuture/Promiseをまとめてみた(1) - Qiita
言語によってちょっと違うFuture/Promiseをまとめてみた(2) - Qiita
言語によってちょっと違うFuture/Promiseをまとめてみた(3) - Qiita
future - Wikipedia
(ネタ)ユーザー空間だけでプリエンプションする - livaの雑記帳
コルーチンプログラミング - 増井俊之
ntaooさんはTwitterを使っています 「DartのIsolate (Actor Model) の基盤の上での、Single thread event loop モデルは、やはり扱いやすくていいなと思います。適切に高い抽象度でプロセスとスレッドを扱えますので... https://t.co/mQS6zLF8oA」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「@ntaoo 割り切りとしてとても良い落し所ですよね。パフォーマンスオタクからすると言いたいことはあるんでしょうけど、そういう人たちは、Platform/Dart ffiの方に案内すればいいですからね。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「Kotlinもさ、正直、コルーチンとかも良さげに見えて素人には罠だらけだと思うんだ。やっぱりマルチスレッドは常人には無理だよ。」 / Twitter
ntaooさんはTwitterを使っています 「@espresso3389 そうですね。割り切って真にパフォーマンスが必要なごく少数の箇所はネイティブに移譲しつつ、クライアントサイドアプリケーションプログラミングの事情に沿ったIsolateの設計だと思います。もっとメニーコアになって対応が必要な時代になったら、ErlangのActorのアプローチを参考に進化するでしょうし」 / Twitter
FadisさんはTwitterを使っています 「Boost.ContextからBoost依存を排除した、Deboost.Contextなるライブラリが存在する事を知った。Boost.ContextはWindowsのFibreや新しいスタックの確保とスタックポインタの書き換えを使って、ユーザ空間の単一スレッド上で複数のタスクを切り替えて実行する仕組みを提供する https://t.co/GZCAxn7bpw」 / Twitter
septag/deboost.context: "Deboostified" version of boost.context (coroutines), Plain and simple C API for context switching. Easy build on multiple platforms.

FPU

日記 (2018 年 6 月下旬)
日記 (2018 年 6 月下旬)
日記 (2018 年 6 月下旬)
拡張プロセッサー・ステートを保存/復元する組み込み関数
7月版 ファームウェアの置き場所を巡ってフレームウォー(2/2) - @IT
XSAVE — Save Processor Extended States
XRSTOR — Restore Processor Extended States
x86 and amd64 instruction reference

lazy FPU context switch

nakamori akiraさんのツイート: "Intel CoreおよびXeonプロセッサ内のセキュリティー欠陥は、チップの演算処理装置から機密データを盗み見される可能性がある。AESの鍵はFPUレジスタに保存されるが、そのレジスタを盗み見される可能性がある。… "
The Registerさんのツイート: "Overnight: Intel Core and Xeon processors have a security flaw that lets the math unit leak parts of its registers from one app to another - registers used for AES encryption. It's possible for malware to snoop on crypto keys in other programs https://t.co/b9q051uXc5"
Intel chip flaw: Math unit may spill crypto secrets to apps – modern Linux, Windows, BSDs immune • The Register
INTEL-SA-00145
Lazy FPU Save/Restore (CVE-2018-3665)
このコード、オシャカルトっ!さんのツイート: "CVE-2018-3665の話しで出てきてたeagerfpuって今のコードになくない?と思ったら、もうこの機能は常にonになったからon/off 切り替えというのはなくなっていた。 https://t.co/XxV9BMPPyx"
x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
Kimihiro Nonakaさんのツイート: "つーか、今のx86だともうlazy FPU context switchって意味無いからなぁ"
Coreプロセッサに新たなサイドチャネル攻撃の脆弱性。深刻度は中 - PC Watch
まさみさんは語りたいさんのツイート: "タスク切替時にFPレジスタの復元を遅らせることで、切り替えたタスクが実際にFPを使うまでレジスタ復元にかかるオーバヘッドを回避するっていうあれか。"
まさみさんは語りたいさんのツイート: "Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d"
Cyberus Technology Blog - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
とみながたけひろさんのツイート: "今時のコンパイラって何でもかんでも(特にメモリコピーとか)SIMDレジスタ使ってくるんで、コンテキストスイッチ直後にSIMDレジスタ使うとかで、、、FPUレイジーコンテキストスイッチってほとんど意味なくなりつつあるんだよね… "
syuu1228さんのツイート: "でも特にAVX以上になるとFPUレジスタのサイズがでっかくなりすぎてくるから全退避・全リストアじゃなくてCPU命令で差分退避・差分リストア出来るようにしようとなった、という経緯だったような"
Lazy FP State Restoreの脆弱性が、ほとんどのIntel Core CPUに影響を与える
Cyberus Technology Blog - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
社会人でもOSを作りたいさんはTwitterを使っています: 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
LazyFP vulnerabilityの紹介

The Old New Thing

FadisさんはTwitterを使っています 「x86にはUD2っていう呼ぶとinvalid opcode例外が飛ぶ事が保証されている命令があるんだけど、これを使うと遅いx86のINTを避けてring 0に移れる事に気づいたマイクロソフトがUD2でコンテキストスイッチし始めて、Intelに「UD2もっと速くならない?」って言い出してIntelが「ふぁっ?!」ってなる話好き」 / Twitter
FadisさんはTwitterを使っています 「で、その後INTじゃなくてシステムコール専用に高速にring 0に移れる専用の命令があった方が良いよねとなって、SYSENTERや今日x86_64で使われているSYSCALLが登場する、と」 / Twitter
本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
FadisさんはTwitterを使っています 「UD2の件のソースはこれ( https://t.co/1lV3gwp5Uu )なんだけど、江添さんの紹介してるやつの話が1989年だとすると、時系列的にはこの話はUD2が追加される以前の話になるから、実際にはUD2じゃなくて本当にinvalidなopcodeでも使ってたのかな」 / Twitter
User-level threads....... with threads. - Paul Turner - Google - YouTube
suzakiさんはTwitterを使っています 「@darklie @fadis_ 日本語ブログではリンクが切れていますが、同じタイトルのHPがありました。 The hunt for a faster syscall trap https://t.co/EDqnpwuhvC IntelとMicrosoftと打合せでMicrosoftが無効命令の高速化を要求したストリーは聞いた覚えがあります。」 / Twitter
The hunt for a faster syscall trap | The Old New Thing
FadisさんはTwitterを使っています 「コンテキストスイッチが高コストというのは、かつてはx86のソフトウェア割り込みが超遅いという話だったけど、現代においてはカーネルのスケジューラが複雑なのがコストの主な原因で、syscall命令自体の実行時間はそれと比べると誤差みたいになってるのか…」 / Twitter
でかいのさんはTwitterを使っています 「@fadis_ ring0遷移の所要時間 50nsecは結構遅いと思うのですが、そんなの目じゃないほどスケジューラーが遅いってことなのかなあ。複数コアの情報取得・連係制御のコストが高い??」 / Twitter
FadisさんはTwitterを使っています 「@dekaino syscallが50nsec程度なのに対して、コンテキストスイッチ全体に要する時間が1usオーダーのようで」 / Twitter
でかいのさんはTwitterを使っています 「@fadis_ spinlockがいくつかあれば1usecくらいすぐいきそう。複数コアで排他なしのスケジューリングは困難で、原理的に排他コストがかかるのは不可避でしょう。 スケジューラーが複雑なことが主なコスト要因って表現だと、何かを犠牲にして単純化すれば所要時間短縮できそうに思えますが、ちと無理そうです。」 / Twitter

あるコンテキストスイッチの話
ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る - HPC/並列プログラミングポータル - OSDN
Concurrent と Parallel - NyaRuRuが地球にいたころ
parallel と concurrent、並列と並行の違い - 本当は怖い情報科学
Linux カーネルと FreeBSD カーネルの割り込み処理
I-26-1. コンテキストスイッチの仕組み | 日本OSS推進フォーラム
社会人でもOSを作りたいさんはTwitterを使っています: 「コンパイラが用意してくれるmemcpyの速さに感動するんだけど、これって低レイヤあるある?」 / Twitter
Toshitaka MiuraさんはTwitterを使っています: 「@uchan_nos コンパイラそのものよりは、チューンされたイントリンシック関数ですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「linux で、カーネル内を走行中に割り込みが走る場合と、ユーザプロセス内を走行中に割り込みが走る場合って、なんて呼び分けるんでしょう? どちらも preemption ではあると思うんだけど。 なぜこんなことを気にしてるかというと、両者のオーバーヘッドの違いを説明する文章を書いてるからです。」 / Twitter
猫ぱんちさんはTwitterを使っています 「@kazuho 前者をとくにカーネルプリエンプションと呼んで区別するくらいではないでしょうか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@nekopunch_pk ありがとうございます。kernel preemption, user preemption のような用語を定義をつけて説明することにしたいと思います cc @syohex」 / Twitter
Kazuho OkuさんはTwitterを使っています 「やっぱuser preeemptionのほうがkernel preemptionよりだいぶ重たいんですね。。。」 / Twitter
カーネルプリエンプション - Linuxの備忘録とか・・・(目次へ)

M:Nスレッド

軽量スレッドブームだと思うので、そこらへんの情報をまとめてみる - 金利0無利息キャッシング – キャッシングできます - subtech
スレッド (コンピュータ) - Wikipedia
goroutineはなぜ軽量なのか - Carpe Diem
Linuxにおけるプロセス/スレッドの調査とか学習とか - Flicker's Style++
multithreading - M:Nスレッドモデル(goroutinesなど)の短所は何ですか?
Rustのスレッドで並列処理を行う - Qiita
NetBSDにおけるthread機構の方向転換か? | スラド デベロッパー
Solarisスレッドモデルとスタックスレッド - 銀の鍵 (The Silver Key)
ASCII.jp:Go言語と並列処理(2)|Goならわかるシステムプログラミング
スレッド - The Rust Programming Language
井山梃子歴史館さんはTwitterを使っています 「Google曰くオーバーヘッドはカーネルスケジューラにあるのでユーザーモードスケジューリングで解決するらしい」 / Twitter
legokichiさんはTwitterを使っています 「M:Nモデル使わなくてもlinuxのスレッドは軽くて早いよという説はどこへ行ったのか」 / Twitter
AoiMoe a.k.aしお兄PさんはTwitterを使っています 「実際のところ M:N モデルでも pthread だと百万個単位のスレッドが動くかどうかは怪しい気がしますね。Erlang のメッセージや go のチャンネルによるアクターモデルを酷使するには、上限を気にせず使える軽量なスレッドとユーザランドスケジューラは必須で、これは C とかでは難しいかもしれない。」 / Twitter
なぜ Go では何百万もの Goroutine を作れるのに Java は数千のスレッドしか作れないのか?

Hyper-Threading Technology

Hyper-threading - Wikipedia
ハイパースレッディング・テクノロジー - Wikipedia
HyperThreadingとAMD Bulldozerとカーネルスケジューリング — SOUM/misc
続・HyperThreadingとAMD Bulldozerとカーネルスケジューリング — SOUM/misc
インテル® ハイパースレッディング・テクノロジーのパフォーマンスに関する考察 | iSUS
ハイパースレッディング調査 - ソフトウェアエンジニアリング - Torutk
仮想化基盤におけるCPUリソースに関する簡易整理 | Check!Site
VMwareテクニカルトレーナよりワンポイントアドバイス~VMware vSphereにおけるCPU・メモリの考え方編~ - Japan Cloud Infrastructure Blog - VMware Blogs
ハイパー・スレッディング・テクノロジのアーキテクチャとマイクロアーキテクチャ
ASCII.jp:マルチコアCPUを賢く使いこなす スケジューリングの秘密 (2/3)|基礎から覚える 最新OSのアーキテクチャー
マルチプロセッサとスケジューラ(その1) | OSDN Magazine
マルチプロセッサとスケジューラ(その2) | OSDN Magazine
1.5 プロセススケジューラ - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
FadisさんはTwitterを使っています 「GoogleがLinuxカーネルに「信頼できるプロセス」だけがCPUを共有する複数のハードウェアスレッド(Hyper Threadingとか)で隣り合わせになれるようにするスケジューラのパッチを投げている。信頼できるかどうかはcgroupsで同じタグが割り当てられているかどうかで判断する https://t.co/H8XHZ13Xmh」 / Twitter
Google Publishes Latest Linux Core Scheduling Patches So Only Trusted Tasks Share A Core - Phoronix
FadisさんはTwitterを使っています 「Hyper Threadingやそれに類する技術はCPUのアイドルを減らす効果が期待できるものの、キャッシュ等の状態を2つのスレッドが共有するため、サイドチャネル攻撃に利用できることが指摘されていた。このためOpenBSDではデフォルトでHyper Threadingを「あっても使わない」ようにする対応がなされていた」 / Twitter
FadisさんはTwitterを使っています 「linux-5.14でCore Schedulingが入りそうだという話。これは「信頼できるプロセス」だけがSMTで隣り合うようにする物。SMT(Intel用語でHyper Threading)は今日ではサイドチャネル攻撃の温床で、隣のプロセスが信頼できない場合切るしかなかったが、これで安心して有効にできる https://t.co/TRhsZQ9do4」 / Twitter
Core Scheduling Looks Like It Will Be Ready For Linux 5.14 To Avoid Disabling SMT/HT - Phoronix
FadisさんはTwitterを使っています 「信頼できるプロセスとは具体的には同一プロセス内の別のスレッドまたはcgroupsで同じタグが割り当てれられた(明示的に信頼できるグループとされた)プロセス」 / Twitter
K.Namba/(お菓子|おやつ)エバンジェリストDXさんはTwitterを使っています 「@fadis_ いいね。 しかもHT内の同一プロセスならキャッシュヒット率も高そう。」 / Twitter

CFS

Completely Fair Scheduler - Wikipedia
Completely Fair Scheduler - Wikipedia
Linux カーネル 2.6 Completely Fair Scheduler の内側
Completely Fair Scheduler によるマルチプロセッシング
Completely Fair Scheduler について - カメのたわごと
Completely Fair Scheduler (CFS)
CFQスケジューラのアルゴリズム概要 | VA Linux Systems Japan株式会社
Kazuho Oku(@kazuho)/2015年02月10日 - Twilog
Fadisさんのツイート: "Linuxのしくみ( https://t.co/HBQWDZahl6 )、スケジューラの働きを実験で見るあたりで「スケジューラが顕著に不平等になるケースを観測して、そこからCFSの実装の話になるんでしょ、わかるわかる」って思って読み進めたけど、実際はもっと平和な本だった"

BFS

Brain Fuck Scheduler - Wikipedia
Brain Fuck Scheduler - Wikipedia
帰ってきたCon Kolivas、大論争を呼ぶの巻(1/3) - @IT
Linux-ck - ArchWiki
フリーダウンロード BFS Scheduler のために Linux ::: システムユーティリティ
スケジューラについての調査 - オペレーティングシステム授業発表
Con Kolivas氏、新たなスケジューラと共にLinux開発にカムバック | スラド アップル Submission

BMQ

Fadisさんのツイート: "Linuxに新しいプロセススケジューラBMQが提案されている。これはGoogle Zirconのスケジューラを元にした物で、優先度別キューのうち空でない最も優先度の高いキューからタスクを取り出す。実行時間を残したタスクは元居たキューの先頭に、使い切ったタスクは末尾に戻される https://t.co/bgj4vYr0Us"
BMQ "BitMap Queue" Is The Newest Linux CPU Scheduler, Inspired By Google's Zircon - Phoronix
Fadisさんのツイート: "これ、説明読んだだけだと優先度の低いタスクが飢えそうなんだけど、どうなんだろ"
Fadisさんのツイート: "既にCFSがあるLinuxにおけるBMQの利点は実装が極めて小さい(パッチサイズにして20kB以下、圧縮されたカーネルバイナリのサイズで4kB以下)事らしい。性能が良いかどうかとかいいからこのフラッシュメモリに収まるカーネルをくれ、みたいなペンギンのダイエットが死活問題な方面で有用なのかもしれない"

キュー

キュー | アルゴリズムとデータ構造 | Aizu Online Judge
優先度付き待ち行列 - アルゴリズムとデータ構造 | ++C++; // 未確認飛行 C
8.4. heapq — ヒープキューアルゴリズム — Python 2.7ja1 documentation
プログラミングⅡ
Skew Heap - Lilliput Steps
今週の MYOS - 借り初めのひみつきち

Digdag

Digdag | Open Source Workflow Manager for the Multi-Cloud Era
treasure-data/digdag: Workload Automation System
ワークフローエンジンDigdagのまとめ - Qiita
Treasure Data社のOSSワークフローエンジン『Digdag』を試してみた #digdag | Developers.IO
Digdagを使ってワークフロー管理を行う — | サイオスOSS | サイオステクノロジー
EmbulkとDigdagとデータ分析基盤と
Digdag + embulk + BigQuery + Re:dash でデータ分析基盤構築の夢を見る - 雑なメモ
Jenkinsの無秩序なジョブをDigdagで再定義する - log.fstn
ワークフローエンジンDigDagのサーバ/クライアント構成を試してみる - techium

Linux

SchedViz

Google Opens Up "SchedViz" To Visualize Linux Kernel Scheduling Behavior - Phoronix
Understanding Scheduling Behavior with SchedViz | Google Open Source Blog
google/schedviz: A tool for gathering and visualizing kernel scheduling traces on Linux machines

stalld

FadisさんはTwitterを使っています 「Red Hatの人が新しいデーモンstalldを作っているらしい。stalldは全プロセスのスレッドの実行状況を監視し、一定期間実行されていないスレッドを見つけるとそのスレッドのスケジューリングポリシーを一時的にSCHED_DEADLINEにすることで飢餓状態を回避する https://t.co/1MVG4peof6」 / Twitter
Red Hat Has Been Working On "stalld" As A Thread Stall Detector + Booster - Phoronix
FadisさんはTwitterを使っています 「それはユーザ空間デーモンでやることなのか、という気がせんでもない」 / Twitter
住民さんはTwitterを使っています 「@fadis_ コメントに中の人?が降臨してますが、FIFO/RRのリアルタイムスケジューリングでstarveするのを防止のようで適用範囲は比較的狭そうですね。 あとカーネルでやろうとしてたけど、ほかのスケジューリングポリシーなど壊さずにやるの大変辛かったと書いてますね(わかりすぎる」 / Twitter

Twitter

linux-sched-history.pdf - Speaker Deck
Fadisさんのツイート: "タスク: カーネルのスケジューリング単位。昔のカーネルではプロセスと同義だったが、現在(2.6系以降)はプロセスまたはその中のスレッド1つを指す #kernelvm"
Fadisさんのツイート: "linux-0.01ではNice値を変更するとタイムスライスが増減する。驚くべきことにrootでなくても負数が指定でき、しかも果てしなく大きな値を設定できる為、一般ユーザが巨大なタイムスライスを手に入れられる #kernelvm"
Fadisさんのツイート: "linux-0.01は全タスクを舐めてタイムスライスが最大のタスクを実行する。タイムスライスがどれも残っていなかったら全てのタスクに150ミリ秒のタイムスライスを与える。sleepしたタスクにはちょっとボーナスを与える #kernelvm"
Fadisさんのツイート: "linux-0.01のスケジューラは20行程度のラウンドロビンスケジューラ。64要素の配列でそれ以上タスクは作れない #kernelvm"
Fadisさんのツイート: "このスケジューラでは必要な処理がタスクの数に比例する為、最大64ならなんとかなるけどたくさんのタスクを抱えられるようにしようとすると使い物にならない #kernelvm"
Fadisさんのツイート: "linux-1.0でプリエンプションが登場、root以外の負のniceも禁止に #kernelvm"
Fadisさんのツイート: "linux-2.0ではランキューがリストになったが、スケジューリングに全てのタスクを舐める必要がある点は変わらないままだった。またlinux-2.0からSMPのサポートが追加された。 #kernelvm"
Fadisさんのツイート: "linux-2.0のランキューはSMPであっても1本で、1本のキューから全てのCPUがタスクを拾っていた #kernelvm"
Fadisさんのツイート: "linux-2.2 linux-2.4ではlinux-2.0からスケジューラの変化はあまりなかった #kernelvm"
Fadisさんのツイート: "linux-2.6でO(1)スケジューラが登場。キューをactiveとinactiveに分けることで、activeの先頭には常に実行すべきタスクが来ている状態にする事で、キュー全体を舐めなくても実行すべきタスクを決定できるようにした #kernelvm"
Fadisさんのツイート: "人間が直接やりとりするタスクが後回しになるともっさりして見える → linux-2.6では短時間のうちにsleepする事が多いタスクを対話型タスクとみなして、起きて来たときに優先的に実行するようにした #kernelvm"
Fadisさんのツイート: "linux-2.6ではタスクの操作時のロックで全CPUが詰まるのを回避するために、LCPU毎にランキューを持つようになった。この結果、ランキューがたまっているLCPUからランキューが空いているLCPUにタスクを移動させるロードバランサが必要になった #kernelvm"
Fadisさんのツイート: "NUMAが現れたため、ロードバランサが2段階になった。まずNUMAノード間でのバランシングを行い、次にLCPU間でのバランシングを行う #kernelvm"
Fadisさんのツイート: "linux-2.6では複数のタスクがメモリ空間を共有できるようになった。これを使ってユーザ空間でのエミュレーションではないスレッドが作れるようになった #kernelvm"
Fadisさんのツイート: "CentOS3のカーネルはLinux 2.4だが中身が総とっかえレベルで魔改造されていて何故かO(1)スケジューラが使える。このカーネルの保守が辛すぎたため、最近はどこディストリもこういうことをしていない #kernelvm"
Fadisさんのツイート: "O(1)スケジューラは場当たり的な改良が多すぎて、意図しない動きをする → linux-2.6.23でCFS登場。ランキューは赤黒木になって計算量はO(log(n))に。全てのタスクはレイテンシターゲット期間中に1度はCPUを得られる(飢餓状態の回避)"
Fadisさんのツイート: "O(1)スケジューラではインターバルタイマーを使っていたが、この方法で制度を上げると割り込みのオーバーヘッドにCPUを持っていかれる → CFSではタスクを切り替えるべき時刻にタイマーをセットする為、不必要に割り込みが増えず、ナノ秒精度での制御が可能に #kernelvm"
Fadisさんのツイート: "cgroupが登場、全てのタスクで時間を割る前に、特定のグループの中でタスクの中で時間を均等に割る事ができるようになった #kernelvm"
Fadisさんのツイート: "linux-2.6.25でcgroupを応用してリアルタイムタスクが暴走して帰ってこなくなった場合にリアルタイムタスクでないタスクが全く動かなくなる問題を回避できるようになった #kernelvm"
Fadisさんのツイート: "カーネルの重要な処理が優先度最大のユーザタスクと同じ優先度になっていた為重要なカーネルタスクが押しのけられる事があった → linux-2.6.37でstop scheduling classが追加された。カーネルのみがあらゆるユーザプロセスより優先されるタスクを作れるようになった #kernelvm"
Fadisさんのツイート: "linux-3.2 CFS bandwidth controllerが登場、CPU cgroupがある期間中に動ける最大の時間を制限できるようになった。たとえ、他のタスクがなくてCPUが暇していたとしても、実行中のタスクがCPUを使う時間を制限できる #kernelvm"
Fadisさんのツイート: "linux-3.14で deadlineスケジューラが登場、指定した時間のCPUの割り当てが指定した時刻までに行われることを保証するタスクをrootのみが作れるようになった #kernelvm"
鹿さんのツイート: "cpu migration でずっと気になっていた「すぐ死ぬタスクをバランスしても無駄じゃない?」を専門家に聞けてとても良かった。 研究はあるけど、ヒューリスティックになるので、コーナーケースが出てくる。裏をかく人もでてくる。なので、今の Linux には入っていない。なるほど。 #kernelvm"
Fadisさんのツイート: "詳解Linuxカーネル第3版には100msごとにタスクを切り替えるとかactive/inactiveとか書いてあるけど、この10年でカーネルのスケジューラはごっそり書き換わった為ほとんど間違っている、と #kernelvm"
Fadisさんのツイート: "CFSは一定期間をタスクの数で割ってプロセスに時間を与えていくが、あまりにもタスクが多い場合コンテキストスイッチのオーバーヘッドだけで時間を使い切ってしまう事になる為、一度タスクの実行が始まったらコンテキストスイッチせずに使えるCPU時間の最低値が設けられている #kernelvm"
Fadisさんのツイート: "ロードバランサ: ランキューがプロセッサごとに用意されている為、ランキューが伸びているプロセッサと空いているプロセッサが生じる → プロセスが増えたり減ったり、プロセッサがやる事がなくなってしまった時にロードバランサが忙しいプロセッサのタスクを暇なプロセッサに移動させる #kernelvm"
Fadisさんのツイート: "レイテンシターゲットを短くすると応答性が良くなるがコンテキストスイッチの頻度が上がってスループットが下がる。LCPUの数が多い場合暇なLCPUがある確率が高くなる為、レイテンシターゲットを伸ばしても応答性が損なわれにくくなる。→LCPU数に比例してレイテンシターゲットを伸ばそう #kernelvm"
Fadisさんのツイート: "CPU affinityとcpuset cgroup: コンテナが使用して良いプロセッサを制限したり、特定のCPU上で動かす事に意味がある処理を確実にそのプロセッサ上で動かすために、タスクを動かして良いプロセッサを制限する #kernelvm"
Fadisさんのツイート: "同一コア内のスレッド(HT)間、同一NUMAノード内のコア間、同一ソケット無いのNUMAノード間、同一ホスト内のソケット間、でのタスクの移動はコストが違う為等価に扱う事ができない→ ロードバランサは階層化されている #kernelvm"
Fadisさんのツイート: "変態アーキテクチャAMD EPYC7601の場合、2物理 * 4ダイ * 2CCX * 4コア * 2スレッド (1ソケットに複数のダイが載っている) #kernelvm"
[試して理解] Linuxのプロセススケジューラのしくみ - Speaker Deck
まさみさんは語りたいさんのツイート: "マルチテナントRDBをコンテナで動かすとき、unprivilegedなコンテナを使うと、一部のプロセスをRTタスクに出来なくて困るっていう話をオラクルがしてる。面白い。"
まさみさんは語りたいさんのツイート: "cgroupsで予め制限してる場合は許可する、というアイデアが出ていて、これは良さそうに見える。シンプルだし一貫性がある。"
まさみさんは語りたいさんのツイート: "RTプロセスがコンテナ内で動かせないのはちょっと制御向けにも困るかも。"
satさんのツイート: "linux 2.6.23以前は特定の挙動(無限ループよりもうちょっと凝ったやつ)をするプロセスを20-30個ほど立ち上げればシステムを事実上ハング状態にできたのじゃよ"
Fadisさんのツイート: "一部のCPUの排熱が追いつかなくて最大動作周波数を下げても、その事を知らないLinuxのスケジューラが容赦なくタスクを投げてきて結果としてタスクの完了が遅れるのイケてないから、温度をスケジューラの判断材料にしようという試みがなされているらしい (リンク先有料記事) https://t.co/7vKxG5oVi8"
Fadisさんのツイート: "Linuxカーネルは起動時にチップセットのタイマーが動く事を確認するけど、ナウいIntel CPUとナウいチップセットではタイマーが消費電力を抑える為に使う事を明示しないと動かないようになっていて、割り込み返ってこなくてカーネルがpanicする問題が解消された話 https://t.co/qjnpC8nN1x"
The Linux Kernel Getting Fixed Up For Booting On Some Intel Systems - No "8254" - Phoronix
FadisさんはTwitterを使っています: 「Stadiaでゲームを作っている人が「Linuxのスケジューラの性能が悪いせいでStadiaのゲーム作るのが辛い」というベンチマークを出していたの対してLinus Torvalds氏が「指摘は間違っている。計測方法に問題があり無関係な物を測っている。純粋なるゴミ」という解説をしている話 https://t.co/yIXR6bNIMp」 / Twitter
Torvalds' Comments On Linux Scheduler Woes: "Pure Garbage" - Phoronix
FadisさんはTwitterを使っています: 「ゲーム屋さん、いつでも処理が16ミリ秒以内に完了しないと死んでしまう呪いがかかってるから、ミリ秒オーダーで遅れる事があるほげふがを回避する為に変な事しだすのは、実際よくあるんだよな」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「クラウドサーバ提供ベンダー(DigitalOcean)が、Linuxのスケジューラを弄って、安全なスレッドペアのみ同一コアSMTで実行、という改変をした話、、、ただ劇的な改善ではなさそう。 (あと個人的にはここのクラウド、spam業者御用達なイメージある) https://t.co/x92Azmlhei」 / Twitter
DigitalOcean & Others Still Working On Core Scheduling To Make Hyper Threading Safer - Phoronix
井山梃子歴史館さんはTwitterを使っています 「LKML: Peter Oskolkov: [PATCH for 5.9 0/3] FUTEX_SWAP (tip/locking/core) Gのユーザレベルスケジューラ、switchtoと呼ぶらしい https://t.co/kXZSPOkMa2」 / Twitter
LKML: Peter Oskolkov: [PATCH for 5.9 0/3] FUTEX_SWAP (tip/locking/core)

2013年7月4日 Linux 3.10登場 ─SSDキャッシング,マルチタスキング,Btrfsなど注目機能搭載:Linux Daily Topics|gihyo.jp … 技術評論社
2017年5月1日 Linux 4.11が正式リリース,プラガブルI/Oスケジューラ,Gemini Lakeのサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
Linuxのしくみを学ぶ - プロセス管理とスケジューリング
Linux スケジューラーのコア実装とシステムコール
【論文紹介】The Linux Scheduler: A Decade of Wasted Cores (2016)
[2017.03.21] システム系輪講会 (nhiroki) - Google スライド
Linux スケジューラーのコア実装とシステムコール - Qiita
stolk/ThreadTracer: Lightweight inline profiler that measures wall-time, cpu-time and premptive context switches for threads.
Linux のハードウェアタイマーの話 - NyaRuRuが地球にいたころ
産総研:高精度な実時間OS「ART-Linux」を公開
【Linux】Load Averageに関するいろは - Qiita
Fadisさんのツイート: "これな、待ちプロセスが多いとロードアベレージは上がっていくから、経験則で「ロードアベレージいくつ以上はヤバい、アラートだ」みたいなイカれた監視がなされたサーバで、監視に検知されないギリギリのプロセス数で制限するコードを書く羽目になったりな…"
タスクスケジューラ用のsysctlパラメタ - Qiita
【読解入門】Linuxカーネル (スケジューラ編その3-3) - Qiita
Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ
2020年6月2日 Linux 5.7がリリース ―サーマルプレッシャー,exFAT,iOS用USBドライバなど:Linux Daily Topics|gihyo.jp … 技術評論社

Windows

Windows XP/Vista のスレッドスケジューラと Hyper-Threading - NyaRuRuが地球にいたころ
Windows Vista: Multimedia Class Scheduler Service - NyaRuRuが地球にいたころ
Multimedia Class Scheduler Service (MMCSS) (1) - NyaRuRuが地球にいたころ
Multimedia Class Scheduler Service (MMCSS) (2) - NyaRuRuが地球にいたころ
Multimedia Class Scheduler Service (MMCSS) (3) - NyaRuRuが地球にいたころ
MMCSS とネットワークパケット受け取りの抑制 - NyaRuRuが地球にいたころ
GiB Age - NyaRuRuが地球にいたころ
Windows のハードウェアタイマーの話 (1) - NyaRuRuが地球にいたころ
Windows のハードウェアタイマーの話 (2) - NyaRuRuが地球にいたころ
Windows のハードウェアタイマーの話 (3) - NyaRuRuが地球にいたころ
プリエンプティブなスレッド切り替えの時間共鳴 - NyaRuRuが地球にいたころ
Windows 7/Windows Server 2008 R2 が 256 プロセッサまでしか "対応" しない理由を予想する - NyaRuRuが地球にいたころ
佐祐理ブログ: Windowsの各種Timerの精度について
処理速度の遅いcurrentTimeMillis() – 前編 | POSTD
処理速度の遅いcurrentTimeMillis() – 後編 | POSTD
Masaru Iritaniさんのツイート: "英語の記事ですが、Windows カーネルのスケジューラーがどう進化してきたか詳細に説明されています。1792 論理コアを表示するタスク マネージャーは圧巻です。 https://t.co/e44pBEol77"
One Windows Kernel - Microsoft Tech Community - 267142
Windows 95ではマウスカーソルをぐるぐると動かすと処理速度が早くなることがあった - GIGAZINE
ASCII.jp:基礎から覚える 最新OSのアーキテクチャー

OSDN

「Linuxカーネル3.12」リリース | OSDN Magazine
Linuxカーネル3.13リリース、nftablesやブロックデバイスレイヤーの改良などが特徴 | OSDN Magazine
新たなSSDキャッシュ「bcache」を実験的に導入、Linuxカーネル3.10が登場 | OSDN Magazine
Linuxカーネル4.11リリース、プラガブルなI/OスケジューラやSSD向けスワップ機能などを実装 | OSDN Magazine

Wikipedia

コンテキストスイッチ - Wikipedia
スケジューリング - Wikipedia
Scheduling (computing) - Wikipedia
FIFO - Wikipedia
ラウンドロビン・スケジューリング - Wikipedia
多段フィードバックキュー - Wikipedia
Earliest Deadline First - Wikipedia
Least Slack Time - Wikipedia
レートモノトニックスケジューリング - Wikipedia
優先度つきキュー - Wikipedia
リングバッファ - Wikipedia
優先順位の逆転 - Wikipedia
Bulldozer (マイクロアーキテクチャ) - Wikipedia

Qiita

Linuxの各タスクにおけるスケジューリング統計情報 (procfs) - Qiita
科学実験のようにスケジューラの挙動を確認する - Qiita
Linuxのschedのpriorityとリアルタイムシステムについて - Qiita
科学実験のようにスケジューラの挙動を観測する - Qiita
linuxカーネル4.1のプロセススケジューラ(ドラフト) - Qiita
Linux スケジューラーのコア実装とシステムコール - Qiita

Twitter

その他

なかのん DAYS''さんはTwitterを使っています: "OS X、久々に触ると、やっぱ、アクティブなウインドウのプロセスの優先度が高くならないのがWindowsユーザからすると不便というか違和感というか。"
とみながたけひろさんのツイート: "15年前に作ったカーネルはカーネル・割り込みハンドラ内でもFPU使えるしFPUレイジーコンテキストスイッチもやってたけど、5年前の奴は「もうSIMD使うのが前提でコンパイラが最適化してくるから」ってのでレイジーはやめたな(もちろんカーネル内でSIMD使えるようにしてた)"
NetBSD ドキュメンテーション: どのように lazy FPU コンテキストスイッチは動作するのか
酔漢@ニャー将棋さんのツイート: "コンテキストスイッチ、割り込み出入り口は可変長例外フレーム対応、レイジースタッキング対応になった。例外は可能なかぎりレイジースタッキングを壊さないので、割り込みハンドラ内部で浮動小数点演算をしなければ、オーバーヘッドは小さいまま。"
K.Namba/ご注文は910ですか?さんのツイート: "Windows の Kernel でストレージを動かそうというのは、やはり無駄が多すぎるのではないか・・・ 限界まで専用化された NAS OS には敵わないよなー。 ストレージ向けのスケジューリング/コア割り当てなんかが出来るようになるともう少しよくなるかもしれない。"
Nerry@さんのツイート: "HIDがビジーループに入るとメインスレッドがなぜか死ぬと思ったらHIDスレッドがyieldしないでpreemptionされるまで動くことによってメインスレッドが期待するtickの値がスキップされていた"
ysksさんのツイート: "なぜ macOS/iOS の CPU は 100% にならないのか。その謎を解明するため取材班は XNU アマゾンの奥地、MULTIQ スケジューラ遺跡に向かった。 https://t.co/zC6r6WoFHX"
sched_multiq.c
SODA Noriyukiさんのツイート: "どこかで同期とるような並列プログラムだと、一番遅いプロセスに足を引っ張られるので、同じ処理やってて実行時間がバラつくのは大問題なのよね。McKernel が解決しようとしてるのもそこ。"
まさみさんは語りたいさんのツイート: "SMTをOSレベルでずっとHALT状態にしておいて、カーネル内の小さい並列化できるタスク動かすのだけに使えないかな。メモリコピーとか。(つまりソフトウェアDMAエンジン)"
まさみさんは語りたいさんのツイート: "一部のセキュリティ問題でHTとかSMTが阻害されるのはもったいない。ユーザ空間のスレッドに関しては同一コア上のHT/SMTを利用できる(ただしどちらかがシステムコールに入るともう一方は抑制されるか別コアに送られる)とか。"
Nerry@さんのツイート: "プリンプションのペナルティ実装したらウィンドウマネージャーがウィンドウの再描画移譲受けてる関係でちょっと重いウィンドウあると常にペナルティ受けててうーん"
Susumu Yamazakiさんのツイート: "私たちがした実験でも,1コアを絞り出さなくても並列にすることで劇的に性能は上がります。一見意外なことに,そもそも並列にするとどうしても1コアあたりのパフォーマンスは落ちます。実はこらはアムダールの法則で説明できます。… "
鹿さんのツイート: "> 1コアの処理能力を絞り尽くして初めて並列処理という話になってくる。 全然そんなことないから、これだけ読んで勘違いしないで欲しい。 1コアの50%しか使ってなくても、shared nothingな構成で8コア並べたら、1コアを使い切った場合に比べて性能4倍。 CPUを使いこなすより並べる方が安い時代。… https://t.co/omYxaz0X4z"
Igaguriさんのツイート: "多分この人が思っているのは並行処理であって並列処理ではない。 並列処理は計算がボトルネックになっている処理を高速化するためにコアを複数使うことで、そもそも1コアの処理能力を絞り尽くして初めて並列処理という話になってくる。 関数型や論理型で実際のCPUやGPUの能力を絞り尽くすのは困難。… https://t.co/Z9FuFt4jmQ"
LAL(Light AI Lab)さんのツイート: "Elixirで並行処理、並列処理を書いてみて、並列の時代の到来を実感しました。並列を活かすためには関数型プログラミング、論理型プログラミングへジワジワとパラダイムシフトしていくだろうと私は予想しています。若いエンジニアの方々はElixirの並行処理を学んでおけば、職場で重んじられるのでは?"
社会人でもOSを作りたいさんのツイート: "OSに求められる役割の一つであるリソース分配は,上に乗るアプリによって方針が変わる.ユーザ単位でフェアに分配するのか,プロセス単位でフェアに分配するのか,システムプロセスの優先度を上げるかどうか,とかも. #osdev_moku2"
デダルス・ユメノさんのツイート: "メモ:work-conserving schedulerとは,実行可能ジョブがある限り,制御対象のリソースを常に稼働させるように制御するようなスケジューラのこと。うまくジョブの順序とかを入れ替えたりしてリソースがフル稼働するように制御する。"
Hideyuki TanakaさんはTwitterを使っています: 「&gt;The runtime measures the time it takes to perform the blocking operation and if it takes a while, a new thread is automatically spawned and replaces the old executor thread. はぇぇ(´・_・`)」 / Twitter
Hideyuki TanakaさんはTwitterを使っています: 「てかこれ別にブロックしてなくてもasyncって書いてある関数が実行に時間かかってるなーって感じだったら勝手にスレッド作って元の関数の続きを実行し始めるんすか?」 / Twitter
Hideyuki TanakaさんはTwitterを使っています: 「いい加減なタスク並列をいい感じのスレッドプールでほとんど何も書かなくても並列化してくれたりするん?(´・_・`)」 / Twitter
Miura HidekiさんはTwitterを使っています: 「これ見て驚いた。そういやjemallocでもロックの競合状況みて競合しているようならarena増やすみたいなことをやっていたな。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「まぁそうでなくてもOSのスケジューラがゲームみたいなイベント駆動型のソフトウェアに強く影響を与えるなんてのはほとんどありえないよ。 だからずーっとOSレスな業界だったでしょ? https://t.co/d2M9Sr81OM」 / Twitter
【イベントレポート】【速報】Intel、第10世代Core後継「Tiger Lake」の実機を初公開 ~10nm+プロセス/Thunderbolt 4/Xe GPU内蔵で2桁%性能向上 - PC Watch
Miura HidekiさんはTwitterを使っています 「これを見て、マルチスレッドの自動分散を連想した。自動分散をおこなうにはスレッドの負荷状況を調査する必要があるけど、そればっかりやっていると遅くなる。jemallocのロックの競合割合から推定するとか賢い方法があるといいのだが。」 / Twitter
mattnさんはTwitterを使っています 「@miura1729 今はコンテキストスイッチ重そうですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@mattn_jp 確かに」 / Twitter
mumumuさんはTwitterを使っています 「Slite: OS Support for Near Zero-Cost, Configurable Scheduling [RTAS '20] システムのスケジューラがユーザランドにいて(Kernel Bypass),各スレッドはKernelがActivateされた時に(Lazyに)帳尻合わせをすることで,高速かつ柔軟(ユーザランドでAppに合わせTune可能)なRTOS向けスケジューラを実現」 / Twitter
mumumuさんはTwitterを使っています 「Arachne: Core-Aware Thread Management [OSDI '18] 短時間・大量に実行されるスレッドで動作するタイプのAppが,自身の変化(ワークロード変化に追従するためコアを欲しがる等)や周囲の変化(他のシステムの処理増加によるコアの取り上げ等)に柔軟に対応するための調停プログラム/runimeを実装」 / Twitter
mumumuさんはTwitterを使っています 「Demand-based coordinated scheduling for SMP VMs [ASPLOS '13] 前半でIPIがマルチスレッドAppの同期/通信の調停に使われていることを定量的に示し,後半でFairnessを損なわないようにIPIをvCPUのスケジューリングに組込む方法を述べてた気がする.前半はThe サイエンスという感じで結構面白かった.」 / Twitter
mumumuさんはTwitterを使っています 「Reconciling High Server Utilization and Sub-millisecond Quality-of-Service [EuroSys '14] 複数のLatency-Sensitiveなタスクを一つのサーバでホストするときに問題となる原因(Interference, スケジューラの問題,load imbalance など)を検証し,その対策を検討した.*サイエンス*を感じる論文」 / Twitter
mumumuさんはTwitterを使っています 「ROSCH:Real-Time Scheduling Framework for ROS ROSのノードをリアルタイム動作させるために,DAGスケジューリングや同期機構などを実装した話.RTOSでROSを動作させる等いろいろ方法はあると思うけど,Linux上で実装しているのは面白い.あと評価で某自動運転ソフト使っていたので良さがある.」 / Twitter
mumumuさんはTwitterを使っています 「Affinity-Aware Dynamic Pinning Scheduling for Virtual Machines [CloudCom '10] VM上のOSがAffinityに基づくスケジューリングができるように(というかAffinityの意味があるように),pCPU Run Queue対して動的に選択したvCPUをPin. https://t.co/jKUQFGBHXb」 / Twitter
Affinity-Aware Dynamic Pinning Scheduling for Virtual Machines - IEEE Conference Publication
mumumuさんはTwitterを使っています 「Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance [ATC '20] 最近はコアごとに動的に周波数が変わるが,しばしば周波数が低いコアにタスクがあり,周波数が高いコアがアイドルしてしまうことがある. https://t.co/2TraqYUbSo」 / Twitter
Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance | USENIX
mumumuさんはTwitterを使っています 「@shirouzu いえ,自分の理解では 1. よく動いているコアでfork 2. となりの遅いコアで子プロセスが動き始める(遅い 3.よく動いているコアはwait()して,結局そのコアはidle 4.スケジューラはそれに気が付かずRESCHEDしないから,遅いコアで子プロセスが動き続ける みたいな感じです.」 / Twitter

コンテナ

🚀GRIMM・ZOU🐘さんのツイート: "ISUCON7優勝者と社内ISUCONに出て学んだ12のこと - ps aux | grep serinuntius https://t.co/tfnvd3HCVg dockerが本当にボトルネックなのかという質問(?)があったので検証してみました。結果としてはdockerから剥がすだけで100万点から144万点に上がりました。"
はてなブックマーク - ISUCON7優勝者と社内ISUCONに出て学んだ12のこと - ps aux | grep serinuntius
satさんのツイート: "コンテナだと仮想化よりもカーネルのスケーラビリティの問題を引きやすいってところか"
Guutara (⁰⊖⁰)さんのツイート: "それは、コンテナだからってことなんすか? プロセスのスケーラビリティの問題点だけど、コンテナの方がそれを引き起こしやすい、あるいは、引き起こしたときに、わかりにくいって話? VM との対比は、たぶん、理解できたと思うのだけど...… "
satさんのツイート: "コンテナのほうが起きやすい、起きてもわかりにくいって話ですね。 例えば10000プロセス同時進行で問題の出る処理があったとしてコンテナなしで10000プロセス同時進行になるより100コンテナで100プロセスが同時進行のほうが起こりやすい、かつ後者はコンテナのしくみがわかってないと理解できないので… https://t.co/0pwFzhq76i"
まさみさんは語りたいさんのツイート: "Dockerコンテナ、ネットワークについては名前空間が分かれているのでスケーラビリティ問題は解決するものの、分かれていない所は無理だもんなあ。"
まさみさんは語りたいさんのツイート: "OSを名前空間っていう取ってつけた仕組みで共有するので、リソースの競合が発生するところは発生する。競合によって性能が劣化する場合もあるし、複数のコンテナを動かすというところで発生しやすくなると思うが、この辺りってコンテナホスティングしていた運用会社にはノウハウ溜まってるんじゃない?"
まさみさんは語りたいさんのツイート: "コア数の多さでスピンロックなどの競合が起きやすくなるんだけど、例えば仮想サーバを使ってOSをコアごとにある程度分離すると、実質的にロック競合の発生しやすさは下がる。逆にコンテナを使ってOSを共通で使うと、共通リソースに対するロック競合の発生しやすさは変わらないだろう。"
まさみさんは語りたいさんのツイート: "実際にはリソースの使い方が変わるから、例えばプロセス数が単純に増えるから、一部リソースに対するロック競合は却って増えると想定できる。"
まさみさんは語りたいさんのツイート: "コンテナ毎のプロセスのスケジューリングを階層化すればあるいは・・・。"

リアルタイム性

satさんのツイート: "linuxのスケジューラの古いやつ(2.6.23以前)と今のやつの違い - 動的優先度は無い - activeキューとinactiveキューなんて区別は無い - nice値ごとの固定タイムスライスではない - sched_yield()は自分自身を再度スケジュールすることが多い"
satさんのツイート: "あと若干話しがずれるけど、いまのlinuxのスケジューラだとsched_yieldでコンテキストスイッチ狙う手はほぼ通用しないっすよ。ほぼnop"
まさみさんは語りたいさんのツイート: "リアルタイムプロセスでもそうだっけ?… "
satさんのツイート: "リアルタイムは別ですね。O(1)時代のままで、複数RT taskがいればyieldで次のタスクに制御が移ります。… "
まさみさんは語りたいさんのツイート: "ですよねー。結局ノーマルアプリはスケジュールとか考えるなと。… "
satさんのツイート: "SCHED_OTHER: リアルタイムではない SCHED_{FIFO,RR}: リアルタイムのふりをしている何か SCHED_{DEADLINE}: リアルタイムに似た何か"
satさんのツイート: "リアルタイム性ってスケジューラだけでどうにかなるもんではなくて割り込み使ったら負けとかいろいろありますからねー"
まさみさんは語りたいさんのツイート: "何を以てリアルタイムというかは、人によって違うというか、誤解してる人が多数いますからね。特にRTOS村の住人…… "
Satoru Uedaさんのツイート: "https://t.co/9y3FbRKczl とりあえず、こんなのを・・・。 #celfjp… "
Frequently Asked Questions - RTwiki

@rockridge07

Rockridgeさんのツイート: "記事の後半にQuantum DOMの解説がある。Firefoxのプチフリ発生を抑えるため、DOM処理をスケジューリングしてマルチスレッドで行う仕組みを、OSに頼らず自前で用意するらしい。 / “Mozilla’s Quantum…” https://t.co/gbCBfFhOH4"
Rockridgeさんのツイート: "Chrome 57ではバックグラウンドのタブのCPU利用率を制限する措置が導入され、これにより消費電力が減った。ただし、音声の再生やWebRTCのコネクションは従来通りだという。 / “Chromium Blog: Reduci…” https://t.co/24L1khCCtd"

@makoto_kato

Makoto Kato ︎︎さんのツイート: "Windows 10の最新カーネルだとHeterogeneous Schedulingサポートしてるのか (要はbig.LITTLEみたいな構成)"
Makoto Kato ︎︎さんのツイート: "https://t.co/1VPmrML5HO Windows internalの最新版にbig.LITTLE用の機能について記述されてんのに何言ってんだろうか。こういうライターって勉強足りないよね"

@kazuho

Kazuho OkuさんはTwitterを使っています: "H2O の http2 スケジューラを改善して分かったんだけど、128段までの priority queue だったら、今時ヒープ使わないほうが良さそう"
Kazuho OkuさんはTwitterを使っています: "linux の CFQ も、なんで red-black tree なんだろという疑問。リングバッファにできないほど優先度の幅が広いのかしら"
Kazuho OkuさんはTwitterを使っています: "@kazuho あー s/CFQ/CFS/"
Kazuho OkuさんはTwitterを使っています: "http://t.co/UTau7Sn2p5 を見ると linux の O(1) スケジューラは weighted fair queuing じゃなかったぽいな。それなら CFS のが公平性でのメリットがありそう"
Kazuho Okuさんのツイート: "HyperThreadingの影響を考慮したベンチマーク(つまり、1つの物理コアに2つのスレッドを固定した状態のベンチマーク)をとりたいんだけど、macOSだと無理なのかな..."
Kazuho Okuさんのツイート: "https://t.co/Bje8kGJnZj 確認しましたが hinting API ですね… "
Affinity API Release Notes for OS X v10.5

CPU・GPU 使用率の計測

CPU 使用率に応じて CPU 周波数を動的に設定

Homepage Johannes Hofmann - estd
ryo/estd: estd with temperature limit feature. (forked from http://flpsed.org/estd.html)

PC Watch

プレビュー版Windows 10のタスクマネージャーに“GPU”が追加 ~プロセスごとのGPU使用率などを確認可能に - PC Watch
タスクマネージャーに新設されたGPUのパフォーマンストラッカーを改良 ~プレビュー版Windows 10「Build 16237」 - PC Watch
Windows 10プレビュー版タスクマネージャーのGPU表示が“マルチエンジンビュー”に変更 - PC Watch
Windows 10 RS5のタスクマネージャーでアプリの電力使用量が確認可能に - PC Watch
Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
【福田昭のセミコン業界最前線】不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 - PC Watch

窓の杜

「Windows 10 RS5」の「タスク マネージャー」は電力を浪費するプロセスの特定も可能 - 窓の杜
タスク マネージャーがさらに強化された「Windows 10 Insider Preview」Build 16241 - 窓の杜
「タスク マネージャー」に新機能“エコモード”、Edgeのプロセス分類も ~プレビュー版Windows 10でテスト開始 - 窓の杜

blog

LinuxでCPU利用率を取得する
CPU使用率は間違っている | Yakst
タスクマネージャに表示されるメモリ使用量 - NyaRuRuが地球にいたころ
htopコマンドで覚えておきたい使い方11個 | 俺的備忘録 〜なんかいろいろ〜
topコマンドで覚えておきたい使い方14個 | 俺的備忘録 〜なんかいろいろ〜
インフラのボトルネックについて知る - ぺい
アクティビティモニターの作り方 - 借り初めのひみつきち

Twitter

satさんのツイート: "CPU統計情報の%stealってよく考えたらひどい単語チョイスだな。むしろお前がhostからCPU取ってるんだろうがという"
SODA Noriyukiさんのツイート: "@ksmakoto load average は、(実行中or実行待ちのプロセス数)+(disk I/O中 or disk I/O待ちのプロセス数) の移動平均ですから、4core CPUのうちの2core が CPU使用率 100% で回ってる状態(すなわち CPU能力の半分が遊んでいて暇な状態)… https://t.co/l37EDW4Qpg"
Shiro Kawaiさんのツイート: "すっごく面白い。色んなものをサンプリングで監視してるとグラフが振動しておおビート出てるなあと思うことはよくあるけどこんなに綺麗に説明がつけられると気持ちがいい。https://t.co/COfCSGkcYr"
Linuxのloadavgが約7時間ごとに上昇する現象の原因 - Mackerel ブログ #mackerelio
Shiro Kawaiさんのツイート: "エイリアシングを防ぐためにランダムにずらすって手法もあるけどこういう統計情報取る時はあんまりやらない方がいいのかな?"
モッチー@少年クリプト編集長さんのツイート: "Coinhive(コインハイブ)裁判の第二回公判 高木浩光氏の証人尋問も傍聴してきました。 今回も『弁護士ドットコムNEWS』さんがわかりやすくまとめてくれていますが、書かれていないことをスレにまとめていこうと思います。 https://t.co/wm2wVErPob"
コインハイブ事件 高木浩光氏が公判で証言「刑法犯で処罰されるものではない」 - 弁護士ドットコム
モッチー@少年クリプト編集長さんのツイート: "弁護側の証人喚問の内容はおおむね記事の通り。 しいて言えば高木氏いわく検察が言う『負荷』と『CPU使用率』は別物とのこと。 負荷とはスレッドの数であって、CPU使用率が高いからといって負荷ではないそうです。"
なかのん&マジックさんのツイート: "WindowsのタスクマネージャーのGPU使用率が10%いっていなくてもWMPで動画を再生してたらFirefoxの動作速度落ちたり、マウスカーソルの追随が怪しくなったりするけど、どういう理屈なんだろう。GPU周りまったく分かってない。"
Kazuho OkuさんはTwitterを使っています: 「使用率n%のキューにおいて、キューへの追加がランダムな間隔で発生する場合の平均待ち時間はいくら、っての定式化できそうっーか誰かやってそう」 / Twitter
みょうがさんはTwitterを使っています: 「@kazuho M/M/n 待ち行列っぽい」 / Twitter
dancerj 🗾さんはTwitterを使っています: 「@kazuho M/M/1待ち行列とかですか。」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「各所からツッコミが入ってるように(RT参照、ありがとうございます)待ち行列の平均待ち時間なので、例えば使用率80%なら、応答時間の期待値は使用率0%の場合の5倍である、ということになるのかしら。あってる?」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「CPU使用率80%がいかにヤバいか始めて身にしみた頭でっかちさんがこちらになります。経験はいっぱいあるのにね」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「あーだからcpuを複数にしたり、キューを処理するスレッドを複数にしたりすると使用率が高い場合でも改善が見られるのかな」 / Twitter
TamrinさんはTwitterを使っています: 「誰か世の中に蔓延る CPU 使用率に関する誤解を解いてくれと思ってたら、@pei0804 がそれらしき記事を書いてくれてた もっと書いてくれ https://t.co/7Rxk2pcJZR」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、昔から思ってるなぁ…SMTが一つの解だろうけど、さほど上手くいっているようにも見えず。 https://t.co/ZWkiMasyN3 NVDIMM-P でも、そのあたりの解決をどうするのだろう?と思いつつ…NANDストールの粒度だとOSスケジューラと連携すべきだろうなぁ。 https://t.co/a5gOuUovTH」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「NVDIMM-Pはメモリ操作にアウトオブオーダーや非同期的な動作をサポートする様子。 やはりOS側のページ操作でも、データがSSDにのみでDIMMにない場合は、ページフォルト的な仕組みを入れねば厳しそう。 「不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来」 https://t.co/lrZfYQrDif https://t.co/5HIhuEIwzA」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@shirouzu それに比べNVDIMM-Pは、局所性が落ちるとDIMMより桁外れCPUストールが発生しそうな印象。 (仮想記憶と違い、アンヒット時(flash参照時)にCPUは身動き取れないとするとHW/OS共々専用対応必須?) https://t.co/DCGq74hDuC」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「「SMTが一つの解」は、メモリストールで動かない時間を減らす、という意味。」 / Twitter
FadisさんはTwitterを使っています 「Linuxに新しい擬似FS statfsが提案されている。statfsはカーネルが収集した統計情報を読めるFS。現在そういう物はdebugfs等から生えているが、debugfsはrootしか気軽に読めない事、権限の変更を都度挟むのがミスの元な事、そもそもそれはdebugではない事から分離したいらしい https://t.co/FHABYjq6A3」 / Twitter
Statsfs: A Proposed Linux File-System For Kernel Statistics - Phoronix
Kazuho Okuさんのツイート: "tiptopコマンド知らなかった / “CPU Utilization is Wrong” https://t.co/rThFdwM531"
CPU Utilization is Wrong
κeenさんはTwitterを使っています 「これは本当に分かる。CPU使用率が100%のときに「で、これは本当に計算に時間かかってるの?」ってなって面倒くさいよね。 CPU Utilization is Wrong https://t.co/ed5Qi4HzP8」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「アプリの純粋な計算負荷のCPU100%が一番穏健で、割り込み多発が一番厳しいかな? (メモリ不足=スラッシングだとCPU100%にならないはず)」 / Twitter

インテル® パフォーマンス・カウンター・モニター - より優れた CPU 使用率の測定方法 | iSUS
CodeZine(コードジン)
CPU使用率とは|CPU利用率|CPU負荷率|CPU utilization - 意味/定義/解説/説明 : IT用語辞典
Windows 10のタスクマネージャーの新機能「GPUグラフ」が見当たらない理由とは:その知識、ホントに正しい? Windowsにまつわる都市伝説(107) - @IT
CPU Steal Time 入門 - Qiita
Windowsの「タスクマネージャー」を開発した本人が直々に使い方や知られざる機能を伝授 - GIGAZINE

I/O スケジューラ

単位

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの速度表示、MB/sとなっているのだが、実際は2^20なMiB/sでの値を表示している。 MiB/s に直すか、10^6な MB/s に変更するか、ちょいと迷い中。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "少し前に FastCopyでのサイズ表記をMB→MiBに変更したのだが、やはり気になる人は居る様子。 でも、MBをサポートするなら10^6計算にしないとなぁ。 https://t.co/AylO3FFOxk"
Shirouzu Hiroaki(白水啓章)さんのツイート: "『MBをMiBと正確に表記することは、「一杯の紅茶を飲んだ」ではなく「236.588mlの紅茶を飲んだ」と表記するようなもの』 なるほど、面白い(笑) https://t.co/hz0xSDno2A"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「どのストレージデバイスも、MB表記ばかりでMiB表記は見たことが無い」 うーん、それはベンダが大きな数で表記したいだけの話でして。 以前のFastColyはMiBで計算してMB表記するという、MS Windows方式なのでちょっと違うんですが、、、"
Shirouzu Hiroaki(白水啓章)さんのツイート: "配慮する場合、10^6でMB表記オプションを追加、ですね。 ちなみに、CrystalDiskMarkがその表記なので、以前のFastCopyだと、同じ実効速度でも低い値に表示されてしまうという、、、… "
Kengo Sawatsuさんのツイート: "これ、WindowsのエクスプローラがMBって書いてるのに実際はMiBなのもあって悲惨な状況ですよねぇ。 個人的には軽やかに意見をスルーして貰って、FastCopyがMiBを正しく布教してくれる先頭に立ってくれる事を願いますが。。… "
Kengo Sawatsuさんのツイート: "興味深い?ことなんだけど、Windowsでは1MB*8とか1MB*16とかがよいらしいけれど、Macでは逆で16MB*2とかで一つあたりのI/Oサイズを大きくして重畳数は2とかの方が性能が伸びるように見える"

I/O 優先度

Shirouzu Hiroaki(白水啓章)さんのツイート: "Vista以降、I/O優先度が設定できるのだが、Win10で優先度低にすると極端に転送レートが落ちる…あくまで他のプロセスI/Oを優先、として欲しいだけなのだが、デバイスのidle時間がやたらと増えるのは頂けない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "具体的には、SetPriorityClass(PROCESS_MODE_BACKGROUND_BEGIN) を発行するとデバイスidle時間が30%~50%くらいに増える。(発行しなければ100%)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "idleの話なので「発行しなければ0%」だった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "むむ、SetThreadPriority(THREAD_MODE_BACKGROUND_BEGIN) だとこんな挙動はしない様子。 MSDNにそんな記述は無いのだが(前述のプロセス版と同じ説明)。 まあ Win32 APIにありがちな話…そして次の将来版で挙動が変わるのもありがち(笑) https://t.co/43KMqs1CXb https://t.co/bi76H7ZOKC"
SetPriorityClass function | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんのツイート: "そして複数のプロセスで競合させ、I/O優先度がきちんと効いていることが確認できた。 (ただ、リソースモニターでは I/O優先度=標準と表示されてしまうのが困りもの)"

I/O・非同期・ノンブロッキング

Qiita

意外と知らないgoroutineのスケジューラーの挙動 #golang - Qiita
Go Binary Hacks - GoのシステムコールとGo本体のビルド #golang - Qiita
contextの使い方 - Qiita
Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
非同期 IO について - Qiita
Linuxにおける非同期IOの実装について - Qiita

Twitter

io_uring・AIO

Fadisさんのツイート: "Linuxカーネルにカーネル空間とユーザ空間で共有されるキューペアio_uringが追加されるらしい。これを利用するとI/Oの結果を受け取るのにシステムコールが不要になる為、Linux AIOより効率の良い非同期I/Oが可能になるらしい。将来的にはPoll Mode Driverも可能にしたいとの事 https://t.co/7yCllXCxSo"
Linux Kernel Getting io_uring To Deliver Fast & Efficient I/O - Phoronix
Fadisさんのツイート: "使われないことに定評のあるLinux AIOが使われないままオワコンになろうとしている…"
Fadisさんのツイート: "扱いが難しくてあまり使われないLinuxのAIOを拡張して、epollよりコンテキストスイッチを抑えられる新しいイベント待ちAPIを作ろう、という提案がなされている。提案しているのはScylladbの人で、これを使う事でSeaster I/Oフレームワークの性能が10%程向上する、としている https://t.co/l6JJovXcs5"
A new kernel polling interface [LWN.net]
suzakiさんのツイート: "io_uring https://t.co/g7OwEl0CRS システムコールを発行せずにI/O処理する、つまり、kernel Bypassならカーネルにマージされるコードはないと思ったのですが、(ほぼ)がポイントなのですね。… "
io_uring IO interface [LWN.net]
satさんのツイート: "めっちゃ雑に書くと 0. カーネル送信/受信キューの初期化。ユーザ空間にmmap 1. ユーザが送信キューのエントリにI/O要求を書く 2. ユーザがsyscall発行でI/Oをキック 3. カーネルがI/O処理 4. ユーザがI/O完了を確認 1,3,4は非同期なのでI/Oが出続けている限り2は省略できる というかんじです… https://t.co/02q3Y1iLRi"
Fadisさんのツイート: "io_uring、カーネルがキューをポーリングするようにしてシステムコールを完全に排除するモードの追加は今後の目標とかそんな感じだった筈"
Kazuho Okuさんのツイート: "io_uring、いつudpまわりも使えるようになりますか"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxで非同期I/Oを改良したio_uring、まだ試してないなぁ。 debian unstable を入れて試してみるかな。"
satさんのツイート: "すくなくとも5.1では使い物にならなかったです。それ(のうちのすくなくとも一部)をなおすdirty hackパッチを持ってますがまだ投稿に耐えるほど整形してません… "
satさんのツイート: "より正確に言うと機能にはいくつかモードがあって、一番高速なやつの挙動が怪しいです… "
FadisさんはTwitterを使っています: 「Linuxのio_uringででかいバッファの後ろの方に対してI/O要求を投げるとI/Oの完了がものすごく遅くなる問題の原因が特定、修正されたらしい。バッファの先頭に対する操作で10%程、末尾に対する操作で755倍程の性能の向上が見られた、とのこと https://t.co/KKiFtVdTDf」 / Twitter
IO_uring Gets A Huge Performance Fix - Up To 755x Improvement - Phoronix
FadisさんはTwitterを使っています 「samba-4.12がリリースされたらしい。このバージョンの目玉はio_uringに対応した事。io_uringはlinuxの今熱いシステムコールで、カーネルとユーザ空間の間にIO要求と応答の為の2本のキューを作り、IO要求毎にカーネル空間に移る必要を無くすことで大量の非同期IOを効率よく捌く https://t.co/UA085Q0ep7」 / Twitter
Samba 4.12 Released With Performance Improvements, IO_uring Support - Phoronix
ドッグさんはTwitterを使っています 「io_uring のキューをホストとゲストで共有することで仮想マシンでもベアメタルと同等の速度が出せるのか.すごい | 'IO_uring Passthrough For KVM Guests Is Yielding Fantastic Results' https://t.co/384FLF5yb6」 / Twitter
IO_uring Passthrough For KVM Guests Is Yielding Fantastic Results - Phoronix
Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「Linuxのsmbdに向かって非同期i/oで重畳を重ねるとかえって遅くなったりするなあ、最新のwin10クライアントとかでも微妙にある感じがしてたけど、これどっかでちゃんとまとめてレポート書かないといけないよな」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 そんなことあるんですねぇ… Linuxの非同期I/Oは(最近のio-uringは別として)、あまり使われないので枯れない、といった声は聞いたことありますね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「io_uring、マルチスレッド+epollで書かれたサーバプロセスで1スレッド1Gbpsとか余裕で出てNICがボトルネックになるので、全てのユースケースで意味のある技術ではないと思ってる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「極端なケース、たとえば、超遅い接続が大量にあって、受信するデータパケットが小さくて、1バイト読むのにsyscall 1個発行するみたいなケースだともちろん意味があるので、ワークロード次第」 / Twitter
Kazuho OkuさんはTwitterを使っています 「手元の QUIC の場合だと、10パケット毎GSOの条件で 5Gbps / 0.35 CPU thread とかだから、一般的なコンシューマ回線相手のHTTPだと、オーダは 1Gbps よりも 10Gbps / CPU thread に近いはず。こういうケースで io_uring に意味があるとは考えにくい(なので優先度下げてます) https://t.co/T2r1iQtfc0」 / Twitter
Improve AEAD performance through use of the fusion AES-GCM engine by kazuho · Pull Request #359 · h2o/quicly
FadisさんはTwitterを使っています 「Linuxのio_uringはブロックするしかないI/Oを処理するために特殊なカーネルスレッドを作ってプロセスに結びつけるが、gdbがこのスレッドを発見するけどアタッチ出来ない状態になって詰んでしまう問題が見つかり、このスレッドはユーザ空間からどう見えるべきかで揉めている話 https://t.co/SoMHXh6cuV」 / Twitter

ゆるsyuu1228△さんのツイート: "AviにCCされてるしSeastarでベンチされてるけど提案者は社外の人ではないか?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで、I/Oスレッドをもっと増やした方が速い、と再度コメントしてきた人がいたので、なんだかな…と思いながら長めの返信を書いた。 ただ、ネイティブに「カタコト感満載」「丁寧な返事」「けんか腰」のいずれかに見えるのか、よくわからない(笑) https://t.co/3UUZI0Humc"
Shirouzu Hiroaki(白水啓章)さんのツイート: "マルチスレッドとオーバーラップI/O の区別が付いていないというオチかな。 それにしても、オーバーラップI/Oがqueue-depthという表現の方がメジャーになったのはなぜかな。 条件が揃えばデバイス側のコマンドキューイングが利用されるとはいえ、元来それと1vs1対応した機能ではないはずなのだが。"
SODA Noriyukiさんのツイート: "これは知らなかった。*BSD含む伝統的UNIXだとI/O完了を待たないので挙動が違うのね(FreeBSDの場合は、ユーザーランドに見えるブロックデバイスは廃止されてrawデバイスのみになってるけど) RT: Linuxではブロックデバイスに対する非direct I/Oな通常のwriteもデバイスへのI/O完了を待つ… https://t.co/nTcjnftT9c"
satさんのツイート: "さっきした会話で思い出した豆知識。linuxのブロックデバイスファイルに対する書き込みの特徴 - 非同期書き込み、非direct I/Oな通常のwriteもデバイスへのI/O完了を待つ - このデバイスファイルにページキャッシュは無い。write時はbuffer cacheを使う(I/Oが終わったら捨てる)"
satさんのツイート: "これらについてはsar -rとsar -d -pを使って監視しながらddを使って通常のファイルとデバイスファイルに書きこむと手に取るようにわかります。"
satさんのツイート: "あの本ではまったく同じではないけど、こういう話をしています。とにかくOSの挙動を実測 唐突な宣伝すいませんでした"
Yosuke FURUKAWAさんのツイート: "Node.js の deep な所まで突っ込んで非同期処理の成り立ちを解説した論文、まさかNode.jsの論文があるとは。 / “Semantics of Asynchronous JavaScript” https://t.co/1oCRNOtO82"
Semantics of Asynchronous JavaScript
Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxの場合、(posix aio ではなく)libaioでないと、syscallな非同期I/Oにならない?posix aioだとライブラリ内部でスレッドを使うユーザランドな非同期I/Oになるのかしらん? https://t.co/um1OdyTGsd https://t.co/gyUYGxLgiL"
バッファキャッシュとAIO(3) - O'Reilly Japan Community Blog
Kengo Sawatsuさんのツイート: "メモ:macOSにおけるaioのリミット値のデフォルト sysctl -a | grep aio kern.aiomax: 90 kern.aioprocmax: 16 kern.aiothreads: 4 実際16以上同時にぶちこむとエラー帰ってくるよ。"
Kengo Sawatsuさんのツイート: "Oh,god..... MacでフォーマットしたExFATディスクにaio_writeでパラでデータ書き込むと100%データ壊れるんだけど、これヤバすぎでしょ。。 8MiB*2だろうが16*4のふた通りで試して試行回数3で100%破壊、しかも破壊箇所に再現性なし。。。"
INADA Naokiさんのツイート: "I/O多重化のメリットを享受しつつ、一般的な(コールバックやasync/awaitを使った)非同期プログラミングのスタイルのデメリットがないという意味です。 Javaとかの普通にスレッド使うよりは軽量になります。 Erlang や Haskell とは同じです。… https://t.co/gLELlykAWx"
Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsにしてもUNIXにしても、read/writeの非同期I/Oはあるが、create(open) / remove(unlink) の非同期命令が無い。 ネットワークファイルを大量作成or削除する場合は、自前でマルチスレッド化するしかないのが現状。"
鯉江さんのツイート: "メタデータいじる系のやつに非同期IOがないのはローカルファイルシステムだと平行性があまりないから用意されてないだけなんだろうか?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ごもっとも。 ちなみに個人的には、ダイレクトI/O + 非同期I/O(ただしネイティブな実装に限る)がベストかと。(高速&ファイルキャッシュで仮想記憶を汚さない。1MB以上のファイルの場合ね) ---- read(2) vs mmap(2) の迷信 https://t.co/bhlQb88gcm"
read(2) vs mmap(2) の迷信
Shirouzu Hiroaki(白水啓章)さんのツイート: "でも、ダイレクトI/Oはセクタ単位縛りが面倒なのは確か。 特に書き込み側。非ダイレクトI/Oで開き直して、末尾を調整する手間が必須に。"
Makoto Kato ︎︎さんのツイート: "WebKit、https://t.co/8KLoTJ6o8L で隠しAPI使ってるんだよな。。。たぶんこれ使えばTwitterの件はどうにかなるんだろうけど、さて。。。"
130479 – [Mac] Support asynchronous NSTextInputClient
Makoto Kato ︎︎さんのツイート: "自分たちが欲しかった非同期APIだよ"
Makoto Kato ︎︎さんのツイート: "マルチプロセス化するのにOSのAPI変えられる会社はズルい。無理矢理実装したのに。。。"
Takashi KawasakiさんはTwitterを使っています 「非同期のコードを疑似コードでいいのでフロー教えてほしいといわれると結構面倒・・・。というかコーナーケースの表現ができない。」 / Twitter

コールバック地獄から async/await に至るまでと, 非同期処理以外への応用 - Object.create(null)
ファイル I/O でブロックされているスレッドを殺したくなったらどうするか? - NyaRuRuが地球にいたころ
Win32 I/O キャンセル API と"ゾンビ" プロセス - NyaRuRuが地球にいたころ
非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
Go pprof 応用編 (CPU 以外のプロファイル) : KLabGames Tech Blog
GOMAXPROCSについてのメモ
マルチスレッド · Build web application with Golang
JavaScriptの非同期処理Promise・async awaitを学んでみた
現代の非同期処理
Goへの誤解について - GolangRdyJp
AsyncとAwait : コールバック地獄を避けるための最新のやり方、そしてその未来 | POSTD
Big Sky :: Golang の channel の使い所
.NET非同期処理(async-await)を制御する、様々な方法 – kekyoの丼
.NET非同期処理(async-await)と例外の制御 – kekyoの丼

Direct I/O

パフォーマンス

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy ではむしろ、OSキャッシュに載せないよう Direct I/OとAsync I/Oで頑張っている…」 / Twitter
FadisさんはTwitterを使っています 「@nikq Linuxはじめとするmmapを素直に実装するOSではreadは「ページキャッシュに乗せてバッファにコピー」なのでmmapして全領域を(posix_)?fallocateする事で「ページキャッシュに乗せてそのアドレスをよこせ」した方が性能が出る事があります。単純にファイル全体を読みたい場合試してみる価値があるかと」 / Twitter
KOSAKI MotohiroさんはTwitterを使っています 「@fadis_ @nikq わたし10年ぐらい前にLinuxのVM書き換えたことがあるんですけど、そのときいろいろ調べて、mmapでコピーするのはほぼ常に遅いという結論になりましたね。 OSの教科書が想定しているハードウェアが古すぎるんだと思います」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお「Direct I/O には Async I/O がよく似合う」は本当です。 (2MBくらい以下のI/Oサイズの場合は特に)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq (横からすみません)むしろ、OSキャッシュに載っていない状態からの計測を繰り返さないと意味無くないですか?」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu @kosaki55tea @nikq キャッシュに乗るまでの時間がreadとmmapで変わるのであればそうですが、そうなんですか?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq そう言う話があった気がします。 (mmapの場合、ページアクセスで例外発生からI/O発生の繰り返しになるのが呪いになるなどあった気が…最初のアクセス以降は先読みが効いてとかあっても良さそうですが、実測ではペナルティが大きかった記録を読んだ気がします…小崎先生の方が詳しいとは思いますが)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq (もしくはOS先読みだと、大きなI/O指定にならないのが問題だったり…?ちょっと覚えていませんが)」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu @kosaki55tea @nikq なるほど」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、Direct I/O は(非セクタ倍数サイズなファイルだと)Win/Linux共に、 ・Readでは末尾は1回のreadで読み取れる (要求はセクタ倍数だが、答えは非セクタ倍数) のに対し、 ・Writeはセクタ倍数Writeした後にtruncateか、末尾writeだけ非Direct I/O を使う という非対称性があってモニョる」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「LinuxはOSSなんだから、実装案を作って提案したほうがいいのかしらん…とはいえ、私くらいしか気づいていない非対称性かもしれず、誰得?とか言われそうな(笑)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、いろいろ性能計測の結果、Windowsだとtruncateに軍配という結果だった。 (最近わざわざ非truncate実装を加えた末に、意味ないと判りがっくり…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そうそう、これ私も以前から実験してみたかった話(笑) (ところで、HugePageだと先読みもHugePage単位でやってくれるのかしらん?重そうだけど…)」 / Twitter
FadisさんはTwitterを使っています 「@angel_p_57 @shirouzu @kosaki55tea @nikq 頻繁なpage faultが性能低下の原因なら、Transparent Huge Pageで問題のいくらかを回避できる気がする」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@fadis_ @angel_p_57 @shirouzu @kosaki55tea @nikq メモリ上でのコピーではなくディスクアクセスがボトルネックになるベンチマークである、という前提において言うと、readaheadに与えられる情報が多いreadを使う方が、mmapよりも速くなる可能性があっても逆はない、と言えるのだと思います(そしてしばしば実際にそのような結果が観測される)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ファイルコピーベンチマークをみて、あーBDPの推定問題だなって思ってしまうのはネットワークに毒されてる証拠」 / Twitter
KOSAKI MotohiroさんはTwitterを使っています 「@kazuho @fadis_ @angel_p_57 @shirouzu @nikq 情報量もありますし、ヒューリスティックに推測するにしてもmmapはランダムアクセスのパターンで使われることのほうが圧倒的に多いので、readaheadの推測値がどうしても小さくなってしまうんですよね。IOの効率に比べたら、メモリ操作の効率はあんまり重要じゃない」 / Twitter
FadisさんはTwitterを使っています 「@kazuho @angel_p_57 @shirouzu @kosaki55tea @nikq この問題についてはPOSIXな環境で幅広く動くコードについてはその通りだと思います。一方でLinuxでMAP_POPULATEを指定している場合mmap時に指定したサイズが一度に読み出される為、readに対して不利な要素は何もないように思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@fadis_ @angel_p_57 @shirouzu @kosaki55tea @nikq はい。アプリケーションが適切に先読み量を設定できればdisk i/oの利用効率が最大化できるであろう、という意味で、おっしゃるとおりだと思います」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2MBの先読みだと、readにもう一息追いつかないかな… (Direct I/O = 先読みが効かない状況でも、4MBくらいから(Async I/Oなしでも)ほぼペナルティは隠蔽されはじめる)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このMAP_POPULATE興味深いなぁ。mmapコピー実験は(キャッシュ無効からの)MAP_POPULATE版での計測をやってみたいところ。 (Windows版にもこのフラグ欲しい…ただ大量コピーの場合、ファイルが使う物理メモリ量は制限したいので、やはりDirect I/O + 自前メモリがよいかな…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には大量コピーには、Direct I/O + Async I/O が最強だと思っているので、いずれ Linuxでもこの形の FastCopy を作ってみたいと思いつつ。」 / Twitter

2020-12-24

SODA NoriyukiさんはTwitterを使っています 「メタデータが更新されてる保証がないって話かなあ」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@n_soda データもです。direct I/OってI/Oリクエストを投げたら完了を待たずに復帰するんですよ」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@n_soda ネタバレですが &gt; To guarantee synchronous I/O, O_SYNC must be used in addition to O_DIRECT. https://t.co/itt6Pu4wCC」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@n_soda 実装依存ですね。あんまり知られてないです。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「open(O_DIRECT) + write(2) 終了時にデバイス転送が終わっていないと? だとwriteに指定していたページをwrite直後に書き換えるとどうなるのかしらん?(COW?本当?) あと手元(5.9.0)だと open(O_DIRECT) + read(2)では、キャッシュ有無に関わらず常にデバイスから読んでるのだが…」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおWin32のFILEFLAG_NO_BUFFERINGだと、常にデバイス直接書き込み&読み取りを保証。 (ただし、デバイス側のキャッシュに溜まるだけというのはあり得る) https://t.co/G1zVZVlD1F」 / Twitter
File Buffering - Win32 apps | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(writeはデバイスキャッシュの話を意識してるのかな?)」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@shirouzu それはデバイスファイルですか?それとも普通のファイルですか?」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@shirouzu いやデバイスファイルだとページキャッシュが無いから普通のファイルか」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi 普通のファイルですね。」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@shirouzu デバイスから読んでいるというのはどうやって確認しましたか。sarのようなメトリクス、あるいは速度、などなど。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi dstat ですね。direct指定のありなしで、dstatのI/O数の変化を見てます。」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@shirouzu ふーむなるほど?ちょっとページキャッシュありなしの速度からページキャッシュを使っているかどうか見てもらえませんか。ひょっとするとページキャッシュ使うけどディスクからも読むといった挙動なのかも」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi https://t.co/jS4OWpTyQA https://t.co/V6cdPH2gAw を見るとLinuxではそもそもI/O完了を待ってないようですね(待ちたいならO_SYNCが必要)。 知りませんでした。これは(manのこの記載事項も含め)OS依存だと思います。 readは(mmapされてない限り?)常にディスクから読むのでは?」 / Twitter
🐢sat🦥さんはTwitterを使っています 「@n_soda @shirouzu 少なくとも私の検証結果だと「ページキャッシュを使う」のは確認しました。ただそこでディスクからも読み出すといったことをしてるかもしれないですし、実はファイルシステム依存の何かがあるのかもしれません」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔O_DIRECTで実験した時、十分に遅くて、非同期I/Oとセットにしないと使い物にならんと思った覚えがある。 実は仕様で「保証しない」だけで、現状の実装はO_SYNC相当の実装なのかな…?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi ちなみにNetBSDの場合は(僕が読み間違えてなければ) ・mmapされてたりalignment条件を満たしてなかったら directio 自体を諦めて buffered i/o に fallback ・directio できる場合は、常に page cache を捨てて IO する (page cache は消えたままになる) だと思います https://t.co/MbRvtuN6Pt」 / Twitter
src/genfs_io.c at 6e6585deb129aaf617d854789663569f25298ba0 · NetBSD/src
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @satoru_takeuchi Windowsだと条件満たしてないとエラーになるのですよね。 (そちらの方が個人的には好ましいかなぁ)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu Linuxでも(少なくとも数年前のCentOSだと)遅かったと思います。buffered I/O と異なり、OS が readahead や write behind してくれないのは今でも一緒じゃないかって気が」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi わかります>エラーになる方がいい」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なんで同期保証しないんですかねぇ…write後もバッファが自由になるタイミングが分からないとすると使い物にならないというか、O_DSYNCと一緒に使えがお作法になりそうというか。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda バッファは自由になるんじゃないでしょうか?単にコマンドの完了を待たないだけで #知らんけど」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda writeから戻って(まだDMA実行中)渡したページ書き換えたら、データ壊れません?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda そして、キューがあってコマンド複数発行できるからO_DIRECTだけ指定した方がシングルスレッドでの書き込み速度は大幅に高いとかありそう」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi https://t.co/R1iw9cpeMD にも関連するんですが、こっちのスレッドにぶら下げます。 書き忘れましたがNetBSDのO_DIRECTの場合はIO完了を待ちます。これはraw disk I/Oの高級版という意味上の要求のほかに、wire downしたユーザーメモリを同一システムコール内でpaging可に戻したいという実装上の理由も」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda いや、カーネルがコマンド発行してDMAが終わった時点でプロセスに制御が戻るのか、コマンドの完了応答がHDDから戻ってくるのを待つのかの差じゃないんですかと」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @kazuho データ壊れるというか、ディスクにどういう内容を書いたかの保証がないので非常に困りますね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda それが非同期I/Oの狙いの一つですよね…ただLinux O_DIRECTがそれをやっているようには見えないのですよね。 (実際は転送終了まで待っているように見えます)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu 伝統的なデバイスドライバとカーネル上位層の間の構造だと、その2つの待つタイミングを使い分ける方法はなく、待てるのはコマンド完了応答があったタイミングだけですね。 現代のLinuxのカーネルの構造は知りませんが…」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu いや、複数のブロックを複数のライトコマンドを発行したあとで、FLUSH CACHEするというのが伝統的なやり方だし、O_DIRECTはライトコマンドを発行する一手法にすぎないから別に困らないと思います」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu 伝統的なUNIXカーネルで biodone を待つタイミングの話をしてます。DMA完了だけ待つ方法はないのでは?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu なるほどありがとうございます。あるいは差としてはforce unit accessフラグを立てるかどうか、なんでしょうか」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi ちなみにO_DIRECTが単なるヒントに過ぎず無視されることあるというこの挙動ですが、Solaris の directio に倣ったんじゃないかと思います(でも不便): https://t.co/5QLAdaOePK」 / Twitter
directio - man pages section 3: Basic Library Functions
Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu と redhat の人は言ってるっぽい? https://t.co/byRpdCg4eU」 / Twitter
io - How are the O_SYNC and O_DIRECT flags in open(2) different/alike? - Stack Overflow
SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu デバイス側のキャッシュをどう扱うかについては、さらに千差万別なんじゃないかという気がしてます。(同一OSでもfsごとに違うかも?) 実運用的にはドライブのキャッシュはオフにして battery バックアップつきの RAID cache に頼るというのが Linux を含め多いような(僕は老人なので現代だと違うかも?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu 性能要件からしてそうなるのは良くある話だと思います」 / Twitter
arhさんはTwitterを使っています 「@n_soda @kazuho @shirouzu ドライバ書いてたのは大昔で、最近の事情は把握していないのですが、当時はデバイス側にもキャッシュを持つようになったため(しかも透過的な)、どの時点で完了になるかが不明確になって、結局実装依存、になっていっていました。最近のデバイス側キャッシュってどうなっているんでしょう。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu LinuxだとO_SYNCが必要なのは https://t.co/jS4OWpTyQA の通り事実なんだと思います。 ただユーザーメモリの wire down を解除するのがシステムコール完了よりも後になるかどうかは、やや疑問かなあ。まあ最近のLinuxの性能追及改善はとてもすごいので、やっているのかも...(←驚いてます」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu 同意です。その上で、O_SYNCとO_DIRECTを別個に持つ理由として、合理的な説明はありうるよなーと思いまして」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu はい。 実は Linux の O_DIRECT もデバイスドライバ層のIO完了自体は待つ実装になっていて O_SYNCの要求は force unit access から来てるってのはありそうな話ですよね。(今はともかく、少なくとも当初は)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda これって、NCQの想定が「コマンド転送+データ転送」の繰り返しのキューイング、みたいなイメージになってますかね? 実際は、ホストがコマンド群だけ転送して、デバイス側が都合よいコマンド選んではDMA要求発行、だと思うのですが…(つまり最後のDMA転送終了=コマンド群が完了)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda そうなんですか。全然詳しくないのですが、最後にステータスが任意の順番で流れると思ってました https://t.co/TrwrHXd103 https://t.co/DWnZ2rfK6R」 / Twitter
SATA Introduction
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda 上記でいうと、NCQ説明はこちらの図ですかね。 NCQはまずコマンドを溜め込んだ後に、デバイス側は、その中で最初に書きたいwriteコマンド(or 完了したreadコマンド)を選んでは DMA転送していく感じかと。 https://t.co/XXjj1x7A73」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda はい。その図で言うSet Device Bits FISはタグを含んでいて、queue depthのゆるす範囲で任意の順番で発行されるのではないかと」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda で、Writeでは(FUAとかでないかぎり)DMA転送終了≒writeコマンド終了通知(=OSから見ると同期write終了)だと思っているのですけど、違うのですかね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda はい、O_DIRECTがDMA転送終了でwrite完了、O_SYNCがstatus受信でwrite完了だというのが、合理的にありうる可能性だと思います。sodaさんが懐疑的でいらっしゃいましたが(https://t.co/E10bdGoWiE からの議論)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda NCQ云々を書いたのは(sodaさんの考えと似てて)、DMA完了≒コマンド完了なのだから、(コマンド完了ではなく)DMA完了などというトリッキーなタイミングは使ってないのでは?という意図です。 (つまり、DMA前に制御戻っていてデータが壊れる危険 or CMD完了後に制御戻ってるので大丈夫かの2択)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda 少なくともforce unit accessフラグを立てているケースにおいては、タイミングがDMA後なのかstatus受信後かで意味は変わると思います。O_SYNCでタイミングも変えているのか、単にフラグを立てているだけなのかは、どちらも実装としてアリなんじゃないかと思います。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda もちろん少し前にこう書いた通り、FUA除外の前提です。 「で、Writeでは(FUAとかでないかぎり)…」 そもそもアプリ側でFUA指定ってできるのだっけ…あれはジャーナル等のチェックポイント書くといった特殊用イメージある。(ハードウェア的なO_DIRECTという感じ)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda https://t.co/GIN3U2Ogb6 (O_DYSINCですけど)このへんでしょうか(まーじされたかは見てない)」 / Twitter
[RFC] iomap: Use FUA for pure data O_DSYNC DIO writes - Patchwork

2020-12-26

🐢sat🦥さんはTwitterを使っています 「@shirouzu @n_soda ページキャッシュが存在する状態でdirect readするとI/Oを発行する件、正しくは↓でした - ページキャッシュを迂回してディスクからユーザページに直接データ転送 - 既存ページキャッシュをわざわざ捨てはしない - 既存ページキャッシュがdirtyな場合はdirect read前にwriteする」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @satoru_takeuchi (確認せずに言ってますが)それはそうだと思いますね。 メモリ内容を比較するのは結構なコストなので、もしこれをやるとダイレクトI/Oの低コストが台無しになるので。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi NetBSDは direct I/O の前に単にpage cacheの中身を(dirty な場合は書き出した後) 捨ててるんですよねえ。ある意味一貫性はとれるけど、もったいないという。」 / Twitter

2020-12-27

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「きちんと再検証&訂正するスタンス、さすが。」 / Twitter
🐢sat🦥さんはTwitterを使っています 「動画内の説明に誤りがあったこと、および正しい内容を動画のコメント欄に追記しました。 &gt; 注意: 動画の途中で「ページキャッシュがある状態でdirecr readしたらページキャッシュを使う」と述べていましたが、これは誤りでした。ごめんなさい。 #satlinuxtube https://t.co/xhaHojsMNU」 / Twitter
その23 同期I/Oとdirect I/O - YouTube
同期I/Oとdirect I/O - Speaker Deck
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「3年10ヵ月前のツイートを見つけてしまった。 こんなやりとりしてたのに、先日の類似ツイート見た時に、ピクリとも思い当たらなかった…ホント50歳になると「うーん、(何かあったけど)思い出せない」ではなくて、記憶の白紙地帯みたいになる…ヤバなぁ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi O_DIRECT + write(2)からreturnした後でも、writeで使ったユーザバッファを変更するとまずい、という挙動が(将来)ありえる、ということでしょうか?(それはちょっと厳しいのではと…)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2004年に vmstat の buff と cache の違いについて書いたのを思い出した。 (SVR4という言葉も今は昔…という感じになってしまったな) https://t.co/8lNIxa9UQt」 / Twitter
私的メモ(2004年02月版)

Linuxキーワード - ダイレクトI/O:ITpro
LinuxでDirect I/O | わーどぷれす
ダイレクトIOの実装 - のぴぴのメモ
Linuxキーワード - ダイレクトI/O とは:ITpro : WEBディレクターが最低限知っておくべきI/Oの基本事項 - NAVER まとめ
IBM Knowledge Center - NFS のダイレクト I/O
LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる - Qiita
Direct I/O のパフォーマンス測定 (write)
Shirouzu Hiroaki(白水啓章)さんのツイート: "Direct I/O には Async I/O が良く似合う。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyは、ネーミングのせいか「高速」「マルチスレッドI/O」という点に注目が集まりがちだけど、ダイレクトI/O(と非同期I/O)により、仮想記憶をキャッシュで汚さない(=他のプロセスが重くなりづらい)、という点が一番の特徴。 UNIX系でも、これを実現すれば嬉しい人は多いのではと思いつつ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで巨大なメインバッファを設定しても、意味がないということを何処かに書いた方が良いのかしらん? (概ね、512MBを超えると殆ど意味は無くなるはず。むしろDirectI/Oでdirtyページを閉じ込める意味が薄れるのでOS全体からは逆効果) https://t.co/6iuoDf2Jg9"
Shirouzu Hiroaki(白水啓章)さんのツイート: "相手がCIFS/SMBだと、LinuxではO_DIRECTは使うな、という感じに見えますね。… "
Kengo Sawatsuさんのツイート: "mount.cifsでマウントした先のfdに向かってO_DIRECT指定でopenすると死亡フラグについて、各OSごとに挙動違いすぎて方針決められないので、挙動をまとめてみました。。疲れたのでもう帰りたいorz https://t.co/k0l7lqJC4q #Linux #O_DIRECT #smb #mount.cifs"
Linux O_DIRECT with smb cache effects summary - Google スプレッドシート
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「DirectIO にはメモリアドレスが「セクタサイズの倍数」という縛りがある(I/O時のデバイス転送絡みのはず)。 512eセクタ(内部4096)な場合、512バイト仮定で大丈夫だが、何らかの速度ペナルティが無いのか気になるところ。 (たぶん大丈夫かな…なお4096倍数の転送でないと速度低下するのは確認)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおメモリ・アラインを無視したデバイス転送を行うと、ドライバがエラーを吐かずとも、キャッシュ・コヒーレンスが壊れた経験あり。 https://t.co/yrE8N0T4MT」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 そうですね。さらに脱線すると、IRIX(ELAN4000) で発生した話で、SCSIデバイスからメモリにデータ転送が完了しても、転送前のメモリが一瞬見えてしまうという現象で苦労した覚えが…異常値検出しても次行のsprintfダンプでは既に正しくて(笑)」 / Twitter
Alireza FarshinさんはTwitterを使っています 「If you want to learn more about Direct Cache Access (DCA) or Intel Data Direct I/O (DDIO) technology when shifting toward multi-hundred-gigabit networks, check out our @usenix ATC'20 paper. #ATC20 #USENIX https://t.co/5vaSZYUdyM」 / Twitter
Reexamining Direct Cache Access to Optimize I/O Intensive Applications for Multi-hundred-gigabit Networks | USENIX

I/Oスケジューラ

CFQ

CFQ - Wikipedia
CFQスケジューラのアルゴリズム概要 | VA Linux Systems Japan株式会社
6.4. 設定
I/OスケジューラのCFQとクラスを理解する - Qiita

BFQ

技術者見習いの独り言: BFQスケジューラ
Xperia X10推奨のIOスケジューラ|老兵のあがき
I/O スケジューラについて 前編 - 所感 ~android~
I/Oスケジューラーについての考察 - droidroid
CPUスケジューラとI/Oスケジューラの組み合せを探って性能アップを目指す: Project Valkyrie
linux-ck とGrub2 のアップデート: くしゃみ日記
I/OスケジューラCFQの置き換えを画策するBFQスケジューラ。ほう。Budget Fair Queueing - tmatsuu のコメント / はてなブックマーク
I/O Scheduler - sc-02croot @ ウィキ - アットウィキ

Kyler

2017年7月3日 Linunx 4.12が正式リリース,AMD VegaやNVIDIA Pascalのサポートなどが追加:Linux Daily Topics|gihyo.jp … 技術評論社
過去最大規模のリリースという「Linuxカーネル4.12」リリース | OSDN Magazine

Noop

Noop scheduler - Wikipedia
LinuxのSSD設定 - Qiita
6.4.3. Noop
Fadisさんのツイート: "LinuxのI/Oスケジューラ、noopスケジューラとnoneスケジューラが全く別物なのネーミングにアレさがある"

Anticipatory scheduling - Wikipedia
Deadline scheduler - Wikipedia
I/Oスケジューラを使う。
ディスクI/Oスケジューラの設定 - 人生は、お天気いろいろ
OSSはアルミニウムの翼で飛ぶ: RHEL I/Oスケジューラの変更
I/O Schedulerをわかりやすくまとめる – Simple IT Life
Deadline IO スケジューラーを使用する - Red Hat Customer Portal
SSDの並列性を引き出すI/Oスケジューラに関する研究
【自分用】LinuxのI/Oスケジューラって知らなかったので少し調べてみた - Qiita
Linux 2.6 カーネル ベースの仮想マシンでディスク I/O パフォーマンスが遅い (2094615) | VMware KB
openSUSE 13.1: 第13章 I/O 性能のチューニング
Fadisさんのツイート: "linuxのscsi-mqをデフォルトで有効にしようという提案がなされている。 scsi-mqが有効な場合SCSIデバイスに対するリクエストは従来のI/Oスケジューラではなく、フラッシュメモリが物凄く速い時代に合わせて新しく作られたblk-mqを通してデバイスに送られるようになる https://t.co/fGya5h7WOY"
The Linux Kernel May Soon Default To SCSI MQ Mode - Phoronix
Fadisさんのツイート: "ストレージがマルチキューかつ凄く速くなって、I/Oスケジューラをプロセッサごとに持ってロックしないようにしないと、カーネルで詰まってストレージの性能が引き出せないの、ハードディスクの時代に作られたスケジューラにとっては想定外もいいところな状況だ"
Reading article about io.waight

エレベーターシーキング・コマンドキューイング

遅延書き込み - Wikipedia
NetWare --- LAN普及の足掛かりとなった高速なネットワークOS | 日経 xTECH(クロステック)
ASCII.jp:マルチコアCPUを賢く使いこなす スケジューリングの秘密 (1/3)|基礎から覚える 最新OSのアーキテクチャー
SUSE+XEN で作るプライベートクラウドのハードウェア選びのポイント : isLandcenter 非番中
CPUスケジューリング

システムコール

io_uring

Twitter

2021-02-24

001

_ko1さんはTwitterを使っています 「@blackenedgold 前回の記事、へのリンクが 404 のようです。 それはともかく、とても興味深く拝見しております。 Rustよめないんですが、io_uring だとデバイスへの書き込み(時間かかる)への複数のリクエストをまとめるから速い、って結論なんですかね。というか、std毎回同期しないとこんなに早いってすごいですね」 / Twitter
κeenさんはTwitterを使っています 「@_ko1 ありがとうございます、404修正します。多分5GBはOSのページキャッシュに載ってしまうのであとはメモリに書き出す速度の勝負で、仕組みが単純な分普通のwriteの方が速いのかなって思ってます。Linux 5.12でio_uringが速くなるらしいのでそこも期待ですね。」 / Twitter
_ko1さんはTwitterを使っています 「@blackenedgold 確かに、ある程度ページキャッシュに載ってしまえば、io_uring とやること変わんないすね。C10Kだと、例えば socket read が multiplexing されるので変わるんですかねぇ。でも、スレッド 10K 個作ってもあまり変わらない気も(100K だと作れないで変わる)。」 / Twitter
κeenさんはTwitterを使っています 「@_ko1 そうですね、本来io_uringは非同期化のためのAPIなので多重化で効いてくると思います。スレッドを使った実装との差分はパフォーマンス上かなり違うらしいです。 https://t.co/NH7piwnZpUの問題点」 / Twitter
Linuxにおける非同期IOの実装について - Qiita
_ko1さんはTwitterを使っています 「@blackenedgold あ、Posix AIO じゃなくて、コネクションごとにスレッド作るようなサーバ実装を考えていました。コネクションごとにオーバヘッドがかかりますが、中での IO はどうなんかなと」 / Twitter
κeenさんはTwitterを使っています 「@_ko1 コネクションごとにスレッドを作るとコンテキストスイッチが重くてクライアント数が10Kくらいが限界になるから1スレッドで複数のコネクションを捌きたいというのがC10K問題じゃありませんでしたっけ。コンテキストスイッチの部分を抜いてIOだけに着目したら何が違うんだろうという疑問ですか?」 / Twitter
_ko1さんはTwitterを使っています 「@blackenedgold コンテキストスイッチは重くないと思いますよ... と思うんだけど、どうなんだろ自信がなくなってきました。主に、生成・終了のコストが問題だと思っていました。プロセスコンテキストスイッチのオーバヘッドが、OSレベルでやるかユーザレベルでやるか。タイムスライスが邪魔といえば邪魔かな...」 / Twitter
κeenさんはTwitterを使っています 「@_ko1 私もちゃんと測ったことないんですがスレッドの切り替えでレジスタやら何やらをsave/restoreしないといけないのでユーザランドでできるに越したことはないって聞きました。スレッドの生成と終了が遅そうなのはそうだと思いますが、それだけだったらスレッドプールで解決するはず…。」 / Twitter
_ko1さんはTwitterを使っています 「@blackenedgold スレッドプールだと1万個のio read かけないんですよ」 / Twitter
_ko1さんはTwitterを使っています 「@blackenedgold あ、固定長プールじゃなくて1万個プールできるってやつならいいのか。だいたい1mbメモリ食うので1万個で10gb、昔c10kが騒がれた当時だと、この辺もネックかもしれませんね(ページテーブル管理も」 / Twitter
κeenさんはTwitterを使っています 「@_ko1 はい、現実的には1万個のスレッドを作るのは難しいと思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「スタックポインタ書き換えるとリターンアドレス予測がリターンする回数分だけ失敗する結果、遅くなるイメージだったけど、最近のIntelだと、そのあたり補う仕組みがあるんだろうか。たとえばsp変えたら普通の分岐予測使うとか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@blackenedgold @_ko1 c10k屋さんです。スレッドのコンテクストスイッチ遅くはないですが、スタック使用量と、スタック切替でreturn address予測が外れるのはちょっと痛いのかなと思ってます。c10k用途だと、リクエストあたりのバイト数がよほど小さくない限りはsyscallのオーバーヘッドは問題にならない印象なので...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@blackenedgold @_ko1 io_uringを使うメリットが一番あるであろうところは、メモリに載っていないかもしれないfile readが発生する場合だと思います」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @blackenedgold 独立した複数のって感じすかね Netflix?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold 複数の何かがよくわかりませんが、cpuコアごとにスレッドたてて、スレッドごとにイベントループのかわりにio_uringまわす感じになると思います」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold netflixさんはレスポンスサイズ大きいし、レイテンシの問題ないし、io_uringの必要性薄いユースケースだと思います。というか、公開情報が正しければfreebsdでtcpのsendfileでカーネル内tlsしてるはず」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @blackenedgold ですよね(出先だったんですが、さっき自転車乗りながら違うなあと思ってた)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「io_uringのインパクト、僕の理解が正しければ、第一に、従来のfile i/oは高速な非同期実装が難しかったのを、メモリにすでに載ってる場合も含めて高速に動くような解になってるところ。第二は、従来方式でsyscallのオーバーヘッドが相対的に大きくなる小サイズのi/oが頻発する場合に、それを隠蔽...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「できるところだけど、それが問題になるほど最近のcpuはネットワークと比べて遅くない(ことが多い)し、file i/oでディスクでブロックされるのはパフォーマンスガタ落ちになるので第一の点が大きいでしょうなぁみたいな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「h2oはファイルからコンテンツサーブする仕組みあるし、小サイズのi/oやらないこともないからio_uring対応してみたらいいんだろうなと思ってるけど、キャッシュに載っていないかもしれないファイルからコンテンツサーブするみたいな運用してる利用者がいるか問題ですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「dpdkやらないの?→やりません(メリットが薄そうだしユースケースが限られるから) netmapやらないの?→やりません(dpdkより良いけど以下同文) って感じできたけど、io_uringは、やってもいい気がするのよね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「面白い。disk i/oで引っかかるケースでio_uringならレイテンシ隠蔽ができることと、引っかからないケースで通常のfile i/o並に速いことが読み取れるので、io_uring実用的という結論になると思う / https://t.co/sJT5k7PinK」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @blackenedgold 話があっちゃこっちゃいきますが、つまり C10K が最初問題視していた1万コネクションさばきたいって奴は、read 待ちの epoll で起きたときには、多分データ届いた後だから、io_uring でも大して違わんって感じですかね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold サーバ屋さんとしては、ネットワークをサチることができればそれでいいのですが、フルサイズパケット(あるいはTCPだと複数パケット分)ごとにi/oするようなケースだとepollベースでサチれるのでio_uringに移行するメリットがない。ただ、file readでディスク待ちが発生してると別、という感じです」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold dnsとか、cpuをケチりたいルータとかだと話が変わるかもです」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @blackenedgold cpu usage って減りそうですか。仕様・実装知らないんですが、io_uring に登録した userland のバッファに直接 kernel が書き込めて、kernel -&gt; user copy が減るとか?」 / Twitter

002

Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold スレッドみたらC10Kがガイシュツだった...」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @blackenedgold system call が単純に read 分 1 個減るか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold 減るんじゃないかなーと予想しています。コピーは早いし、特に小サイズのi/oにおいては差がでない気がするので、syscall自体のオーバーヘッドのほうじゃないでしょうか」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold I/O 回数が多いときにメリットありそうですね。 Meltdown &amp; Spectre などで syscall が高価になったりもしてますし。個人的には C10K なネットワークサーバなどでの効果がより大きくなるんだろうなと想像しています。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold そうですね、僕は、syscallのオーバーヘッド削減については、上に書いたように、c10kなサーバでも、i/oサイズがMTUあるいはそれ以上のケースなら実用上のメリットは薄いと思っています。disk i/oを隠蔽できるメリットはc10kに限らず有用」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 具体的な数字をあげるとネットワークへの書込iサイズ15KB(MTU1500,GSO10)、読込はackみたいなケースで、5gbeを1コアのロード40%くらいでサチれるので、実際のところ、よほどi/oサイズが小さくなければ、マルチコアで25gbeとかサチるのは難しくない https://t.co/T2r1iQtfc0」 / Twitter
Improve AEAD performance through use of the fusion AES-GCM engine by kazuho · Pull Request #359 · h2o/quicly
Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold ありがとうございます。ファイルI/Oで有用というのは aio に対して何か優位性見えますか? たんに非同期でよければ aio でもいい気がしますし。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold aioはdirect i/oだから、キャッシュされていないデータ専用コードになりませんか(別の言い方をすると、独自にファイルキャッシュ実装する必要がある)。io_uring使うとbuffered i/oの良さとnon-blockingの良さの両方を手に入れられるんじゃないかと」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold あーナルホド」 / Twitter
Kazuho OkuさんはTwitterを使っています 「VMのdisk i/oは非同期だし、qemu側ではbuffered i/oにしたいこともあればdirect i/oにしたいこともあるだろうし、みたいに考えるとio_uring使うのは納得感強い」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 具体的な数字をあげるとネットワークへの書込iサイズ15KB(MTU1500,GSO10)、読込はackみたいなケースで、5gbeを1コアのロード40%くらいでサチれるので、実際のところ、よほどi/oサイズが小さくなければ、マルチコアで25gbeとかサチるのは難しくない https://t.co/T2r1iQtfc0」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold さいきんqemuのソース見たらio_uring+coroutineでシングルスレッド並列IOするような構造になってましたけど、大量のファイルをページキャッシュ経由で読んで配信する用途でもおなじようなアプローチをとったりすると確かにおいしそうですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold あーなるほどqemuのその使い方は面白い&amp;納得感ありますね」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold qemu のどの辺で使ってるんです?」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold https://t.co/zgsnezYbtR」 / Twitter
qemu/io_uring.c at master · qemu/qemu
Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold インターンで実装したexperimentalなもので、広く使われてはいないと思います。」 / Twitter
Stefan Hajnoczi: Coroutines in QEMU: The basics
Kazuho OkuさんはTwitterを使っています 「今から素人みたいな質問します。select(2)ってfile i/oも非同期化できるの? できるような気がしてきた」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho QEMUで direct i/o にすることあるんかなと思ってたんですが、あるんですねぇ https://t.co/HBwpaosfq1 direct=on」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 いやむしろ、ハイパーバイザはdirect i/oするのが普通じゃないでしょうか? キャッシュはゲストOSの仕事なので...」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho 私の QEMU 感は guest os 用なので...(10年くらい認識が古そう)」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho 日本語が変だった。host os 上で実行する guest os のための virtual machine 基盤だったので...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 あーごめんなさい。使い方の差でなくて、ゲストのキャッシュから溢れたものをホストでキャッシュするのは効率が悪いので、qemuではdirect i/oしつつ(ホスト、ゲスト関係なく)OS毎のキャッシュ量の調整はbalooningで行うのが正攻法だと思ってますという」 / Twitter
バルーンニング (ballooning)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
_ko1さんはTwitterを使っています 「@kazuho なるほどです。10年前は研究会でその辺どこでやるか色々議論されてた印象がありますが、あまり聞かないので、もう決定版があるんすかねー」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あーなんか二つの出来事を混同して覚えてたかも。Armのreturn address stackが有効に機能するようにしてv8高速化したっていうのは https://t.co/GiUjiNISrw で、一桁Cortexのあたりでreturn address stack深くしたのは別の話かな」 / Twitter
Google's V8 on ARM: Five Times Better - Processors blog - Processors - Arm Community

003

_ko1さんはTwitterを使っています 「@hasegaw @kazuho @blackenedgold なるほど https://t.co/MalfBOoFuf 元々 aio IO があって、そのバックエンドにするんですね(元々はそういう hardware emulation とかで使うのかな)」 / Twitter
qemu/file-posix.c at 1ed9228f63ea4bcc0ae240365305ee264e9189ce · qemu/qemu
Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold やってることは、ゲストOSに見せたSCSI/IDE/virtioデバイスからのIO要求がpwritev/preadvみたいなもので、同時に複数の要求がきたりするので、それをIOスレッドが実際にさばいて制御を戻す(完了通知を返す)感じです。」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold coroutineで実装されてるのをみてうまいなあと思いました。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 僕的はqemuがコルーチン使ってるの知らなかったので面白かったです(使うと楽になるタイプのソフトウェアだし、そこまでパフォーマンスにシビアなソフトでもないので使うのは妥当だと思う)」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold 複数のIO要求が同時にきたときに、並列にバックエンドに要求をなげつつ、はやくおわったものから順に返事を返すってワークロードには向いてるんですよね。kazuhoさん的にはコルーチンだとオーバーヘッド気になるという感じですか?スレッドよりはいいのかなというぐらいに思ってました。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 分岐予測がらみのオーバーヘッドがあるという認識ですが(cf. https://t.co/WqYccnpLfu)、それほど問題になるものではないとも思います。実際のところ、特定のコルーチン実装に縛られて良いなら、いろんなものをコルーチンで書くことで工数削減できそうな気もしています」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold 比較対象ってイベントループですかね?(スレッドじゃなくて / スレッドだと同じ問題ありそう) 考えたことなかったけど、どれくらい効くのかなhttps://t.co/meyIVHI0SS」 / Twitter
assembly - how to clear return stack buffer in x86 or x64 - Stack Overflow
Kazuho OkuさんはTwitterを使っています 「@_ko1 @hasegaw @blackenedgold はい。比較対象はイベントループですね。スタック差し替えるとreturn address predictionが全滅するでしょうから、切り替え直後にreturnを連発するようなケースだと悲しいことになりそうな気がします(まあ言っても分岐予測外れるだけですが)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@_ko1 @hasegaw @blackenedgold 関連する文脈で言うと昔のarmはreturn address stackが3スロットくらいで、それがJavaScript VMの速度低下の要因になってたみたいな話があったと思います」 / Twitter
_ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold みんな main に書いてたんですね!!1」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold いまはsubroutineの話はしてないですしね?」 / Twitter

io_uringを使ってみた
2020年12月15日 2020年最後のリリース「Linux 5.10 LTS」が登場:Linux Daily Topics|gihyo.jp … 技術評論社
2019年5月7日 Linux 5.1がリリース,新しい非同期I/Oインタフェース,2038年問題対策など:Linux Daily Topics|gihyo.jp … 技術評論社
「Linuxカーネル5.1」リリース、非同期I/Oインターフェイスなどが導入される | OSDN Magazine
io_uringで高速IO処理(?) | κeenのHappy Hacκing Blog
io_uringで高速IO処理(!) | κeenのHappy Hacκing Blog
mumumuさんはTwitterを使っています 「Improving Network Connection Locality on Multicore Systems [EuroSys '12] 局所性向上のため,各コネクションが特定のコアにのみ紐づくようにLinuxのaccept()などの実装を変更.Kernelに一つだったデータ構造をPer-coreにでき,ロックの面でスケーラビリティも向上. https://t.co/Yb9zUrVsof」 / Twitter
pesterev-multiaccept.pdf
fork, select, poll, epoll, io_uringのecho server - suzuzusu日記

Linuxシステムコール徹底ガイド | プログラミング | POSTD
チュートリアル – システムコールの書き方 | プログラミング | POSTD
int 2E/sysenter/syscall考察 | 毛流麦花
Livaさんのツイート: "int命令のoperationと比較すると一目瞭然だった。(長すぎるので画像略) https://t.co/Jq2CehnsvG"
СЮУ1228さんのツイート: "フラットメモリモデルしか考慮に入れないとか、割込デスクリプタ参照したくないとか、スタックに積まないで退避用MSR増やしちゃえとか、いかにも最近の考え方でそもそもx86はそういう前提ではないと思うし設計時期が違うからということなのでわ https://t.co/uBJtlPhmX8"
Anatomy of a system call, part 2 [LWN.net]
品川 高廣さんのツイート: "SYSENTER は Intel の命令で SYSCALL は AMD の命令。IA-32 は Intel が決めたから、Intel は SYSENTER しかサポートしない。AMD は SYSENTER と SYSCALL を両方サポートする。反対に x64 は AMD が決めたから、AMD は SYSCALL しかサポートしない。Intel は SYSENTER と SYSCALL の両方サポートする。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "同じLinuxのシステムコール呼び出しでも、sysenterはint80に比べて圧倒的に速い原理は、後者は全レジスタ退避&復帰が必須だから、みたいな話でいいのかしらん?"
FadisさんはTwitterを使っています 「Linuxに新しいシステムコールreadfileが入りたがっているらしい。readfileはファイルをopen、バッファ分だけread、closeを1回のシステムコールで行う。小さいファイルを大量に読む状況でシステムコールの回数が減るため、システムコールが安くない場合性能の向上が期待できる https://t.co/eSNFaUyZhV」 / Twitter
New readfile() System Call Under Review For Reading Small~Medium Files Faster - Phoronix
epollで作るチャットサーバ | κeenのHappy Hacκing Blog

Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "NTカーネルには、バッファI/O、ダイレクトI/O以外に、ニーザーI/Oというものを知った。 もう少しネーミングに工夫が出来なかったものか(笑)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "実験の結果、デバイスの占有率と速度変化、SSDだと比例するのだが、HDDだと書き込み速度の下がり方は占有率数分の1だった。 ダイレクトI/Oとはいえ、HDD内のwriteキャッシュが有効なので、さもありなんという結果ではあるが、どうするかな。… https://t.co/H4OvSkJWT8"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SSD/HDD識別に https://t.co/kt1N4L0Tce にある、IOCTL_ATA_PASS_THROUGHが紹介されていてadmin不要と書いてあるが、PhysicalDriveをGENERIC_WRITEで開く必要があり、事実上、admin必須なので候補から除外。"
SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのスピードスライダ改良(使っている人、どれだけいるのだろう?)、完璧とは言えないが、まあこんなものかな?というレベルにはなった。 転送時間とsleep時間の比率をベースに、SSD/HDD/ネットワークを識別して、パラメータ調整するイメージ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "RAIDになると、バックエンドの物理HDDが複数となる場合があり、同一判定でも常にシーケンシャルアクセスが良いかというと、そうでもない場合もありそうで、そのためにデバイス毎の上限アクセス数設定(デフォルト:1)があった方が良い?と思うことも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VeraCrypt(TrueCrypt)がマウント時に、自分自身の暗号ボリュームファイルに対して、 IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS を発行して覚えておけば良いだけなのだが…あまりニーズが無いということかしらん。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "VeraCrypt(TrueCrypt)で、FastCopyが同一HDD判定を間違う、という報告が来るが、 VeraCryptが IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS ioctl に常に0を返す挙動のため。 https://t.co/kdemtBfCkR"
FadisさんはTwitterを使っています: 「昔: 皆がストレージにバラバラ書くと性能が出ないから読み書きはカーネルに投げろ、カーネルがスケジューリングする 今: カーネルがスケジューリングすると貴重なCPUを浪費するからストレージにそのまま投げろ、スケジューリングはストレージのコントローラがする」 / Twitter
mumumuさんはTwitterを使っています 「Small is Better: Avoiding Latency Traps in Virtualized Data Centers [SoCC '13] vCPUやパケットキューにおいてShortest Remain Time Firstなスケジューリング(処理時間が短いパケットを優先する等)により,ホスト側だけの工夫でDCにおけるNWレイテンシを削減する研究 https://t.co/7YQCVjfpnh」 / Twitter
socc13_final.pdf
mumumuさんはTwitterを使っています 「I/O Scheduling Model of Virtual Machine Based on Multi-core Dynamic Partitioning [HPDC '10] DomのIOを監視してIO-boundな場合高頻度にコンテキストスイッチするFast-tick,ドライバDomはDriver,その他はGeneralという3種類に分類.それぞれに専用の物理コアを割り当て.https://t.co/MefZs06FEY」 / Twitter
I/O scheduling model of virtual machine based on multi-core dynamic partitioning | Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing

Linux Kernel: PSI - Pressure Stall Information /proc/pressure/io で IO 待ちを観察する - hibomaの日記
「OSの最深部」が垣間見える「ディスクの暗号化」に関するCloudflareのカーネル改善記録 - GIGAZINE
Linux:昨今のI/Oスケジューラ事情 2020 | SlackNote

デバイスドライバ

その他

UIO

組み込みの人。さんのツイート: "LinuxのUIO (Userspace I/O)を試しているのだが、カーネル内のドキュメントが2006年から更新されてなくて、現状と食い違っててつらい。"
まさみさんは語りたいさんのツイート: "他のドライバのフレームワークと比べてUIOの場合厄介なのは、それを使うサンプルコードとなるドライバが、カーネルに含まれていないってことなんだよな。"
UIO(User space IO)の割り込みの使い方の例 - Qiita
[Linux] User I/O | archmemo
LinuxのUIO(User space I/O) その1 - Qiita
LinuxのUIO(User space I/O) その2 - Qiita

printk

まさみさんは語りたいさんのツイート: "Linux kernelのprintkで出力されるアドレス、%pを使うと暗号化されて出てくるようになってるけど、これを一元的に止める方法ってあるんだっけ?"
このコード、オシャカルトっ!さんのツイート: "@mhiramat /proc/sys/kernel/kptr_restrict を0にするっぽいです。"
まさみさんは語りたいさんのツイート: "謎だな、%pxにするとリークしちゃうというのは分かるから、%pKにするのが正解なのか。"
まさみさんは語りたいさんのツイート: "んー?kptr_restrictが0でも、%pKを使うとハッシュ値しか表示されないんですがこれは。"
まさみさんは語りたいさんのツイート: "わかったこと ・printkで%pだけを使うと常にハッシュ値が表示される。 ・%pKを使うとkptr_restrict=1の時だけsysadminには表示され、0のときはハッシュ値になる。 ・vsprintf.cのプログラムはこの辺りの処理が適当に書かれている。"
まさみさんは語りたいさんのツイート: "何が適当かって言うと、%pKの処理でkptr_restrict=1の時の処理が2重に書かれていて、通らない方の処理が残ってしまってるんじゃー!そしてそっちの方ではkptr_restrict=0の時には常に表示される、って設定になってる。 惑わされたわ。"
まさみさんは語りたいさんのツイート: "ああ、今最悪のblame結果を得た。通らない方の処理の方が先に書かれていて、その6日後のコミットで通る方が追加されているけど、追加したのはLinusだ。"
まさみさんは語りたいさんのツイート: "あー、理解した。%pKやめようぜっていう話なのか。基本的にkptr_restrictedは削除する方向になっているらしい。"
まさみさんは語りたいさんのツイート: "多分KASLRがあるためなんだけど、絶対アドレスでカーネルの内部を表示することは基本的にありえないっていうことになるようだ。"
まさみさんは語りたいさんのツイート: "デバッグ用途では未だ必要な気がするんですがそれは・・・。"
まさみさんは語りたいさんのツイート: "printkの%pKの処理を修正しようと思ったけど、Linusのパッチコメントでkptr_restrictが否定されていたので投げる気にならない。 というか、どうすればいいんだ?? https://t.co/Rsj5wJ95MP"
まさみさんは語りたいさんのツイート: "%px使えってことなんかな?"
まさみさんは語りたいさんのツイート: "printkの端的な理解を得た。 https://t.co/g6qGem5U1M ・%pxどころか%pもホンマはあかん。意味ない。使えんインタフェースをわざと残すことで、再考して欲しいんや。 ・そもそもホンマにカーネルのアドレスを教える必要なんてあるんか?よう考えてコーディングせい"
まさみさんは語りたいさんのツイート: "あとはkallsymsは何故特例として残されたか、が気になる。kprobesで比較するのはkallsymsだから、これと同じように扱われて欲しい。"
まさみさんは語りたいさんのツイート: "kallsymsはkptr_strictよりも少しきついだけの仕組みなんだけど、これを参考にしたほうがいいのか、%pKを使うべきなのか?"
まさみさんは語りたいさんのツイート: "ごめん、これは間違い。%pKも推奨されない。どうしても必要なら良いけど、基本的にはアドレスをポンポン表示しないこと、らしい。"
まさみさんは語りたいさんのツイート: "一応 %pの修正シリーズ出しておいたけど、4.14でどうなってたっけな?おかしかったらバックポートしないと・・・。"
まさみさんは語りたいさんのツイート: "しかし未だにprintkの%pをどうするべきかが良く分かっていない。今のままだとインタフェースとして意味がないから、なんとかしないといけないんだけど、うーん・・・。"
まさみさんは語りたいさんのツイート: "ふむむ、kptr_restrictはkallsymsがアドレスを隠す仕組みとは全く関係ないっぽいな。これはややこしい。"
まさみさんは語りたいさんのツイート: "LKMLを追いかけて理解した。 - %pは既にアドレスを表示しないようになっている(ハッシュ値) - %pxを明示的に使うことが必要だが、これ以上は必要でなければ使ったら警告される - %pKにすること。"
まさみさんは語りたいさんのツイート: "kallsymsはkptr_restrictが有効でなくても%pKと同じ動作をするようになってる。"
まさみさんは語りたいさんのツイート: "むしろkallsymsの方にスタンダードを併せて欲しい(笑)"
まさみさんは語りたいさんのツイート: "結局kallsymsと同じように振る舞うコードを書いて投げてみた。そのまま通ればそれでいいし、議論になったらなったで今後どうするつもりなのかを確かめてから修正する。"
まさみさんは語りたいさんのツイート: "それ既にLinuxでは削除しようかみたいな流れになってる。代わりに%pはハッシュ値になる。オプションではなく強制。アドレスをどうしても出す場合、%pxを使うことになるが、ダメコードとしてマークされる可能性が。… "

LinuxBoot

Fadisさんのツイート: "LinuxBoot: 「どうしてOSにドライバがあるのにUEFIの為にまたドライバを書かないといけないの?」に対するパンチの効いてソリューション。UEFI PEIの上でLinuxカーネルというファームウェアを動かしてLinuxのカーネルドライバを使ってOSを起動できるようにしよう、というもの https://t.co/e6XcY1J1qS"
LinuxBoot
Ryou Ezoeさんのツイート: "ちなみに推進しているのがGoogleという時点でお察し。… "
Ryou Ezoeさんのツイート: "すでに、デバイス上に転送して使うファームウェアブロブ以外すべてLinuxカーネルにしようというCoreboot、あらゆるブロブを廃止しようというLibreboot/Librecoreがあってですね。今回のはブロブを許容した上でLinuxカーネルを動かそうという試みで自由から一歩遠ざかっている。… https://t.co/6uVPlBJ1ZJ"
suzakiさんのツイート: "私は全てのNICにiPXEをインストールしてほしい。https://t.co/pqlREbcUn2 これがあれば、HTTPSでLinuxが起動でき、危険なTFTPブートを使わなくて済む。【宣伝】私が作っているBare-Metal ContainerではiPXEを使って任意のDockerイメージにLinuxカーネルをつけて、起動できますhttps://t.co/8udmvyyAu2… https://t.co/5EnFZdRJya"
iPXE - open source boot firmware [start]
baremetalcontainer/bmc: BareMetalContainer

NERF

Google Even Fear Intel ME, Reduce Their Attack Vector With NERF - Phoronix
more on Google NERF | Firmware Security
NERF - Trammell Hudson's Projects

blog

DSAS開発者の部屋:mruby を Linux カーネル内で動作させる(2017 ver)
linuxでRyzenの温度センサーを動くようにする - 覚書
Ryzenを積んだマシンで発生した新たな問題とその解決 - 覚書
x86-64 モードのプログラミングではスタックのアライメントに気を付けよう - uchan note
ファッション自作OSマンさんのツイート: "分かった.CPUが割り込み発生時に自動でスタックを整列してくれるんだ.Intel SDM Vol.3 6.14.2 "In IA-32e mode, the RSP is aligned to a 16-byte boundary before pushing the stack frame.""
IBM PC のタイマー事情 - 借り初めのひみつきち
Intel HD Audioで音を奏でよう
Intel HD Audioで音を奏でよう
はりぼてOSにIntel HD Audioを実装してみる[随時追加] - matsumoto-lab’s diary
2014-12-13

Qiita

仮想シリアル(COM) ポートドライバ「com0com」によるシリアル通信 - Qiita
Null-modem emulator (com0com) 日本語情報トップページ - OSDN
Linuxの不揮発メモリ対応について - Qiita

Twitter

Fadisさんのツイート: "linux-4.16から/dev/memがデフォルトでペリフェラルにしか読み書きできなくなる。この制限は2.6時代に実装されたが長らくデフォルトでオフだった。オフの場合rootはカーネルメモリを含むあらゆる場所を読み書きできる為、不必要に開けておくべきではないとされている https://t.co/2Z7Q0klUV8"
Linux 4.16 Is Tightening Up Access To /dev/mem By Default - Phoronix
まさみさんは語りたいさんのツイート: "Linux kernelのモジュールも、ファイル名にはハイフンが使えるけど、実際にロードしたあとはアンスコに変換される。ちょっと面倒。"
Fadisさんのツイート: "I3Cってなんぞって思って調べたら、I2Cが遅すぎるけどSPIだとデバイス数に比例して配線増えて辛いからI2Cのようにデータ線とクロック線の2本で沢山のデバイスをぶら下げられて、最大半二重33Mbpsで通信できる次世代I2Cとして作られたバス規格、と…"
Makoto Kato ︎︎さんのツイート: "98NX、登場が2年早すぎて、OSR2.1/2.5のバグに引っかかりまくった記憶しかない。大概ISA PnPのIRQ rebalanceでいろんなものが動かなくなってくパターンだったけど。rtermが安定しないからすぐデバッガがハングアップしちゃってデバッグつらいだけだった"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応ドライバやカーネルコード知らない人向けに補足すると、カーネル側はユーザ側がポインタ指定したデータを取り出すのに copy_from_user/copyin等を介して取り出す必要ありと。 (アドレス空間が違うので直接触ると落ちたり…ただし昔のUNIXは(トップハーフ側なら)直接触れるものが多かった印象)」 / Twitter
FadisさんはTwitterを使っています 「OpenRGB-0.3がリリースされたらしい。OpenRGBは近年よくあるRGB LEDで光るPCパーツのベンダー毎の実装の違いを吸収し、統一された方法でネットワーク越しに色を変えられるようにするデーモン https://t.co/OhwZ8217N8」 / Twitter
OpenRGB 0.3 Released For Open-Source RGB Lighting Control - Phoronix

なぜWindowsの標準ドライバーはすべて「2006年6月21日」のまま更新されないのか? - GIGAZINE
第559回 デバイスの認識をモニタリング・コントロールできる「udevadm」:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
スフォルツァートのネットワークプレーヤーがLAN DAC機能に対応 - PHILE WEB
DeviceTree: The Devicetree Specification
devicetree-org/devicetree-specification-released: Released versions of the Devicetree Specification
Virtual I/O Device (VIRTIO) Version 1.0
io386: tool wrapping around ioperm(2), iopl(2), outb(b), etc. | Firmware Security
groeck/lm-sensors: lm-sensors repository
start [HWMon Wiki]
HID over I2C | Microsoft Docs
ConexantのドライバをアンインストールしてPCのイヤホン出力を改善
XMODEM Protocol Overview
レガシーフリーOSに必要な要素技術 legacy free os
FreeBSD Press No.12 NetBSD column デバイスドライバにありがちなi386依存の罠
Kazuho OkuさんはTwitterを使っています 「わかる。上のレイヤで冪等性担保する仕組みがあると、下はすごい楽になる。レイテンシの低い冪等性(再送)アルゴリズムの設計と実装、すごく難しい(楽しい)んですけどね」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「virtio ドライバを実装していたときに思ったけどネットワークとストレージだったら後者のほうが難易度高い。TCP/IPネットワークはパケロス前提でOSが再送するけどもストレージは要求に対して応答が返ってくることが前提だからな。冗長化していても発生する問題を回避できる技術があったらきっと稼げる」 / Twitter
Rustを使用して安全で正しいLinuxカーネルドライバーを作成

ストレージ

SATA

AHCI

Advanced Host Controller Interface Specification
AHCI - OSDev Wiki
AHCI Memo · osdev-jp/osdev-jp.github.io Wiki
AHCI_code_example · osdev-jp/osdev-jp.github.io Wiki
5/1 自作OSもくもく会さんのツイート: "ICH8/9のSATAコントローラは、クラスコードは01h固定だが、サブクラスコードはIDEモード(01h)とAHCIモード(06h)で値が変わるようだ。"
AHCI capability - 総本部日誌
Microsoft Word - dg_sataahciip_refdesign_jp.doc
Microsoft Word - dg_sata_achi_ip_data_sheet_jp.doc
Reconf 201506
AHCI奮闘記 - 初期化編 - 無限遠まで突撃中
AHCI奮闘記 - Read/Write編 - 無限遠まで突撃中

ATA-ACS

AT Attachment 8 - ATA/ATAPI Command Set
AT Attachment 8 - ATA/ATAPI Command Set
AT Attachment 8 - ATA/ATAPI Command Set
ATA Command Set - 4 (ACS-4)
ISO/IEC 17760-102:2016(en), Information technology — AT Attachment — Part 102: ATA/ATAPI Command set - 2 (ACS-2)
HDDのATA8-ACS規格について色々調べてみる - ぼくんちのTV 別館
ASCII.jp:SSDサポートにさらなる一歩を踏み出したWindows 7 (1/2)|あなたの知らないWindows
【大原雄介の最新インターフェイス動向】Serial ATA 3.0編その1 - PC Watch
【大原雄介の最新インターフェイス動向】Serial ATA 3.0編その2 - PC Watch
T13
Home - INCITS
Untitled Page
ASCII.jp:Windows 7の実像 Part 5 OSのSSD対応とエンハンスドストレージ (1/2)|次世代Windowsの姿が見えた!
【元麻布春男の週刊PCホットライン】SSDに関するWindows 7の3つの特徴 - PC Watch

忘却の彼方

忘却の彼方: DEVSLP(Device Sleep)機能とは
忘却の彼方: Intel Driver V11.5以降のSATA LPMの設定
忘却の彼方: SATA LPMの設定方法
忘却の彼方: SATA LPMって知ってますか?
忘却の彼方: SSD/HDD用ベンチマークソフト「TxBench」
実績:ベンチマークソフトウェア TxBENCH|株式会社テクシム ソフトウェア開発・販売

S.M.A.R.T

S.M.A.R.T 情報
CrystalDiskInfo – 参考文献 – – Crystal Dew Blog
USB-HDD 対応はなぜ難しいのか? – Crystal Dew Blog
Seagate SMART Attribute Specification
S.M.A.R.T. is SMART! 各社対応編
HDDのS.M.A.R.T情報を取得する(UsefullCode.net)
世界基準を作った男。「CrystalDisk」シリーズの生みの親“ひよひよ氏”直撃インタビュー - エルミタージュ秋葉原

SecureErase

忘却の彼方: Linuxを使用したSecureEraseの手順
忘却の彼方: Crucial M500/M550/MX100とSecure Erase
一方、ふうえんさんちでは… Secure Eraseを回復不可能セクタに試す
ALL about Linux: SecureErase を実施してみた
ALL about Linux: SecureErase のために frozen 状態を解除する方法
ALL about Linux: 中古 SSD の SecureErase

Wikipedia

Self-Monitoring, Analysis and Reporting Technology - Wikipedia
S.M.A.R.T. - Wikipedia
Aggressive Link Power Management - Wikipedia, the free encyclopedia
シリアルATA - Wikipedia
Serial ATA - Wikipedia, the free encyclopedia
Serial ATA International Organization - Wikipedia
情報技術規格国際委員会 - Wikipedia
International Committee for Information Technology Standards - Wikipedia
ハイブリッドHDD - Wikipedia
Hybrid drive - Wikipedia
ソリッドステートドライブ - Wikipedia
Solid-state drive - Wikipedia
シングル磁気記録方式 - Wikipedia
Shingled magnetic recording - Wikipedia
DevSlp - Wikipedia
Trim (computing) - Wikipedia
Native Command Queuing - Wikipedia

Twitter

✿せかいの底のゆるふぁ✿さんのツイート: "双子のVirtualBoxとVMWareのお話🐤"
✿せかいの底のゆるふぁ✿さんのツイート: "ideのディスク0にハードディスクを構成、ディスク1はデバイスなし🐤 https://t.co/gZtnRd4pNU"
✿せかいの底のゆるふぁ✿さんのツイート: "一方で、VMwareのEXECUTE DEVICE DIAGNOSTICの結果🐣 https://t.co/QhFQuxSl0f"
✿せかいの底のゆるふぁ✿さんのツイート: "両方ともデバイス1がありませんが、各レジスタ-の戻り値が違いますね🐣"
✿せかいの底のゆるふぁ✿さんのツイート: "つまり決定性がないように見えます🐣"
✿せかいの底のゆるふぁ✿さんのツイート: "これをどうやってデバイス1がないことをdetectするのかが問題です🐣"
✿せかいの底のゆるふぁ✿さんのツイート: "答えはATAの仕様に記述されています🐣"

Purchase SATA Specification | SATA-IO
20100521170123066.pdf
dwm013300770.pdf
SATA hardware features - ata Wiki
HDD が AV コマンド対応か調べたい: ひでのブログ

NVMe

Twitter

mariadb

Takeshi HASEGAWAさんはTwitterを使っています 「MariaDB 10.5 の性能は不正? - DB改造屋雑記 https://t.co/PMjdfnxU67」 / Twitter
DB改造屋雑記: MariaDB 10.5 の性能は不正?
FadisさんはTwitterを使っています 「mariadbの話みてふとSPDKのNVMeドライバのflushの実装が「デバイスに何もしないで成功を返す」っていう最高にロックな実装だったのを思い出して、今は直ったのかなと思ってみたら相変わらずロックで安心した https://t.co/0Hz3CbBqm4」 / Twitter
spdk/bdev_nvme.c at 90db6167ce6331bcb9c93abd05c0999d3d834726 · spdk/spdk
FadisさんはTwitterを使っています 「NVMeのWRITEはデバイスによってはコントローラが要求が受け付けた時点で成功が返るので、FLUSHを呼ばないとWRITEした内容が永続化されている事が保証されない。Linuxカーネルのドライバはflush時にきちんとFLUSHしてて、SPDKのドライバのflushは虚無だったから、SPDKが圧倒的速く見えるという…」 / Twitter

histric-1

Fadisさんのツイート: "SATAのHDDは最大32個のコマンドを積めるキューをデバイス側に持っている。複数のコマンドを予約しておく事で、デバイスはより効率よくディスクを読み書きできる順にコマンドを並び替えて実行することができる。32個という上限は効率良くヘッドを動かす目的では十分な効果を発揮する長さだった"
Fadisさんのツイート: "しかし大量の不揮発メモリに一斉にアクセスできる時代にこのキューは短すぎる。そこでNVMeでは65536個のコマンドを積めるキューを最大65536個デバイス側に持てるようになっている。キューが複数になったことで個々のプロセッサは他のプロセッサがキューを操作する可能性を考慮する必要がなくなる"
Fadisさんのツイート: "ストレージが極めて高速な時代にその性能を生かすにはできるだけドライバに仕事をさせないことが重要とされている。NVMeではハイパーバイザがゲストにNVMeストレージの一部を見せる際にソフトウェアによる変換を行わなくて良いように、ハードウェアによる仮想化支援が規格化されている"
Fadisさんのツイート: "NVMeの仕様凄すぎて「SATAがおもちゃのようだ…」っていう感想が無限に出てくる"
satさんのツイート: "SSDならI/Oスケジューラが邪魔って話は結構有名でnoopにしようって書いてあることもある。ただしそうすると高I/O負荷状態で特定I/Oリクエストが永久に発行されない問題があるので結局SSDはdeadlineがデフォ。最近はBFSが出てきたが、評価してない。あとこれNVMe SSDだとBFSはどうなるんだろ"
ゆるsyuu1228△さんのツイート: "そういえばNVMeってMQ NICみたいに仕様上はマルチキュー対応してMSI-Xでキュー毎にIRQ持てたはずだけど現物はそうなってるかなぁ、と思って/proc/interruptsみたら確かに割り込みが複数見えるし割り込み先は各CPUに分散されてる https://t.co/ECuH6VTbJN"
nvme-interrupts.txt
中村 実さんのツイート: "NVMeの仕様はInfiniBand & OpenFabricsの仕様を大いに参考にしていると思われます。… "
<4D6963726F736F667420576F7264202D2081A18E9197BF34322D312D32814088CF88F589EF95F18D902E646F63>
satさんのツイート: "(そこでSPDKですよ)"
中村 実さんのツイート: "似ているというか、最初のNVMe仕様書を読んだ時は、用語の選び方や説明の仕方がInfiniBand仕様書にそっくりだと思ったものです。… "
satさんのツイート: "SSD、とくにNVMe SSDくらいだとソフト(カーネル)でI/O発行前に一旦溜めてゴニョゴニョしてる間にI/O発行して制御返ってきますので"
satさんのツイート: "具体的にどんな問題かというと例えばデバイスの尻の方にI/O一発出してからデバイスの頭の方に無限にI/O出すと 1. 前半のI/Oがブロック層でマージ/ソートされる 2. 一定数溜まるとドライバに渡される が延々と繰り返され、最初のはずっと残る。細かい条件は覚えてないけど、だいたいこんなん"
Takeshi HASEGAWAさんのツイート: "NVMはインターフェイス決めたものなのでそれをどう捌けるかはコントローラの問題なんだよな。はやくioDriveにあらゆる視点で勝てるデバイスでてほしい。"
Takeshi HASEGAWAさんのツイート: "Fusion-ioはCPU側でFTLまで実装してしまって、FPGAにあるのはフラッシュメモリへの転送を行うDMAコントローラやECC機能とかだった。OSのブロックレイヤを迂回するために各種小技を使っていた(場合によってはiostatが正しい報告をしなくなり、カーネルによってはunplug bug発生させたりもした)"
Takeshi HASEGAWAさんのツイート: "DDR2やDDR3のメモリ、2GHzのマルチスレッドプロセッサがホストにあるのなら下手に組み込みプロセッサでFTLするより早いだろ?という発想の作りだった。バス幅もクロックも高いし組み込みプロセッサの放熱なども考えなくていい。いま思い出してもいかにシンプルか‥知識が増えた今の方がやばく感じるな"
Takeshi HASEGAWAさんのツイート: "ここ一年でioMemoryの代わりに最新のNVMe評価したエンジニアが「ioMemoryのほうが速かったですね」とコメントしたという件を聞いて頭を抱えた。なんで2013年に設計されたioMemoryが実アプリでの性能評価で最新NVMeに勝ってしまったのか。がEOLになったいま、マジでioDrive麻薬が切れようとしている。"
Takeshi HASEGAWAさんのツイート: "75W消費し、カタログスペックの帯域幅倍近く差をつけられたHuaweiのカードに対して21W設計のioMemory SXが勝っちゃってお客さんに採用されたときも驚いたけどな。「もうさすがにFusion-ioの時代終わっただろ」と思ってパフォーマンスデータみるとケースによっては、かなり健闘していて、正直、びびる。"
satさんのツイート: "noopはたしか - 基本的にはFIFO - ソートはしない - キューの先頭に対してだけはマージしうる なので、似たような場所にI/O出しまくってると永久にマージされ続ける(ある程度溜まったらドライバに渡される)、という話だったと思います。たぶん。 大昔のlinus elevatorはソートもするのでもっと悲惨… https://t.co/WZeoK8XzAR"
Takeshi HASEGAWAさんのツイート: "私自身もioDrive2と某ストレージの比較したら、ioDrive2のほうが速くなっちゃって、あわててベンチマークのメトリック変えたりしたけどね。そのままじゃシナリオ通りにならなかったのでホスト側のバッファ絞って、リード帯域幅がより出せる最近のストレージにあわせてioDrive2より速くなるようにした"
satさんのツイート: "これちょっと訂正。マージはするけどソートは無し。いにしえのI/Oスケジューラと混じってた"
Fadisさんのツイート: "NVMe「プロセッサごとに割り込みを用意して効率よくコマンドの完了を通知… SPDK「割り込みなんて時間かかる処理いらねぇ! 俺はCPUをビジーループさせてデバイスをポーリングするぞ!」"
Fadisさんのツイート: "DPDKもSPDKも他のプロセスにCPUを譲る気ゼロでお前らなんでOSの上で動いてんの感満点である"
Fadisさんのツイート: "NVMeの仕様見てたら、デバイス側のメモリをホストのメモリ空間にマップして読み書きするデータを直接そこに書き込む拡張、とかあって「アッこれGPUでやったやつだ」ってなった。イマドキのストレージはそこまでするのか…"
まさみさんは語りたいさんのツイート: "GPUから直にNVMe読み書きすることもできると聞いた。… "

histric-2

Fadisさんのツイート: "NVMeのストレージ、取り付けたPCが起動していた時間と、正しい手順を踏まずに電源を落とした回数がデバイスに記録されてるwww"
Fadisさんのツイート: "従来のストレージだとSMARTとかでやってたのがNVMe自体の規格に取り込まれてる感じなのかな"
Takeshi HASEGAWAさんのツイート: "レジスタがあるはず。… "
Fadisさんのツイート: "ありますねー https://t.co/Bx6AUA0gzf… "
SPDK: spdk_nvme_health_information_page Struct Reference
Fadisさんのツイート: "NVMeのCMBを使うと、あるLBAにあるデータをCPU側のメモリに持って来る事なく別のLBAにコピーすることが出来るわけで、ファイルシステムは連続した領域を確保するために積極的に保存されているデータを移動させる事も選択肢に入れるべき状況になってきてる"
Shirouzu Hiroaki(白水啓章)さんのツイート: "半導体メモリ系で、連続領域確保の必要性が良く判らない…ブロック(or ページ)未満のフラグメントの話なのかな? 話は飛んで NVDIMM-P。内部のDRAM - 不揮発メモリ間の転送=ページアウト・イン的な動作時に、CPU側のメモリバス帯域を汚さないだろう点に興味があったり。… https://t.co/kLlmmOokle"
Fadisさんのツイート: "昔流行ったioDriveと比較して最近のSandiskのNVMeは秒間にさばけるコマンド数では勝るけど1コマンドあたりのレイテンシでは負けてて、NVMeは性能を活かすにはFSやアプリケーションのレイヤーで「IOの完了を待つな」「できるだけ沢山のリクエストを受け付けてキューに積め」を徹底する必要があるげ"
Takeshi HASEGAWAさんのツイート: "ただ実際のところアプリケーションの動作としてキューに詰めて仕掛り状態で並列に実行できるものなら、という条件がつくんだよね。マイクロ秒の持ち時間で複数スレッドの行更新を調停し、真面目に見たら並列実行できないクエリをグループコミットするアルゴリズムなどで賢くしていくしかないのでは?"
Takeshi HASEGAWAさんのツイート: "なんでNVMe SSDがそんな方向に進化しているかって、そりゃみんな GB/s とか MB/s とか IOPS とかって所に書かれてる大きな数字が好きだろ?"
Fadisさんのツイート: "古典的なゲーム屋さんが燃えるタイプのマゾデバイスだこれ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの非同期I/Oを多用した仕組みに時代が追い付いてきた?… "
syuu1228さんのツイート: "Scylla、まずSSDベンチマーク走らせてIO並列度いくつまで上げていいか計らないとDBの起動が許可されないようになっておる https://t.co/6UBEIFH1D8"
syuu1228さんのツイート: "ほぼ初期からこうなので何の疑問も抱いてなかったけど冷静に考え直すと鬼畜仕様っぽいな https://t.co/qK2c9czbi6"
Takeshi HASEGAWAさんのツイート: "NVMe SSDとioDriveの比較DBベンチマークの取り方の一例。NVMeを強く見せたいなら、システムメモリに収まりきらないDBサイズでOLTP負荷をかければ、読み込み帯域の差で、新しい世代のNANDが載ったNVMeが勝つ。ioDriveを勝たせたければ、メモリに収まるDBサイズでロギング性能勝負にするとioDriveが勝つ"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NVMe(EVO960 1TB)内でファイルコピーする際、readとwriteを並列発行するのと、交互発行(read完了してからwrite発行)するのでは、2倍近く後者が速い不思議。 (DirectI/O + 1MB非同期I/Oを20個キューイング、Win10) HDDみたいな結果に。 (2.5インチSSDドライブではほぼ速度差なしだった記憶)"

histric-3

Fadisさんのツイート: "SPDKでSandiskの速いNVMeに直接writeを投げてみたら、1ページの書き込みでおよそ10μ秒とかいう計測ミスってんじゃないかって思うような時間で応答が返ってくる ._."
Fadisさんのツイート: "あっ、このデバイスVolatile Write Cacheがついてる。だから書き込みが読み込みより早く返ってくるのか"
Fadisさんのツイート: "spdkのblobstoreさん、デバイスのvolatile write cacheに載ってるデータのflushを行う手段が無いの渋い"
Fadisさんのツイート: "/dev/zeroのスループットが何故か1GB/sくらいで頭打ちになってnvmeから0をreadしたほうが性能が出るの、どうしてそうなった…"
Shirouzu Hiroaki(白水啓章)さんのツイート: "bs=1M とかにしてみては?… "
Fadisさんのツイート: "bsをいろいろ変えて試してるんですが、1GB/sくらいで頭打ちになってるようなんですよ(if=/dev/zero of=/dev/nvme0n1でifをキャッシュに乗っているファイルにした場合もっと出る)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 if=/dev/zero of=/dev/zero bs=1M だと1コアをsys側で使い切った上で、1GB/sとかですか?… "
Fadisさんのツイート: "ほとんどsysですね… "
Fadisさんのツイート: "ただ コアを使い切って はいないようです。sysが60%くらいuserはほぼ無しで安定してます… "
Fadisさんのツイート: "あ、読み間違えてました、両側zeroはまだやってないです… "
Fadisさんのツイート: "両側/dev/zeroだと22.5GB/s出ました。ということはzeroが遅いわけではないって事になりますね… "
Fadisさんのツイート: "どうも/dev/zeroが遅いわけではないことがわかった、何でzeroとnvmeの場合だけ遅くなるんだろ"
Fadisさんのツイート: "NVMeでは複数のキューから命令を受け付ける為、ストレージ内で競合状態を起こす可能性がある。同じデータを触る2つの命令の間に、同じデータを触る別のキューの命令が割り込んで意図しない結果になるのを回避するために、キューに積まれた2つの命令をatomicに処理する為のフラグが用意されている"
Fadisさんのツイート: "SSDさんベンチマークとってると、同じベンチマークを繰り返してるのに突然お腹をこわしてスループットが1/3くらいに落ちたりして、SSDの気持ちを理解するのは難しい"
Fadisさんのツイート: "SSDさんは無口でコントローラが何をしているのか教えてくれないので、対話は困難を極める ._.… "
Fadisさんのツイート: "昨晩の睡眠を犠牲にする事によって「SSDのスループットはカーネルが何もしなくても時間と共に変化する為、2つの条件でとったベンチマークを比較する場合そのベンチマークは可能な限り近い時刻で取らなければならない」という悟りを開いた"
Takeshi HASEGAWAさんのツイート: "前のワークロードの影響を受けるからね。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "SSDを2つ並べて、同じタイミングでベンチ開始、という意味ですか? それとも、同じSSDを立て続けにベンチ?… "
Fadisさんのツイート: "立て続けです。2つの条件のベンチマークをそれぞれ10回づつ繰り返して平均をとっていたんですが、SSDが突然速くなったり遅くなったりするので、2種類のベンチマークを交互に行って比をとるようにしたら分散が小さくなりました、という話です… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど! 双方を連続してベンチするだけでなく、何度も(間断なく)繰り返すのがポイントという感じですか。 (単発テストだと、双方を連続してベンチをとっても、最初に試行する側が好成績になりがちな印象があったので…)… "

Fadisさんのツイート: "Fadisさん「NVMe SSDどんなに激しく扱ってもコンテキストスイッチのオーバーヘッドとか誤差なんだけど、Intelはどんな環境でSPDKやってるんだろう」 Intelのドキュメント「Xeonサーバに、NVMe SSDを16本さして、100GbE 2枚にデータを流しても、SPDKならスケール!!!」 Fadisさん「ア、ハイ」"
Fadisさんのツイート: "公式のパフォーマンス報告に書いてある環境が凄すぎて用意できない問題"
Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 以前、Win10 + Direct I/O + Async I/O + EVO960実験中に気付いた話。 ReadキューとWriteキューを同時に溜めると大幅に速度低下する。 速度向上に Asyncで並列度を上げるのは大事だが Readキューを連続蓄積&処理した後に、Write I/Oキューを連続蓄積&処理した方が、1.5~2倍速くなる。… https://t.co/wXChry7hxh"
Shirouzu Hiroaki(白水啓章)さんのツイート: "EVO960でRAIDを組むと、SPDK等無しでも 6.5GB/s に。 (M.2-PCIe変換ボード2枚刺し環境) https://t.co/AsDBqJkngG"
Fadisさんのツイート: "NVMeのSSDは、きちんと性能が出るように使うには工夫がいる扱いの難しい子だけど、うまく使うと3万円のNVMeで150万円のioDriveを圧倒するスループットが出る、弄りがいのある子だよ"
hitoさんのツイート: "「まさかの(実用上)Windows専用のNVMe」なんていう概念が誕生していてquirkを強いられるLinux https://t.co/P1X96Gi3hY"
Fadisさんのツイート: "NVMeをソフトウェアのRAID0でより高速にしようというアイデアはやめておいた方が良い。PCI-Expressの帯域不足が問題になる程の勢いでデータを流してくるデバイスに「データを加工して読み書き」なんて工程を追加したら簡単にCPUがボトルネックになる。どうしてもそこを攻めたい時はSPDKを使うと良い"
KaiGai Koheiさんのツイート: "あれ、ちょっと待てよ。 PG-Stromの場合、GPUDirect RDMAを使って(つまりGPUデバイスメモリをホストアドレス空間にマップして)NVMEのコントローラに『ブロック⇒GPUメモリ』のデータ転送をさせてるけども、逆にNVME側のバッファをマップして、GPUのDMAエンジンでReadできるかも?… https://t.co/bxpYwpXtjA"
鯉江さんのツイート: "NVMe->GPUとかFPGAに直接流し込めないものだろうか...… "
Fadisさんのツイート: "その為にNVMeにはController Memory Bufferという拡張があります。対応したデバイスの場合、ホストのアドレス空間にマップされたデバイスのバッファに置かれたデータを対象にread/writeが可能なので、PCI-Expressのデバイス間でデータをDMAして、read/writeコマンドだけCPUから投げる事ができます… https://t.co/v0jTUkofDp"
KaiGai Koheiさんのツイート: "そうするとGTXでP2P DMAができてしまう的な。"
KaiGai Koheiさんのツイート: "ただNVME(PCIe)とNVMEoF(RDMA)用のドライバが全く別物になってしまうな、、、これは。"
KaiGai Koheiさんのツイート: "そうですね。元Twは昨晩見ましたが、SPDKがそういった10GB/sとかで押し寄せるデータの処理・加工に有効に作用するようには思えませんので、(?_?)という感じでした。… "
Takeshi HASEGAWAさんのツイート: "なるほど… "
Takeshi HASEGAWAさんのツイート: "ただ条件句うんぬんの処理がさばききれなくなるのが、mdraidじゃなくSPDKでさばけるようになるという話しだとすると、直感的によくわかりません。うーん、RTしたツイートだけで考えるのはよくないですね。あとで流れを読み直してみるか。… "
Takeshi HASEGAWAさんのツイート: "んーしかし元ツイートの趣旨がよくわからんな。 帯域幅当たるほどのスループット出そうとするとブロックサイズ大きくなってきてCPUサチらないんじゃ。というかそもそもNVMeインターフェイスとブラックレイヤーとmdraid介してI/Oして、どんながCPUサチるどんなワークロードだろ。"
KaiGai Koheiさんのツイート: "たぶん、NVME-SSDから読み出したデータを何がしかCPUで処理しようとする(例えばレコード毎に条件句の判定する)と簡単にサチるのという主旨ではないかと理解しました。右から左へ流すだけなら、まぁ、変な作りしてなければ。… "
hiyohiyo (Noriyuki Miyazaki)さんのツイート: "CrystalDiskInfo 8.1.0 Beta2 - Intel RST NVMe サポート - ついにDELL製NVMeモデルに対応しました! ダウンロード: https://t.co/Zf6OWgakVP ソースコード: https://t.co/pSOA7DRXhT… https://t.co/BDttKZG7wD"
CrystalDiskInfo 8.1.0 Beta2 · hiyohiyo/CrystalDiskInfo@902b408
Kazuho Okuさんのツイート: "erase block単位で書込してればtrim不要だしスループットもよくなると思うんだけど、汎用fs+クラウドだと難しいのかなぁ / https://t.co/H7CFUW1zee"
高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ
Takeshi HASEGAWAさんのツイート: "Fusion-ioはTRIM相当操作がめっちゃ速いようにカーネルに反応してて、それを前提で全力でTRIMしまくるコードをSATAかなんかのSSDで使ったらほぼ息しなくなって、カーネルのバグじゃないかとLKMLで疑い始めたが、結果として「SSDがマジでTRIMで固まってるね」でスレ終了したの思い出す… https://t.co/i6IjtpSLZ4"
Nobutoshi Ogataさんのツイート: "“高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ” https://t.co/PKMUway6w3"
品川 高廣さんのツイート: "そういえば Apple の NVMe コントローラおかしい問題は BitVisor でも苦労してたな。https://t.co/T926JEyT59… "
Fadisさんのツイート: "AppleのNVMeストレージを使うためのパッチがLinux 5.4でのバニラカーネル入りを目指している。2018年以降のMacに載っているApple製のNVMeがNVMeの規格に沿っておらずLinuxのNVMeドライバで使えなかった問題を解消するらしい https://t.co/Hd1ZC8QkK7"
The NVMe Patches To Support Linux On Newer Apple Macs Are Under Review - Phoronix
Takanari HayamaさんはTwitterを使っています: 「@utshina2 はい。BitVisor ベースの vThrii では対応済みです。なので、vThrii を入れると Linux も T2 が載った Mac で動いたりします。」 / Twitter
品川 高廣さんはTwitterを使っています: 「@taki_igel なるほど、vThrii を入れると Apple NVMe が標準的な NVMe に化けるわけですね。これは面白いですね。」 / Twitter
FadisさんはTwitterを使っています 「先日LinuxのENAの初期化を速くしていたlitelが今度はNVNeの初期化を速くしたらしい。方法はENAの時と同じでデバイスが利用可能になったかを100ms間隔でチェックしていたのを1ms間隔に変更するというもの。NVMeの初期化は通常100msもかからないため起動時間の短縮が見込める https://t.co/WgQbiHnMt8」 / Twitter
NVMe SSD Systems May Boot Slightly Quicker With Linux 5.7 - Phoronix
FadisさんはTwitterを使っています 「NANDフラッシュは5GB/sを1ブロックづつ処理して達成できる程高速ではない。それでもNVMeが高いスループットを達成出来るのは重複しないブロックに対する操作を同時に行う事で単位時間あたりの性能を稼いでいるから。言い換えるとNVMeは高スループットの割に高レイテンシという特徴を持つデバイスなんだ」 / Twitter
NV(*´ω`*)さんはTwitterを使っています 「@fadis_ 利用者からは高速に見えるけど、実態はNANDの積層とキャッシュでごまかしているというやつですな」 / Twitter
FadisさんはTwitterを使っています 「@nvsofts キャッシュが詰まると突然性能が落ちるし、flushをきちんと待つと小さいI/Oの性能が全然出ないたのしい」 / Twitter
FadisさんはTwitterを使っています 「PS5が採用するかは知らないけど、NVMeはコントローラのバッファをホストのアドレス空間にマップする拡張(CMB)があって、これが使える場合CPUはread要求だけ投げて、バッファに上げたデータはCPUにまわさず直接GPUが持っていくみたいな事ができる。対応してたら絶対楽しい」 / Twitter
FadisさんはTwitterを使っています 「Linux 5.9からNVMeのZoned Namespaceがサポートされるらしい。Zoned Namespaceではストレージは256MBくらいのZoneに分割され、各Zoneは追記または丸ごと消去しかできない。この制約によりFTLの仕事が大幅に減り、不便だが性能の良いストレージが実現する https://t.co/fIyJD0eGg1」 / Twitter
NVMe ZNS Makes It Into Linux 5.9 Along With MD RAID Fixes - Phoronix
FadisさんはTwitterを使っています 「NVMeのZNSやSMRを直接公開するハードディスクはZonedStorageと呼ばれ、Linuxではブロックサイズが異常に大きく特殊なコマンドを受け付けるブロックデバイスという扱いを受ける。こうしたブロックデバイス上で動くファイルシステムには専用の対応が必要で、現状F2FSとBtrFSが対応している」 / Twitter
FadisさんはTwitterを使っています 「NVMeに今年追加されたsimple copyをLinuxが使えるようにするパッチが出ている。simple copyは「デバイス内の複数箇所から読んで一箇所に書く」をデバイス側で完結させるコマンドで、F2FSのログやZNS上に作ったログの整理、CoWなFSで頻発するコピーの性能向上が期待できる https://t.co/7ytVV5pwYg」 / Twitter
NVMe "Simple Copy" Offloaded Copy Support Being Prepared For The Linux Kernel - Phoronix
FadisさんはTwitterを使っています 「このNVMeのsimple copyの狙いって表向きは処理のオフロードだけど、多分デバイス屋は書き込みの目的がコピーであることをデバイスに明示することで、FTLが複数の論理アドレスに1つの物理アドレスを割り当てる(=コピーしたことにする)を可能にするとこまで考えてるよな」 / Twitter

NVMe準拠のPCIe 3.0接続となるIntel製SSD「SSD 750」レビュー。SATA 6Gbps比で2倍以上という圧倒的な速度性能を確認する - 4Gamer.net
SATA AHCI SSD から、NVMe SSD へ|株式会社アークブレイン
NVM Express | 低いレイヤの話
NVM Express » Specifications
koie blog : いってきた: MemoryPlus Workshop
www.snia-j.org/tech/WH/PCIe_SSD/files/PCIe_SSD_101_J.pdf
CrystalDiskInfo 6.7.0-3 | Crystal Dew Blog
NVM Express | tous les jours
NVMe: Controller Initialization and Shutdown Processing | tous les jours
福田昭のストレージ通信 SSDインタフェースの現在(3):PCIe SSDの性能を引き出す「NVMe」 (1/2) - EE Times Japan
NVM Express - Wikipedia
NVM Express - Wikipedia
Non-Volatile Memory Express
Hisaki Oharaさんのツイート: "NVMeFを使っても割込みがなくなるわけでないからSPDK使おうぜ、とかそういう話になるんだろうか"
spdk/lib/nvmf at master · spdk/spdk
「NVMe over Fabrics」でストレージ環境が一変する――注目の技術革新を解説 (1/2) - TechTargetジャパン サーバ&ストレージ
NVM Express1.3 - 約2年半振りのNVMe規格アップデート | PC Core
qemuのNVMeが微妙なlegacy割り込みをする話 - livaの雑記帳
NVMe ストレージの揮発性内部キャッシュ - 誰かの役に立てばいいブログ
徹底解説:SSD向け次世代接続規格「NVMe」、存在感を増す新規格の全貌 (1/2) - TechTargetジャパン サーバ&ストレージ
極めて速いストレージとの付き合い方 - Speaker Deck
BitVisor Summit 7「3. Interesting Issues During NVMe Driver Developmen…
2019年1月18日号 discoの開発,各種ハードウェアサポートの拡充とカーネルパッチ:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
NVM Express Revision 1.2 の仕様が公開されるも肝心の NVMe over Fabrics は含まれず - 教育は参考ブログ
NVMeドライバをLinux上でuioを用いて開発してみたが間に合わなかった - /var/log/hikalium
NVMe HMB機能を使ってみた - Fixstars Tech Blog /proc/cpuinfo
NVMe ドライバの HMB (Host memory buffer) 初期化処理のバグフィックス - Fixstars Tech Blog /proc/cpuinfo

SD

Simplified Specifications - SD Association
新規格「ビデオスピードクラス」に対応したSDカードが登場、SanDisk製 - AKIBA PC Hotline!
cat pics RT bot(代理)さんはTwitterを使っています: 「SDHC 4.xだと64bit addressingは96/128bit descriptorなのかー。ADMA3かー」 / Twitter
cat pics RT bot(代理)さんはTwitterを使っています: 「Apollo LakeだとAPL18 erratumのせいで96bit descriptorでDMAしないと駄目なのかー、なるほどね」 / Twitter
cat pics RT bot(代理)さんはTwitterを使っています: 「ADMA2でも96/128bit descriptorが使えるのか。建て増し増しで訳が分からなくなってきた(最初から分かっていないという説有り」 / Twitter
FadisさんはTwitterを使っています 「2行の変更でRasPi4のSDカードのデータ転送を倍速にするパッチが現れたらしい。SDカードにはクロックの上げ下げ両方でデータを送るDDRモードがあり、RasPi4のハードウェアはこのモードをサポートしているが、誰も有効にしていなかった、という物 https://t.co/ZRS4ooPLGW」 / Twitter
Linux Patch Proposed To Double Raspberry Pi 4 Transfer Speed To eMMC/SD Storage - Phoronix
FadisさんはTwitterを使っています 「Linux 5.11からSD Expressがサポートされるらしい。初のSD Express対応コントローラRTS5261のドライバも同梱。SD ExpressはSD7.0で追加された次世代高速SDカード規格。コントローラとメディアがネゴシエーションの結果SD Express対応とわかるとPCI-ExpressでNVMeを喋り始める https://t.co/CiU0HhZqY0」 / Twitter
SD Express Support Coming With The Linux 5.11 Kernel - Phoronix
FadisさんはTwitterを使っています 「SD7.0のSD ExpressはUHS-IIで使われていたのと物理的には同じ並びの2列目のピンからPCI-Express x1を吐く事になっている。ホストがPCIe 3.0なら1GB/s、PCIe 4.0なら2GB/sで通信を行う。SD8.0では更に3列目のピンが追加され、PCI-Express x2に対応する事でPCIe 4.0なら4GB/sでの通信が可能になる」 / Twitter
FadisさんはTwitterを使っています 「なんか裏面の半分くらい端子になってるし、SDカードの終着点はLGAなのでは感がある https://t.co/jBet1aBPdy」 / Twitter

virtio-blk

ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第20回 bhyveにおける仮想ディスクの実装

バックアップ

一ノ瀬 いろはさんはTwitterを使っています: 「バックアップからの復元を行わなければならない時は、大体焦って普段やらないミスをしてしまうので手順はなるべくシンプルな方が良いと言う主張をして行きたい。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「バックアップは本当に札束で殴るしかない印象ある。」 / Twitter
なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「バックアップの怖いところは、リストアしてみるまで思い通りにバックアップできてるかどうか、個人だと特にテストのしようがないのがつらい。」 / Twitter
一ノ瀬 いろはさんはTwitterを使っています: 「@d_toybox 同型の予備機とか現実的では無いですからねぇ。」 / Twitter

暗号化

Shinji KonoさんはTwitterを使っています 「fs全体を暗号化はアホ過ぎる。しかし、HDD全体を暗号化すれば消す時にはキーを捨てるだけで良いってのはある。しかし、ちゃんとキーを消せるのかってことになる。キーの市場みたいなのができて、そこに売れるとか…」 / Twitter
https://twitter.com/wakatono/status/1308455622317203461
https://twitter.com/shinji_kono/status/1308457516703989762
https://twitter.com/wakatono/status/1308455207903272961
Shinji KonoさんはTwitterを使っています 「必要な部分だけ暗号化すれば良いが、そこから取り出した平文なコピーはどうする。メモリ上にはそういうものがたくさん。メモリも暗号化するのか? 何が目的かによるね。漏洩と暗号化は直交したもの。暗号化したから良いってものではない。」 / Twitter

Twitter

マルチスレッド

κeenさんはTwitterを使っています 「これ面白い。それなりのサイズのファイルに大量にアクセスするとき、SSDだとマルチスレッドで性能が上がるけどHDDだとマルチスレッドで性能が下がる。 Performance Impact of Parallel Disk Access | Piotr Kołaczkowski https://t.co/kj6UYmToWh」 / Twitter
Performance Impact of Parallel Disk Access | Piotr Kołaczkowski
κeenさんはTwitterを使っています 「そこでハードウェアごとにスレッドプールを使いわけて、HDDにはシングルスレッド、SSDにはマルチスレッドでアクセスする話。Rustだと所有権絡みでスレッドプールが複数あると扱いにテクニックが必要になる。 Multiple Thread Pools in Rust | Piotr Kołaczkowski https://t.co/M5yHbnSsDH」 / Twitter
Multiple Thread Pools in Rust | Piotr Kołaczkowski
κeenさんはTwitterを使っています 「HDD x マルチスレッドで性能でないのはそれぞれのリクエストが入り乱れてランダムアクセスになるから。小さいサイズのアクセスならOSがリクエストをソートしてくれるからむしろ速くなる。SSD x マルチスレッドで性能が出るのはリクエストキューを埋められるから。」 / Twitter

histric-1

matsuu@ババウさんのツイート: "ほう。ioping知らなかった。各種パッケージシステムにすでにあるらしい / “linux-freebsd-openbsd-macosx-find-disk-io-latency-with-ioping” https://t.co/iD1Ah5iFTL"
How to find disk I/O latency with ioping monitoring tool on Linux - nixCraft
Yoshihiro OKAMOTOさんのツイート: "SeagateはコンシューマPC向けHDDでSMR採用になったみたいだけど、酷かったArchiveの頃とは違い、故意にSMRの苦手なワークロード走らせたりしなければ普通に使えるようになってるみたいね"
まさみさんは語りたいさんのツイート: "SMRはSMR対応のログファイルシステムがきちんとOSネイティブで実装されていないと使いたくないなあ・・・。どうなったんだっけか。"
Fadisさんのツイート: "DPDKでreadするとプリアンブルを除いたイーサネットフレームが返ってくる。SPDKでreadすると指定したLBAから始まる領域の値が返ってくる。レイヤーとしては大して変わらないのにSPDKの方はなんとかなりそうな気がしてDPDKは険しい道に感じるの、どう考えてもTCPを実装するのが人類には難しすぎるからだ"
Fadisさんのツイート: "SPDKのblobfs、ファイル操作のAPIは根本的に形を変えないと近代的なストレージの性能を活かせないという低レイヤーからの要求と、従来のAPIから使い方を大きく変えると既存のアプリケーションが移行できないという高レイヤーからの要求がぶつかり合って出来た残念のカタマリって感じがする"
Fadisさんのツイート: "blobfsの下まで完全に非同期のストレージデバイスの操作を引っ張ってきたのに、ここでブロッキングI/Oになるのか…"
Fadisさんのツイート: "ぁーそんな気はしてたけど、SPDKのblobstore、複数のスレッドから別々のチャネルを使って書き込むと壊れるか…"
Fadisさんのツイート: "いや、じゃなくてこれ、メタデータを触る操作を複数スレッドから行うと壊れるだけで、個々のスレッドが別々のblobのデータを触っている限りは壊れないとかそういうアレかな"
ウェアレベリング - Wikipedia
hiyohiyo@個人開発21年目さんのツイート: "こういう結果を見るとブロックサイズが128KiBよりも大きなシーケンシャルリード/ライトテストは必須なんだなぁ・・・。- 【やじうまミニレビュー】プリンストンの外付けゲーミングSSD「PHD-GS480GU」 - PC Watch https://t.co/jT657G1d14"
まさみさん⋈語りたいさんはTwitterを使っています: 「この手の話、もう組み込みlinuxでは十年以上前から当たり前で、mount時にnoatimeつけるとか、rootfsをinitramfsにするとか、フラッシュにはログだけ書く、ログはファイルシステムを使わない(寿命をある程度見定めるため)、まである。 https://t.co/XcBHA6WOKV」 / Twitter
とみながたけひろさんはTwitterを使っています: 「フラッシュメモリ書き込みすぎて車全体が文鎮にってすごいな。組み込みだったらライフで書き込む量とか結構まじめに計算して安全係数もそれなりにかけるし、エンターテイメントシステムとかは他と分けたりすると思うんだが、、、https://t.co/9w6OOhIAtl」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@mhiramat あと今時のemmcなら書き換えの多いパーティションは(疑似)SLC領域にして書き換え可能回数増やすとか、普通のベンダーに相談したら色々と教えてくれますよねえ」 / Twitter
FadisさんはTwitterを使っています: 「@ponkotuy LBAが利用できるようになる前にハードディスク上の位置を表すのに使われていたのがシリンダ、セクタ、ヘッド。かつてはそれぞれ半径方向、円周方向、何枚目のプラッタかを表す値だった。今のハードディスクはより複雑な形で記録しているため、これらの値から1つのLBAが求まるだけの値になっている」 / Twitter
イスラエルエリカちゃんさんはTwitterを使っています: 「SSDの方が消去されたディスクからデータを復元するみたいのはるかに難しいというかほとんど無理だろうに何でHDDよりSSDにデータ消去に課題があるみたいな論調なの…???:HDDからSSDへ いいことずくめ?データ消去に課題:朝日新聞デジタル https://t.co/4aQNOtOBEM」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「@syuu1228 確かにTrimで消えるので楽に思えるんだけどそのタイミングで不良セクタ化しちゃうと中途半端な状態でデータがチップ内に残っちゃったりするし、そもそもTrimがいつ効いたかって外形的にはわからないので、1bitも残すなと言われると、残ってる可能性を突き詰めていくと途方に暮れるんですよこれが…」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「SSDの完全消去は「無理」というのは言い過ぎですが、ちゃんと消えるかわからないとされる根拠は2011年USENIX FAST11で発表されたこの論文です。 https://t.co/grCIYTIA9L Secure Eraseに対応しているにも関わらず、コマンド発行してもデータが消えないSSDが当時見つかってます。今はどうでしょうね… https://t.co/LzOwI6vpWJ」 / Twitter
Wei.pdf
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「@goodmoon @syuu1228 他にも物理的破壊に関するいくつかの研究があります。有名なのはこれ。 https://t.co/ZOjttFXoaj 2008年当時の話ですが、NANDフラッシュメモリが熱や電気や…に対していかに堅牢かが分かります。簡単には消えないのです。ただ当時と比べてだいぶチップの構造が変わったので、追試の必要はありますが。」 / Twitter
Recovering data from USB flash memory sticks that have been damaged or electronically erased | Proceedings of the 1st international conference on Forensic applications and techniques in telecommunications, information, and multimedia and workshop

FadisさんはTwitterを使っています 「SSD、out-of-placeで書く事で消去の遅さを隠蔽するから書き込みの度にゴミが出て、それをガベコレが後で回収するんだけど、SSDのコントローラの性能は有限だからSSDでより高いスループットを得る為の近年の工夫が「ガベコレが回収しやすいようにゴミを出せ」になってて、なんて難しいデバイスなんだ…」 / Twitter
FadisさんはTwitterを使っています 「NANDの制約を隠蔽するSSDのコントローラが複雑になって性能を出すのが難しいから、「アプリケーションがNANDの制約を受け入れる」から「コントローラで複雑な処理をせずにデバイスを直接見せろ」というZoned Storageが台頭するの、かつてのGPUの流れに似ていて面白い」 / Twitter
FadisさんはTwitterを使っています 「Intelが Optane DC Persistent Memory(DCPMM)のファームウェアをLinuxからシステム全体を再起動せずに更新できるようにするパッチを投げている。DCPMMはDIMMスロットにさして使う不揮発メモリデバイスだが、どうもデバイス側にファームウェアを持っているらしい… https://t.co/JKojaTBOY5」 / Twitter
Intel Adds Capability To Linux 5.9 For NVDIMM Firmware Updates Without Reboots - Phoronix
FadisさんはTwitterを使っています 「FTLがブロックの割り当てを変更するSSDにおいて「ファイルを削除する前にゼロクリアしたからディスクを漁ってもファイルの内容は取り出せない」というHDD時代の作法は意味を持つだろうか。SSDにおいてはSecure Eraseが実際にSecureにEraseしない場合確実にデータを消す方法は無いのではなかろうか」 / Twitter
FadisさんはTwitterを使っています 「そもそもHDDの時代においても、CoWなファイルシステムの場合ファイルをゼロクリアしてファイルの内容がディスク上から消えたつもりになるのは誤りなわけだが」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ログ構造化だけでなく、NTFSの圧縮ファイルでも同様の指摘があった記憶。 たぶんファイルシステム層orデバイス層で「本当のデータ消去」APIを用意してもらうしか、、、」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号ファイルシステム(or 暗号対応HDD)を使って、rawデータを読み取っても無効というのがまあ無難な対処かな? (その状態なら、NTFSでのLBAを信用した0上書きでも undelete系の無効化に十分意味あるだろうな)」 / Twitter
suzakiさんはTwitterを使っています 「思い出してメモ OS内に残るデータのライフタイムについて。 古いけどこの論文は面白い。 Understanding data lifetime via whole system simulation 13th USENIX Security Symposium (2004) Chow, J., Pfaff, B., Garfinkel, T., Christopher, K., Rosenblum, M. 共著はVMwareを創業したRosenblum先生」 / Twitter
suzakiさんはTwitterを使っています 「@fadis_ ちょっと古いですが、SSDで完全に消去するのは難しいことを述べた論文。Secure Eraseについても言及しています。 USENIX FAST’2011 Reliably Erasing Data From Flash-Based Solid State Drives https://t.co/ymWRsLBrVB」 / Twitter
Wei.pdf
suzakiさんはTwitterを使っています 「@fadis_ メモ追記。 IEEE S&amp;P 2013でのデータ消去に関するSoK論文。 SoK: Secure Data Deletion https://t.co/tgBWUloTnV」 / Twitter
SoK: Secure Data Deletion - IEEE Conference Publication
FadisさんはTwitterを使っています 「コントローラが1ブロックのatomicな書き込みを保証してくれるNVMeと違い、NVDIMMでは一度にバスに流れる64bitがatomicに書ける単位になる。もっと大きな物を電源が落ちても途中で途切れないように書くには、ソフトウェアでトランザクションをやらなければならない。PMDKのlibpmemobjがまさにそれ」 / Twitter
Shinji KonoさんはTwitterを使っています 「この辺りはもう常識。つまり、RAID5は死んだ。明示的なコピーの方がマシ。 https://t.co/X2DXcBljvf」 / Twitter
RAIDを導入する前に考えること - Qiita
Shinji KonoさんはTwitterを使っています 「Cephは1 OSDあたり4GBメモリを要求するのでお大尽。でもまあ、そういうの専用のDisk Serverが欲しい感じ。」 / Twitter

日本初となる内蔵SSDデータ消去ソフトの評価制度が開始 - PC Watch
ハードディスクの正しい消去
Category:ATA - OSDev Wiki
ATA PIO Mode - OSDev Wiki
Disc rot - Wikipedia
otakuto/CrazyDiskInfo: CrazyDiskInfo is an interactive TUI S.M.A.R.T viewer for Unix systems.
マイクロソフトが、データセンター ハードウェアのストレージとセキュリティの業界標準を築く – Cloud and Server Product Japan Blog
Thanos - 無制限ストレージを備えたスケーラブルなPrometheus
【やじうまミニレビュー】プリンストンの外付けゲーミングSSD「PHD-GS480GU」 - PC Watch
トーバルズ氏:Linuxでフロッピーディスクドライバーは「面倒を見る人がいなくなった」 - ZDNet Japan
Linuxでのフロッピーディスクのサポート打ち切りをリーナス・トーバルズが発表 - GIGAZINE
SCSI Block Commands - 3 (SBC-3)
PC Insider 解説目次 - @IT
2021年7月7日 Linux 5.14でレガシーIDEのサポート終了へ ―カーネルソースツリーから「/dev/ide」を全削除:Linux Daily Topics|gihyo.jp … 技術評論社

FS

その他

Gfarm

Publications
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館

@hei_nyan

okamo(aged 5 yrs.)さんはTwitterを使っています 「lustreの動きと仕組みはなんとなく理解してると思うので、beegfsあたりの動きをちょっとみてみたいな。AWSのマーケットプレイスにあるので触ってみるか」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「分散ファイルシステムの振る舞いと実装って各システムが独自進化していってる感があって、よくわからんというのが正直なとこなんですよね」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「セマンティクスの定義はunix semanticsとsession semantics、以上、で細かい話し始めると色々疑問が出てくる。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「"session semantics - no changes are visible to other processes until the file is closed." これ厳密に守ろうとするとバージョン管理が必須になるけど、そこ頑張ってるシステムは聞いたことない。DAOSとか最近のシステムの実装はわからんが https://t.co/PLW0SipacJ」 / Twitter
Distributed File Systems
okamo(aged 5 yrs.)さんはTwitterを使っています 「session semanticsの出自がどこかはわからないんだけど、業界ではNFSのclose to openがイコールで語られる。 でもNFSってcloseしてなくても別プロセス/クライアントから書いたデータ読めちゃうよね?となる。実用としてそこは気にならないんだろうけど、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「実態はclose前のデータは読めるかもしれないし読めないかもしれない、なんだろうな。とは言え実用としてはこの辺りの中途半端な状態は未定義で、closeしたら次のopenで読めますよ!が分かりやすいんだろう。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「namespaceのセマンティクスに関しては全く言及が無いし、実際NFSでもファイルをrenameして同名で作ったファイルを別クライアントからopenしたらrenameされたファイルが読めてしまうことはあったはずなので、色々複雑である。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「まとめると、FSのセマンティクス(そもそもセマンティクスてなんだ)って結構いい加減なので、期待される最低限以外は自由に作ってくださいな、になるんだろうと思った次第。」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「unix semanticsはそれなりに厳しい。多分external consistencyレベルは維持しなきゃ成り立たなくて、Lustreは基本的にこれ。 (というかlinearizabilityとの作り上の違いをちゃんとわかってないので雑魚)」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustreは排他周りが非常に複雑で20年を超えたシステムの成熟度合いを感じざるを得ない。使い手からは何したら良いのかわからん、みたいな話は聞くけどこれはunix semanticsを維持することの限界と勝手に思ってる。複雑すぎる」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustre 屋さんじゃ無いので話半分ですけどアドホックな性能改善が多いようにも見えるんですよね。まぁこれは歴史あるシステムの宿命なのかもしれ無いけど、、、」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「そういえばLUMIがCephを入れてるのには結構興味ある。DAOSとかHPCメイン(?)で開発されたオブジェクトストレージじゃないCephをどう使ってくのか。IB対応とかも見かけるけど、割と一般的なオブジェクトストレージは敬遠されてたイメージなので、、、弊社の姿勢だけなのかもしれんが」 / Twitter
okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustre 屋さんじゃ無いので話半分ですけどアドホックな性能改善が多いようにも見えるんですよね。まぁこれは歴史あるシステムの宿命なのかもしれ無いけど、、、」 / Twitter

MBR(Master Boot Recode)
Episode 04: Filesystem on NVM / Self-Driving Car on Dessert – Misreading Chat
【USBメモリー】 最適なアロケーションユニットサイズ 【SSD&HDD】 | USBメモリー収集家のブログ
USBメモリのフォーマットを変更して高速化する - ぼくんちのTV 別館
浪費のような、そうでないような。: スマホでSD Formatterは使ってはいけない
closeがEINTRを返したらどうするべきか - Togetter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「前方に上書き可能領域があるから、ロジックは比較的簡単に実現できるが、有効領域サイズ分のwriteは必要と。 昔からログファイルで有用な、サイズ指定ローテーション可能なファイルシステム欲しいと思うことある。」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「「1TBのストレージの中に入っている700GBのテキストファイルの先頭3億行を削除したいのだがどうすればいい?」 https://t.co/33NRL4WSbI」 / Twitter
shell - How do I remove the first 300 million lines from a 700 GB txt file on a system with 1 TB max disk space? - Unix & Linux Stack Exchange
FadisさんはTwitterを使っています 「mpoolがバニラカーネルに入りたがっているらしい。mpoolはblock deviceの上で動くオブジェクトストレージで、書き換えにコストを伴う近代的なSSDで性能を出せるようにfsより制限されたデータの操作方法を提供する。SSD向けのKVS HSEがバックエンドとして使っている https://t.co/fb2k2yH8Un」 / Twitter
Micron Looks To Upstream Their Media Pool "Mpool" Object Storage To The Linux Kernel - Phoronix
[論文紹介] Snowflake - NSDI '20 -
FadisさんはTwitterを使っています 「HSEのような手法は「ハードウェアの構造化ログとファイルシステムの構造化ログは連携できない」という前提の上に成り立っているから、ハードウェアがより高レイヤーの操作(この書き込みは何の為の書き込み?)を理解するようになると、また事情が変わってくるんだよな」 / Twitter
スパコンポエムAdC2020 Day20 Nov/2020 IO500について少し語る - Qiita
mumumuさんはTwitterを使っています 「Rump File Systems: Kernel Code Reborn [ATC '09] 主にNetBSDのKernelで動いているFSをUserlandでそのまま動作させるためのKernel-User間のNamespaceの変換するモジュールを提案.以外とオーバヘッドも少なくていい感じ.OSSコミュニティとシステム研究がいい感じに協調してて?よい話感.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみにエントリの名前取得だけなら r-- だけでも。 (xは名前 → inode変換に必要)」 / Twitter
中村 実さんはTwitterを使っています 「Azure Data Lake Storage Gen2(ABFS)はファイルシステムに近いが微妙に違うなぁ。 UNIXのファイルシステムはディレクトリにr-x権限があれば、その下のファイルにr--権限がなくてもリスティングできるしfstatでファイルのメタデータは取得できる。」 / Twitter
中村 実さんはTwitterを使っています 「でもABFSはfstat的なAPIにそのファイルのr--権限が必要になるようだ。「ディレクトリの一覧には出てくるけど、ファイルのメタデータは取得できない」という現象が起きている。ニントモカントモ。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なので、x-- だけのディレクトリの場合、名前をしってるファイルはそれ自体にrがあれば開けるし、xがあれば実行できる。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおファイルのxは実行許可だけど、読めないと実行できないので、NFSサーバ側はxだけでもrと同様に読めてしまう。 (NFSクライアントが read をブロックする形)」 / Twitter
Lustre
MEGFS - 借り初めのひみつきち
FadisさんはTwitterを使っています 「Linux 5.12でfsが激しく壊れる問題の原因が分かって修正が入ったらしい。スワップファイルのオフセットの扱いが壊れていて、スワップファイルを置いたパーティションの先頭にスワップへの書き込みが書かれてスーパーブロック狙い撃ちで雑なfsは即死、というオチだったらしい https://t.co/AP85yyuviN」 / Twitter
Linux 5.12 Lands Fix For File-System Corruption Caused By Swapfile Issue - Phoronix
FadisさんはTwitterを使っています 「@beepcap vfsを迂回して書きにくる奴がパーティションの先頭を破壊しても壊れないでいられるファイルシステムは、スーパーブロックを複数箇所に書いてるbtrfsみたいなバリ堅fsくらいだろうな」 / Twitter
FadisさんはTwitterを使っています 「BtrFSがZoned Storage上で使えるようになった話。Zoned Storageではブロックデバイスは複数のZoneに分割され、Zone内は追記か全て削除しかできない。NANDを使うSSDやSMRで書き込むハードディスクにおいて使い方に工夫を要求する代わりにコントローラの負担を減らす事ができる https://t.co/4lrepCzT7n」 / Twitter
FadisさんはTwitterを使っています 「BtrFSはCoWなfsで元々殆どの変更は追記にできるが、superblockに限っては書き換えられる必要があった。Zoned Storageには書き換え可能な特別なZoneを持つ物もあるが、複数箇所にsuperblockを置くBtrFSではここを利用するわけにもいかず、superblockを構造化ログで表現できるようにしたらしい」 / Twitter
2021年5月26日 F2FS,リードオンリー機能をLinux 5.14以降でサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社

ISO image

UDF

ユニバーサルディスクフォーマット - Wikipedia
Universal Disk Format - Wikipedia
パケットライト - Wikipedia
Packet writing - Wikipedia
Standard ECMA-167
UDF(ユニバーサルディスクフォーマット)とは - IT用語辞典
書き込み型BD・DVDのファイルフォーマット(UDF)まとめ : Web Memo.SE

ISO image - Wikipedia
ISO 9660 - Wikipedia
ISO 9660 - OSDev Wiki
Standard ECMA-119
Joliet Specification
El Torito (CD-ROM standard) - Wikipedia
El-Torito - OSDev Wiki
注目の脆弱性:Power Software PowerISO、ISO のコード実行の脆弱性
Comparison of disc image software - Wikipedia
【レビュー】指定したフォルダをISO形式のディスクイメージファイルへ変換する「Folder2Iso」 - 窓の杜
品川 高廣さんのツイート: "FATには2108年問題がある。ISO 9660には2156年問題がある。"
CD から OS を起動する - 借り初めのひみつきち

Linux

シンボリックリンク

Kazuho OkuさんはTwitterを使っています 「シンボリックリンクでパスが循環しちゃう問題、ディレクトリ内のファイルを再帰探索する際に気をつけないといけないやつ」 / Twitter
Kazuho OkuさんはTwitterを使っています 「シンボリックリンクは、まあ検出簡単だからいいとして、 mount --bind はマウント時に循環可能性検出してるんだろうか。どうやって?」 / Twitter
dancerj 🗾さんはTwitterを使っています 「@kazuho mount bindべつにサブマウントは反映しないので循環しないとかそういう感じだった気がするけど詳細思い出せない。」 / Twitter

9P

9P - Wikipedia
9P (protocol) - Wikipedia
ASCII.jp:Win32側からWindows Subsystem for LinuxのVolFsへのアクセスが可能に (2/2)
Plan 9 Wiki (Plan 9 wiki)
Plan 9: ILプロトコル
9P (Plan 9 Filesystem Protocol) VFS
https://www.kernel.org/doc/Documentation/filesystems/9p.txt
“どうやって実現してるのかというと、まさかの9P(Plan 9 Filesystem Protocol)です。令和の時代にまさからPlan9の単語を聞くとは思わなかったですが分散OSなので、こういうのには向いてるのかもしれないです” - twatw のブックマーク / はてなブックマーク
Plan 9
IL (network protocol) - Wikipedia
The IL Protocol
A sane distributed file system
intro page from Section 5 of the plan 9 manual

fsync

まちカドおるみんさんはTwitterを使っています 「にわかに信じがたいけど,こういうの往々にしてあるものなのだな…… &gt;&gt; Can Applications Recover from fsync Failures? | USENIX https://t.co/PeV1TVBVxU https://t.co/ixaWDV3Qeq」 / Twitter
Can Applications Recover from fsync Failures? | USENIX
まちカドおるみんさんはTwitterを使っています 「https://t.co/A01UYtXyq4」 / Twitter
FOSDEM 2019 - PostgreSQL vs. fsync
まちカドおるみんさんはTwitterを使っています 「“PostgreSQL had been using fsync incorrectly for 20 years”」 / Twitter

fsck

ファイルシステム小噺(仮) - Qiita
docs.oracle.com/cd/E19253-01/819-0386/fstroublefsck-51788/index.html
エンタープライズ:Linux How-To 第1回:起動スクリプトを知って基礎を理解しよう
Linuxファイルシステム技術解説(3):ジャーナリングファイルシステムが保護する「情報」 (1/2) - @IT
fsck(えふえすしーけー)とは - コトバンク
linux - ルートファイルシステムを復旧させたいのにfsckが上手く使えない - スタック・オーバーフロー
Linuxファイルとファイルシステムのリカバリ | OSDN Magazine
ファイルシステム入門
fsckによるファイルシステム修復 | hajichan.net technical version
fsck - ArchWiki
Linux ジャーナリング・ファイルシステムの徹底調査
【3分でわかる】Linuxのシャットダウンと再起動
【ざっくり概要】Linuxファイルシステムの種類や作成方法まとめ!
スーパーブロック (ファイルシステム) - Wikipedia

FadisさんはTwitterを使っています 「Linuxをinitramfsなしでbootする場合rootにはblock deviceを指定する。例外的にNFSかCIFSを使う場合アドレスを指定できる。ところがvirtiofsのようなblockではないけどrootfsにしたい物が増えてきたので、任意のblockでないfsをrootに指定できるようにする拡張が現れた話 https://t.co/7vF4fGpA4X」 / Twitter
New Linux Patch To Allow Booting From Arbitrary Non-Block Device File-Systems - Phoronix
FadisさんはTwitterを使っています 「ちなみにこの変更がなくてもinitramfsを経由してマウントすれば殆どのファイルシステムはrootfsにする事ができる。また、ユーザ空間デーモンが無いとマウントできない物はこの拡張を利用する事はできず、引き続きinitramfsでデーモンを動かさないとマウントできない」 / Twitter
2021年6月18日 Fedoraプロジェクト,クラウドエディションのデフォルトファイルシステムをBtrfsに:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「Systems 249からファイルシステム丸ごとアップデートがサポートされる話。この機能はsystemdがinitramfsで動いている等のsystemdがrootfsを選べる状況でroot=が指定されていない場合に、/usrを含みパーティションラベルが文字列比較で最大のものをrootfsにする https://t.co/mnpbVu5g7J」 / Twitter
Systemd 249 Released With New Option For Simple Whole-File-System A/B Updates - Phoronix
FadisさんはTwitterを使っています 「この機能は新しいrootfsを2つめのパーティションに書き込んで再起動する、組み込み機器でよくあるファームウェアアップデートを簡単に実現できるようにする」 / Twitter

UEFI

The rEFInd Boot Manager: Using EFI Drivers
Free Software EFI Drivers
pbatard/efifs: EFI FileSystem drivers
日記 (2014 年 8 月下旬)

デフラグメンテーション

デフラグメンテーション - Wikipedia
The Desktop Files: The Truth about Defragmentation
インタビュー - ファイル断片化を元から断つ、デフラグの概念を大転換!:ITpro
無料デフラグソフト一覧 - フリーソフト100
【ざっくり概要】Linuxファイルシステムの種類や作成方法まとめ!
デフラグのやり過ぎはHDDの寿命を縮める | スラド ハードウェア
デフラグで最適化 - デフラグソフト比較、断片化の理由 - Windows高速化への道
ファイルシステムの基本~ファイルはどのように記録されているのか~ - Yahoo!知恵袋
ファイルシステム圧縮による空き容量と、デフラグについて - すっきり!! デフラグのヘルプ
効率の良い『デフラグ』で性能低下を防ぐ 【桜PC情報】
NAS(LAN HDD / ネットワークハードディスク)は何故デフラグできないのか
ファイルシステム入門
しつこくデフラグ話【日記 2011/11/25】
デフラグって実際どうなの? 実力を徹底検証 - Windows7から話題のWindows10まで対応! (1) 知らないうちに断片化するデータ群 | マイナビニュース
「ディスククリーンアップ」と「ディスクデフラグ」の違いとは?|エンジョイ!マガジン
デフラグとは | Diskeeper 日本語版 公式サイト
ファイル・サーバのデフラグメントについて考える - @IT
知ってる?デフラグの力 - デフラグのメリット&デメリット
本の虫: ディスクのフラグメント防止に関する興味深いペーパー
NTFSFrag.pdf

NTFS

Wikipedia

NTFS - Wikipedia, the free encyclopedia
NT File System - Wikipedia
NTFS-3G - Wikipedia
NTFS-3G - Wikipedia, the free encyclopedia
Filesystem in Userspace - Wikipedia
Filesystem in Userspace - Wikipedia, the free encyclopedia

Twitter

ソート順

Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、NTFSのソート順(btree)は名前を大文字変換した後、UTF16コードでソート。 Explorerも大文字変換は同じだが、アンダースコア等が特別扱い、数字群は数値として比較とか、色々特殊。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "数字群を数値として比較することを、natural sort と言うらしい。 https://t.co/xATZlBNZ9a"
Natural sort order - Wikipedia

@shirouzu

復元不能にする方法

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのNSA方式削除では内部的に2モードあり、上書きバッファ用乱数はメルセンヌツイスタで初期化される。 だが、iniのcopy_flagsに OVERWRITE_PARANOIA(=0x2000)を追加すると、バッファをCryptGenRandomで初期化される。 (エントロピー不足か、死ぬほど乱数生成が遅いのでお勧めできない)… https://t.co/qgGp2ypCiM"
とつげき東北🌘さんのツイート: "復元防止をセキュリティ的にマジで考えると、単に物理的に上書きしたくらいでは足りないですね。0か1かはHDDの場合磁気的に保存されますので、一度書き込んで消しても、アナログ情報が残って再現できてしまう。 そういう「形跡」さえも消すには、何十回も0と1を繰り返し書かないとダメですね😇… https://t.co/qlwlO08Wky"
Shirouzu Hiroaki(白水啓章)さんのツイート: "なかなか豪快なソフトですね(笑) ファイル単位の復元防止だと(削除前に)truncate無しの上書きが定番(ただしNTFS圧縮だと別セクタに書かれるので無意味)だと思うんですが、実はtruncateした後に上書きしてました、とかですかねぇ…逆にカジュアルな復元ができる下手を打つ方が不思議な気も。… https://t.co/7T3hvZtC5P"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ですね。NSA方式とかDoD方式とか、3~7回の乱数や0(or 0xff)での上書きを定めるものが多いみたいです。 (FastCopyだとNSA方式削除をサポートしてます)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、メルセンヌツイスタもシードだけは std::random_device(=CryptGenRandom)を使っている。"

histric-1

SHIROUZU(白水啓章)さんのツイート: "タイムスタンプとファイルサイズ(とファイル名)を使った、ファイル重複検出ツールって、意外と無い不思議。 それとできれば、MFTによる高速検査があると最高なのだが…自分で作るかな。 ファイル名は編集距離誤差を許す設定ができるとさらに良さそう。"
SHIROUZU(白水啓章)さんのツイート: "FastCopyのI/O設定、Win10 + Gbit NIC以上だと1発行1MBで多重度2以上がベストで、1発行が4MBとかになると(多重度を上げても)逆に遅くなるな…パラメータのデフォルトを変えた方がいいかもしれない。"
SHIROUZU(白水啓章)さんのツイート: "それと、ver3 の I/O設定はちょっと判りづらい点を直した方がよいかな… 最大I/O単位=1発行サイズ * 重畳数、という意味なので、1発行1MBで多重度4だと、4MBに設定する必要がある。"
SHIROUZU(白水啓章)さんのツイート: "10G NIC と NVMe(960-EVO)を載せて、FastCopyで転送実験。 双方向でほぼ10Gbps出るようだ。 IPMsg転送だと5Gbpsが今のところ限界、さらにAES暗号化すると80Mbpsまで低下。"
SHIROUZU(白水啓章)さんのツイート: "CoffeeLake(i5-8600K)では、FastCopy + SMB で 10Gbps転送中のCPU使用率は概ね10-15%程度。"
SHIROUZU(白水啓章)さんのツイート: "ただし、非同期I/Oをやめると5Gbpsに一気に遅くなる(I/Oサイズを広げてもダメ)。 つまり、相変わらずアプリケーション側が先読み的な動作をさせないと、性能を十分出せない、WindowsのSMB実装ということかな。 (なお双方とも Win10 Pro for Workstat… https://t.co/DMind304I8"
SHIROUZU(白水啓章)さんのツイート: "そういえば、これ6コアだから、16%で1コア使い切りレベルだった。 4コア時代の25%基準で考えてしまう癖が。"
SHIROUZU(白水啓章)さんのツイート: "CrystalDiskMarkでの速度とFastCopyの速度が違ったので調べてみると、Crystal…の KB/MB は 1000^n、FastCopyの KB/MB は 1024^n という違いだった。FastCopyは正確に KiB とか MiB とかにしたほうが良いかな…"
SHIROUZU(白水啓章)さんのツイート: "C/C++でのポインタ同士の減算結果の型は size_t ではなく ptrdiff_t で「符号付」整数となる点に注意。"
SHIROUZU(白水啓章)さんのツイート: "CrystalDiskMarkの速度測定には、MSのdiskspdというコマンドを利用していた。 https://t.co/kwsrzWX6rv ちなみに「NCQ対応」は、diskspdを見る範囲では WinAPIのOVERLAPPED I/Oを行う=NCQ、という解釈かな。 (… https://t.co/CDXRmvKlMp"
Microsoft/diskspd: DISKSPD is a storage load generator / performance test tool from the Windows/Windows Server and Cloud Server Infrastructure Engineering teams
SHIROUZU(白水啓章)さんのツイート: "実際、SATAのNCQは32個までだが、OVERLAPPED I/O自体は(手元で試した範囲では)128個発行なども可能だったりする。"
SHIROUZU(白水啓章)さんのツイート: "FastCopyで、複数物理ドライブを束ねたボリュームでの物理ドライブ判定が正しくなかった。(別物理ドライブ同士が同一ドライブ判定になるケースが存在)"
SHIROUZU(白水啓章)さんのツイート: "SMB経由で確認した範囲では、btrfsは4KB * n で整列されたwrite後に、そのサイズより僅かにサイズ縮小するftruncateを発行すると、ext4やNTFSに比べて大変時間が掛かる不思議。 SMB経由でbtrfsかの識別する方法はないのかしらん?"
SHIROUZU(白水啓章)さんのツイート: "最近はNASでもbtrfsという選択肢が出始めているようなので、ちょっと対策しておきたいところ。"
SHIROUZU(白水啓章)さんのツイート: "OS、AntiVirus(MS純正)、NTFSのいずれの問題か不明だが、dir-entryを全削除した直後に、そのdirを削除しようとすると稀に「空でない」というエラーになることがある。その時、FindFirstでentryを調べると一瞬だけ削除したはずのentryが見える。 ローカルFSなのにアトミック性が破れてるな。"

histric-2

SHIROUZU(白水啓章)さんのツイート: "GetVolumeInformation APIで取れるファイルシステム名(lpFileSystemNameBuffer)、LTFSだと"LTFS"が返るのかしらん?"
Kengo Sawatsuさんのツイート: "結果でましたー。 ちゃんと'LTFS'と入ってきますね。 OS:WindowsServer2012R2 python3.4からwin32apiコールです。 results = win32api.GetVolumeInformation("J:\\") pprint.pprint(results) で、出てきたタプルです。 https://t.co/MnBOttlcJu… https://t.co/mOcNmgdTr1"
Kengo Sawatsuさんのツイート: "ちなみにLTFS実装はIBM純正の2.2.1です。 HPなどのその他実装では結果が異なることもあるかもしれませんが、各社のLTFSドライバはすべて?IBMが元なので、大丈夫じゃないかなあとは思います。… "
SHIROUZU(白水啓章)さんのツイート: "Win32非同期I/Oを使った連続read/write実験、少なくともネットワークドライブ(Win10 Pro Enterprise同士)相手に対しては、4MB*4重畳よりも1MB*4重畳の方が5~10%高速になるのは何故だろう?(ファイルサイズが20~30MBならおおよその理由は判るのだが、数GBでも同じ傾向)"
SHIROUZU(白水啓章)さんのツイート: "非同期RPCのやりとりをWireSharkで調べてみるのが近道かな。"
Kengo Sawatsuさんのツイート: "いつもありがとうございます。 smb multichannelとの関係など、結構調べないといけない話題は多いですよね。 なにかの折にまたデータをとってみます(40Gはストレージ側の性能引き出すのがちょっと難しいですが) また、https://t.co/GT7eFdWffLへの40GbitNIC貸与ができないか、社内で調整中です。… https://t.co/9ZffXqTPmb"
SHIROUZU(白水啓章)さんのツイート: "FastCopy英語掲示板に「もっとスレッド数を増やして高速化を」という要望が出ているのだが、何の処理を行うスレッドを増やしてほしいのだろう? ごく一部環境を除き、I/O (read or write) 並列化(連続命令の非同期I/O化を除く)は、遅くなるだけと思うのだが。"
Fomalhaut Weisszwergさんのツイート: "おそらく「スレッドをたくさん作れば早くなるんでしょ」と思っているだけだと思います。わたしもそういう人の相手をする羽目になったことがあります (ログファイルへの書き込みを並列化したところで高速化はできないということを理解してもらうのにすごいコストかかりました)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "先ほど、レスパスビジョンさん(https://t.co/lLhGI6a3Ro)のご厚意で、FastCopy進化用のMellanox 40Gbit NIC*2とケーブルが届きました! それにしても、さすがは40Gb用ケーブル、昔の放送用ケーブルかと見まがうゴツさ…QSFPという10Gを4本束ねたものらしい。 https://t.co/JPjOt4kQMq"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB転送速度に与えるレイテンシの影響は、非同期I/O数が4以上ならどの条件でもレイテンシに比例して速度低下。だが、ジッタが大きい場合だけは、I/Oサイズ*非同期I/O数=32MB以上の方が性能が出る(落ちづらくなる)不思議。 (前者でも、性能が落ちづらくて良さそうなのだが)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "前者でも…というのは、I/Oサイズ * 非同期I/O数を大きくする≒TCPにおけるウィンドウサイズ拡大と類似した効果をSMB上に与えても不思議ではないため。 ただ、API上の非同期数に対して、SMB上の非同期I/O数に上限があるなら、そうならなくても不思議ではない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB経由で40Gb高速転送をしようとすると、Win10 pro for WorkstationでRDMAを有効にしても、1コアに負荷が集中して10~15Gbps程度で頭打ちになるなぁ…Xeon系のサーバマシンでないと厳しいか。 純TCP転送だと、もう少し分散するのだが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "だからこそ、自前転送の高速化の余地が大きいということではある。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "40Gb転送中にRAM Diskアクセスすると、そのI/O速度分だけ速度低下する様子(CPU使用率にはまだ余裕がある)。 PCIeを空けても、メモリバスがネックとなっている? CoffeeLake i5-8600K + Z370の方は大丈夫のようだが、SkyLake i5-6500 + Z170程度だと性能が不足しているようだ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "論理セクタが512byteでも、本当のブロックサイズは4KBだったりする現在、末尾の端数部分はブロックサイズ単位で書いてtruncateではなくて、端数だけappendの方が良いかもしれない、特にネットワークの場合。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "少し前の話ではXeon + WinServer + SMB Directを使っても、40Gbpsを使いきれていないらしい?最新サーバ同士だとどうなんだろう。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルシステムの重複データブロック削除機能=De-Duplicationだと思うのだが、DeDupと書くより、DeDupeと書く方が多い不思議。"

Shirouzu Hiroaki(白水啓章)さんのツイート: "10GのWin10Pro同士だと、ほぼ10G素直に出ていたのですが、samba経由だといろいろあるんですねぇ…(ただ、ジャンボパケットでないとダメだったかも)… "
Kengo Sawatsuさんのツイート: "10Gのsmb.confのパラメータを色々試して、Fastcopyとの組み合わせでざっくり810MB/secくらいまでは速度出るようになったけど、カーネルパラメータいじるのは面倒かつ危険なのでこれ以上の追い込みはやめておくマン"
Kengo Sawatsuさんのツイート: "今更ですが、これの効果は劇的です <I/Oサイズ&重畳数を適応的に変化させ、ネットワークドライブのパフォーマンスを向上 10Gbps環境下でスイッチを2~3個経由していても、1ファイル数GBを超えるファイルであれば1000MB/secで張り付きっぱなしになります。 40Gbps環境にも恩恵あるはず。… https://t.co/cmKIS1WbNy"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy v3.50正式版をリリースしました。 Source選択で、ファイルとフォルダを同時に選択できるように。 I/Oサイズ&重畳数を適応的に変化させ、ネットワークドライブのパフォーマンスを向上(レイテンシ大の環境では、Explorerや従来版に比べて2倍以上高速に)等 https://t.co/L7jJavdtio"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「BSD系がreadlinkでA更新しないのは知らなかった。 あとは、移動で対象ファイルCが変わる/変わらないの件…Cはinode更新時間(A更新以外)なので、Cが変化する実装=(atomicなので外部観察はできないが)内部でdst-ent追加でリンク数+1、src-ent削除-1操作、がC変化の原因かな? https://t.co/VwDT93ijU4」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、rename/move はファイルシステムを作った経験があれば判ると思うが、atomic性を満たすのに一番厄介。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「src/dst/target の3つロック(create/removeなら、親dir → targetだけのロックで済む。3つの場合、ロック順序保証が通常の親→子でないのもネック)、さらにtargetがdirの場合、dstがtargetツリーに存在しないこと確認する必要もあり。 (でないと、外部からの参照のない循環参照dirに)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「さらに、dstのtarget配下の非存在確認した後、移動が完了するまでは、src/dst/target配下が絡むdir関連rename操作はブロックしないといけない、みたいな話もあったり。 (でなければ、volレベルでジャンボロックするか…Linux2.0当時の実装を見たら、そうなっており、ああ手抜きだなと思った記憶)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NTFSファイル名長は、漢字/ascii両方 255文字までOKに対し(サロゲートペアだと半分)、NAS(Linux)だと 漢字ファイル名は80数文字(UTF-8)が上限。 掲示板で問合せで、この状況で困ってる方居たのだけど、一般には全組織で 5%くらいの割合かな…?」 / Twitter

研究千年牛酪情報保管庫菩薩さんのツイート: "NTFS、しくみおもしろいなあ。これだとWinFSを作りたくなる気持ちがわかる"
Shirouzu Hiroaki(白水啓章)さんのツイート: "(POSIX対応のため)NTFSが大文字小文字違いを別ファイルとして扱える機能を持つのは知っていたが、(POSIXサブシステム経由だけでなく)Win32サブシステム経由でも(レジストリ変更で)大文字小文字区別したアクセスができるとは知らなかった。… https://t.co/LRLCQ3BWBn"
品川 高廣さんのツイート: "Cygwin 上で Linux カーネルをクロスコンパイル on @Qiita https://t.co/UATrQHnqhU"
Cygwin 上で Linux カーネルをクロスコンパイル - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSのハードリンクは、UNIX系と違い、片方のファイルを変更しても、もう片方にタイムスタンプがすぐに反映しない。 1度目は必ず古い情報を掴まされ、2度目のlookupから正しく取れるという、UNIX inodeとdirentyのような関係ではあり得ない挙動を示す。 ちなみに、ハードリンク上限もわずか1023。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSの設計者は「POSIX準拠機能なんて、本格的に使うわけないよね」と思っていたとしか思えない(笑)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今回の件、海外からFastCopyのコーナーケースのバグ報告?と思って調べたところ、NTFS側の問題だったというオチ。"
Egtra (ysk-noh)さんのツイート: "https://t.co/QJTi32Ys8q Windowsが初期設定だとシンボリックリンク作成を管理者に絞っているのは、Symlink attack対策なのだと思う。 https://t.co/nIkiEyVnaJ https://t.co/I0Zm2JxVqy"
PhoronixさんはTwitterを使っています 「"NTFS3" #Linux Driver Spun Up An 11th Time With More Optimizations https://t.co/qvrZtkQZHm」 / Twitter
"NTFS3" Linux Driver Spun Up An 11th Time With More Optimizations - Phoronix

NTFSの読み方 - Qiita
kusano/ntfsdump: Extract files from NTFS Volume
暗号化ファイル・システムを使うとWindows Updateができなくなる / SAFETY JAPAN [Windows XP プロの常識] / 日経BP社
最後に知っとく“Windows 8.1重箱の隅”10選 - AKIBA PC Hotline!
上原 哲太郎 - これは話が正確じゃないのでMSやWin10がかわいそう。要はNTFSをリムーバブルメディアで使っては... | Facebook
Why NTFS is a dangerous filesystem for external drives ... - PentaxForums.com
Windows 7/8.1をWebページから停止させることも可能なNTFSのバグ | スラド IT
Transactional NTFS (1) - NyaRuRuが地球にいたころ
日記 (2013 年 4 月中旬)
NTFSのトンネリングとHardlink - ひよこメモ
Shirouzu Hiroaki(白水啓章)さんのツイート: "これが成功したら、あっという間に終了(or 非推奨化)した「トランザクションNTFS」も復活したりするのかしらん? https://t.co/oVhrlxprop… "
トランザクションNTFS - Wikipedia
Transactional NTFS - Wikipedia
アイコンを見るだけでデータが破壊されるNTFSの脆弱性 - PC Watch
アイコンを見るだけでNTFSドライブが破損する脆弱性が修正 - PC Watch

ReFS

Shirouzu Hiroaki(白水啓章)さんのツイート: ""CreateHardLink(この要求はサポートされていません。50)" というメッセージが出て何だろうと思ったら、ReFSはハードリンクをサポートしていなかった様子。 ---- https://t.co/Ss1hcvHxrq"
Windows の次世代ファイル システム: ReFS – Building Windows 8
Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIX系のハードリンクはinodeとdentの仕組みを素直に使っている。NTFSハードリンクは当該ファイルスロット(≒inode)に別名エントリを格納していく変態方式のため1023リンクが上限だった。で、ReFSではサポートすら止めると。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSは全力で非同期writeするより、アクセスに僅かに空き時間を与えた方が速度が5~10%程度、増すなぁ。 非同期I/Oで連続アクセスすると、ReFS固有の付加的な作業が合理的に差し挟めないのだとすると、ファイルシステムドライバの作りが悪いとしか思えないのだが。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSのBlockCloningを使うと、巨大なファイルの内部的なログローテーション的な動作が、実質データコピー無しで出来そう。 (現行ファイルの先頭クラスタ以外をクローンして、次ファイルを作るイメージ) https://t.co/wjy0lTy4Lm とはいえ、ReFS自体に余り良い評判を聞かないので微妙だが。"
Block Cloning | Microsoft Docs
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ReFSはディレクトリ探索負荷だけで、6コアが100%になり(System(pid:4)が大半)、各プロセスのタスクスイッチもロクに回らなくなり、各ウィンドウ描画が止まり、音楽再生も切れる。 (画像は探索を止めて、ようやく再描画再開されたタイミングでキャプチャ) https://t.co/DEljgQ0Hxj」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ディレクトリ探索を続けると、何かのタイミングでこの状態が続く。アクセス数に比例したり、特定ディレクトリがトリガーでもない様子)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「どうも妙な挙動が多いので、ReFSを相手にするのは止めようかな… https://t.co/uZfbmqm9oO」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ReFSは設計思想以前に、実装がダメダメなんでは疑惑。 (手触りが悪いというか、不自然に重いというか)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「仕様云々より、実装が悪いのだろうなぁ、、、。 なおMSは流石に無いと思うけど、仕様を作って外注に作らせるパターンだと、そういう品質がほぼ宿命に。」 / Twitter
Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「ReFS、server2016で実運用してるとSMBのわけわからないタイムアウト(ファイルシステムから30秒応答返ってこない)とか本当に散々な目にあってるので、当面本番用途で使う予定ないのだが、相変わらずの様子・・・。。 MSは今すぐデビッドカトラーを連れてくるべき」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一度、腐ったものが出来上がると、性能・品質改善はほぼ望めず、作り直すのが最善手になる。 ただ初期コストの大きさから、改善で済まないか試みた挙げ句、無理なことを悟って作り直すという、一番高コストな道を辿るのが典型パターン(笑)」 / Twitter

FAT

MS

テクノロジ IP ライセンス | IP (知的財産) ライセンス - マイクロソフト イノベーション センター
Licensing exFAT | Microsoft IP Licensing
exFAT file system specification - Windows applications | Microsoft Docs

Wikipedia

exFAT - Wikipedia, the free encyclopedia
exFAT - Wikipedia
File Allocation Table - Wikipedia
File Allocation Table - Wikipedia
8.3形式 - Wikipedia
8.3 filename - Wikipedia

Twitter

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あらら。 私の方でも少し見てみますね。」 / Twitter
Kengo Sawa2さんはTwitterを使っています 「exfatの現状記事を書くためにまずはまともなはずのwin10h2のexfatを触り始めたらいきなりヤバい、。 こいつ、プリアロケート予約出してからキャンセルすると全領域初期化で埋めようとしてる、。? hddでも起きるからデバイス側の挙動じゃないはず、。ext3かよ!w https://t.co/xrXVkMkfBU」 / Twitter
Kengo Sawa2さんはTwitterを使っています 「@shirouzu ありがとうございます、本当にお暇なときにでも触ってみてください。 なんかMSの実装ポカな気がします、NTFSでは再現しませんでした。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 Process Monitor で確認すると、むしろ Explorer が一時停止/キャンセル時小細工して(中断するとそのサイズでSetEndOfFileしてから削除)、exFATドライバ側の実装問題を回避してますね(笑)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 (ただし、ファイルが見えない状態でコピーはどうやっているのだろう…?)」 / Twitter
Kengo Sawa2さんはTwitterを使っています 「@shirouzu それですよね。外から見てる感じ、何も生成しないのがなんかズルくないか?MS社内専用の秘密の仕組みでもつかっとんのか?と思ってしまいます笑」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 上記の hack で ZeroFill を回避できることが判ったので、次のリリースで入れておきますね。」 / Twitter
Kengo SawatsuさんはTwitterを使っています: 「「Win/Mac両方で読み書きできたまじ便利ってネットの記事に書いてあった」 「macOSで選べるんだから大丈夫でしょ?」 exFATの実装仕様もライセンスも不明瞭だらけでジャーナルも無いウンコFSなのになぜAppleはフォーマットできることにしてるのか。。 #exFATは使うな死ぬぞ」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(2年前の話ながら)exFATはMacOSXでファイルが壊れるという話があるのでご注意あれ。 https://t.co/C2UcXBRLYg https://t.co/Sm10ANvYuN https://t.co/06fENVA0jy」 / Twitter
品川 高廣さんのツイート: "FATには2108年問題がある。ISO 9660には2156年問題がある。"
FadisさんはTwitterを使っています 「一部のデジカメがexFATにファイル置く時にディレクトにクラスタチェーンだけ追加してDataLengthを更新しないせいで、DataLengthを見て終端を判断していたLinuxで一部のファイルが見えなくなる問題を受けて、LinuxがexFATのディレクトリのDataLengthを信じなくなった話 https://t.co/lXC4i8Q6y7」 / Twitter
Linux 5.14 Works Around Compatibility With Some Digital Camera exFAT File-Systems - Phoronix
ろ。まのふさんはTwitterを使っています 「exFATでお行儀の悪い書き方をするカメラってFujiなのワロタ…ワロタ…(ワロエナイ」 / Twitter

FatFs 汎用FATファイルシステム モジュール
FatFs - Generic FAT Filesystem Module
FATファイル システムのしくみと操作法
k-takata.o.oo7.jp/diary/exFAT.txt
「DataRecovery」「Fat32Formatter」のソースコードを公開 - 窓の杜
Microsoft、パナソニックに大容量ファイルシステム「exFAT」のライセンスを供与 - ITmedia エンタープライズ
マイクロソフト、exFATのライセンスプログラムを発表 - CNET Japan
exFATのライセンス提供開始に見え隠れするMicrosoftの知財戦略 - builder by ZDNet Japan
FUSEベースのMicrosoft「exFAT」実装、「fuse-exfat 1.0」がリリース | OSDN Magazine
FAT仕様書日本語訳.doc - Google ドキュメント
Tech TIPS:FATとexFATの違い - @IT
Microsoft Word - FAT32 Spec _SDA Contribution_.doc
Microsoft readies exFAT patents for Linux and open source | ZDNet
2019年8月30日号 Ubuntu 18.04.3 LTS 日本語 Remix リリース・eoanのFeature Freeze・exFATの仕様書:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
exFAT について - 借り初めのひみつきち
米Microsoftが「exFAT」の技術仕様を公開、Linuxカーネルへのマージを認める | OSDN Magazine
Microsoft、ExFATのLinuxカーネルでの実装方法を明確に
実は危険??「exFATフォーマット」との付き合い方|L'espace Vision
日記 (2015 年 10 月上旬)

Net

その他

ネットワークバイトオーダーの公式な参照先はエイプリルフール:Geekなぺーじ
第661回:レイテンシー とは - ケータイ Watch Watch
第627回:トラフィック とは - ケータイ Watch Watch
「NetworkManager 1.6」リリース、MACsecに対応 | OSDN Magazine
MACアドレスランダム化が加わった「NetworkManager 1.2」 | OSDN Magazine
RFC標準を調べるための知識やツール - Qiita
抽象ソケットアドレス abstract socket address - hibomaの日記
[linux] abstract socket address - hibomaのはてなダイアリー
Pure Python Tracepath | IIJ Engineers Blog
インターネットの心臓部を支える「BGP」をより柔軟に使うにはどうすればいいか? - GIGAZINE
Kazuho OkuさんはTwitterを使っています 「kernel bypassなー、HPCなら意味あると思うけどインターネットだとsegmentation offloadで十分な感じがすごいするんだよなー」 / Twitter
Kazuho OkuさんはTwitterを使っています 「受信側だと割込コストでかいから、そこをなんとかしたいというのは分かるけど、まあ、、、」 / Twitter
Prometheusが利用するOpenMetricsの仕様がIETFに提出された - ASnoKaze blog
突然の大トラフィック……昔はOSだったが、今はゲームのアップデートに……IIJが語る「インターネットのバックボーン」【IIJ Technical WEEK 2020】 - INTERNET Watch
RustのSTM32向けイーサネットドライバを解説する(受信編) | 己の不学を恥じる
RustのSTM32向けイーサネットドライバを解説する(送信編) | 己の不学を恥じる
中央主権的なHTTPから脱却し新しいインターネットの世界を生み出す壮大な分散型システム「IPFS」とは? - GIGAZINE
TURN サーバでよくある間違い
パケットジェネレータのつくり方 | NETWIZ.JP
なりすましメールからユーザーを守る「SPFレコード」の基礎知識 - GIGAZINE
自作プロトコルスタック(全体像の理解〜ARPリプライ) - おしぼりの日常
はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck
OVS-DPDKとOpenStackで作るおうちNFV環境の構築 - Speaker Deck
Kazuho OkuさんはTwitterを使っています 「Cに近いレベルで効率の良い実装ができるプログラミング言語使っているという前提において言うと、network i/oが最初のボトルネックになる(ことが多い)イメージ。アクセラレータとかdpdkとかが主流になっていないってのが傍証かなぁ」 / Twitter
因果的あずにゃんさんはTwitterを使っています 「たくさんのI/Oを捌くアプリケーションで、多重並列でI/Oチャネルを走らせといてselect(2)で待つとかスレッドで待つとかはよくあるパターンだけど、これの並列数を上げていくときに現代的な環境で真っ先にボトルネックになるのってどこなんだろう」 / Twitter
Kazuho OkuさんはTwitterを使っています 「主流のアプリケーションでバランスが良いようにサブシステムの性能が決定されている、という話なので、DNSみたく小さなUDPパケット交換やるとか、一般的なワークロードから離れると議論は変わります」 / Twitter
Kazuho OkuさんはTwitterを使っています 「どんなプロトコルでもハーフクローズ難しいよなー。TCPでもなんでも、切断処理は接続処理のだいたい100倍くらい難しい」 / Twitter
VさんはTwitterを使っています 「@kazuho 1000000000 倍くらい難しいです!!! というか kazuho さんでもやっぱりそうなんですねぇ ... 。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@voluntas 皆そうだと思います。仕様策定にあたっても問題が残るのは、ステートを確立するところよりも捨てるところですし、実装的にも(バグがあっても問題ないケースがあるために)品質がわるくなりがちというか」 / Twitter
ファイルをTCPの30倍で転送――独自プロトコルによる高速通信「クラウド コネクト」 - ITmedia エンタープライズ
SkeedSilverBullet 大容量/多数ファイルをTCPの最大70倍以上で高速転送するソフトウェア製品 FTP代替から拠点間のグローバル連携まで導入実績も豊富 | 大容量ファイル・データの高速転送ならSkeed 大容量ファイル・データの高速転送ならSkeed
BGP over QUICの提案仕様 - ASnoKaze blog
Webでのマルチキャストの利用検討 (Multicast Community Group) - ASnoKaze blog

HTTP

Building Protocols with HTTP

Kazuho OkuさんはTwitterを使っています 「HTTP を使うサーバクライアントアプリ作ってる人が、HTTP 的にどうするのが正しいのかな、と迷った時、見るべきドキュメントは BCP56bis かな、という話をした。HTTP の仕様ではなく、どのように使うべきかを説明した文書 (BCP56) の第2版草稿です https://t.co/InBEresgsD」 / Twitter
Building Protocols with HTTP
Kazuho OkuさんはTwitterを使っています 「「GET にリクエストボディって付けられるの?」 「答えは BCP56bis の section 4.5.1 に書いてあるよ」」 / Twitter
Kazuho OkuさんはTwitterを使っています 「RFC 7231 とかプロトコル仕様は、HTTP を実装する技術者向けの情報が多いので、HTTP を利用する技術者にとってはノイズが多いのです」 / Twitter

Status

Twitter

Masanori OginoさんはTwitterを使っています: "HTTP status code 451、江添さんが「政治的に」と訳したので政治(プログラミング)方面でネタになってるけれど、本来はfor legal reasonsなので法的な要求
Kazuho Okuさんのツイート: "ついに単著のI-Dを出してしまった / “draft-kazuho-early-hints-status-code-00 - An HTTP Status Code for Indicating Hints” https://t.co/rbnpHGcVkf"
draft-kazuho-early-hints-status-code-00 - An HTTP Status Code for Indicating Hints
Kazuho Okuさんのツイート: "HTTPステータスコード103のドラフトがラストコールにかかりましたなう / “Working Group Last Call: draft-ietf-httpbis-early-hints-02 from Mark Notti…” https://t.co/6lEa62hMDs"
https://tools.ietf.org/id/draft-ietf-httpbis-early-hints-02.txt
Fadisさんのツイート: "これ、HTCPCPがBREWするときに指定するプロトコルバージョンについて何も規定しなかった(従って元となる規格のHTTP/1.1のままになった)ことによる規格レベルの不具合だ…"
Hypertext Transfer Protocol (HTTP) Status Code Registry
https://www.rfc-editor.org/rfc/rfc8297.txt
渋川よしきさんのツイート: "HTTPステータスコード。POSTに対しては201 Createdでいいとして、PUTで更新するときに20X Updatedみたいなのがあったら対称的で良いのだけど、ないのだよね。200 OKか。"
Yosuke FURUKAWAさんのツイート: "むしろ PUT が 201 の事を書いてるドキュメントもあるので一概にどっちが正しいか微妙ですね。 https://t.co/6bFPSQdcPD… "
201 Created - HTTP | MDN
渋川よしきさんのツイート: "mjk… "
Kazuho Okuさんのツイート: "POSTは既存のリソースに対する操作だから201になることは基本ないのでは?… "
渋川よしきさんのツイート: "新しいリソース作成で、新しいURLが予想できる場合はPUT、そうじゃない場合はPOSTで作成・・・・みたいな説明をよく見かける気がします。オライリーのRESTful本とかも。… "
Kazuho Okuさんのツイート: "ああごめんなさい location で生成されたリソースの uri を返しつつ 201 というのは基本のパターンですね… "
Yuki Yugui Sonodaさんのツイート: "HTTP statusのreason phraseはサーバーが好きに書いて良いので、細かい情報を載せたいなら変なstatus codeを勝手に作るんじゃなくてそっちを使え、と言い続けてきたけど、割といろんなサーバーが勝手拡張コードを使ってるのね。Teapot以外は認めたくない。"
渋川よしきさんのツイート: "「存在している」という「情報」をログインしていないユーザーに見せない、という意味では404が正しいこともありえますね。… "
渋川よしきさんのツイート: "Real World HTTPでは403の代わりに404を返す可能性については一言だけ触れていたけど、あんまりきちんと説明してなかったので、今度改定のチャンスがあったとき用のネタ帳に追記しておこう。… "
$κ@夏休み/人畜無害🍼さんのツイート: "githubのプライベートリポにログインしてない状態で行くと、404っていうけど、この場合403では?って思った。… "
ĉ̨̨̝͉̝̭̩̣͍͈̗͂ͨ̊̎͋͗̅ͯ̒͑̎̑ͧ́̎̃ͬ̅̀̕r̶̸̴̢̬ͪ̆̾͊ͩͦͩ̈́ͧͨͭさんのツイート: "Quick guide to HTTP Status codes: 1XX: Wait a sec 2XX: There ya go 3XX: Fuck off 4XX: Fuck you 5XX: Fuck"
ゆきさんのツイート: "Reporting Progress of Long-Running Operations in HTTP https://t.co/9zu13MU3VE 重たいHTTPリクエストの処理経過を知らせる「102 Processing」ステータスコードの提案 #yuki_id"
draft-wright-http-progress-01 - Reporting Progress of Long-Running Operations in HTTP
Kazuho OkuさんはTwitterを使っています 「無理してステータスコードを使うべきではないというのはそのとおり。ただ補足するとRFC 7807は200番台以外で使うことを念頭に置かれているし(200ならアプリごとにエラー定義通知手法を決めればいい)、HTTPを設計しているグループ(IETF HTTP WG)の推奨は200決め打ちではないです。」 / Twitter
しいたけさんはTwitterを使っています 「僕も昔はこう思っていたけど、むしろ最近は200でbodyにエラー内容を詰める方がトレンドだと思う。GraphQLとかRFC 7807とか、ステータスコードは経路上で書き換えられるから当てにならないって主張だし」 / Twitter
菱川拓郎@コンクリートファイブジャパンさんはTwitterを使っています 「{"error_code":"123"} をステータスコードで200で返してくるAPI絶滅しろ〜」 / Twitter
Kazuho OkuさんはTwitterを使っています 「具体的には bcp56bis (アプリケーション開発者向けHTTP使い方ガイド)の次版草稿4.6が一番参考になります。https://t.co/QnjU6BStK2 訳出としては: https://t.co/JkvXPUxTfv」 / Twitter
Building Protocols with HTTP
Kazuho OkuさんはTwitterを使っています 「RT @voluntas: "HTTP を使うアプリケーションは、最も適用可能なステータスコードを使うようにエラーを定義すべきで、 疑わしい場合は一般的なステータスコード (200, 400, 500) を惜しみなく使うべきです" https://t.co/ESKj9FxYAg…」 / Twitter

ASCII.jp:HTTPステータスコードに追加された「308」とは?
本の虫: HTTPステータスコード451(政治的な検閲)が正式に承認される
本の虫: 検閲のためのHTTPステータスコードの必要性
Apache mod_http2 で 103 EarlyHints (RFC 8297) を試す - ASnoKaze blog
103 EarlyHints (RFC 8297) を送信するNginxモジュール書いた - ASnoKaze blog
Kazuho's Weblog: 103 Early Hints に対応した Starlet 0.31 をリリースしました
HTTP の新しいステータスコード 103 Early Hints | blog.jxck.io
mnot’s blog: How to Think About HTTP Status Codes
HTTPで「418 I’m a tea pot」を実装してはいけない - Qiita
HTTP 418ステータスコードが予約される - ASnoKaze blog
Retry-Afterのスコープを指定するRetry-Scopeヘッダ - ASnoKaze blog
サポートしてないwell-known URIs に対するステータスコードを確認する提案仕様 - ASnoKaze blog
HTTPS state の仕様を追う
Resource Timing と HTTP ステータスコード 1xx

Cookie

GIGAZINE

Google Chrome 69ではCookieを「すべて削除」してもGoogleのCookieが残ってしまうことが判明 - GIGAZINE
ChromeがCookieの透明性や安全性を向上させる方針を発表、ブラウザ・フィンガープリントの対策も - GIGAZINE
AppleのSafariがサードパーティーCookieを完全にブロック、一般的なブラウザでは初 - GIGAZINE
GoogleがサードパーティーCookie廃止に向けて開発者向けツールのテストを開始 - GIGAZINE
Chromeは「Cookieとサイトデータを削除」を有効にしてもGoogle系のサイトのデータは消さない - GIGAZINE
Safari 14では裏技を使って規制をくぐり抜けていたサードパーティーCookieが対策される - GIGAZINE
Googleが提案するサードパーティーCookieなしの新しい広告の仕組み「FLoC」とは? - GIGAZINE
Google Chrome 89のベータ版で「プライバシー・サンドボックス」の項目が追加へ - GIGAZINE
Googleの考案する新たな「Cookieレスの仕組み」に独占禁止法違反の目が向けられている - GIGAZINE
ブラウザのFavicon(ファビコン)でユーザーを追跡する「スーパークッキー」とは? - GIGAZINE
Firefoxのトラッキング防止策「State Partitioning」の仕組みを分かりやすく説明するとこうなる - GIGAZINE
Googleが導入予定の「FLoC」は最悪なものだと電子フロンティア財団が指摘 - GIGAZINE
GoogleによるCookieレスの仕組み「プライバシーサンドボックス」が独占禁止法に違反すると司法長官が指摘 - GIGAZINE
Googleが「ユーザー情報を保護しつつ広告の関連性も損なわない」仕組みの開発を行うと宣言 - GIGAZINE
Googleがさらなる独占禁止法違反の訴訟に直面、今度はFacebookとの共謀の疑いも - GIGAZINE
AppleがiOS 14.5で実施予定のプライバシー強化「Application Tracking Transparency」の詳細を明らかに - GIGAZINE
Googleが開発中の「FLoC」はなぜ「有害」なのか、ユーザーとウェブサイトに発生する損害とは? - GIGAZINE
Googleが「プライバシー第一」とする新技術「FLoC」の本質はプライバシーを侵害する追跡技術だという主張 - GIGAZINE
「最悪」と酷評されるGoogleの新システム「FLoC」をWordPressが「自動的に無効化する」と発表 - GIGAZINE
Appleが広告業界を激変させる新ルール「App Tracking Transparency」適用の締め切り日をアプリ開発側に示す - GIGAZINE
WWWの技術標準化団体「W3C」がプライバシー保護を巡る争いの場になっている - GIGAZINE

ASnoKaze blog

非セキュアなオリジンから'secure'クッキーの変更を廃止する提案 - ASnoKaze blog
Cookieの属性を制限する Cookie Prefixesという仕様 - ASnoKaze blog
安全でない通信路でセットされたCookieの有効期限を短くする仕様 - ASnoKaze blog
Cookieの仕様改定版、RFC6265bisの議論 - ASnoKaze’s diary
CookieのNoHttp属性の提案仕様 - ASnoKaze blog
Chromeにおいて非セキュアなHTTPで送信されたCookieの有効期限を短くする議論 - ASnoKaze blog
Cookieに変わる Sec-HTTP-State ヘッダの提案 - ASnoKaze blog
Cookie関連の最新動向 (2016年) - Qiita
Cookie の SameSite=Lax をデフォルトにする提案仕様 - ASnoKaze blog
CookieのPriority属性の仕様 - ASnoKaze blog
Cookieのセキュリティを改善する Scheming Cookiesについて - ASnoKaze blog
CookieのSameSite属性にFirstPartyLaxを追加する提案仕様 - ASnoKaze blog
Cookieの新しい属性、SameParty属性について - ASnoKaze blog
トラッキングに利用できない3rdパーティクッキー「CHIPS」の仕組み - ASnoKaze blog

Qiita

Cookie関連の最新動向 - Qiita
PHPでSame-site cookie - Qiita
Chrome 80が密かに呼び寄せる地獄 ~ SameSite属性のデフォルト変更を調べてみた - Qiita

Twitter

@rockridge07

Rockridgeさんのツイート: "Fx50:Cookieのプレフィックスとして"__Secure-"と"__Host-"をサポート。Chrome 49/Opera 36でサポート済み。参照:https://t.co/1Ke9Jg0Qj3 / “Intent to…” https://t.co/ksuziLZote"
Rockridgeさんのツイート: "Fx61:CookieのSameSite属性をサポート予定。参照:https://t.co/7sekICHKR5 / “Intent to implement and ship: same-site cookies” https://t.co/VgsPyEj46i"
Rockridgeさんのツイート: "Fx60:CookieのSameSite属性がサポートされたことを受けて、network.cookie.same-site.enabledをfalseにすれば無効化できるようにした。 / “1452699 - Add pref …” https://t.co/CvQ96F7Dnb"
Rockridgeさんのツイート: "Firefox 60でサポートされるSame-Site Cookiesについて説明した記事。 / “Supporting Same-Site Cookies in Firefox 60 | Mozilla Security Bl…” https://t.co/OQjtQRVKPD"
Rockridgeさんのツイート: "FirefoxではサードパーティCookieはユーザーが明示的に許可しない限り動作しないようにしていく方針だが、具体的にはSafariが先行するStorage Access APIを実装する形をとる。ただし、実装内容は若干異なる模… https://t.co/UlcX3NGRYM"
Rockridgeさんのツイート: "Fx65:Cookieを保存する期間の設定がチェックボックス形式になった。 / “1501989 - Turn the "Keep Until" cookies menulist into a checkbox” https://t.co/XIxVzZ3Rpl"
Rockridgeさんのツイート: "Fx65:未訪問のWebサイトのCookieをブロックする設定にしているとき、例外サイトを追加しても当該サイトのブロックが解除されない問題を修正。 / “1502045 - We fail to honour cookie pe…” https://t.co/meWqSxiDa9"
Rockridgeさんのツイート: "Fx65:urlclassifier.trackingAnnotationSkipURLsに設定されたドメインおよびURLは、トラッカーのサードパーティCookieのブロックを免除される。 / “1506947 - Add a …” https://t.co/d1Wt5cCJpB"

@shibu_jp

渋川よしきさんのツイート: "HTTPのクッキーの日付のパース、いろいろ悲しみが溢れている感。 https://t.co/AMCxUI5Qeh"
RFC 6265 - HTTP State Management Mechanism
渋川よしきさんのツイート: "クッキーの日付はGMT!って書いてあるサイトが多いのだけど、RFC見ると別にGMTとは指定されてなくて、in UTCって書かれている。GMTの部分は無視されてUTCとして解釈されている?"
渋川よしきさんのツイート: "サードパーティクッキー、いまいちわからんケースがいくつかある。AというサイトとBというサイトがあって、AにアクセスしたときにBのドメインが設定されたクッキーが書き込まれて、Bにアクセスしたときに、Aにいたことが分かる。これは分かる。"
渋川よしきさんのツイート: "こっちの代表的な例という絵のメカニズムがわからん。 https://t.co/5JcZfcxnnw"
渋川よしきさんのツイート: "リンク先サーバのクッキーが最初のサイトで書き込まれたとして、次のサイトにアクセスしたときは、リンク先のドメインじゃないからクッキーは送信されないよね?"
渋川よしきさんのツイート: "セッションストレージ、クッキーを使う方法が増えつつあるよ、という話はReal World HTTPに書いたけど、ブラウザでユーザー認証することによってクッキー同期を取るという仕組みが一般的になってきたのと関連はあるのかな?複数のPCとスマホ間で連携できる現代だと、かつてのクッキーの欠点はない。"
渋川よしきさんのツイート: "cookie storageを使って、クッキーにセッション情報を入れる方法。署名で改変は検知できるとして、5-tupleだか、http/3のConnection IDだかも入れると、セッション偽装対策になるのではないか?"

@jovi0608

Shigeki Ohtsuさんのツイート: "BlackHatUSAで発表されたHEIST攻撃の記事。TCP Windowからレスポンスサイズを特定してる。論文やスライドはまだかな。 / “New attack steals SSNs, e-mail addresses, …” https://t.co/KhhAlPmZCx"
Shigeki Ohtsuさんのツイート: "Third-pary Cookieを禁止してればHEIST対策になるのか。"
Shigeki Ohtsuさんのツイート: "HEIST攻撃をまとめると。BREACHと合わせ技でThird-party cookieでinitcwdぎりまでパディングして、残り1バイト分をOracleで特定する。ということで合ってるのかな。もうdeflate的な圧縮はボディ部でもあかんわな。"
Shigeki OhtsuさんはTwitterを使っています: 「Chromeが2年かけて3rd partyクッキーを廃止しGが提唱するPrivacy Sandboxという技術セットを進めていくと宣言。今年末までに新しいコンバージョン測定のトライアルと反フィンガープリント対策を開始すると。 / “Chromium Blog: Building a more private web: A path towar…” https://t.co/5KUNRSZbIZ」 / Twitter
Chromium Blog: Building a more private web: A path towards making third party cookies obsolete
Chromeは2年以内にサードパーティーCookieのサポートを廃止する方針 - GIGAZINE

Yosuke FURUKAWAさんのツイート: "Chromeでは今後、CookieでSameSiteがついていないものは、SmaeSite=Laxとして運用する、つまりCross siteではtop level navigationの時のみcookieがつき、mug, ajax通信ではcookieがつかない、これはまた広告、解析系のアプリ大変だな、、、 / “SameSite cookies explained…” https://t.co/kxFxPWHksk"
SameSite cookies explained  |  web.dev
Yosuke FURUKAWAさんのツイート: "s/mug/img"
ゆきさんのツイート: "chrome://flagsから「Cookie deprecation messages」を有効にすると、CookieのSameSite attributeのデフォルト変更によって影響を受ける場合に警告でる… "
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「https://t.co/6ShlLPJbrb や https://t.co/MnXqfFzePf を同一URLでの日/英対応に。(従来は後者は /en/ 付与) 要点は、apacheで cookie の lang指定あれば、prefer-language に設定。 (SetEnvIf Cookie "lang=([a-zA-Z]+)" prefer-language=$1) あとはjs側の言語切り替えでcookieにlang=en等の設定」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「カード認証の3Dセキュア、3rd party cookieに依存してたりするから、FirefoxのTracking Protectionと相性悪いことあるし、Chrome 80以降で起きるという話であれば、SameSite: Secureつけてないんだろうなとしか」 / Twitter

Google が使用している Cookie の種類 – ポリシーと規約 – Google
HTTP cookie - Wikipedia
HTTP cookie - Wikipedia
2種類のcookie~サードパーティとファーストパーティの違い | マーケティングを支援するDigital Cloud Platform
Session Cookie(セッションCookie)の使われ方とは? – IMnews
アクセス解析におけるクッキー(Cookie)の仕組みを解説【ちゃんと理解できてる?】|アクセス解析ツール「人工知能AIアナリスト」ブログ
【GA_utmクッキー完全把握】cookieの種類と仕組み | やる夫で学ぶGoogleAnalytics
» 反則スレスレ !? Super Cookie とは TECHSCORE BLOG
クッキー(Cookie)について
HTTPクッキーのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Facebook の「いいね」ボタンがあるサイトに行くと、トラッキングされているかに見える件 | @_Nat Zone
Supporting Same-Site Cookies in Firefox 60 | Mozilla Security Blog
SameSite - OWASP
super cookie - Google 検索
Google Developers Japan: 新しい Cookie 設定 SameSite=None; Secure の準備を始めましょう
Cookie規制でプライバシーの問題はどうなる? - IIJが個人情報保護法改正大綱を解説 (1) Cookieってなんだっけ? | マイナビニュース
牧歌的 Cookie の終焉 | blog.jxck.io
Cookieレシピ - SameSiteとそれを超えて - Rowan Merewood氏がweb.dev Liveにて
Google Developers Japan: Chrome におけるスキームフル Same-Site の適用について
GitHub、サービス提供に不必要なCookieとCookieバナーを排除 - PC Watch
マイクロソフトの「Edge」ブラウザーがGoogleの広告技術「FloC」を無効化、事実上の「NO」か | TechCrunch Japan
FLoCとはなにか - ぼちぼち日記
Google Chrome、Web広告などに使われるCookieを2023年に廃止 - PC Watch

Header

Structured Field Values による Header Field の構造化 | blog.jxck.io
Cache-Control: must-understand ディレクティブとは何か | blog.jxck.io
HTTPレスポンスボディを送ってから、Cache-Controlを変更可能にする仕様 - ASnoKaze blog
"HTTPヘッダ"が指すものとは - Qiita
「Firefox 87」からはプライバシー保護のために新たなリファラポリシーが採用される - GIGAZINE
クライアント証明書を中継するClient-Certヘッダの提案仕様 - ASnoKaze blog

URL

uriparser

uriparser - RFC 3986 URI parsing library
uriparser 日本語情報トップページ - OSDN

国際化ドメイン

Mozilla

Network.IDN.whitelist.* - MozillaZine Knowledge Base
IDN (International Domain Name) を使用した偽装サイトへの対策 Firefox編 - seclan のほえほえルーム
Firefox で日本語ドメインの .com / .net が punycode で表示される理由
国際化ドメイン名の表示が有効なトップレベルドメイン
IDN-enabled TLDs — Mozilla
network.IDN.whitelist.
人間の目で見抜けないURL偽装がフィッシング詐欺に悪用される可能性、Firefoxでの対策はコレ - GIGAZINE
なかのんクエストさんのツイート: "これ、実装当時から分かってたけどどうしようもない話だなって関係者言ってたのに、なんで今頃話題に? / ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 | スラド IT https://t.co/Jc1kEqaOb1"
ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 | スラド IT
なかのんクエストさんのツイート: "そもそも、аррӏе.com みたいなのを通しちゃうようなTLDは常にPunycode表示にしようってことで話が決着してて、.comに関しては当初はホワイトリストに入ってなかったけど、登録のルールが改善したとかでホワイトリスト入りしたんじゃなかったっけか?"
なかのんクエストさんのツイート: "で、TLDレベルでは安全でも、スラッシュっぽい文字とサブドメインを利用するとドメイン偽装が簡単だってことで、スラッシュに見えかねない文字は全てブラックリストに入れておいて、それにひっかかったら強制的にPunycode表示にするってのは私が実装した。"
なかのんクエストさんのツイート: "ちなみに、私がMozillaで国際化ドメイン名周りのバグ修正やってた当時のNetworkモジュールのオーナーでレビューしてくれてたのが、初期から現在に至るまでGoogle Chromeの責任者やってるあの人だったりする。"
なかのんクエストさんのツイート: "とりあえず変なアイデア出てたんで、日本語だと無意味だし、ハイフンに似た文字だとどうしようもないとだけ書いておいた。 / https://t.co/PkF5AsjROC - IDN Phishing using whole-script confusables on… #もずでぶ"
Rockridgeさんのツイート: "Firefoxの国際ドメインネーム(IDN)表示アルゴリズムについてFAQ形式で解説したもの。 / “Gerv's IDN Display Algorithm FAQ - MozillaWiki” https://t.co/WNBO8LRsAP"
Gerv's IDN Display Algorithm FAQ - MozillaWiki
なかのんクエストさんのツイート: "Firefoxの場合、今では信頼出来ない所も混じってるかも知れないけど、network.IDN.use_whitelistをtrueにして、IDNサポート当初のポリシーを復活させる方が安全かなと思ったけど、このpref、もう効かないっぽいな……"
Gecko1.8相当製品において修正したバグ - WebStudio

Google

IDN in Google Chrome - The Chromium Projects
なかのんクエストさんのツイート: "Chromeのホモグラフ攻撃対策へのパッチ、頭痛い。指摘されたケースに対して限定的に対応しただけで、日本語の似た文字や記号の似た文字は無視、キリル文字でASCIIの小文字に似てる文字だけ対応。こういういい加減なの、嫌なんだよな…… https://t.co/jjXIIMf66I"

GoogleのようでGoogleではない謎のサイト「ɢoogle.com」が出現 - GIGAZINE
国際化ドメイン名(IDN)に関する資料 - JPNIC
IDN関連RFC翻訳
新宿.com
www.jdna.jp/survey/rfc/rfc3491j.html
StringPrep - ICU User Guide
JPRS DNS 関連技術情報
IDN Info by JPRS / 標準化状況
FAQ - International Domain Names (IDN)
https://tools.ietf.org/rfc/rfc5895.txt
国際化ドメイン名のプロトコル改定に関する技術動向 ~第74回IETF Meetingにおける話題から~ | 2009年 | ドメイン名関連会議報告 | ドメイン名関連情報 | JPRS
IDNA2008
大石哲之(Bitcoin,Blockchain)さんのツイート: "これはやばい。 binance偽サイト。 見分けがつかないです… "
楠 正憲さんのツイート: "あーあURLにASCII以外のUnicodeを認めたせいでこんなことに。当時からこうなると分かってたのに。しかもTLS証明書どこが発行したのか… "
soushi (・゚∠)ばななさんのツイート: "ありがとうございます。試すとpunycodeが表示されました。 尚、Vivaldiは無条件でpunycodeで表示でした(設定はなさそう?)。あとChromeは調べると独自に定義したPolicyを通ればunicode表示にするんですね…。… "
soushi (・゚∠)ばななさんのツイート: "ちなみにこちらのページに色々書いていました。 https://t.co/GVB16d7WQh… "
NOTWORK.JP-SA:050401-00 JPRSのIDN実装上の日本語文字集合類似字形の問題
Old Blog
libidn2-2.0.4
libunistring-0.9.9

BASE32

三十二進法 - Wikipedia
base32 ‐ 通信用語の基礎知識
18.12. base64 — RFC 3548: Base16, Base32, Base64 データの符号化 — Python 2.7.x ドキュメント
Man page of BASE32

protocol-relative URL

HTMLやCSSでのプロトコル表記(http:、https:)の省略について: 小粋空間
いい加減、&lt;script src=&quot;http://.. と書くのはやめましょう · DQNEO起業日記
protocol-relative URL

News

Googleはウェブを安全にするために「URLをなくすべき」と考えている - GIGAZINE
URLがなにかおかしい……「Google Chrome 69」に加えられたある小さな変更が話題に - やじうまの杜 - 窓の杜
Chrome 90ではアドレスバーからウェブサイトへ接続する際にデフォルトで「https://」を使用する - GIGAZINE
GoogleがChromeに導入予定の「URLを非表示にする機能」を断念する可能性 - GIGAZINE

blog

URIに使ってよい文字の話 - RFC2396 と RFC3986 - 本当は怖い情報科学
最近のruby-core (2016年4月) | Money Forward Engineers' Blog
WHATWG URLの実装がNodeに来たと聞いたのでURLについてメモしておく - 水底の血
hxxp URIスキームの仕様化 - ASnoKaze’s diary
https://tools.ietf.org/id/draft-salgado-hxxp-00.txt
URIに含まれるIPv6ゾーンID - RFC 6874:Geekなぺーじ
なぜChromeはURLを殺そうとするのか? (Chrome Dev Summit 2019) - ぼちぼち日記
URLリソースの非推奨を示すDeprecationヘッダ - ASnoKaze blog

blog.jxck.io

Node v7 で入った WHATWG URL 実装について | blog.jxck.io
Scroll To Text Fragment と :~:text | blog.jxck.io
Scroll to Text Fragment を用いたサイト内検索の実装 | blog.jxck.io

Qiita

リンクの`http:`や`https:`を省略して現在のプロトコルでリンク先にアクセスさせる - Qiita
mod_auth_openidc の脆弱性(CVE-2019-14857)について - Qiita

POSTD

私のURLはあなたのURLとは違う : curl作者の語る、URLの仕様にまつわる苦言 | コンピュータサイエンス | POSTD

Wikipedia

Uniform Resource Identifier - Wikipedia
Uniform Resource Identifier - Wikipedia
Punycode - Wikipedia
Punycode - Wikipedia, the free encyclopedia
Internationalized Resource Identifier - Wikipedia
Internationalized resource identifier - Wikipedia, the free encyclopedia
国際化ドメイン名 - Wikipedia
Internationalized domain name - Wikipedia, the free encyclopedia
Uniform Resource Locator - Wikipedia
URL - Wikipedia

Twitter

Mozilla

Rockridgeさんのツイート: "Fx47:URLのバックスラッシュはスラッシュとして扱われる。 / “652186 – Implement URL Standard's backslash replacement ("\" is treated as "/" …” https://t.co/2LvuyK7pdk"
Rockridgeさんのツイート: "WebKit trunkに実装された新URLパーザが、仕様適合性に優れているという話。セキュリティやパフォーマンスにも配慮しているという。 / “URL Parsing in WebKit | WebKit” https://t.co/jiTlG4TTLU"
Rockridgeさんのツイート: "Fx53:新ロゴのとおり"moz://a"と入力すると、特定のWebページにリダイレクトされる仕組みが実装された。なお、"moz://"のURIスキームもIANAに暫定登録済み。参照:https://t.co/047yEEXTh7 https://t.co/abV54zdcfA"
Mozilla Firefox、moz:プロトコルをサポート | スラド idle
Rockridgeさんのツイート: "Fx55:複数のa要素がフラグメント識別子の異なる同一ページを指定し、かつ、target属性の値も同一である場合、リンクをクリックしてもタブが切り替わらない場合がある問題を修正。 / “1303838 - Not switch …” https://t.co/IKBc84zEiO"
PC Watch若杉(4K修行僧)さんのツイート: "Amazon.co.jpでのお買い物に「ドコモ ケータイ払い」が対応、という件名のリリースが来て、全角URLじゃサイトの表示すらできないだろ! って突っ込もうと思いつつも、一応試しにChromeに全角URLをコピペしたら、自動的に半角に変換して表示された。Chromeやるな……"
Rockridgeさんのツイート: "Fx56:URLのエンコードを内部的にPunycodeで行うようにした。 / “945240 - Change nsStandardURL's internal hostname representation to punyco…” https://t.co/UOakWoFgQ3"
Rockridgeさんのツイート: "Fx58:PlacesデータベースがURIのマッチングに用いるハッシュの計算が高速化されたが、データベースの互換性が部分的に失われているという。参照:https://t.co/8DsWeEWlO8 / “Firefox/Meet…” https://t.co/WBJYjqDEy1"
Makoto Kato ︎︎さんのツイート: "いろんな理由があって、location.hashのsetterのコードを見てるんだけど、extensionとかOSに対してURI変更に対してのinterceptを許可するとただ遅くなるだけなんだけど、他のブラウザどうしてんだろ"

Ryou Ezoeさんのツイート: "Chromium、バカが開発しているのか? https://t.co/l1jXQLorUX"
881410 - Incorrect transforms when stripping subdomains - chromium - Monorail
Ryou Ezoeさんのツイート: "www.はドメイン名の一部であって省略できるものではないだろ。"
Ryou Ezoeさんのツイート: "Chromium、https://t.co/nUchwbgK6Sのwww.を二重に除去してexamplecomにするらしい。完全にバカしかいないのでは。 https://t.co/l1jXQLorUX"
Ryou Ezoeさんのツイート: "Chromiumはfield trialsが常に1コア分のCPU時間を食うようになった頃から使ってないが、完全にIEと同じ立ち位置に堕ちたな。"
Ryou Ezoeさんのツイート: "Twitterもバカが開発しているらしくwww. www. https://t.co/rY28fpJshPの最初のwww.を除去する。"
Ryou Ezoeさんのツイート: "まあ、そもそもサブドメインなんてものがあるのが根本的にダメなんだがな。世の中にはhttps://t.co/UNnazKKeONとかに騙される人間が多すぎる。"
Ryou Ezoeさんのツイート: "あー、なるほど。これGoogleの戦略的なものかもしれないぞ。GoogleはURLを廃止したがっている。Googleがすべてのインターネットのトップページとして機能することを目論んでいるのか。"
Ryou Ezoeさんのツイート: "GoogleがURLを廃止したがっているという推測、あながちバカにできないぞ。https://t.co/6hq8jsQhFO"
Google wants to get rid of URLs but doesn’t know what to use instead | Ars Technica
Kazuho Okuさんのツイート: "URLのドメイン名省略の話、セキュリティの観点からいうと、伝統的に https://t.co/YQt384onj7 のメアドを利用して www .example.com のDV証明書を取得することが認められてきた以上、www を表示で省略しても良さそう(OV,EVも認証単位より細かいホスト名表示は不要)"
相沢陽菜さんのツイート: "Chrome のサブドメイン省略表示(www や m が消える)って、頭から消していって消せなくなったら終わるんじゃなくて、サブドメイン/ホスト名部分を . で分割して、www や m を filter して . でくっつけるのか…(どこに現れても消える)"
Kazuho Okuさんのツイート: "「企業が開発しているソフトウェアは信頼性が高い」と言われた場合にも「OSSは多くの目があるから信頼性が高い」と言われた場合にも便利に使える反例ですね。まあ仕様はあれでいいと思うけど… "
SKSの申し子さんのツイート: "Chromeのサブドメイン省略,勝手にアレな挙動をデフォルトにしたのも酷いけど,途中にあるのも省略しちゃったりするの,本当に雑に実装したんだな,という所が酷い"
Kazuho Okuさんのツイート: "Chromeのサブドメイン省略は修正が間に合わなくていったん無効化されたというのが正確。他のブラウザも(より限定的な形で)やってる。中間にラベルの省略は wikipedia のモバイルサイトを念頭に意図的に導入されたということは https://t.co/sOBRVz2E29 あたりみるとわかりますね"
881694 - www subdomain is removed even when it isn't the leftmost subdomain - chromium - Monorail
Kazuho Okuさんのツイート: "URLの一部を表示するのはセキュリティ上の要請だし、従ってホスト名を全部表示する必要はないし、複数の管理者が同居するようなドメインならpublic suffix listに登録されてるはずで、その場合、他のウェブブラウザはサブドメインを省略しないしChromeもそうなる方向なんですよ"
Makoto Kato ︎︎さんのツイート: "Chrome 69でのwwwとかmのサブドメイン省略の話、70でreshipするみたいだけど、細かい話はまだ決まってないみたい。さて。。。 https://t.co/f1IDsRz0Sd"
883038 - Feedback: Eliding www/m subdomains - chromium - Monorail
Kazuho Okuさんのツイート: "セキュリティに関するUIは、1) 簡潔で 2) ブラウザ間で統一されているほうが望ましいと考えます… "
mattnさんのツイート: "サブドメインが付いてない無いサイトはオフィシャルサイトだと認識する人が一定数いると思っていて、一括してセカンドレベルまでしか表示しないという事ならば(まだ)納得しますが、固定なのであればユーザが混乱するだけな気がしています。… "
Kazuho Okuさんのツイート: "一般ユーザは www の有無でサイトの区別をしない、という前提なんでしょうね。www の有無を無視するというのは、DV証明書発行の伝統的なプロセスでもそのとおりです… "
Rockridgeさんのツイート: "GoogleがChrome 69においてアドレスバーから"www"と"m"のサブドメイン表示を消したのは、URLをわかりやすいものにして、ユーザーに注意を向けてもらおうという考えが背景にあったらしい。 / “Chrome tea…” https://t.co/WspDOha7GI"
Rockridgeさんのツイート: "Chrome 70では"m"のサブドメイン表示を復活させる一方、"www"は隠したままにする模様。 / “883038 - Feedback: Eliding www/m subdomains - chromium - Mono…” https://t.co/6OBz4qUxYH"
ゆきさんはTwitterを使っています: 「ドメイン名にラテン文字など紛らわしい文字を使う、IDNホモグラフ攻撃については、W3Cで対策の議論があったり https://t.co/gL9HLKBsDP」 / Twitter
Anti-Homograph-Attacks -- 18 Sep 2019
Kazuho OkuさんはTwitterを使っています 「(9年前の記事だけど)引用英文のとおりSHOULD encodeなので、エンコードしない場合は運用上問題が生じる可能性があることに留意しろという話で、相対URLでschemeの区切りと区別がつかない問題もまさに留意点のひとつなのかな / https://t.co/VKuQRxisSt」 / Twitter
HTTPのクエリパラメータにコロン(:)を書くのは不正なのか。 - こせきの技術日記

Delegated Strings | ICANN New gTLDs
data URIs | MDN
ホスト名が付かない URL は不正なものとして扱われるようになりました (影響あり) | Firefox サイト互換性情報
URL Standard (日本語訳)
draft-ruby-url-problem-01 - URLの問題提起と動向
jacketizer/libyuarel: Simple C library for parsing URLs with zero-copy and no mallocs.

PSL

Libpsl Reference Manual: Libpsl Reference Manual
rockdaboot/libpsl: C library for the Publix Suffix List
「地域型JPドメイン名」新規登録終了、11月から「都道府県型JPドメイン名」 -INTERNET Watch
「都道府県型JPドメイン名」新設へ、2012年後半から登録受け付け開始 -INTERNET Watch Watch
【やじうまWatch】東京都の税金のページと思いきや……個人の善意で悪用が防がれている公式サイト風ドメインが話題 - INTERNET Watch
PSLってどうよ?
Public Suffix List
PSLってどうよ?
PSL
DailyJS | PublicSuffixList – PSLに基づいてドメイン名を検証 | JSお散歩
cmtt/publicsuffixlist: A validator for domain names and top level domains, driven by publicsuffixlist.org and ICANN's generic TLDs.
dnsops-jp-20080709.pdf
Geekなぺーじ:「欠陥ドメイン名」が世界的に増えそうな件について
vyv03354さんのツイート: "JPRSが都道府県型JPドメイン対応のためにPSLの更新を依頼してた。 https://t.co/eqdnpJfV どうやら本当に地域型ドメインで使われている市区町村名を全部登録するつもりらしい"
763208 - Update .jp entry in PSL
本の虫: クッキーモンスター
Rockridgeさんのツイート: "Public Suffix Listはeffective top-level domain(eTLD)とも呼ばれるドメイン名のリストである。Mozillaの発案だが、現在はコミュニティによって維持されている。 / “Public…” https://t.co/1TIyHoJTRd"
本当は難しいPSL - Speaker Deck
Public Suffix List の用途と今起こっている問題について | blog.jxck.io

TLS

Compact TLS 1.3の提案仕様 - ASnoKaze blog
data loss due to RST when using HTTP/1 & TLS 0-RTT · Issue #2534 · h2o/h2o
Kazuho OkuさんはTwitterを使っています 「はー lingering close とか気にしないで生きていけるつもりだったんだよ。この部分実装した時点では、それで問題なかったんだよ。。。 https://t.co/qy2ivYAxJ3」 / Twitter
RFC 8996でTLS1.0とTLS1.1が廃止に - ASnoKaze blog
FadisさんはTwitterを使っています 「3月にTLS 1.0とTLS 1.1をTLSの仕様から落とすRFCが出てるんだけど、TLSは新しいアルゴリズムの追加、利用方法の追加、安全でなくなったアルゴリズムの禁止を何度も行なってきたからこのRFCによって影響を受ける既存のRFC(Updates)が84個も列挙されてる https://t.co/Q33QG8CCTP」 / Twitter
RFC 8996: Deprecating TLS 1.0 and TLS 1.1
Chromeが全てのウェブページをHTTPS優先で読み込む「HTTPSファーストモード」を導入予定 - GIGAZINE
TLS Encrypted ClientHello(ECH) を BoringSSLで試してみる - ASnoKaze blog

Resource bundles

amp-script の実用性について考える - mizchi's blog
WebBundle によるコンテンツの結合と WebPackaging | blog.jxck.io
WebPackaging の Signed HTTP Exchanges | blog.jxck.io
Webbundle によるサブリソース取得の最適化 | blog.jxck.io
Webページのサブリソースを一つにまとめる Resource bundles とは - ASnoKaze blog
Kazuho OkuさんはTwitterを使っています 「「AMP対応のWebページ」ではなく、「速いWebページ」を検索結果上位に表示するようになるという話。 / https://t.co/FWqQyTM4ZJ」 / Twitter
The End of AMP – lafoo – ramblings about the online world

Better Ads Standards

The Initial Better Ads Standards - Coalition for Better Ads
Chromeブラウザの広告ブロック機能、7月9日に世界で有効に - ITmedia NEWS
Google、Chromeブラウザに劣悪広告ブロック機能を追加へ - ITmedia NEWS
GoogleやFacebook、IABなど16組織がオンライン広告改善団体を設立 - ITmedia NEWS
Web広告の仕組みとは? 種類別の表示方法・効果も解説 | TECH+
Google、Chromeブラウザでの劣悪広告ブロック開始、仕組みを説明 - ITmedia NEWS

セーフブラウジング

実はセーフでも何でもないという「セーフブラウジング機能」について専門家が解説 - GIGAZINE
iOS 14.5の「セーフブラウジング」はGoogleではなくAppleの自社サーバー経由で行われるようになる - GIGAZINE

ASnoKaze blog

HTTPメッセージに署名をするSignatureヘッダの標準化 - ASnoKaze blog
HTTPと硬直化(ossification)の問題 - ASnoKaze blog
「Advisory Content-Length for HTTP」と自転車置場の話し - ASnoKaze blog
ネットワークメトリクスを示すTransport-Info HTTPレスポンスヘッダ - ASnoKaze blog
HTTPヘッダに構造定義を与える Structured Headers の提案仕様 (draft-14) - ASnoKaze blog
HTTPで部分的アップロードを可能にする Partial Uploadsという提案仕様 - ASnoKaze blog
HTTP/2の仕様、改定作業が始まる - ASnoKaze blog
WiresharkがHTTP/3に対応した - ASnoKaze blog
ChromeのSecure context restriction for external requests - ASnoKaze blog
Permissions PolicyとDocument Policyについて - ASnoKaze blog
ChromeのHTTP/2サーバプッシュサポート廃止検討と、103 Early Hintsについて - ASnoKaze blog
POSTリクエストを冪等処理可能にするIdempotency-Keyヘッダの提案仕様 - ASnoKaze blog
CDNのキャッシュを制御する CDN-Cache-Control ヘッダ - ASnoKaze blog
GoogleのPrivate prefetch proxyに関するメモ - ASnoKaze blog
HTTP PUTリクエストにContent-Rangeヘッダを付けられるか? - ASnoKaze blog
WebTransportの方向性 (2021年1月の中間会議をうけて) - ASnoKaze blog
プライバシーを保護する Oblivious HTTP の仕様 - ASnoKaze blog
NAT Slipstreaming v2 攻撃とブラウザ側の対策 - ASnoKaze blog
NAT Slipstreaming攻撃とブラウザ側の対策 - ASnoKaze blog
ダウンロードもMixed Contentsの対象となる話し - ASnoKaze blog
QUICの仕様におけるアンプ攻撃対策 - Qiita
WebTransport over HTTP/3のプロトコル仕様 - ASnoKaze blog
HTTPコネクションでIPパケットをProxyさせる、新しいCONNECT-IPメソッドの仕様 - ASnoKaze blog
QUIC Version 2 という個人ドラフト(draft-duke-quic-v2❩ - ASnoKaze blog
HTTP/3におけるCAPSULEフレームとDATAGRAMの利用方法 - ASnoKaze blog
WebTransport over HTTP/2 の方向性 (2021年5月の中間会議をうけて) - ASnoKaze blog
HTTPセマンティクス仕様の改訂版 まとめ - ASnoKaze blog
HTTP/3からのダウングレード攻撃を防ぐIncompatibleProtocol拡張の仕様 - ASnoKaze blog
QUICやHTTP/3で利用を避けるべき送信元ポートの議論 - ASnoKaze blog

Publickey

HTTP/3はどうやってWebを加速するか? TCP、TLS、HTTP/2の問題とHTTP/3での解決策~Fastly奥氏が解説(前編) - Publickey
HTTP/3はどうやってWebを加速するか? TCP、TLS、HTTP/2の問題とHTTP/3での解決策~Fastly奥氏が解説(後編) - Publickey

IIJ Engineers Blog

QUICをゆっくり解説(1):QUICが標準化されました | IIJ Engineers Blog
QUICをゆっくり解説(2):ネゴせよ | IIJ Engineers Blog

GIGAZINE

ウェブアプリに対する典型的な攻撃手法とその対策まとめ - GIGAZINE
ウェブサイトのさまざまな「認証方式」をまとめて比較した結果がコレ - GIGAZINE
Chrome・Firefox・Edgeなどブラウザは初回起動時にどのような通信を行っているのか - GIGAZINE

infoQ

Chrome User Agentのサポートを段階的廃止
UXパターン: Stale-While-Revalidate

Twitter

QUIC

NAT

ゆやりんさんはTwitterを使っています 「資料掲載してます。どう見ても5分でしゃべれないので評判良ければJANOG49で時間とって議論したいですね。 https://t.co/4lYpkF3RDX」 / Twitter
QUICとNATと – JANOG48 Meeting
Kazuho OkuさんはTwitterを使っています 「よいまとめ。ありがたい」 / Twitter
Kazuho OkuさんはTwitterを使っています 「感想がてらのメモとしていくつか: * UDP無通信タイムアウト30秒にできるなら、TCPのCLOSE_WAITの120秒よりも短くなるので、プレッシャーは減りそう(TCPのFIN交換後のタイムアウトって実際のNAT運用どうなってるんだろう)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「* 実際のところ、ポート枯渇に一番つながるのは、いまだにドメインシャーディングしてるHTTPサイトとかHTTP/1で持続的接続を使わないクローラとかなので、そういうTCPアプリがなくなるとNATでのポート枯渇可能性が減ってうれしいよなと思う」 / Twitter
Kazuho OkuさんはTwitterを使っています 「* IPv6でポート枯渇はなくなるはずなのにSPIのエントリ足りないとかは、設定でギリギリ攻める以上、アプリケーションの変化の度に再チューニングするリスクと隣り合わせであることを理解してほしいと思う」 / Twitter
tenpoku1000に関するツイートアクティビティアナリティクス
Kazuho OkuさんはTwitterを使っています 「実際、NATまわりで「TCP切断後、何秒間4-tuple再利用できないの? 120秒? マジ? 長すぎない?」みたいなことは思うんだけど、120秒以下で再利用するのは、やっぱ危ないんですよね?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あーまああれか。「ポート番号まじ足りないって」っていうキャリアグレードNATの話と、ポートは余ってるけど「エントリ数足りないって」っていうホームルータやファイアウォールの話を混ぜるな危険ってのはあるのか」 / Twitter

嶋田大貴さんはTwitterを使っています 「TCPだとセッションの終わりをルーターが検出してテーブルから削除出来るけど、QUICの場合はQUICを知らないルーターから見たらただのUDPだからタイムアウトでしか片付けられないってことか…これは厳しいですね。」 / Twitter
やまねこ⚙楢ノ木技研さんはTwitterを使っています 「うええ、ルーターのNATテーブルを圧迫してるの、LAN内部に設置したDNSサーバーだけかと思ったら、QUICか!どうりで、googleとかQUICに対応してるサイト使うとトラブル起きる訳だ。。」 / Twitter
やまねこ⚙楢ノ木技研さんはTwitterを使っています 「現状、UDPで動いてるQUICのセッションの継続期間を、ルーター側で明示的に判断できないから、NATのタイムアウトを短くするとか、Atermみたいヘボルーターを使わない、しか対策ないっぽい。。」 / Twitter
やまねこ⚙楢ノ木技研さんはTwitterを使っています 「LAN内QUIC使用禁止ってのもアレなんで、とりあえず、NATのUDPセッションタイムアウトを最小値30秒にしてみた。元々、SIPみたい一部のUDP使ってるレガシーなプロトコルが、無通信時間が長いので、タイムアウトの初期値が長めになってたりするらしい。。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin トランスポート屋さんとしてはQUIC対応ルータみたいな発想こそがプロトコルの発展を阻害する(ossifyする)ので防ぎたいものなので、NATに期待するのは使われないマッピングは順次消していってくれ、以外ないです。消えてたら別ポート割り振られて、そこでconnection migrationが走るので」 / Twitter
Kazuho OkuさんはTwitterを使っています 「現実にはNATのUDPエントリは無通信30秒程度くらいから消え始めるので、QUICのサーバが接続維持したい場合は(HTTP/3のlong polling等)、定期的にPINGを送るべきとされています。滞留中のHTTPリクエストがなければ、無通信のままエンドポイントのステートもNATのステートもタイムアウトで破棄される」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho 「使われないマッピングは順次消していってくれ」ってのがインフラ側から見るとしんどい(けど「QUIC対応ルータがあれば解消できる」という意見があって「本当か?」と懐疑した結果違うと分かった)のでQUIC使うならIPv6だなと思い至りました。この辺の話はJANOGのLTで話してみようかな。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin なぜLRUでしんどいのでしょう。TCPの場合、NATテーブルが溢れるギリギリまでテーブルエントリを維持したい(そうしないと接続が切れる)という動機があるのは分かりますが、QUICの場合はmigrationがあるので不要です。また、傍論ですが、そもそも切断時にCONNECTION_CLOSEを投げるわけですらありません」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin アプリケーションプロトコルによりますが、HTTP/3のような場合は、タイムアウトによる切断が通常動作です。切断処理のために無線回路起こすのは無駄なので」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho NATのエントリークリアのトリガーがタイムアウトしかないので、タイムアウトが長いとNATテーブルが埋まる問題があります。この時に他の接続もできなくなるのが問題です。TCPの場合はFINをトリガーにタイムアウトを待たずにエントリーを消せます。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin LRUではなく固定秒数のタイムアウトを指定するようなNATの話でしょうか。だとすると、そのような設計はQUICに限らずUDP全般で問題になるので、LRUに移行してくれ、以外にないと思います。FINをトリガーに消せる(からエントリを節約できる)というのは、LRUよりも長い寿命が必要であるという...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin 前提に基づく主張だと思いますが、QUICの場合、LRUで困らないので、その主張はあたりません。」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho ですです。ご家庭やSOHO、小規模オフィスのブロードバンドルータとかです。LRUしてくれってのもその通りです。DNS以外のUDP全般で起こる問題ですがこれまでそんなに通信がなかったので顕在化しなかった問題です。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin なるほどありがとうございます。アプリ屋さんの発想としては、UDPが100%通るわけではない以上、TCPフォールバックを前提にものを作る(ことが多い)ので)、そういうルータのテーブルが溢れてUDP止まるならしょうがないよね、LRUする機器に更新されるといいね、みたいな感想になりそうです」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho 多くの場合TCPとUDPでNATテーブルが共有されているので、この場合TCPも含めて新規コネクションが死んでしまいますよね。QUICで多重化されてUDPレベルのでコネクション数が減ったことと、タイムアウト待ちによるNATエントリーの増大のバランスがどうなるのかが(サイトの作りにもよりますが)気になります」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho 文脈変わりますが、CGNレベルのNATでLRUできるかですが、RFC6888にはREQ-8として「FINが来てないTCPポートは120s経過するまで再利用するな」って書いてあったりして悩ましいです(書いた人が身近すぎますが) https://t.co/97KhQ2tJW0」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin TCPとUDPでタイムアウトが共通かつTCPの場合FINでエントリ落とすみたいな設計だと、UDP側からのプレッシャー増大に対応するのは大変かもですね。元の文脈にだと、UDPの場合は終端を見てエントリを落とすなんてことはどのみちできない(し、やるべきではない)んだから、タイムアウトをTCPより短く...」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@yuyarin すればいいという話になり、実際、TCPよりもUDPのほうがタイムアウト短いネットワークが多いんだと理解しています(この「多い」がネットワークの数なのかトラフィック比例なのかは把握してないです)」 / Twitter
ゆやりんさんはTwitterを使っています 「@kazuho そうですね。設計としてはTCPのタイムアウトのほうが長いことが事例として多いです。TCPはFINで消えるのでタイムアウト値の設計時にNATエントリのことを考慮することは少なくて、実際の数秒〜十数秒の通信断があったときにTCPコネクションが切れてほしくないみたいな動機で設定することが多いです。」 / Twitter
こーのいけさんはTwitterを使っています 「@yuyarin @kazuho YAMAHAのマニュアル見てるとDNSの場合を特別扱いしてますね。https://t.co/srVLidQBeL - DNS以外に多くのサーバと頻繁に通信するUDPプロトコルがこれまでなかった - DNS(53/udp)は特別扱いされている場合があった - そこにQUICが出てきて、さあどうしよう? という感じでしょうか」 / Twitter
26.9 NAT の IP アドレスマップの消去タイマの設定
ゆやりんさんはTwitterを使っています 「@ko_noike @kazuho おっしゃるとおり、これができる機器を使う場合はDNSのNATのタイムアウトはかなり短く設定します。というかこれができないとURL一文字打つたびに名前解決しに行くブラウザとかがあると死ぬので。。。」 / Twitter
VさんはTwitterを使っています 「QUIC 対応ルーターとかは必要なくて普通に NAT テーブルの UDP セッションタイムアウトが 30 秒とかになってればあとはテーブルサイズの問題くらいの認識。テーブルサイズが小さい弱いルーターはしんどいかもしれない、くらいか。」 / Twitter
VさんはTwitterを使っています 「むしろ特定プロトコル向けルーターとか出すとそのプロトコルが改善できなくなるのでやめるべきだと思うなぁ。」 / Twitter

FadisさんはTwitterを使っています 「HTTPでブラウザがWebサーバに対してユーザトラッキングを望まないという意思表示をするDo Not Track(DNT)ヘッダをSafariが廃止した理由が「DNTはあまり使われず、使うユーザは継続的にDNTを付けたリクエストをする為、トラッキングの為のヒントとして使われる」なの、Webのダメな所が凝縮されてて凄い」 / Twitter
Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「HTTPやSSL/TLSに関わるソフトウェアエンジニアは知っておくといい情報なんですけど、 https://t.co/ZcO29mS1P8 というサイトを使うと、期限切れの証明書でのTLSの検証とかが簡単にできていいです。」 / Twitter
badssl.com
Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「似た例として、Google Safe Browsingとかでマルウェア判定の検証に使える https://t.co/x9biz3P59l というデモサイトも便利です。」 / Twitter
testsafebrowsing.appspot.com
Kazuho OkuさんはTwitterを使っています 「HTTPでAPI設計する際のstatus codeの返し方は https://t.co/QnjU6BStK2 にまとまってるけど、一言で言うと HTTP status code を本来の意味で使いつつ、詳細な情報はレスポンスボディやヘッダで送れ、です」 / Twitter
Building Protocols with HTTP
Kazuho OkuさんはTwitterを使っています 「というわけで、HTTP ステータスコードの使い方も含め、HTTP を使って API やらアプリやら設計する際の指針はだいたい BCP56bis なのです」 / Twitter

本の虫: Chromeが起動時に三つのランダムなドメインに接続しようとする理由
ブラウザの更新 スーパーリロード
QUIC用APIを実装したOpenSSL forkの登場 - ASnoKaze blog
Chromium の HttpStreamParser によるヘッダ処理
100GbE+ラージMTU環境でのQUICのパフォーマンス改善. HTTP/3とトランスポートプロトコルQUICの仕様を定めた6つのRFCが発行さ… | by Jun-ya Kato | nttlabs | May, 2021 | Medium
QUIC is now RFC 9000 | Fastly
QUIC Interop Runner
HTTP/3の基盤となる「QUICプロトコル」の標準化プロセスが完了、IETFの「RFC 9000」として - Publickey
Web Application開発に10080番ポートは使ってはいけない
進化する通信プロトコル - QUICとHTTP/3で何が変わるのか -日本語版- - YouTube
【特集】ネットの大規模障害が起きた「CDN」って何?実際にアクセスして確かめてみた - PC Watch

curl

curl

curl
curl - License Mixing
curl - SSL libraries compared
curl - SSL CA Certificates
curl - Extract CA Certs from Mozilla
curl - HTTP Cookies
HTTP/2 with curl
curl/curl: A command line tool and library for transferring data with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TFTP, SCP, SFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. libcurl offers a myriad of powerful features
curl/packages/Win32 at master · curl/curl

libuv

libuv|Cross-platform asynchronous I/O
libuv/libuv: Cross-platform asynchronous I/O
libuv - Wikipedia
libuv-1.19.1
Kazuho's Weblog: The reasons I stopped using libuv for H2O
Kazuho's Weblog: mruby で同期呼出を非同期化する話(もしくは H2O の mruby ハンドラでネットワークアクセスする話)
Reactor pattern - Wikipedia
Proactor pattern - Wikipedia
C10k problem - Wikipedia
libcurl example - multi-uv.c
Curl: libuv example
node.jsを支えるlibuvのチュートリアル"uvbook" :ユーティリティ - 自由課題
Utilities — An Introduction to libuv
curl/multi-uv.c at master · curl/curl
An example on how to use libuv with libcurl's multi interface Should be equally fast on Unixes (uses epoll/kqueue/etc like libev/libevent) but MUCH faster on Windows due to libuv's usage of IO completion ports. Could come in handy if you have to manage several hundreds or thousands of connections!
moteus/lua-lluv-curl: Make asyncronus requests using libuv and libcurl
c - libuv event loop and libcurl - Stack Overflow
libuv/libcurl downloading example with threaded adding new download requests - Google グループ

本の虫: C++をプログラミング入門に使うならHTTPSぐらい喋れないと話にならんと言われたのでそういうライブラリを作った
cURL - Wikipedia
cURL - Wikipedia, the free encyclopedia
cURL-7.57.0
nghttp2-1.29.0
libmetalink in Launchpad
超古いサーバーからhttpsにcurlする時 - yamaguchi.txt
ブラウザではアクセスできるのにcurlでhtmlが取ってこれない時 - yamaguchi.txt
curl で Cookie 認証突破
cURL as DSL — cURL as DSL 1.0 documentation
rsync, wget, curl, scp に速度制限をかける方法まとめ - Qiita
cURL:インストール時にlibSSH2でエラーになる場合の解決策 | Step On Board
cURL - curlでルート証明書の適用がうまくできない。(74022)|teratail
cURL - How To Use (マニュアルページ日本語訳)
Windows®環境にcURLコマンドを実行できるようにインストールする手順 | ええかげんブログ(本店)
libcurlをVisual Studio 2012を使って、Windows10(64bit)上でビルドした手順。~必要な資源のダウンロードからビルドまで~ - IT系フリーランスの技術備忘録
HTTP(S)通信のできるcurlと無駄に新しいgawkをインストールしてくれます
WebAPIリクエスト仕様書としてcurlコマンドのご提案 - Qiita
matsuuを止めるな!さんのツイート: "curl単体とcurl | bashでchunkedの違いを元に異なる内容を流し込むPoC。わはは。 / “Detecting the use of "curl | bash" server side | Application…” https://t.co/0rrnblHZ1k"
Detecting the use of "curl | bash" server side | Application Security
渋川よしきさんのツイート: "コマンドが分かれば、libcurlオプション付けると、ソースコードが生成されたはずです。… "
本の虫: Cisco、ルーターの脆弱性を修正するためにユーザーエージェントcurlを弾く変更を加える
Rust Hyper HTTPライブラリはCurlをより安全にすることに貢献

libssh2

OSDN

「OpenBSD 5.4」リリース、OpenSSHやOpenSMTPDがアップデートされる | OSDN Magazine
「OpenSSH 6.8」がリリース | OSDN Magazine
「OpenSSH 7.0」がリリース、PermitRootLogin設定の変更などセキュリティ強化が行われる | OSDN Magazine
「OpenSSH 7.2/7.2p」がリリース | OSDN Magazine
「OpenSSH 7.4/7.4p」を公開、バグ修正が中心のリリース | OSDN Magazine
「OpenSSH 7.8」リリース | OSDN Magazine
1つのシェルから複数のSSHセッションを同時に実行するツール3種類を試す | OSDN Magazine
AES-GCM暗号が関連した脆弱性を修正した「OpenSSH 6.4/6.4p」がリリース | OSDN Magazine
Windows環境でのSSHの利用とSSH鍵の作成 | OSDN Magazine
セキュリティを改善する変更が加えられたOpenSSH 5.6/5.6p1リリース | OSDN Magazine
フリーのSSH実装「OpenSSH 6.7」がリリース | OSDN Magazine
レガシーな証明書署名の脆弱性を修正したOpenSSH 5.8/5.8p1リリース | OSDN Magazine
機能にフォーカスした「OpenSSH 6.5/6.5p1」がリリース | OSDN Magazine
子プロセスでのサンドボックスを実験的に実装したOpenSSH 5.9/5.9p1リリース | OSDN Magazine
米Microsoft、PowerShellでOpenSSHをサポートへ | OSDN Magazine
「OpenSSH 7.8」リリース、バグ修正が中心 | OSDN Magazine
「OpenSSH 8.0/8.0p」リリース、scpプロトコルに関連した脆弱性を修正 | OSDN Magazine
「OpenSSH 8.1」リリース、バグ修正が中心 | OSDN Magazine

libssh2 | daniel.haxx.se
Curl: How to configure curl with libssh2
libssh2
libssh2 vs libssh
libssh2/libssh2: the SSH library
libssh2をインストールする(ソースからコンパイル) for CentOS7.2 - Qiita
libssh2,openssl,c-ares,zlib,ipv6を有効にした状態でcurlをwindows上で64bitビルドする - Qiita
Ubuntu忘備録: libssh2をコンパイルしてみた
PowerShell/Win32-OpenSSH: Win32 port of OpenSSH
いわもと こういちさんのツイート: "以前日記 https://t.co/81s1kPT1y4 で書いたけれど、OpenSSHの秘密鍵の形式には欠点が有るから。そもそも秘密鍵は利用するソフトで生成して使うべきだと思うんだよね。それならば形式の問題は無い。よそで作って(時にはネットワークを介して転送して)利用するなんてやりたくない。… https://t.co/8boH6v9rQp"
PuTTYの秘密鍵が独自形式な理由 | dodaの日記 | スラド
qemu(not kvm)上のゲストOSへのsshが遅くてハゲるので何とかした備忘録 - livaの雑記帳
haruyama/ssh_rfc_ja: Japanese translations of SSH RFCs and Internet Drafts
ubuntuのssh serverに公開鍵認証でログインする - Yabu.log
Fadisさんのツイート: "OpenSSH 8.0がリリースされた。scpでファイルをコピーする際に「リモートから送られてきたファイル名をクライアントが無条件に信用する」為に制御文字でいたずらができる脆弱性(CVE-2019-6110)が修正される他、量子計算機耐性を持つ鍵交換の実験的なサポートが含まれる https://t.co/ffcIOWKCNU"
OpenSSH 8.0 Released - Addresses SCP Vulnerability, New SSH Additions - Phoronix
SSHの踏み台有り・無しを,ネットワーク的居場所に応じて自動で切り替える - yunazuno.log
OpenSSHのAuthenticationMethodsを使って鍵認証+ユーザパスワード認証による二要素認証の設定をする | 俺的備忘録 〜なんかいろいろ〜
QUIC for SSH の提案仕様が出たよ - ASnoKaze blog
SSHの認証に物理セキュリティキー&認証局を用いて一時的な鍵を生成する方法とは? - GIGAZINE
YASUOKA MasahikoさんはTwitterを使っています 「IPoE だと ssh で外出れず、びっくり。https://t.co/cmwRgkmC9b 有名な問題っぽい。pf で "set tos 0x0" して潰すことにした。」 / Twitter
フレッツ光ネクスト + IPoE で scp, cvs, rsync の SSH通信ができない問題:tsutsuiの作業記録置き場 - ブロマガ
ドッグさんはTwitterを使っています 「プロトコルの脆弱さから見て scp はもう時代遅れになってきている.代替は sftp か rsync だけど,前者はインターフェースが微妙で後者は使える環境がやや限られる | 'Deprecating scp [https://t.co/WPGe19HJgf]' https://t.co/aDWoZVRZe5」 / Twitter
ドッグさんはTwitterを使っています 「scp コマンドが使うプロトコルを sftp に置き換える実装を試してる人もいる https://t.co/K7hNcfNZSA」 / Twitter
Use SFTP internally for SCP command by Jakuje · Pull Request #194 · openssh/openssh-portable
開発者たちが慣れ親しんだ「scp」コマンドはなぜ「時代遅れで柔軟性がなくすぐに修正できない」のか? - GIGAZINE
各種サービスからユーザのSSH KeyやGPG Keyを取得する方法メモ
ssh-agent のしくみ - eagletmt's blog

SMB

脆弱性

WindowsおよびSambaの重大なバグ「Badlock」、4月12日のパッチリリースが告知される | スラド セキュリティ
WindowsのSCFファイルをGoogle Chromeでダウンロードさせ、SMB認証情報を取得する攻撃 | スラド IT
JVNVU#92232364: Microsoft Windows および Samba の認証機能に脆弱性 ("Badlock")
ASCII.jp:95から10までの全Windowsに影響、「BadTunnel」脆弱性とは何か|Black Hat USA 2016/DEF CON 24 ラスベガス現地レポート
Windowsの通信プロトコルに脆弱性報告、SMB v1は無効化を - ITmedia ニュース
ニュース - WindowsのSMBに新たな脆弱性見つかる、企業担当者はファイアウオールの再確認を:ITpro
WannaCryの危機再び。新たな拡大感染型ランサムウェアGoldenEye/Petyaが全世界で拡散中。 | LAC WATCH | 株式会社ラック
Windows SMBの脆弱性「SMBLoris」の再現を確認しました | LAC WATCH | 株式会社ラック
Windows 10/8.1の「SMB v3」に未解決の脆弱性、Windowsをクラッシュさせてブルースクリーンに -INTERNET Watch
WindowsのSMB v3脆弱性を悪用し、ウェブサイトのリンククリックでシステムをクラッシュさせる手法、SecureWorksが公表して注意喚起 -INTERNET Watch
被害拡大のランサムウェア「WannaCryptor」は「SMB v1」の脆弱性を悪用、サポート終了のWindows XP向けにも緊急パッチ提供 -INTERNET Watch
新種ランサムウェア「GoldenEye」が世界各地に感染拡大、SMB v1の脆弱性「MS17-010」を突いて感染 -INTERNET Watch
猛威を振るったランサムウェア「WannaCry」を振り返る - INTERNET Watch
Google、SMBv1にのみ対応するAndroid用Sambaクライアントを公開 | スラド セキュリティ
google/samba-documents-provider: Access network file shares directly from the Android Downloads/Files app
Petya ランサムウェア攻撃に対する Windows 10 プラットフォームのレジリエンス – 日本のセキュリティチーム
アップグレードの重要性: 2017 年のランサムウェア拡散時に高い効果を証明した Windows 10 の次世代型セキュリティ – 日本のセキュリティチーム

MS

[MS-SMB]: Server Message Block (SMB) Protocol
SMB 3.1.1 Pre-authentication integrity in Windows 10 – Microsoft Open Specifications Support Team Blog
SMB 3.1.1 Encryption in Windows 10 – Microsoft Open Specifications Support Team Blog
Encryption in SMB3 – Microsoft Open Specifications Support Team Blog
SMB 2 and SMB 3 security in Windows 10: the anatomy of signing and cryptographic keys – Microsoft Open Specifications Support Team Blog
Extended DFS referral for SMB 3 – Microsoft Open Specifications Support Team Blog
SMB3 Secure Dialect Negotiation – Microsoft Open Specifications Support Team Blog
SMB 2.x and SMB 3.0 Timeouts in Windows – Microsoft Open Specifications Support Team Blog
CIFS and SMB Timeouts in Windows – Microsoft Open Specifications Support Team Blog
Encryption in SMB 3.0: A protocol perspective – Microsoft Open Specifications Support Team Blog

SMB Direct

Remote Direct Memory Access

Remote Direct Memory Access - Wikipedia
Remote direct memory access - Wikipedia
リモートダイレクトメモリアクセス(Remote Direct Memory Access : RDMA)の紹介 - SSD情報
HP ProLiant White Paper:イーサーネットRDMAテクノロジ:RDMAの概要/RDMA over TCP | HPE 日本
FadisさんはTwitterを使っています: 「SCSIはiSCSIを使うことでネットワーク越しにマウントする事ができる。NVMeもNVMe-oFを使うことでネットワーク越しにマウントする事ができる。これに対してNVDIMMは「全部アドレス空間に転がってるんだから、そのままRDMAすれば良いじゃろ」なのシンプルで大変良い」 / Twitter
FadisさんはTwitterを使っています 「SCSIにはiSCSIがあり、NVMeにはNVMe-oFがあり、ではNVDIMMなストレージをネットワーク越しにマウントするにはどうすれば良いか、に対する答えがRDMAなのほんと好き」 / Twitter
FadisさんはTwitterを使っています 「SCSIにiSCSIがあり、NVMeにNVMe-oFがある。ではNVDIMMをネットワーク越しに使うプロトコルは? という問いに対して「RDMAでええやん」ってのは割とガチらしくて、PMDKにはRDMAでアクセスできるリモートのNVDIMMを使う場合用のライブラリが用意されてる」 / Twitter
mumumuさんはTwitterを使っています 「FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds [NSDI '19] コンテナから,Portabilityを保ったままやRDMAを使うために,仮想的なRDMAモジュールが実際のRDMAをinterceptする.その際のメモリ構造をどうするか(ポインタの意味の扱いや性能劣化防止)といった問題に対処」 / Twitter
Intel Software Guard Extensionのチュートリアル サンプルプログラムを実行(Part-3 PasswordManagerCore) - FPGA開発日記
NUMAアーキテクチャとネットワーク性能(1)-説明編 - SSD情報
NUMAアーキテクチャとネットワーク性能(2)-実践編 - SSD情報
KaiGai Koheiさんのツイート: "あれ、ちょっと待てよ。 PG-Stromの場合、GPUDirect RDMAを使って(つまりGPUデバイスメモリをホストアドレス空間にマップして)NVMEのコントローラに『ブロック⇒GPUメモリ』のデータ転送をさせてるけども、逆にNVME側のバッファをマップして、GPUのDMAエンジンでReadできるかも?… https://t.co/bxpYwpXtjA"
KaiGai Koheiさんのツイート: "ただNVME(PCIe)とNVMEoF(RDMA)用のドライバが全く別物になってしまうな、、、これは。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB経由で40Gb高速転送をしようとすると、Win10 pro for WorkstationでRDMAを有効にしても、1コアに負荷が集中して10~15Gbps程度で頭打ちになるなぁ…Xeon系のサーバマシンでないと厳しいか。 純TCP転送だと、もう少し分散するのだが。"
リモートダイレクトメモリアクセス(Remote Direct Memory Access : RDMA)の紹介 - SSD情報
SMB Direct - Windows Server 2012 / R2 - SSD情報
SANsymphonyパススルーとRDMAの組み合わせ - Qiita
FadisさんはTwitterを使っています 「LinuxカーネルにSMBでFSをエクスポートするカーネル空間ファイル共有サーバCIFSDが入りたがっているらしい。Linuxカーネルには従来からSMBなリモートFSをマウントするドライバが備わっていたが、これは逆にSMBでFSを提供する方。SMB3を喋り、RDMAにも対応するらしい https://t.co/hLe1uSnmrq」 / Twitter
まさみさんは語りたいさんのツイート: "GPUでRAIDコントローラのロジックを実行させた上で、他のポートにつながった複数のNVMeに対してRDMAをする、というのはもうありそうなんだけど見つからない。"
「RoCE」をめぐる、あれこれ。 | サーヴァンツインターナショナル株式会社
13.2. RoCE を使用したデータ転送 Red Hat Enterprise Linux 7 | Red Hat Customer Portal

Improve Performance of a File Server with SMB Direct
Windowsファイルストレージ(SMB) - メラノックス テクノロジー
SMB Direct - Windows Server 2012 / R2 - SSD情報
SB_Accelerating_Remote_Storage_Mar_2014.pdf
SANsymphonyパススルーとRDMAの組み合わせ - Qiita
SMB direct の性能 : kommy の備忘録

@IT

Windowsネットワークの基礎:第7回 ファイル共有プロトコルSMBの概要 - @IT
その知識、ホントに正しい? Windowsにまつわる都市伝説(23):ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(前編) - @IT
Tech TIPS:SMBのマルチチャネル転送機能でファイルサーバーへのアクセス速度を向上させる - @IT
ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(前編):その知識、ホントに正しい? Windowsにまつわる都市伝説(23) - @IT
ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(後編):その知識、ホントに正しい? Windowsにまつわる都市伝説(24) - @IT
Linuxはサンバ(Samba)で踊る――WindowsとLinuxのファイル共有のいま:その知識、ホントに正しい? Windowsにまつわる都市伝説(25) - @IT
SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(前編):その知識、ホントに正しい? Windowsにまつわる都市伝説(26) - @IT
SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(後編):その知識、ホントに正しい? Windowsにまつわる都市伝説(27) - @IT
再チェック! ファイル共有プロトコル「SMB」のためのセキュリティ対策:山市良のうぃんどうず日記(83) - @IT
ランサムウェア「Wanna Cryptor」に対し、異例のセキュリティパッチをWindows XPに提供する意味:山市良のうぃんどうず日記(94:緊急特別編) - @IT
ランサムウェア「WannaCry」対策で安心してはいけない――いま一度、見直すべきWindowsの脆弱性対策:山市良のうぃんどうず日記(95:特別編) - @IT
Windows 10におけるレガシーSMBプロトコルに関する重要な変更とSMB v3新機能まとめ:企業ユーザーに贈るWindows 10への乗り換え案内(93) - @IT

MIT Kerberos V5-1.16
日本Sambaユーザ会 - Microsoft の CIFS 仕様ライセンスで、Samba Team が声明
SMBとは|Server Message Block - 意味 / 定義 / 解説 / 説明 : IT用語辞典
Server Message Block - Wikipedia
Mac のファイル共有で接続する方法 - Apple サポート
「Samba 4.6」リリース | OSDN Magazine
クラスター共有ボリューム (CSV) を利用する環境での SMB Multichannel 設定の考慮事項 | Ask CORE
2017年9月4日 Linux 4.13がリリース,SMB 3.0がデフォルトCIFSに:Linux Daily Topics|gihyo.jp … 技術評論社
Kengo Sawatsuさんのツイート: "朗報(悲報):3年間ずっと間違って評価してたaio_readを正しく実装してみたら、SMB越しのreadの性能が適当な環境ですら20%以上伸びる"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルサーバ(種別不明)にコピーしたら、途中でエラー123(ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません)が出たという話。 ファイルサーバがUNIX系でも / 以外は禁止文字が無いはずで、コピーの途中で出るパターンって、何かあったかな…?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "手元で試すと、sambaでファイル名長(パス要素長)がファイルシステム上限を超える時にエラー123となるようだ。 (UNIX系は255バイト上限が多いため。NTFSはUNICODEで255文字まで作れる)"
「Samba 4.10」リリース、PythonバインディングでPython 3をフルサポート | OSDN Magazine
uchanさんはTwitterを使っています 「ls -lで表示される末尾の+は拡張属性というもので,getfacl &lt;file&gt;コマンドでチェックできるようだ。」 / Twitter
uchanさんはTwitterを使っています 「smb.confの[global]セクションに nt acl support = no を加えたら解決した。 どうやら,Windows側でファイルを保存するとACLが付与されて,それがLinux側では拡張ACLという形でファイルに付与され,グループの実行権として見えてたみたい。」 / Twitter
uchanさんはTwitterを使っています 「さらに検証したら nt acl support = no だけだと不十分で, map archive = no をさらに付ける必要がありそう。」 / Twitter
マイクロソフトが「SMB over QUIC」ファイル共有プロトコル実装中。VPNなしでもインターネット上で安全にファイルサーバへのアクセスを実現へ - Publickey
FadisさんはTwitterを使っています 「LinuxカーネルにSMBでFSをエクスポートするカーネル空間ファイル共有サーバCIFSDが入りたがっているらしい。Linuxカーネルには従来からSMBなリモートFSをマウントするドライバが備わっていたが、これは逆にSMBでFSを提供する方。SMB3を喋り、RDMAにも対応するらしい https://t.co/hLe1uSnmrq」 / Twitter
CIFSD In-Kernel SMB3 File-Sharing Server Lands In Linux-Next - Phoronix
FadisさんはTwitterを使っています 「ネットワーク越しのファイルシステムが難しいやつ、「大抵のソフトウェアはストレージまでの回線が簡単に切れることなんて想定していない」のが原因の7割くらいで、「大抵のソフトウェアはファイルシステムの実装が多様な事なんて想定していない」のが原因の3割くらい、という印象がある」 / Twitter
K.Namba/(お菓子|おやつ)エバンジェリストさんはTwitterを使っています 「@fadis_ 「大抵のソフトウェアはインターネットまでの回線が簡単に切れることなんて想定していない」 近年はこれ…」 / Twitter
FadisさんはTwitterを使っています 「@ipv6labs インターネット接続を失うと何も表示出来なくなるありがちなApp…」 / Twitter
K.Namba/(お菓子|おやつ)エバンジェリストさんはTwitterを使っています 「@fadis_ ローカルキャッシュという概念すらない。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「sambaは副次ストリーム使えるのだけど微妙にNTFSと互換性なくて(実体を別ファイルに保存)、ストリーム用ハンドルでタイムスタンプ設定しても、元ファイルのそれが変わらない罠。」 / Twitter

NFS

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NFSv3(v4は良く知らん)では writeは概ね 32KB以下の pwrite(2) 的な操作にバラされるとかは、もっと知られていいかも。 (write が atomic にならない、O_APPENDが上書きになる場合も)」 / Twitter
Kazuo MoriwakaさんはTwitterを使っています 「NFS怪談はだいたい普通に保証されていない話ばっかりで「ユーザーがlocal fsと同じだと思っていたのである」オチが多すぎてアレ……」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「O_APPEND について言うと、NFSv3だと、そもそも openという操作が無い。 (lookup操作でI/O対象のinode番号をfile-handleとして教えてもらうイメージ。file-handleにはopenのようなモードとかステートとかない。サーバ再起動しても使えるし、別ホストからでも使える(特殊な事してなければ))」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「これがNFSの欠陥に見える人もいるだろうけど、 これはサーバー側をstatelessにすることによって可用性を向上させるための意図的な設計なんだよね(サーバーがリブートしても、クライアントがリトライするだけで動作は正常に継続する)。 「それは仕様です」の一種で、ポジティブな側面もあるっていう。」 / Twitter
fjのYog教祖様さんはTwitterを使っています 「@n_soda NFSv4ではopen/closeを導入したので、statefulでアクセスしたい人はとっととNFSv2/v3を使うの止めてください、と言う… (何故か「NFSv3で…」が止まらないの、どうして??)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@fjs_kyousosama NetBSD的な答は、NFSv4が未実装だから…だったり…>「NFSv3で…」 ^^;」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、商用NFSv3サーバをほぼ一人で作った経験から言えば、NFSv3がステートレスなのにプロトコル以上にUNIXセマンティクスに近い振る舞いをする部分があるのは、実装側で近づける配慮してるからだったりする。」 / Twitter

IP

IPv10

draft-omar-ipv10-06 - Internet Protocol version 10 (IPv10) Specification

IPv6

NAT66

TECHNICAL MANUAL - NAT66/NAT6
情報セキュリティ技術動向調査(2010 年上期):IPA 独立行政法人 情報処理推進機構
NGNを介したIPv6インターネット接続 - トンネル方式入門(後編):ITpro
www.geekpage.jp/blog/data/2009/ipv6ops0904/2.txt
SEIL でNGN IPv6 ネイティブ(IPoE) ひかり電話なし接続をするには : やすひでぶろぐ

Geekなぺーじ

RFC系統図で見るIPv6の変化:Geekなぺーじ
ややこしいIPv6アドレス自動設定の話:Geekなぺーじ
IPv4アドレスを含むIPv6アドレス表記:Geekなぺーじ
日本国内携帯3社、2017年度中にIPv6導入:Geekなぺーじ
RFC 8106によってRFC 6106が廃止に:Geekなぺーじ
IPv6でセキュリティがスカスカになってませんか?:Geekなぺーじ
IPv6基本仕様のRFC 2460が廃止:Geekなぺーじ
IPv6関連RFCの上書き(廃止)まとめ:Geekなぺーじ
IPv6アドレスのテキスト表記 - RFC 4291とRFC 5952:Geekなぺーじ
ネットワークエンジニアではない方々向けIPv6勉強会を開催しました:Geekなぺーじ
ネットワークエンジニアではない方々向けのIPv6入門 // Speaker Deck
ネットワーク技術者ではない方々向けIPv6セミナー2の発表資料:Geekなぺーじ
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
IPv6本を書きながらネットワークエンジニアではない方々向けのIPv6勉強会をやって思った、IPv4とIPv6の大きな違い:Geekなぺーじ
DHCPv6の基本仕様が改定 - RFC 8415:Geekなぺーじ
IPv6アドレスのテキスト表記に名前がついてない:Geekなぺーじ
IPv6アドレスのテキスト表記の解説動画を作りました:Geekなぺーじ
NAT64とDNS64の解説動画を作りました:Geekなぺーじ
動画「IPv6の勘所」を作りました:Geekなぺーじ
IPv6基本仕様概要の解説動画を作りました:Geekなぺーじ
「IPv6はIPsecで暗号化されるので安全」という誤解:Geekなぺーじ
リンクローカルユニキャストIPv6アドレス:Geekなぺーじ
IPv6マルチキャストのスコープとゾーン:Geekなぺーじ
ULA(Unique Local IPv6 Unicast Address):Geekなぺーじ
IPv6とIPv4の違い:Geekなぺーじ
インターネットプロトコルにおけるパケットサイズに関して:Geekなぺーじ
IPv6 IPoEとIPv6 PPPoEの解説動画を作りました:Geekなぺーじ
DS-Liteの仕組み:Geekなぺーじ
IPv6がIPv4よりも速い理由:Geekなぺーじ
IPv6アドレスにおける「インターフェース識別子」という名称の謎とModified EUI-64によるIPv6アドレス生成:Geekなぺーじ
小川晃通(あきみち)YouTubeでIPv6解説動画作ってますさんはTwitterを使っています 「NTTフレッツでのIPv6 IPoEに関して「IPoE方式」と記述されることがあるけど、「方式」の2文字が非常に大事。NTT NGNでのIPv6 IPoEに関して単に「IPoE」と表現すると徐々に話がおかしくなる。」 / Twitter

@fadis_

Fadisさんのツイート: "RFC8135 浮動小数点数および複素数を含むIPv6アドレス https://t.co/mhbr8EKKwW"
Fadisさんのツイート: "Complex Addressing in IPv6、ネットワークの文脈でComplex Addressingといった場合普通はルータが頭を抱える「複雑なアドレス」の事なわけだけど、Complexには複素数って意味もあるから「複素数なアドレス」について考えてみた、と"
https://tools.ietf.org/rfc/rfc8135.txt
Fadisさんのツイート: "浮動小数点数アドレス、「従来のIPアドレスは整数で表現されていたが移動体通信が増えている中小数点の位置が固定のままで良いのかは議論の余地がある」とか「rootアドレスはクライアントの浮動小数点数演算器で計算することができる」とか言ってて腹筋の危機"
Fadisさんのツイート: "RFC8136 IPv4からIPv6への移行を促すために、IPv4で「悪意ある通信が自分に悪意がある事を通信相手に明示して適切に蹴ってもらう」為のフラグevil bitをIPv6でも使えるようにする話 https://t.co/UTlNhsxSws"
https://tools.ietf.org/rfc/rfc8136.txt
Fadisさんのツイート: "ジャンボグラム: IPv6の拡張ヘッダでIPv6のヘッダに元々含まれている16bitのデータ長で表現できない巨大なパケットを表現する為に用いられる。この拡張によってIPv6は最大4GiBのUDPデータグラムを投げつける事ができる https://t.co/ujb5sGy0c8"
https://tools.ietf.org/rfc/rfc2675.txt
FadisさんはTwitterを使っています 「IPv4のヘッダにあったチェックサムはIPv6では廃止されている。ヘッダにはパケットを中継する機器で書き変わるTTLのカウンタが含まれているため、IPv4チェックサムは中継する機器全てで計算し直す必要があり、そのコストが深刻な問題になっていた為だった」 / Twitter
FadisさんはTwitterを使っています 「そうはいってもヘッダが化けた状態でパケットがネットワークを徘徊すると困るので、IPヘッダチェックサムに相当する機能をTCPやUDPの疑似ヘッダを含むチェックサムに求めることになった。結果、IPv4では任意だったUDPのチェックサムは、初期のIPv6では必須になった」 / Twitter
FadisさんはTwitterを使っています 「この結果「データが化けていても届いたほうが良い」用途でUDPを使っている場合IPv6に載せられないという困った問題が生じた。このためIPv6上のUDPはチェックサムの無効にしても良いと言う変更が後から加えられた」 / Twitter
FadisさんはTwitterを使っています 「後から仕様を変えられてもインターネット上のあらゆる機器が即座に追従できるわけが無いので、IPv6かつチェックサムなしUDPは「運が良ければ届く。試しに飛ばしてみて届いたら使え。」という微妙な位置づけになってしまった」 / Twitter
FadisさんはTwitterを使っています 「IPv6ではRAでPrefixをホストに伝える事が出来る。RAを受け取ったホストは通常インターフェイスにアドレスを設定しrouteを追加する。L2VPNを張っているとRAは遠隔地まですっ飛んでいくため、フィルタを忘れると遠隔地から手元のネットワークに向かうIPv6の通信が突然VPNを通ろうとするようになる」 / Twitter
FadisさんはTwitterを使っています 「この時L2VPNがIPv6で相手を指していると、遠隔地のホストはVPNのパケットをVPNに流そうとして詰む。手元からは突然遠隔地のホストが沈黙したように見える。この場合手元から遠隔地への通信はレスポンスが全て消えるのでできない。他のネットワークを経由してsshし、RAを切ってrouteを直す」 / Twitter
FadisさんはTwitterを使っています 「このトラブルを未然に防ぐにはL2VPNを上げるのと一緒にip6tablesでtapからのRAを蹴っておくのが良い。そもそも手元からRAをtapに向かって投げないルールも足しておいたほうが良いかもしれない」 / Twitter

@uchujin17

ウチューじん・ささきさんのツイート: "IPv6の拡張ヘッダは固定長フィールドではなく可変長TLVパケットの数珠つなぎになっていて柔軟性が誇られていたけど、RFCが出るたびにその並び順についての文言がどんどん追加され、「MUST rejectのオプションを受け付けた」という理由でFailが出て、そのためだけのチェックを追加して…"
ウチューじん・ささきさんのツイート: "IPv6近隣探索(MACアドレス解決、IPv4で言うとこのARP)も「ARPみたいな継ぎ足しじゃなくIP仕様内に取り込んだ」「ブロードキャストではなくマルチキャストにして効率化した」「タイミングやステート状態が明文化された」ことが誇られていたけれど…"
ウチューじん・ささきさんのツイート: "これまたRFCが改訂されるたび「Queryを発信する前にSolicited Advertiseを受信したらUnsolicitedで発信してはならない」みたいなクソくだらない文言が追加されて、数分に1度発信される(かもしれない)冗長なマルチキャストを1つ減らすためだけのフラグやifが増えて。"
ウチューじん・ささきさんのツイート: "究極はRFC3484「Default Address Selection」、インターフェースに複数のアドレスを付けられるIPv6において発信先・発信元のアドレスを選択するための条件を定義した仕様書だけど、これが「アホかー!アホかアホかアホかアホかアホかーっ!」という考えすぎの産物。"
ウチューじん・ささきさんのツイート: "RFC3484をくっそまじめに実装したらループが3つとifが15個くらい並んだんだっけ。アドレスを選ぶため「だけ」に。IPv6ならアドレス1つで世界中と通信できます、って言ったのはどこのどいつだ?"
ウチューじん・ささきさんのツイート: "RFC3484はRFC6724にアップデートしているらしいけど、もうRFCなんて読む義務もないし読みたくもねぇ。"

Finite-tweet machineさんのツイート: "ルータがRDNSS(RAでのDNSサーバ情報配布)に対応していない中、AndroidはDHCPv6に対応してないので困ったねという話など。へー / IPv6-only at Microsoft | APNIC Blog https://t.co/9fJbzfVtaD"
IPv6-only at Microsoft | APNIC Blog
IPv6 RFC 改版の提案はなぜ議論紛糾したのか? // Speaker Deck
IPv6 の arp -a
Windows管理者のためのIPv6入門:第3回 L2アドレスを解決する近隣探索プロトコル (2/2) - @IT
第2の個体識別番号にならないか心配 (#3123556) | スマートフォンのインターネット接続、来年夏ごろにIPv6がデフォルトに? | スラド
近隣探索プロトコル - Wikipedia
Neighbor Discovery Protocol - Wikipedia
T28-1.pdf
IPv6のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
IPv6 only ネットワーク を作ってみる
Yoshinobu Matsuzakiさんのツイート: "IPv6アドレスの傾向を調べる調査。使われたIPv6アドレスを35億ぐらい集めてエントロピーを調査。サーバは手動設定、ルータはEUI-64、クライアントは匿名アドレスの利用が多そうと。特定スマートフォンで変な実装がありそうとか面白い https://t.co/JW8XbsFYFI"
57-RIPE74-Foremski-EntropyIP.pdf
Kentaro Ebisawaさんのツイート: "SRv6実装、Ciscoが(1部)スポンサーしてるのね。流石。 SOSR2017: IPv6 Segment Routing to the End Host: A Linux Kernel Implementation PDF: https://t.co/AgQVq6lUFQ"
Kentaro Ebisawaさんのツイート: "IETF I-D “SRv6 Network Programming” 実装。Vargant/VirtualBoxで試せるらしい。 https://t.co/9L32qVfWJa"
Kentaro Ebisawaさんのツイート: "SRv6 Linux 実装、Kernel 4.10 に入った "IP Networking Lab (Belgium)" と Kernel Module の "Networking Group (Rome)" の機能比較表を発見。 https://t.co/MaJgelavJ5"
【IETFトピックス2016-17】 20歳を超えたIPv6の現状、修正版RFCで廃止/アップデートされる仕様も - INTERNET Watch
IPv6への移行完了は2067年4月か、月0.15%の割合で増加 | マイナビニュース
AndroidのDHCPv6実装の議論状況とRFC7934 (Host Address Availability Recommendations) - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Web会議ASPやってた頃、映像/音声udpパケットが通らないトラブルの度にサイズを小さくして、10数年で概ねどんなトンネルでも大丈夫となったのが1300バイト前後だった記憶。 なので、1280は経験値としても絶妙な値だった気がする。」 / Twitter
Yasuhiro MorishitaさんはTwitterを使っています 「つまり、 ・IPv6の1280は、IPv4の576 = 512 + 64を見て、1024 + 256として提案された。 ・1280にすることで、1500のEthernet MTUの中に、カプセル化やトンネルヘッダー用の十分なスペースを確保できる。 ということですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「インターネットのMTUについてはGoogleがQUIC開発時に調べた値が公開されてますね。1350未満に絞る必要ないという感じ source: https://t.co/WYjvxSOzll https://t.co/OHEjF50U2f」 / Twitter
(PDF) The QUIC Transport Protocol: Design and Internet-Scale Deployment
Kazuho OkuさんはTwitterを使っています 「面白い。ただ僕の理解が正しければipv6はルータでのフラグメンテーションしないので、DNSみたいなパケット境界=メッセージ境界なプロトコルじゃない限り困らないけど(そして困る人がいないから直らないんだと思う)」 / Twitter
古い記事を読んでいるmatsuuさんはTwitterを使っています 「IPv6フラグメンテーションによるパケットドロップについて。日本は赤い=10%以上のドロップ率。まじか。 / “ISP Column - April 2021” https://t.co/kWa54PHRMb」 / Twitter
ISP Column - April 2021
Kazuho OkuさんはTwitterを使っています 「フラグメンテーションが必要になるなら送信者がパケット分割して欠落部を再送するようなプロトコルを使え、というのがipv6の思想だけど、udp over ipv4で巨大データグラムをフラグメント化して投げてたユースケースの互換性確保のため(だけ)にある仕組みなんじゃないのかな知らないけど」 / Twitter

IPv4

IAB、IPv4を前提とした標準化を行わないことを求める声明を発表:Geekなぺーじ
LACNIC、IPv4枯渇の最終フェーズと発表 | マイナビニュース
GOROman@謙虚さんのツイート: "IPアドレス は0は省略できる 127.0.0.1は 127.1 192.168.0.1 は 192.168.1 https://t.co/jSdjF02boo"
ゆたかさん🐱さんのツイート: "# arping -c 1 -D IPアドレス でIPv4アドレスのコンフリクトチェックができます。 競合するアドレスが存在しない場合は、$?がゼロになります。 BusyBoxにも入っているので、組み込みLinuxでも利用できるのでおすすめです。 https://t.co/sR92x6H6pL"
https://tools.ietf.org/rfc/rfc6864.txt
【IETFトピックス2016-17】 IPv4をどのように終わらせるか――IPv6普及拡大の前に片づけなければならない課題 - INTERNET Watch
奇妙なIPv4アドレス表記:Geekなぺーじ
0.0.0.0にはアクセスしないこと - Qiita
127.0.0.1とlocalhostと0.0.0.0の違い - Qiita
IPv4アドレス「0.0.0.0」の意味は? | マイナビニュース
ASCII.jp:「特別なIPアドレス」を正しくわかっているのは誰?

平田豊ひらたゆたか🐬さんのツイート: "pingコマンドとglibcの実装調べてみたけど、getaddrinfo関数が内部でinet_aton関数を呼んでいて、当該関数の仕様として、 a.b.c.d a.b.c a.b a の4形式を受理するようになっていました。 今回のケースは最後の「a」に相当します。 https://t.co/2lovAH99ZG"
APIPA - Wikipedia
lionsoul/ip2region - Git@OSC - OSChina.Net
lionsoul2014/ip2region: 准确率99.9%的ip地址定位库,0.0x毫秒级查询,数据库文件大小只有1.5M,提供了java,php,c,python,nodejs,golang查询绑定和Binary,B树,内存三种查询算法,妈妈再也不用担心我的ip地址定位!
Happy Eyeballs Version 2 の仕様 - ASnoKaze blog
IANA — Number Resources
192.168.0.1などのプライベートIPアドレスは途中で作られた:Geekなぺーじ
僕の💩自作OS💩が研究室のネットワークを破壊するわけがない - livaの雑記帳
Happy Eyeballs Version 2 (RFC 8305):Geekなぺーじ
Fadisさんのツイート: "WireGuardはパケットの送信時にパケット長が16の倍数になるようにパディングをしてから暗号化を行う。受信側では復号後パディングを取り除く為に元のパケット長が必要だがWireGuardのヘッダにはその情報は書かれない。論文によると「暗号化するパケットのUDPヘッダに本来の長さが書いてあるから不要」"
Fadisさんのツイート: "IPv4ヘッダとIPv6ヘッダとIPXのデータグラム長はいずれも先頭から2バイト目に2バイトで置かれているからプロトコルを判別しなくてもパケット長は取れる、という知見を得た"
Fadisさんのツイート: "オンラインゲームでUDPを使う一番のモチベーションは「再送制御にコンテンツを把握しているレイヤーが口を出したい」って所なんだ。例えば「Aさんが1歩右に歩いた」という通知が3連続で届かなかった場合、それらを個別に再送するんじゃなくて、「Aさんが3歩右に歩いた」にまとめて再送したい"
Shirouzu Hiroaki(白水啓章)さんのツイート: "未だに、RealTek NIC のUDPチェックサム・オフロードのバグを踏む事例が出るとは。 https://t.co/7tT9MO3ysD"
相手との接続ができているのに送信キューに溜まる - Google グループ
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、このための hack を入れておいたはず(=後ろに64バイトの余分な0x0を付与)だが…と確認してみると、v4.5以降同士のIPDict形式に限り、このhack化パケットは受け取らないコードになっていた。後で直しておこう。… https://t.co/RkcP17o5Ho"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、この hack は最後のリトライで発動する形。 (最初から付与していては意味がないので)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UDP Checksum Offloadで問題を起こすのはRealTek NIC。 10数年前に見つけた話だが、未だに発症する環境があるのが何とも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UDPフラグメントかつ、最終フラグメントのペイロードが15バイト以下(だったか63だったか)の場合のみ、オフロードでのチェックサムが狂うという、確かに見つけにくいバグではある。"
Kazuho OkuさんはTwitterを使っています: 「recvmsg で destination address を取るには IP_PKTINFO もしくは IPV6_RECVPKTINFO を使う、と。linux 以外だとどうやるのかな」 / Twitter

lwIP

lwIP - A Lightweight TCP/IP stack - 概要 [Savannah]
lwIP - Wikipedia, the free encyclopedia
IPv6 - lwIP Wiki
LwIP IPv4/IPv6 stacks - lwIP Wiki
lwIP 1.3.0
JVNVU#98989920: uIP と lwIP の DNS リゾルバにキャッシュポイズニングの脆弱性
lwip.git - Unnamed repository; edit this file 'description' to name the repository.
lwIP - Wikipedia
Raw/TCP - lwIP Wiki - Wikia
BitVisorのlwIPを使ってシリアルポートに書き込まれたデータをTCP/IPで送信する - Qiita

TCP

その他

Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味? の件について : 革命の日々 その2
Programming TCP for responsiveness
TCPのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
ns3でTCPの輻輳制御を観察する - Qiita
人生の全てはTCP/IPに学んだ:Geekなぺーじ
相手がいないのに ESTABLISHED になってる TCP ポート - @tmtms のメモ
saminiir's hacker blog
saminiir/level-ip: A hacker's userspace TCP/IP stack
tcprewrite
robertdavidgraham/masscan: TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.
Linux kernel TCP 実装にサービス運用妨害 (DoS) の脆弱性(CVE-2018-5390) について解説 - Qiita
Information on RFC 8548 » RFC Editor
Information on RFC 8547 » RFC Editor
堅牢なTCPサーバを作るために - katsubushiの知見から/kamakura.go#5 - Speaker Deck
第1回 TCPの輻輳制御とは何か:基本から学ぶ。TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
第2回 輻輳制御アルゴリズムの3タイプ:基本から学ぶ。TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
TCP Slow Startを改善する HyStart++について - ASnoKaze blog
DSAS開発者の部屋:第一回 KLab Expert Camp「TCP/IPプロトコルスタック自作開発」を開催しました
DSAS開発者の部屋:xv6にネットワーク機能を実装した
WEBサーバのTCPコネクション数に上限はあるのか? - Qiita
TCPとタイムアウトと私 - Cybozu Inside Out | サイボウズエンジニアのブログ
ブラウザからTCP, UDPソケットを操作するRaw Sockets API - ASnoKaze blog
TCPとTLSを連携させるTCPLS - ASnoKaze blog

TCP Pacing

パケットペーシング

HTTPのためのTCPチューニング (Best Current Practice) - ASnoKaze blog
世界最速通信で考えるインターネットの将来 | 日経 xTECH(クロステック)
OCNモバイルONEが始める「httpsのページング」とは何か
PowerPoint Presentation
【予告】9/25より利用混雑時における通信速度改善に向け、新たな取り組みを始めます。 : LINE MOBILE 公式ブログ
通信の最適化によるお客さま影響について(ペーシング) | スタッフブログ | マイネ王
CiNii 論文 -  パケットペーシングによる全対全通信の最適化とシミュレーション評価
20120306-IPSJ74-PktPacing.pdf
HPCS2011Shibamura.pdf
【LINEモバイル】利用混雑時における通信速度改善に向け、新たな取組を実施 | LINE Corporation | ニュース

Shirouzu Hiroaki(白水啓章)さんのツイート: "linuxの一部のバージョンでは、tcp pacingがデフォルトで有効と。ちなみに Windows/winsockには無さそう。 https://t.co/k3LYxmE5jt"
Is TCP PACING enabled by default on linux? - Unix & Linux Stack Exchange
TCP pacing - Wikipedia
paper.dvi
FQ-pacing-results.pptx
ieeexplore.ieee.org
TCP Pacing [LWN.net]
RT2001-066.doc
ns0601-takano.pdf

Multipath TCP

本の虫: Multipath TCPについて
本の虫: MultiPath TCPのLinuxカーネル実装
Kentaro Ebisawaさんのツイート: "iOS11でMultiPath TCP(MPTCP)が本格サポートされるとのこと。WiFiと4G/5Gの共有・切り替えなどが本格化した時に通信キャリアとその中のネットワーク機材に必要とされる(必要とされない)機能ってなんだろう。 https://t.co/Qk4uYjrNt2"
Michio Hondaさんのツイート: "@ebiken @n_kane この辺にmiddleboxの具体的な挙動に対してMPTCPがどう設計されているか書いてあります!https://t.co/xeKPpsGyol"
Kentaro Ebisawaさんのツイート: "両端のnodeだけで通信が完結することは無く、常にミドルBOXがある前提で考えねばならぬ。逆に言うと、MPTCPが最も効果的なモバイル環境のVNFやスイッチ・ルーター等ミドルBOXは、TCP拡張がある前提で設計&実装する必要がある。 https://t.co/bhFbq5Pl4C"
Kentaro Ebisawaさんのツイート: "MPTCPをペイロード又はTCP Optionに載せるか。ACKの受け取り方。シーケンス番号はSub Flow単位かTCP Sessionの番号を共有すべき... 今時(5年前だけど)のミドルBOX実装を考慮した考察があって楽しい。 https://t.co/bhFbq5Pl4C"
nsdi12-final125.pdf
iOS 11でMultiPath TCPを使う - ASnoKaze blog
RFC 6824 - TCP Extensions for Multipath Operation with Multiple Addresses
RFC 6181 - Threat Analysis for TCP Extensions for Multi-path Operation with Multiple Addresses
Multipath TCP(MPTCP) – ビットログ
Multipath TCP - Wikipedia
まさみさんは語りたいさんのツイート: "mptcp、生きていた!よかった・・・。… "
Hajime Tazakiさんのツイート: "Linux ではなんとか生き残ってる感じですね。。… "
ゆきさんのツイート: "TCP Extensions for Multipath Operation with Multiple Addresses https://t.co/26oHTNrSkK マルチパスTCPのv1がLast Call中だけど、v0 (RFC6824)と互換性ないんだなー。デプロイが進むと良いなー。"
draft-ietf-mptcp-rfc6824bis-13 - TCP Extensions for Multipath Operation with Multiple Addresses
JPNIC News & Views vol.1717【臨時号】第105回IETF報告 [第4弾] トランスポートエリア関連報告 - JPNIC
2020年8月21日 Red Hat,マルチパスTCPをRHEL 8.3のテックプレビューとして実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「RedHatがLinux 5.6に入ったMPTCPをRHEL8にバックポートしている。MPTCP(RFC6824)は1つのsocketのopenに対して複数の経路でTCPのコネクションを作り、生きているコネクション全てで通信する事で、帯域の向上、冗長化、WiFiとモバイル通信のスムーズな切り替え等を実現する https://t.co/ONMtfU69ou」 / Twitter
Red Hat Bringing Multipath TCP To RHEL 8.3 As A Tech Preview - Phoronix
FadisさんはTwitterを使っています 「MPTCP、最初の3way handshakeで以降コネクションを追加するために使う鍵をそのまま流してるから、経路上に居る悪意ある第三者は勝手にコネクションを追加できるように見えるんだけど、まぁこれが見えるところに居るホストはそもそも従来のTCPでも勝手にパケットを挿入できるじゃろ?って事なのかな」 / Twitter
Ryou Ezoe(江添 亮)さんはTwitterを使っています 「@fadis_ それはアプリケーション層でやれということでは。」 / Twitter
FadisさんはTwitterを使っています 「diffie-hellmanくらいすればいいのに」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@fadis_ ふつうのTCPでもシーケンス番号がわかればコネクション乗っ取りできるわけで。 そういうのは上の層でやれってことなんでしょうね。」 / Twitter
Linux 5.6 から Multipath TCPが使える - ASnoKaze blog
貧弱なインターネット回線をたくさん束ねて強くできる「OpenMPTCProuter」レビュー - GIGAZINE

TCP Fast Open

Twitter

@rockridge07

Rockridgeさんのツイート: "Microsoft Edgeの開発版がTCP Fast Openをサポート。既に接続を確立したことがあるIPアドレスのホストに対し3 Way Handshakeを簡略化できる。デフォルト無効。参照:… https://t.co/CfGCdbLpNA"
Rockridgeさんのツイート: "Fx55:TCP Fast Openをサポート。 / “1188435 - Support TCP fastopen” https://t.co/46NKFeE3i1"
Rockridgeさんのツイート: "Fx57:HTTPS接続の場合を対象に、TCP Fast Openがデフォルト有効化。 / “show_bug.cgi?id=1394818” https://t.co/ZnkWMjJRPv"
Rockridgeさんのツイート: "Fx59:Windows版でTCP Fast Open(TFO)が使える環境をWindows 10 Fall Creators Update以降に限定した。TFOが安定して動作するよう、もともとWindows 10限定だったのを、… https://t.co/hHplpuVnGg"
Rockridgeさんのツイート: "Firefox 59/60のリリース版ではTCP Fast Open(TFO)が初期設定で無効化されている。 / “1431738 - Disable TFO on release for now” https://t.co/eg7vGQq9sF"
Rockridgeさんのツイート: "Fx65:NightlyチャンネルでもTCP Fast Open(TFO)が無効化。エラー率が高いらしい。 / “1503573 - Disable TFO” https://t.co/EJg6gwWg3F"

@fadis_

Fadisさんのツイート: "Googleさんの、HTTPで3wayハンドシェイクしてたら時間がかかりすぎるからTCPを拡張して3wayハンドシェイクを省略できるようにしたTCP fast openを実際に運用してみたら、そんな拡張知らないファイアウォールや侵入検知がパケットを蹴り始めたから俺はUDPにHTTPを乗せる事にしたぜ、って流れ実に激しい"
Fadisさんのツイート: "普通すでに広く普及しているTCPを置き換えるぞ!なんて言ってもそうそう実現するものではないんだけど、GoogleのサーバとChromeが対応するとWebのトラフィックのそれなりの割合が新しいプロトコルで通信するようになるの、Googleつよい"
Fadisさんのツイート: "で、そんなGoogleのQUICさん元に標準化されたQUICを作る作業がIETFで進んでいる、と https://t.co/IFv33tf1ky"
quicwg/base-drafts: Internet-Drafts that make up the base QUIC specification
Fadisさんのツイート: "QUICではTCPヘッダにあった殆どの情報は暗号化されたペイロードの中に突っ込まれていて、鍵を持っていない経路上のホストが読めるのはUDPヘッダとどの鍵で復号できるかを指事するコネクションIDと、バラバラに届いたパケットをどの順で復号すれば良いかを表すパケットナンバーだけ、と"
Fadisさんのツイート: "ルータはUDPの通信がいつ終わったのか知ることができない為、NAPTが通信の途中でポートの割り当てを変える可能性があるが、QUICは何処から飛んできたパケットでも正しい鍵で復号できる限り通信が続いているものとして処理される。副作用的に通信環境がころころ変わるモバイルデバイスも幸せになる、と"

@kazuho

Kazuho OkuさんはTwitterを使っています: "tcp fastopen接続確立後にパケット通さなくなるとか、片方向だけ通すやつとかあるから、クライアント側でフォールバック処理実装したほうがいいとか。そういうネットワークは0.1%以下らしいけど #ietf94j"
Kazuho Okuさんのツイート: "最新のWindows Insider PreviewではEdge(HTTPS)でTFOデフォルトオンっていいな。TFOの時代が来そう"
Kazuho Okuさんのツイート: "Windows 10 Anniversary Update で TCP RACK がデフォルトなのか! IW10にもなって、EdgeにTFOを試すオプションがついたとも"

@jovi0608

Shigeki Ohtsuさんのツイート: "AppleのTCP Fast Open導入苦労話。ミドルボックやIDSが原因で80%ぐらいしかTFOが通らない。IDSがTFOハンドシェイク完了後にブロックするのは泣ける。 / “TFO.key” https://t.co/fdDyDs06H9"
Shigeki Ohtsuさんのツイート: "ミドルボックスが知らないTCPオプションを削除するのは予想できるけど、SYN/ackのシーケンス番号までチェックしていてTFO Cookieが通るのに戻りでTFOがブロックされるのは辛いなぁ。"
Shigeki Ohtsuさんのツイート: "おぉ! MicrosoftがTCP Fast Open/TLS False Start/TLS1.3のサポートを表明。TCP FOは既にEdge Previewに実装されているのか。 / “Building a faster a…” https://t.co/yLWx3f3Pue"
Shigeki Ohtsuさんのツイート: "皮肉にも今日のアップデートでMS EdgeのTFOがdefault無効に変更されちゃいました。https://t.co/DXt5ymbAxg / “TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaz…” https://t.co/Rq4wJJgmBS"
May 9, 2017—KB4016871 (OS Build 15063.296 and 15063.297) - Windows Help

ゆきさんのツイート: "[chromium] Remove TCP FastOpen support. https://t.co/5hLiI60gdH"
新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「RFC7413で規定されている TCP Fast Open は、まだ使うには時期尚早。Linuxカーネルではデフォルトで禁止されているし、特定の条件で相手ホストを「ブラックホール指定」するが、その条件がきちんと文書化されていない。 https://t.co/JKuBkcxgim」 / Twitter
TCP Fast Open? Not so fast! | APNIC Blog

TCP Fast Open - Wikipedia, the free encyclopedia
RFC 7413 - TCP Fast Open
TCP Fast Open を試してみる - nigakyのブログ
TCP Fast Open – Webを速くするためにGoogleがやっていること Make the Web Faster 4 – | HTML5Experts.jp
TCP Fast Open ‐ 通信用語の基礎知識
TCP FAST OPENとは? | REDBOX Labo
マイクロソフト、より高速な「TCP Fast Open」など採用へ、Windows 10の大型アップデートとWindows Server 2016で - Publickey
MSのネットワーク高速化に向けた取り組み--「Windows 10」と「Windows Server 2016」で実現へ - (page 2) - ZDNet Japan
TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaze’s diary
Archive
Enhanced Performance and Privacy for TLS over TCP Fast Open
2020年2月17日 IPFireがDNSリゾルバをエンハンス,TCP Fast OpenとTLS 1.3をサポート:Linux Daily Topics|gihyo.jp … 技術評論社

CUBIC

"CUBIC: A new TCP-friendly high-speed TCP variant"を読んだ - ゆううきブログ
SACSIS.TCP
03gun_04hen_02.pdf
なまえだよさんのツイート: "iOS/AndroidのTCP輻輳制御アルゴリズムはロスベースのCUBICです。時間経過でウィンドウサイズが変動します。ロス率が上がったタイミングに巻き込まれてUDPのDNSパケットも捨てられると悲惨な感じです。 https://t.co/3oqt2RLtJA"
Shigeki Ohtsuさんのツイート: "TCP Cubic が RFC8312 に。 / “RFC 8312 CUBIC for Fast Long-Distance Networks” https://t.co/l9IflDyZwR"
Information on RFC 8312 » RFC Editor
第3回 CUBIC-TCPの登場:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社

BBR

BBR

Kazuho Okuさんのツイート: "BBTは他の輻輳制御アルゴリズムと公平に動作することを期待されてるので、この結果は、測定手法に問題がある(ボトルネックがモバイルキャリア内にない等)か、キャリアのシェイピングの動作による挙動か、BBRのバグ / https://t.co/LjcWzAk2DJ"
モバイルインターネット環境の通信速度を TCP BBR が有効な ShadowsocksR で10倍速にする - 2nd life
Kazuho Okuさんのツイート: "か、このVPNソフトが公平性無視してる"
Kazuho Okuさんのツイート: "追試するなら、同一サーバからファイルダウンロードをBBRとCubicでやってみるといいと思いました"
Kazuho Okuさんのツイート: "同一パケロスパターンで10倍速!ってのを一人がやりだすと、皆がそれを真似することになって、結果パケロスが増えてネットワークの利用効率が下がるから、輻輳制御アルゴリズム間の公平性重要という理解"
(´,,•ω•,,`)JustinZhuさんのツイート: "確かにBBRによって効果があると思いますが、でもSSRによるパケットパタンの変化が本当の原因かなと思います。正しいといえば、SSRはVPNではない(安全性はそこまで保証できないから)、パケットパタンの変化と内容を難読化が着目された特化したトンネルです。公平性もこれによって崩れたかもしれません… https://t.co/qd6Xr8HXXR"
Kazuho Okuさんのツイート: "例えば、vpnトンネルを10本のtcpに見せかけて構築し、それぞれのtcp接続において輻輳制御をする、というのはtcpに偽装するvpnとしては妥当な戦略だと思うけど(単一のtcp接続を使う場合は二重の輻輳制御が問題になる)、そのvpn上で一本のtcpをベンチマークすると、生のtcpに比べて10倍速になるよね"
Kazuho Okuさんのツイート: "いや、このケースだとならないか"
Kazuho Okuさんのツイート: "いや、vpn内のtcpの処理次第か"
SODA Noriyukiさんのツイート: "空いてる時間帯ならともかく、元記事は「昼時の通信が集中する時間帯で五倍以上の通信速度が出た」って書いてるわけで、kazuhoさんが指摘してる通り、まず間違いなくデフォルトのTCPのパラメータに対して公平性を欠いてるよね。こういうものをみんなが使いだしたら破滅が待ってる。"
#セコンさんのツイート: "こんな環境で再び測定してみたのですが、やはりBBR有効なSSRのみ速度が出るようで、SSRのソフトウェアがTCP公平性を崩しているため、この速度になっているのでしょうか。知識不足で判断できず…。 https://t.co/GV2VN4pvtN… "
TCP BBR + ShadowsocksR + fast.com の速度を macOS + テザリング環境で測定 - Qiita
#セコンさんのツイート: "kazuhoさんの指摘の通り、BBRアルゴリズムが高速化に寄与しているわけでは無く、BBR有効なSSRサーバへ接続していると、キャリアのトラフィックシェイピングの挙動が変わり、キャリアの意図と反して割り当てが増えTCP公平性に反した行為をしてしまっているように思えてきました。… https://t.co/UpXZRgSmoR"
Yusuke MURAMATSUさんのツイート: "モバイルキャリアなら TCP Ack Clocking に類することやってるだろうから色々ありそう"
Yoshifumi Nishidaさんのツイート: "BBRはlossにreactしないアルゴリズムなのでlossにreactするアルゴリズムと大きな差がでることも一応起こりえるという気はします。10倍以上というのはちょっと大き過ぎる気がするので、どこかに問題がありそうですが、条件さえ揃えば有り得なくはないという気もします。… https://t.co/7kzuMb6tuM"

Kazuho Okuさんのツイート: "Cubicに比べてLTE回線での1MBダウンロードが44%高速化ってすごいな / “BBR Congestion Control: An Update” https://t.co/cKnkPo8sTI"
Kazuho Okuさんのツイート: "従来の輻輳制御だとBDP超えてデータツッコミがちなので応答性が悪くなるってのは(僕が)忘れがちな論点だなぁ。そして、BBRだとつっこむデータ量がBDPの2倍まで減少すると。無線のモデル化をもっと進めればさらに減らせそうと。"
Amazon Linux 2017.03で新しいTCP輻輳制御アルゴリズムBBRを試してみた | Developers.IO
Google、TCPのスループットとレイテンシを改善する輻輳制御アルゴリズム「TCP BBR」をGoogle Cloudで利用開始 - Publickey
Shigeki Ohtsuさんのツイート: "BBRによるYouTubeのスループットの改善幅が日本だけ突出して良くなってる。日本ではモバイル接続が主流でパケットロスの影響が強く輻輳制御改善の恩恵がそれだけ大きいということか。 / “Google Cloud Platfor…” https://t.co/yQLN8Ljfzg"
draft-cardwell-iccrg-bbr-congestion-control-00 - BBR Congestion Control
GoogleのTCP BBRでTCPを高速化しProxyもその恩恵にあずかる - Qiita
Ryousei Takanoさんのツイート: "いろいろ懐かしい。TCP CUBICで決まりかなと思ったのですが、最近はGoogleがBBRってのを提案したりと局所的には盛り上がってそうです。… "
第4回 BBRの出現:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
第4回 BBRの出現:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社

輻輳制御手法

Kazuho OkuさんはTwitterを使っています 「インターネットのパケロスはランダムに発生するのではなく、複数のパケロスがまとまって観測される、という話。これ伝統的な輻輳制御手法の根本にある考え方だし試験に出ますよ / https://t.co/CtHe5SqQBH」 / Twitter
Parsing QUIC logs and assessing packet losses | Christian Huitema
Kazuho OkuさんはTwitterを使っています 「だからネットワークシミュレータで、パケットロスn%、みたいな設定をしても、現実の環境のシミュレーションにはならない(ことが多い)」 / Twitter
(´,,•ω•,,`)JustinZhuさんはTwitterを使っています 「@kazuho それなら1/2の確率で捨てるかどうかを確定、捨てるの場合連続ランダム個パケットを捨てて、指定したパケロスn%を超えた場合しばらく捨てないって言うシミュレーションがもっと現実と近いかな」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@zlm2012 実際のキューの挙動をシミュレートした方が良いのでns3とかはそうしてますね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@zlm2012 パケロスは確率事象じゃなくて、キューオーバフローの結果なので」 / Twitter
kazさんはTwitterを使っています 「@kazuho @zlm2012 横レス失礼。 TCP-BBRの論文もそんなこと書いてあった気がしますね。」 / Twitter
(´,,•ω•,,`)JustinZhuさんはTwitterを使っています 「@kazuho でもルーターに「賢い」こと(同じ IP-IP:port のパケットをまとめて処理とか?)をやってエンドユーザーがセルラーのNATとかの後ろにいる時、エンドユーザーから見ると確率事象になる可能性もそこそこありそうな気がしますね」 / Twitter
FadisさんはTwitterを使っています 「TCPの再送制御と輻輳制御はslow startを除いて受け側がパケットロスに気付いてから何とかする物なので、受け側が輻輳に気付いた時には既にスイッチで沢山のパケットが溢れている。そこから再送するのでパケットが揃うまでにはかなりの時間がかかり、レイテンシを気にする用途では使い辛い」 / Twitter
FadisさんはTwitterを使っています 「なのでIPの拡張には輻輳した機器から即座に送信側にその事を通知するECNが、Ethernetの拡張には輻輳が起きそうな時に特定の送信側に対して「少し黙れ」を要求するPFCが用意されていて、送信側がこれらを扱える事が明らかなネットワークでは、これらを使ってパケットロスを未然に防ぐという事が行われる」 / Twitter
FadisさんはTwitterを使っています 「イマドキのスマートなNICはこうした制御をハードウェアで行えるようになっていて、そうした機器で固められた輻輳によるパケットロスが起こらないネットワークの事はLossless Networkと呼ばれている」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のTCP輻輳制御は、loss-based とdelay-based と hybrid とあるので、常にロスに気づいてから…と一括りにするのは正確でないかも。 https://t.co/OYkPiTMcco」 / Twitter
第2回 輻輳制御アルゴリズムの3タイプ:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「特に、広帯域+高遅延だと、遅延変化で細かく制御しないと帯域を使い切れないのだよね。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(どれも「ロスを発生させたら負け」というのは共通かな?)」 / Twitter
A.Amag🌧️さんはTwitterを使っています 「5Gみたいな広帯域モバイル回線がつらい所。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 そういえば無線の場合、優先のように隘路の流量に比例して遅延が徐々に増える挙動とは違う印象ありますね…突然、ランダムに巨大なジッタ発生が多めというか。 あれは流量というより電波品質の問題なのですかね。」 / Twitter
A.Amag🌧️さんはTwitterを使っています 「@shirouzu MAC層にリトライの仕組みが入っていて、ランダムにバックオフタイムが入るのと、リトライするときにレートを下げてリトライとかの挙動もあるので、細かく見ると遅延もレートもめまぐるしく変化していると思います。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 あぁ、なるほど。 本来のイエローケーブル時代のイーサネット(CSMA/CD)っぽい挙動ですね(笑)」 / Twitter
A.Amag🌧️さんはTwitterを使っています 「@shirouzu 5Gとかならタイムスロットの割り当てがあるのですが、WiFiはまさにそれですね。運が悪いと延々とサイコロで負けるという。」 / Twitter

AQM・L4S

Kazuho OkuさんはTwitterを使っています 「TCP/IP、接続ステート管理まわりは分かるし(あるいは想像つくし)、輻輳制御もまあ分かるんだけど(ヒューリスティックなところ以外)、現代的な再送制御まわりがどうなってるのか全くわからん。いろいろあるのは知ってるし、個々の要素の説明は読んだり聞いたりしてるけど身になってない」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あとまあ linux カーネルの TCP/IP コードが良く分からなくて苦手意識あるというか。僕が書いてる QUIC 実装は読みやすいのに!!!」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@tss_ontap @kazuho パケット損失で性能が低下するのがTCPなので、TCP向けの応用である限り、バッファの存在は常に善と考えていいんじゃないでしょうか。 遅延を一定以内にすることが優先でパケット損失も厭わない応用ならバッファの存在が邪魔になることもあるでしょうが、そういうのはそもそもTCP向けではないですし」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@tss_ontap @kazuho バッファを溢れてない場合、ackの返るタイミングも遅れてそれでペース調整できるので問題ないという認識です。 バッファが大きくなると遅延は当然増えますが、それを嫌うならTCPではなく、レイテンシ優先でパケット損失を許すプロトコルを使うべきかと。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @tss_ontap プロトコルを変えたところで、競合するトラフィックがCubicに代表されるロスベースの輻輳制御を使っていると、中継機器のバッファサイズに比例してレイテンシが大きくなってしまう、というのが問題で、だからこそAQMだったりL4Sだったりやってるのでは?」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap 動画や音声でしかもリアルタイム性を要求する応用では、パケット損失があっても品質が低下するだけで通信自体は継続できるプロトコルを使い、ルータもそういうプロトコルに割くバッファ量は制限する代わりにレイテンシは保証する方向で動作するのが理想だと思ってます。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap AQMもL4Sも全然知らないんですが、そういう方向の技術なんでしょうか?」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @tss_ontap AQMはバッファがいっぱいになる前にバッファが空にならない程度を狙ってパケットを落とす手法です。CoDelとか。L4Sは輻輳制御アルゴリズムによって異なるキューを通るようにすることで、ロスベースのやつと新世代のやつを共存させる技術だと思います(たぶん)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap ありがとうございます。 AQMはrandom early dropの現代版みたいな認識でいいのかな… 損失を許さないけどレイテンシ制約は緩いTCPみたいなやつと、レイテンシ重視の奴でキューを分けた方がいいのは間違いないですね…」 / Twitter

スライド

YAMAMOTO MasayaさんはTwitterを使っています 「3月に開催したプロトコルスタック自作キャンプの講義資料を公開しました。1週間でTCP/IPのプロトコルスタックを自作してUDPやTCPで通信するアプリケーションを動かすという内容で300ページくらいのスライドです。これがあれば一人で自作できますよ! #KLabExpertCamp https://t.co/4sUTh2MAk6」 / Twitter
KLab Expert Camp 3 - Google ドライブ
YAMAMOTO MasayaさんはTwitterを使っています 「スライドで解説しているコードのリポジトリはこちらです。スターを貰えると承認欲求が満たされてやる気が爆上がりするのでどうぞよろしくお願いします。 https://t.co/RpbPm0w0D0」 / Twitter
pandax381/microps: An implementation of a small TCP/IP protocol stack for learning.

Wikipedia

TCP congestion control - Wikipedia
二人の将軍問題 - Wikipedia
Two Generals' Problem - Wikipedia

Twitter

Kazuho Okuさんのツイート: "ルータがTCP ACKにバンド幅情報等を載せる仕組みの提案 / “Throughput Guidance” https://t.co/ojqyCdaxHB"
Kazuho Okuさんのツイート: "「64bitのシーケンスナンバーが10年後には求められるようになるだろう。TCP/IPスタックが対応するにも、そのくらいの期間がかかるだろう」"
Kazuho Okuさんのツイート: "tcpm で getsockopt(TCP_INFO) 標準化の機運がにわかに盛り上がってきた!!!!"
Kazuho Okuさんのツイート: "古いネタにマジレスだけどパケロスがゼロなら距離関係ないし、パケロスがあってもCubicとか最近の手法なら距離関係なかった気がする > 「RTTである「R」が大きくなればなるほどTCPのデータ転送性能は低下する」 / “Geekな…” https://t.co/h7xFnahBIL"
Kazuho Okuさんのツイート: "RFC 8311でECT(1)を実験用に空けたわけだけど、具体的にどういう風に使うつもりなんだろう"
RFC 8311 - Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation
ぬるぽへさんのツイート: "TCPのEnd-toEndのRTTが縮小できるのでTCPプロキシがある場合が速いことがある, TCPのLong Fat Pipe問題 #tcfm"
ぬるぽへさんのツイート: "TCP splittingとかいう概念を初めて知った、勉強になります #tcfm"
matsuuさんのツイート: "プロトコルにもよるけどアクティブクローズをするのは大抵受信側で、TIME_WAITで残るのも受信側だからほとんど問題にならないとの認識(HTTP-Keepaliveはそんなことないか)。間違ってるなら誰か教えて欲しい。 / “n…” https://t.co/T2LFEFSmeJ"
net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita
Kentaro Ebisawaさんのツイート: "F-Stack: DPDK使うとNetwork Stack自作する必要があるのを、FreeBSD Network Stack を Userspace にポートする事で解決したのね。Tencent Cloud やりますな~ https://t.co/XPyI4avazp"
F-Stack/f-stack: F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API.
Fadisさんのツイート: "RFC1122のTCPに関する要件の所に「データがくっついているRSTを許容すべきである。フォーマットについて標準化はまだなされていないが、RSTのデータにRSTした理由がASCIIテキストで含まれる可能性がある」って書かれててRSTが溢れて不思議な踊りを踊る実装が存在する可能性にワクワクせざるを得ない"
Kazuho Okuさんのツイート: "RFC793bis(TCPのRFCのアップデート)、100ページ超えてるのやばい https://t.co/yJtL3nhg3s"
draft-ietf-tcpm-rfc793bis-10 - Transmission Control Protocol Specification
Kazuho Okuさんのツイート: "!!!!!… "
Hideki Sekineさんのツイート: "RFC793の内容を含んでいること、RFC793の時点で85ページあること、を考えるとむしろコンパクトな気もしますね。… "
Kazuho Okuさんのツイート: "たぶん僕の発表に絡んだ話だと思うので。ソースは https://t.co/as5VM63uWb です。そして、クライアントがハンドオーバー中とかでackが返って来ないときにどうやるかという話なので、ミドルボックスに何かのシグナルを出してもらう必要があります… https://t.co/KSkUPf7aXe"
TCP Optimization: Opportunities, KPIs, and Considerations
女子会さんのツイート: "ネットワーク事業者側がTCPをバッファリングして、パケットの番号を整列することでパケットの再送要求を減らして、5%程度帯域を減らせた事例があるという話があったけど、それがQUICの導入によりクライアント側でやれるようになれば効果が大きそうな気がしている。クライアント側の実装依存だけど。"
Kazuho Okuさんのツイート: "あーソースは他にも mobile tcp optimization とかでググれば色々でてきます"
Fadisさんのツイート: "TCPヘッダが20バイトもあるのに対し、IPは最小で8バイト毎にフラグメント化することが可能で、結果TCPのヘッダは途中で分断して送信することができて、雑にフィルタリングを行なっているファイアウォールがこうしたパケットの先頭だけを見て誤ったフィルタリングを行う事が90年代に指摘された"
Fadisさんのツイート: "TCP、再送が必要になると、その情報が既に無価値になっていたとしても再送するまでその後ろの通信内容を読ませてくれないから、ミリ秒から秒単位で更新される情報を同期するようなタスクにおいてはあまり幸せになれない。問題はTCPでは辛いとなるといきなりUDPに放り出される点。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Web会議ASPを開発していた頃、セッション概念あり、再送&順序制御なし(できればFECあり)、パケット(データグラム)指向なプロトコルが欲しかった記憶。 そして、UDPでこれらを満たすレイヤを作ったけれど、これって皆が通る道なんだろうな(笑)… https://t.co/N6fdHptaQL"
鹿さんのツイート: "TCPでフロー制御して欲しいけど再送遅延は抑えたい時のために TCP Thin Stream があると思うのだけどそれではダメなのかな。再送回数抑えれば200ms x 3回とかで諦めてくれるので捗る。… "
Fadisさんのツイート: "TCPが最初に規格化されたRFC793(1981年)当時のRFCには今日ではおなじみのMUSTとかSHOULD NOTとかいったキーワードがまだなくて、RFC1122(1989年)でRFC793に書かれている仕様が必須なのか推奨なのかが追記されてるの規格としてはアレだけど面白い"
Fadisさんのツイート: "TCP、互換性のある通信をするために必要なパラメータの範囲に関するRFCが結構2010年代に入ってから作られてて、お前今までどうやって通信してたんだ感が凄い"
Fadisさんのツイート: "TCPを実装する上で読むべきRFCが多すぎてどれを読めば良いか分からん問題に対処するために、RFC7414でTCPに関する情報はどのRFCをあたれば良いかが纏められているんだけど、RFC7414自体がReference以降のぞいて41ページもあるんだ…"
Kazuho Okuさんのツイート: "https://t.co/fmiFuSkkys は、まだちょっと問題ある感じなんでしょうか… "
draft-ietf-tcpm-rfc793bis-10 - Transmission Control Protocol Specification
Fadisさんのツイート: "いえ、欲しかったのはまさにこういうドキュメントでした。これがあればTCPの基本的な機能については歴史を辿って読む必要がなくなりますね… "
Kazuho Okuさんのツイート: "おお。歴史や実装に詳しくない人が、これ読んで分かりにくいところをフィードバックしたりすると喜ばれるんじゃないかなと思います… "
suzakiさんのツイート: "EuroSysネットワーク4つ目。LinuxのTCP処理はカーネルで97%の時間が使われる。これを効率化するために各処理をFast Path、Slow Pathに分けて行うTAS: TCP Acceleration as an OS Serviceの提案。 Fast PathではData Segment作成, Ack, Flow Controlの処理を行う。Slow Pathでは IP Routing, ARPを行う"
suzakiさんのツイート: "TAS: TCP Acceleration as an OS Service のHP  https://t.co/w6mHTo4i0O"
Kazuho Okuさんのツイート: "面白い。TCPはウィンドウサイズを送受信ともに1MTU以下にすれば実装簡単になりそうな気もするけど、TCPを知らずに育った世代なので自信ない / https://t.co/xMM5ma1odH"
3日間で作る フルスクラッチHTTPサーバー on STM32F767 Nucleo - Speaker Deck
Yoshifumi Nishidaさんのツイート: "結構単純になると思います。uIPはウインドウサイズ1MSSのTCP実装でサイズが5Kバイト程度です。… "
YAMAMOTO Masayaさんのツイート: "すごい。microps は pthread に甘えて実装が楽になってるけどこちらはだいぶ大変そう。@kazuho さんがコメントしているように、TCP は Window Size の広告を小さくすれば 1 セグメントづつのキャッチボールにできてシンプルになるのでぜひ頑張って欲しい(microps はその方法で tcp.c が 700行くらい)… https://t.co/RBHtoKVQCy"
Kazuho Okuさんのツイート: "再送と輻輳制御、コードにバグがあった場合、修正方法を探り当てる難しさが TLS とかと段違いに難しいイメージ。動くんじゃダメで、あらゆるパターンにおいて、ネットワークに適切な負荷をかけつつ、そのケースで想定される時間内に回復処理を行わなければならない、ってむちゃくちゃ難しい"
Kazuho Okuさんのツイート: "TCPを使うプログラムの書き方、切断処理は接続処理のだいたい100倍くらい難しいイメージ"
Kazuho Okuさんのツイート: "パイプラインを使わないリクエスト・レスポンスプロトコルの場合のみ例外的に簡単です"
Fadisさんのツイート: "LinuxをリモートからPANICさせる脆弱性SACK Panic。LinuxはMSS最小48バイトのTCPを受け付けており、その場合データは8バイトになる。キューは17*32KB分あるが16bitのindexでフラグメントを識別しており、キューに長蛇の列ができるようにSACKを投げるとindexが溢れてPANICする https://t.co/wmOGq3bwVQ"
Netflix Uncovers TCP Bugs Within The Linux & FreeBSD Kernels - Phoronix
Fadisさんのツイート: "SACK Panicを修正するパッチは既に本件カーネルに取り込まれているが、古いカーネルをしばらく使う必要がある場合MSSが小さすぎる通信をiptables等で蹴る、SACKを受け付けないようにする、といった方法で回避できるらしい"
Kazuho OkuさんはTwitterを使っています: 「accept (2)、ローカルアドレスも返してくれたらいいのに。unbound socket を listen (2) している場合に、いちいち getsockname (2) 呼ばなきゃいけないのめんどくさい」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「s/unbound socket/0.0.0.0/」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「すごい分かる。そして10ページじゃ足りないと思う https://t.co/g02E7UUZpV」 / Twitter
成瀬さんはTwitterを使っています: 「TCPのFIN、socketのcloseの話だけ10ページくらい使って説明して本とかないんですかね」 / Twitter
FadisさんはTwitterを使っています 「TCPの新しいRFCのドラフト、緊急ポインタの説明が1段落目からいきなり「実装間の違いと経路上の機器の影響の結果、緊急ポインタは新規アプリケーションで用いるべきではなくなった。でもTCPの実装はまだ緊急ポインタをサポートしていなければならない。詳しいことはRFC6093みてネ」でとても良い」 / Twitter
FadisさんはTwitterを使っています 「RFC1122、「TCPで通信するとき、slow startするようにして、再送する時は一定じゃない時間待ってから再送するようにしたら輻輳を回避出来たから、TCP喋るやつはみんなこれしろ」って書かれてて、それまでのTCPはどんな世紀末な通信してたのってなる」 / Twitter
FadisさんはTwitterを使っています 「1981年公開のネットワーク対戦ゲームTCP(RFC793)は当初酷いバランスだった事が知られている。バッファ枯渇後復活したホストに対してすぐ細切れのデータを送るリスキルが横行しスループットは急落した。そこで1989年のアップデートRFC1122では復活後バッファが十分空くまで殴れなくする変更が加えられた」 / Twitter
FadisさんはTwitterを使っています 「Silly Window Syndromeの対策もRFC1122だったんだな。やっぱり1989年より前のTCPは世紀末…」 / Twitter
FadisさんはTwitterを使っています 「TCPはストリームなので、前のパケットが失われて再送になると後ろが一緒に詰まる、というのはQUICがTCPを捨てた大きな理由だったけど、後ろのパケットはホストまで届いているんから、再送を待たずに投機的に処理して再送されてきた前のパケットとシーケンス番号が噛み合ったら確定、は出来るんだよな」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ sack付tcpでは、ある程度そんな動きで、ただユーザランドでは欠けたパケットが届くまで詰まったように見えてしまう、というお話でしょうか?」 / Twitter
FadisさんはTwitterを使っています 「@shirouzu そうですね。BSDソケットを使っている場合確定していないパケットはアプリケーションから見えないので詰まってしまいます。ただこれはプロトコルの制約というよりAPIの制約であって、たとえ話DPDK上でアプリケーションが自力でTCPを喋っている場合もっと攻められる、とか考えていたところでした」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ なるほど。 マルチプレクサ的なストリーム利用の場合は、データグラム的なデータ境界が欲しくなりそうですね(笑)」 / Twitter
FadisさんはTwitterを使っています 「あれ、もしかしてTCPの規格は再送パケットのデータが最初に送ったパケットのデータと一致している事は要求していない…? (新しいおもちゃを見つけた顔」 / Twitter
Motonori ShindoさんはTwitterを使っています 「@fadis_ TCPで再送する時に、最初に送ったのと同一のパケットになる保証はありません。後続のセグメントとくっつけて再送するのもアリなので。」 / Twitter
Tanaka AkiraさんはTwitterを使っています 「@tagomoris @_ko1 listening socket を close することで、他のスレッドで実行中の accept が終了するのって、portable じゃないんじゃないかなぁ。(昔、いろいろな環境で動くように WEBrick を直したときに、DragonFly BSD 3.6.2 では close しようが shutdown しようがブロックしつづけることを確認した)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「えっlinuxのTCPのフローコントロールってオーバープロビジョニングしてるの? パケロスが発生した場合に tcp_rmem 変更しろ、とか書いてあるんだけど。それとも僕のsysctlの理解が間違ってるのかな / https://t.co/5QIoVVA8OX」 / Twitter
TCP ソケットバッファーを調整する - Red Hat Customer Portal
(1) ultravioletさんはTwitterを使っています 「@kazuho tcp_rmem を変えると連動して wndow size だか auto tuning だかに関連するパラメタも変わったような気がするのだけれど、前の職場から移るときに「すべて忘れます」誓約書にサインしたので思い出せない (嘘、たぶんサインしなくても思い出せなかった)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @raurublock ですよね、フローコントロールのオーバープロビジョニングはしないですよね。だから、パケットを受信したなら、バッファサイズが足りなくて取りこぼすことはないと思います」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock 同感です。TCPのwindow sizeとして求められている役割に違反してますよね。 # メッチャ厳密にいうと、メモリ不足でカーネルが死にかけてる状況なら取りこぼす可能性についてはないとは言えないとは思いますが、それはwindow sizeを広げるとむしろ悪化する筈なので、この回答はどちらにせよ変。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@n_soda @raurublock こうやって頻繁にパケット落としちゃうと、適切にフローコントロールしてる場合よりも速度低下しますもんね(そして、ごく稀にしか発生しないなら Knowledge Base で取り上げる必要がないと思う)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock はい。 現実にパケットロスしている場合、たいていは中間にある機器のバッファサイズが不足していて、それはwindow sizeを小さくするとむしろ改善する(ことがある)わけで、このアドバイスはトラブルシューティングの経験とは真逆のことが書かれてます。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock 気になってもう少し調べてみたんですが 「~packets collapsed」の方は重複したsk_buffをgarbage collectしているだけで実害なさそうでした。 問題は「~ packets pruned」の方で、歯抜けになったsk_buffに重複してない部分があるせいgarbage collectできずSO_RCVBUFを越えてしまってる状況みたいです」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock で、そういう lossy なネットワークでせっかく受信したパケットを捨ててしまうことになりもったいないので、tcp_rmem を増やしてやれば捨てることがなくなって状況が改善する…ということみたいです。」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock なお Linux 素人なので、まったく勘違いしてるかも。専門家の意見を聞きたいところです。 ググったら https://t.co/uYFqZcCfuV の「9.2.1 tcp_prune_queue()」近辺に記述が見つかりました。」 / Twitter
TCP/IP Architecture, Design, and Implementation in Linux - Sameer Seth, M. Ajaykumar Venkatesulu - Google ブックス
Tatsuya MoriさんはTwitterを使っています 「(備忘録)昔の知識だとTLSハンドシェイクは時間がかかる印象なのだけど、2013年のRFC6928でTCP初期ウィンドウは10まで許可されている。サーバは1発目のターンでhello, certificate, exchange, doneをバルクで返せるようになった。 古い教科書ではTCP初期ウィンドウは1という説明が多い。」 / Twitter
Tatsuya MoriさんはTwitterを使っています 「TCP初期ウィンドウサイズを増やす提案は下記の ACM SIGCOMM CCR 論文 (2010年) が元ネタになっている。 https://t.co/alUfKku76K Linux では2011年からカーネルの標準設定になっているので、"code then spec" の典型例かな。コミュニティは副作用を気にしたのかもしれない。」 / Twitter
An argument for increasing TCP's initial congestion window | ACM SIGCOMM Computer Communication Review
Kazuho OkuさんはTwitterを使っています 「TCP は packet number (シーケンス番号)が再送時に変化しないから自動的に late-ack 対応ができる。そのかわり、確実なロス検出が困難になる。QUIC は、再掃除に変化してロス検出の精度が上がるかわり、意識して late-ack 対応のコードを書く必要がある。これもまたトレードオフですね」 / Twitter
Kazuho OkuさんはTwitterを使っています 「というと QUIC で複雑になったようにも聞こえるけど、persistent congestion 検出にやすさでいうと、どのみち late-ack 前提のデータ構造使ってる必要があり。。。みたいな」 / Twitter

UDP GSO

Kazuho OkuさんはTwitterを使っています 「UDP GSO、カーネル内で完結してるわけじゃなくて NIC によって I/O error が返る、みたいな感じなのかぁ。DeskMini A300 は gbe も wifi もダメだった。これは 5gbe とかの USB NIC 買うしかないな。。。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「なんで UDP GSO やってるかというと QUIC の最適化においては重要だからです。手元だと 25% くらい速くなる https://t.co/XstTROh5VK」 / Twitter
willemdebruijn-lpc2018-udpgso-paper-DRAFT-1.pdf
Kazuho OkuさんはTwitterを使っています 「結果まとめた https://t.co/7WOYW85ZGQ」 / Twitter
add support for GSO by kazuho · Pull Request #293 · h2o/quicly
VさんはTwitterを使っています 「@kazuho 25% ですか!それは凄い。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「しかし Intel Core をデチューンした状態でgbeサチるのが難しいとなると、なかなか10gbe導入の正当化がしづらい」 / Twitter
Kazuho OkuさんはTwitterを使っています 「あーこれは結局NICのtx checksummingがオンになっているか否か、という問題でした(論文にあるようにUDP GSOはtx checksum offload必須)。Realtek r8169はデフォルトオフのところオンにできた。Intel AC 3168は非対応」 / Twitter
Kazuho OkuさんはTwitterを使っています 「UDP GSO自体は、ハードウェアがGSO非対応でも動作するらしい。ドライバのキューに突っ込まれるところまでsegmentationを遅らせることに意味があるから https://t.co/ganmK5L9EO」 / Twitter
Queueing in the Linux Network Stack | Linux Journal
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Web会議作ってた頃は udpパケットが、pppoe や vpnでフラグメント起こさない値として、1344を使っていたっけ。 (分割検出の度に短くなっていった。なおエラーにならないので気付き辛い)」 / Twitter

DNS

DNS-over-TLS

Yoshinobu Matsuzakiさんのツイート: "次期バージョンのAndroidでは標準でDNS over TLSがサポートされる模様。海外事業者のネームサーバを使うのも簡単。DNSを使った #ブロッキング は更に難しくなるよ https://t.co/YqSJjurcy3"
Google Online Security Blog: DNS over TLS support in Android P Developer Preview
Google Developers Japan: Android P Developer Preview が DNS over TLS をサポート
Kazuho Okuさんのツイート: "セキュリティの観点からはローカルで署名検証をやるべきだけど、プライバシーの観点からはDoHあるいはDNS over TLSで一般的なスタブリゾルバにつなぐべきというのが、現在存在するジレンマです… "
まきひろさんのツイート: "DNSのセキュリティはローカルにDNSSEC有効なフルリゾルバを置くのが確実だよ"
Rockridgeさんのツイート: "Android 9 PieではプライベートDNSモードがサポートされており、プロバイダを設定するとDNS over TLSが利用できる。 / “Enable Private DNS with 1.1.1.1 on Android…” https://t.co/2iUFRUsNHp"
Google Online Security Blog: Google Public DNS now supports DNS-over-TLS
Kazuho Okuさんのツイート: "DHCPが平文のプロトコルなので、DoHやDoTの設定配るのはセキュアになりようがないよね、というのが標準化における懸念だと理解してる #doh_study"

DNS-over-HTTPS

Google Public DNS
DNS-over-HTTPS  |  Public DNS  |  Google Developers
Google Public DNS の様々な活用方法 - Qiita
Google Public DNS over HTTPS を試す | IIJ Engineers Blog
DNS Queries over HTTPS の標準化 - ASnoKaze blog
DNS over HTTPSの標準化開始:Geekなぺーじ
Rockridgeさんのツイート: "Mozillaの開発者がNightlyチャンネルの半数のユーザーを対象に、期間限定で、新機能であるHTTPSを通じたDNSクエリ(DoH)のテストを行おうとしたところ、オプトイン制にすべきとする反対意見が続出した。 / “Goo…” https://t.co/hGahs0RhLy"
Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)の仕組み自体はFx60で実装済み。Firefox Nightly 61におけるテストで問題になったのは、常にCloudFlareのパブリックDNSへとDNSクエリが送信されてしまう点だ。 https://t.co/pu72EWz8a8"
Firefox, DNS over HTTPS and a controversial Shield Study - gHacks Tech News
Kazuho Okuさんのツイート: "既に www . google . com:443 に接続してから、GET /resolve?name=fqdn&type=A Host: dns . google .com とかリクエストして名前解決できるようになってるので、防ぎようがないです… https://t.co/v4tkVgyjj5"
Kazuho Okuさんのツイート: "なんと。request-uriに絶対URIを指定する場合とHostヘッダを使う場合とで挙動が異なるのは Google さんのリバースプロキシのバグっぽい雰囲気ですね… "
bosturboさんのツイート: "(echo -e 'GET https://t.co/sO5tOOs2PT HTTP/1.1\nHost: https://t.co/qComyDKBcL\n'; sleep 0.5) | openssl s_client -connect https://t.co/1aMcXHKitu) だと確かに200 OKを返してくるな…… 『GET 』の後にパスから書くと404だけど。… https://t.co/RMGjVzX8wz"
Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)の仕組みを解説し、CloudFlareと提携したことで信頼できるDNSリゾルバを確保できたと説く。平文のDNSクエリの危険性を説明したマンガは、いつも通りわかりやすい。 / “A cart…” https://t.co/TRrsh0Iav0"
Rockridgeさんのツイート: "記事の末尾に、HTTPSを通じたDNSクエリ(DoH)の設定を有効化する方法が掲載されている。 / “Improving DNS Privacy in Firefox – Firefox Nightly News” https://t.co/s1gB4iIlGy"
Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)に関連する、Firefoxの各種設定について、規定値や役割などが紹介されている。また、DoHはFirefox 62でデフォルト有効化される計画だという。 / “Inside Firefox…” https://t.co/eRXDiT9ZRI"
DNS over HTTPSサーバを見つけるためのTXTレコードの提案仕様 - ASnoKaze blog
Kazuho Okuさんのツイート: "Public DNSにDoHで接続すると平均遅延は僅か(6ms)悪化するが、パケロスや品質の低いDNSの悪影響がなくなり体感が向上したという検証結果 / “Firefox Nightly Secure DNS Experimen…” https://t.co/osmlqtTOaf"
Rockridgeさんのツイート: "MozillaがFirefox Nightly 63のユーザー2万5000人を対象にDNS over HTTPS(DoH)のテストを実施(CloudflareのクラウドDNSを利用)。6ミリ秒程度のクエリ遅延が起きる(一部環境では… https://t.co/Y0W9xstTgT"
Rockridgeさんのツイート: "Fx62:DNS over HTTPS(DoH)のdraft-12仕様をサポート。 / “1466860 - TRR: update to latest DOH draft version” https://t.co/JyzIPfrLEG"
Rockridgeさんのツイート: "Fx63:オプションの〔一般〕の「ネットワークプロキシ」欄で、接続設定の詳細項目にDNS over HTTPSの接続設定が追加された。 / “1482271 - DoH preferences” https://t.co/v2WMDQx2UX"
Rockridgeさんのツイート: "DNS over HTTPSのデフォルトプロバイダをブラウザが指定すると、プロバイダの寡占を招き、中立性や政府の介入といった点で将来的にユーザーに不利益になるのでは、との意見。 / “On Firefox moving DNS …” https://t.co/DVrrPRJuRv"
https://www.rfc-editor.org/rfc/rfc8484.txt
DNS-over-HTTPS Policy Requirements for Resolvers | Mozilla Security Blog
DNSサーバがDoHに対応しているか確認できるようにする提案仕様 - ASnoKaze blog
Firefoxが通信暗号化システム「DNS over HTTPS」の対象地域拡大を発表、一体何が変わるのか? - GIGAZINE

HTTPS RR

WebサーバのDNSへの登録方法が変わるよ – JANOG48 Meeting
janog48-lt-https - janog48-lt5-yamaguchi.pdf
summerday2021-https-rr - 11-yamaguchi.pdf

EDNS0

インターネット用語1分解説~EDNS0とは~ - JPNIC
「EDNS0」とは何ですか?:DNS Tips - @IT
008-「512の壁」を越える
EDNS0 ‐ 通信用語の基礎知識
ことなかれblog 備忘録 « EDNS0
512バイトを超える DNSパケット
RFC 2671 - Extension Mechanisms for DNS (EDNS0)
digコマンドでEDNS0の動作を確認する。 - labunix's blog

DNSSEC

rick.eng.br/dnssecstat/
DNSSEC はなぜダメなのか
KSKロールオーバーについて - JPNIC
「ランチのおともにDNS」より~変化するDNSとサーバー証明書の関係【Internet Week 2017】 - INTERNET Watch
インターネット用語1分解説~EDNS0とは~ - JPNIC
008-「512の壁」を越える
OARC's DNS Reply Size Test Server | DNS-OARC
ニュース速報:読売新聞(YOMIURI ONLINE)
DNSインフラを狙う攻撃増加、ICANNがDNSSECの導入を呼び掛け - ITmedia エンタープライズ
SODA Noriyukiさんのツイート: "DNS関係で今現在の最大の問題はリフレクション攻撃の踏み台として使われているってとこだと思うんですが、DNSSECは踏み台攻撃の増幅効果が大きくてむしろその問題については対策ではなく穴を大きくする方なんですよねえ。あと毒入れ系の対策としての効果も限定的( https://t.co/JPsDVfGKZh の8.)だし… https://t.co/IkDx25Jd7B"

DNSCurve

DNSCurve - Wikipedia
インターノット崩壊論者の独り言 - DNSSECイラネ - DNSCurve を適用しました , DNSCurve と CurveCP で高速安全というDJBの話
NetAgent Official Blog : DNSCurveの紹介
Introduction to DNSCurve
mdempsky/dnscurve: Tools for DNS curve implementation
DNSCurve vs DNSSEC - Togetterまとめ

Dnsmasq

Dnsmasq - Wikipedia
dnsmasq - Wikipedia
Dnsmasq - network services for small networks.
Man page of DNSMASQ
dnsmasqで始めるプライベートDNSサーバ - GeekFactory
Dnsmasqのproxydhcp機能を使ってiPXE chainloading - Qiita

NSD

UnboundとNSDの紹介 BIND9との比較編
NSDでおてがるにDNSサーバをたちあげる - Qiita
NSD 4 – 日本Unboundユーザー会
NLnet Labs - NSD - About
Unbound + NSD で DNS
NSD (ソフトウェア) - Wikipedia
DNSサーバ”NSD”の紹介 | ICTSC tech-blog
NSDとUnboundで社内用DNSサーバを立てた話 | エンジニア ブログ
bind2other
第386回 Unboundでお手軽に家庭内DNSサーバーを作ろう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

INTERNET Watch

ネット史上初めての「KSKロールオーバー」が始まる、名前解決できなくなる前にDNSサーバーの設定確認を! 今年9月は特に注意 - INTERNET Watch
萌えドメインなのに……「anime.moe」の登録をICANNが禁じている理由とは -INTERNET Watch Watch
「KSKロールオーバー」に伴い講ずべき措置、総務省が国内関係者に告知、9月19日以降にウェブアクセスやメール送信ができなくなる場合も -INTERNET Watch
「KSKロールオーバー」で一部DNS応答サイズが増大、4人に1人のインターネット接続に影響? JPNICが確認を呼び掛け -INTERNET Watch
IANA — Domain Name Services
【IETFトピックス2016-17】 インターネットを支え続ける老舗プロトコル、「DNS」30年超の歴史を振り返る - INTERNET Watch
【IETFトピックス2016-17】 熱い議論の続く、DNSプロトコル拡張と今後 - INTERNET Watch
KSKロールオーバーのテストプラットフォーム、ICANNが提供 -INTERNET Watch
大きく変化していくDNSの規格 ほか~「DNS DAY」の話題から - INTERNET Watch
「KSKロールオーバー」で問題を起こしそうな箇所はここだ! 9月19日だけでなく10月11日にも注意 - INTERNET Watch
10月11日の「KSKロールオーバー」鍵更新は延期、未対応のISPなど「相当な割合」あることが判明 -INTERNET Watch
「KSKロールオーバーはまだ終わっていない」~今年の「DNS DAY」の話題から【Internet Week 2017】 - INTERNET Watch
KSKロールオーバーの鍵更新がさらに延期へ -INTERNET Watch
KSKロールオーバー、10月11日に実施か - INTERNET Watch

Geekなぺーじ

TCPだけでDNSサーバにqueryできるようになってた:Geekなぺーじ
ざっくり詳解 - NAT64とDNS64:Geekなぺーじ
なぜIPv6とIPv4の名前解決は別々に行なわれるのか?:Geekなぺーじ
KSKロールオーバーが延期:Geekなぺーじ
ユーザの近くにある偽DNSサーバの話:Geekなぺーじ
[書評]「DNSがよくわかる教科書」は、すごくイイ!:Geekなぺーじ
RFC 8501 : Reverse DNS in IPv6 for Internet Service Providers:Geekなぺーじ

ASnoKaze blog

DNS ANAMEレコードの提案仕様 - ASnoKaze blog
.internal ドメインを予約する提案仕様 - ASnoKaze blog
HTTPSで接続するための追加情報を格納するHTTPSSVCレコード - ASnoKaze blog
HTTPSの接続情報を通知する "HTTPS DNSレコード" の提案仕様 - ASnoKaze blog
DNSのエラー理由を通知するExtended DNS Errorsの仕様 - ASnoKaze blog

GIGAZINE

Google Chromeは「DNSルートサーバー」に大きな負荷をかけている、その理由とは? - GIGAZINE
CloudflareやAppleなどが協力して新プロトコル「Oblivious DNS over HTTPS(ODoH)」を開発 - GIGAZINE
ブラウザの追跡ブロック機能を回避する「CNAMEクローキング」を行うサービス・企業のリストが公開中 - GIGAZINE

infoQ

GoogleがクラウドDNS転送を発表
SAD DNSの仕組み

OSDN

Google Chrome 26リリース、スペルチェック機能の強化やMac/Linux版での非同期DNSリゾルバ実装などが特徴 | OSDN Magazine

スラド

DNSのCAAリソース・レコード、使っていますか? | スラド IT

GitHub

blechschmidt/massdns: A high-performance DNS stub resolver for bulk lookups in C
GitHubがどのようにDNSインフラストラクチャを改善したか
DNSCrypt - Official Project Home Page
jedisct1/dnscrypt-proxy: A tool for securing communications between a client and a DNS resolver

Wikipedia

TSIG - Wikipedia

Twitter

HTTP

Kazuho OkuさんはTwitterを使っています 「この「本来やりたかったの」ってどういう文脈なんだろう。I-D的にはalt-svcレコードの提案が源流にあるし、http屋さんとしては、zone apexにCNAMEは元々優先順位低かったという認識(SRV系拒否してきた歴史がある)」 / Twitter
---さんはTwitterを使っています 「draft-ietf-dnsop-svcb-https くん、本来やりたかったのは “zone apexにCNAME” だったはずだけど、ESNIやらIPv4/IPv6 hintやらいろんな要求が悪魔合体して嗚呼standards body……みたいな感想のみ」 / Twitter
ゆきさんはTwitterを使っています 「@kazuho 「本来やりたかった」からちょっとずれますが、ANAMEレコードの提案仕様の議論してた話が、HTTPS(旧HTTPSVC)でカバーして解決されるって感じになったんですかね https://t.co/uGYCuRfr2W」 / Twitter
Re: [DNSOP] status of the aname and svcb/httpsvc drafts
ゆきさんはTwitterを使っています 「@kazuho リンク間違えた。が、スレッドは同じ https://t.co/YAyxfjjVjG」 / Twitter
Archive
Kazuho OkuさんはTwitterを使っています 「なぜSRV系を拒否してきたかというと、ユーザがウェブブラウズに使うHTTPは名前解決の速度が重要で、再帰リゾルバに問い合わせしたらIPアドレスが返ってこないと困るからです。だからA/AAAAを引いてた。そこに、ECHの鍵とりたいとか、QUICで話せるよとか、そういう情報を入れたいという要求が加わった」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ANAMEは、サービス解決を挟まずに無理矢理アドレス解決しようとする強引な仕様だったし、なくなって良かったんじゃないかな」 / Twitter
Kenji RikitakeさんはTwitterを使っています 「@kazuho まだ残ってたんですか…」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@jj1bdx このへんの話です」 / Twitter

Kazuho Okuさんのツイート: "オープンリゾルバが絶滅し、リゾルバはTCPでのクエリを受け付けるべきという規定が実現可能になったという背景があるのかな / “TCPだけでDNSサーバにqueryできるようになってた:Geekなぺーじ” https://t.co/vuJYimFp5T"
Kazuho Okuさんのツイート: "DNSキャッシュサーバにTCPでの応答が求められるになっただけであって、権威サーバはあいかわらずUDP-onlyでいいのよね?"
Kazuho Okuさんのツイート: "DNS権威サーバへの攻撃対策は、初見のアドレスからクエリを大量に受信し始めたら無視すれば良い #ietf97j"
Yusuke Endohさんのツイート: "https://t.co/TVeOG3Tk3j に書いてあるとおり、https://t.co/B5msekD4Um は大量の IP が割り当たっててパケットサイズでかくなるので、DNS over UDP で失敗したあと、DNS over TCP が必要になる。(続く)"
[debian-users:57972] Re: yomiuri online に接続できなくなった
Yusuke Endohさんのツイート: "なお、ツイッターが全部 https://t.co/B5msekD4Um にしてくれちゃってるけど、www付きで"www.yomiuri.co.jp”と書いたつもりでした。"
浸透いうな/伝播いうな/反映いうなさんのツイート: "@n_soda @hoshi_takanori @ReijiAbe そこがポイントです。誰も問い合わせしないキャッシュサーバは永遠に更新されることはありません。"
SODA Noriyukiさんのツイート: "「浸透の言い換えを考えているようではダメ」って、こういう意味なのね。設定変更の遅延がユーザーに見えることはほぼ防ぐことができるので言い換え自体必要ないと(もし設定ミスで遅延が生じたら、「浸透」で誤魔化さずにちゃんと謝ろうと)。 https://t.co/AtolVVuFhI"
浸透いうな/伝播いうな/反映いうなさんのツイート: "@nhhi122 技術者は素人に向かって浸透といわなきゃいけない状況を回避すればいいのですよ。それが技術者というものでしょう。そして回避ができないときはちゃんと理由を説明すべきです。"
(び)さんのツイート: "DNSでは、recursive queryとiterative queryそれぞれ定義があるので。… "
Kazuho Okuさんのツイート: "djbdns 歴が長すぎて知らないんだけど、最近だと BIND でもキャッシュのエクスパイヤを絶対時間で設定できるようになってたりするのかな。あれは浸透とは程遠い動作だと思う"
Kazuho Okuさんのツイート: "HTTPのキャッシュについて「浸透を待ってください」という人は聞いたことない。皆「リロードしてください」と言う。つまりは、DNSの場合、事前の対処法を知らないもしくは事後の対処法がないから「浸透を待ってください」と言うのだろう"
Kazuho Okuさんのツイート: "F5押しても権威DNSサーバまでクエリが飛ばないの、僕はうんこだと思ってます"
Kazuho Okuさんのツイート: "DoHではドウかなーって思ってドラフト確認してみたら、HTTPレイヤのキャッシュについてはバイパスする(がDNSレイヤにキャッシュがある場合は無理)って話になってた。まあそうだよね。DoHリゾルバがDNSレイヤでのキャッシュもってなければF5でリロードかかるし良い… "
Kazuho Okuさんのツイート: "別の言い方をすると「浸透」という単語の問題ではなく、「浸透を待たなければならない」という認知を強化する可能性の問題なのだ"
Kazuho Okuさんのツイート: "「浸透」という表現が「変更が伝わるまで待たなければならない」ことを含意するからダメなんですよ。正しく設定していれば待つ必要ないのに / “DNSで浸透って言っちゃだめなの? - @tmtms のメモ” https://t.co/bMxaRBcCzf"
DNSで浸透って言っちゃだめなの? - @tmtms のメモ
Shigeyaさんのツイート: "キャッシュされたRRがキャッシュから無くなるタイミングは、権威サーバで指定されたTTL(Time-to-live)の秒数で決まります。一度キャッシュされたRRは、そのTTLすぎるまでは「そのキャッシュでは」そのまま用いられます。だからコレを短くすれば、反映されるまでの時間は調整できます… https://t.co/c8JjRRsSXU"
Kazuho Okuさんのツイート: "DNSの上に認証レイヤを構築完了したので満足なう。これでDNSに悩まされないですむわー"
Kazuho Okuさんのツイート: "Amazon Route 53 のエスケープシーケンスはバックスラッシュ+8進数、Azure DNS はバックスラッシュ+10進数です。さて問題です。RFC 1035 に合致しているのはどちらでしょう"
Kazuho Okuさんのツイート: "DNS クイズを出したが回答がない。シーンとry"
Kazuho Okuさんのツイート: "「君のDNSサーバ、なんでTXTレコードを127バイトごとにチャンクするの? 255バイトでいいはずなのに」僕「djbdnsだから!!!!」"
Kazuho Okuさんのツイート: "細かなとこだけど、TXTレコードには文字列ではなく任意のバイナリシーケンスを登録可能です / “アプリケーションエンジニアが知るべきDNSの基本” https://t.co/G28FjQ9B4f"
Basics_of_DNS_that_application_engineers_should_know - Speaker Deck
Kazuho Okuさんのツイート: "DNSの「再帰」と「反復」の違いが話題になってるけど、そもそも何が違うの? 原典だと「recursive」にあたる単語に別々の訳語をあてて混乱してるとかじゃないよね???"
Kazuho Okuさんのツイート: "複数のリカーサが設定されている場合に、それぞれに順次問い合わせることを反復と言ってるのかな"
Kazuho Okuさんのツイート: "自己解決。リカーサが順次権威サーバに問い合わせていくことを「反復的(iterative)」と呼んでいるのか… "
Kazuho Okuさんのツイート: "「反復」問い合わせをした結果を返すことを「再帰」と呼んでいるのであって対立する操作ではない、と説明すべきなのかな"
ゆきさんのツイート: "Domain Contact Information (WHOIS) over DNS https://t.co/p4h4RXeTLq WHOIS over DNS #yuki_id"
ゆきさんのツイート: "「DNS Resolver Information Self-publication」 https://t.co/bFuxni3R35 Googleの人とICANN勢の共著。DNSどのようなトランスポート・機能に対応しているか確認できるようになる。こういうの必要よね #yuki_id"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「udp socket で source port 0(本当の0番。一時空きポートではなく)の sendto はできないが、 recvfrom はできてしまう非対称性、私を含めて well-known でない気がする。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「nsdのエラーは port 0 に sendtoして invalid argument だった。 おそらく src port 0 な不正DNSクエリを受けて、チェック無しにsendtoしてる。 nsd[...]: error: sendmmsg [0]=83.31.183.240@0 count=4 failed: Invalid argument https://t.co/sXUwRkj65n」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「報告者は port 0 に言及してるけど、作者側はロギングのみで、port 0 チェックは未対応に見える。 (ポート0なUDPパケット受信は、カーネルが弾くべきなのだっけ…?)」 / Twitter

c-ares: library for asynchronous name resolves
c-ares-1.12.0
tornado.platform.caresresolver - C-Aresを使った非同期DNSリゾルバ - Tornado Web Server — Tornado 3.2.1(日本語)
実用 BIND 9で作るDNSサーバ(5):スレーブ・サーバのゾーン転送とセキュリティ (3/3) - @IT
JPNICが管理する逆引きゾーンのネームサーバ一覧 - JPNIC
無料で安全なDNSサービスの一覧 | ハルパス
DNSで負荷分散を可能にするLBレコードの提案 - ASnoKaze blog
技術書典4で販売された「DNSをはじめよう」をフォローする感じの記事にしたい - Qiita
DNSトンネリングの手法 / A technique of DNS tunneling (#ssmjp) // Speaker Deck
Google Online Security Blog: Google Public DNS turns 8.8.8.8 years old
Alphabet、DNSクエリを暗号化するアプリ「Intra」を公開--ネット検閲に対抗 - CNET Japan

Multicast DNS

Avahi

Avahi - Wikipedia
Avahi (software) - Wikipedia
avahi-daemonを設定してDNSサーバ運用をやめた - Qiita
Raspberry PiでAvahi を使ってホスト名でアクセスする | 株式会社インデペンデンスシステムズ横浜
第216回 Avahiとローカルエリアネットワーク:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Avahi - ArchWiki
Linuxでのavahi-daemonの停止 - weblog of key_amb
[Ubuntu] Avahiのコマンド一覧 - Life with IT
avahi - mDNS/DNS-SD
どーでもいい日々: mDNS、Avahi、Bonjour
avahi-daemonのシステムログの内容について | アットマークテクノ ユーザーズサイト

Source Browser
jevinskie/mDNSResponder
RFC 6760 - Requirements for a Protocol to Replace the AppleTalk Name Binding Protocol (NBP)
RFC 6761 - Special-Use Domain Names
RFC 6762 - Multicast DNS
RFC 6763 - DNS-Based Service Discovery
Multicast DNS
Multicast DNS - Wikipedia, the free encyclopedia
IPマルチキャスト - Wikipedia
Zeroconf - Wikipedia
Zero-configuration networking - Wikipedia
TCPやUDPにおけるポート番号の一覧 - Wikipedia
DNS Service Discovery (DNS-SD)
TCP/IP環境に革新もたらすZeroConfネットワーク「Bonjour」~概要と仕組等~
形式 - マニュアルページセクション 1M: システム管理コマンド
dns-sd(1) Mac OS X Manual Page
Windows, Mac OS X, Linux間でDNSを使わずにホスト名を解決する方法:mDNS編 | 突然消失するかもしれないブログ
DNS-SD(Bonjour)をUniversal Windows Platformから利用してサービスを探す - ぷろじぇくと、みすじら。 - Misuzilla.org
Windows, Mac OS X, Linux間でDNSを使わずにホスト名を解決する方法:mDNS編 | 突然消失するかもしれないブログ (1)
OS X 10.11のDNS64らしき動きをするDNSサーバを作る - yunazuno.log

LLMNR

RFC 4795 - Link-local Multicast Name Resolution (LLMNR)
Link-Local Multicast Name Resolution - Wikipedia
Link-Local Multicast Name Resolution: The Cable Guy, November 2006
Windows管理者のためのIPv6入門:第6回 LLMNRを使ったローカル・セグメント上での名前解決 - @IT
Vistaネットワーク大解剖 - 名前解決(2)--IPv6でも使えるLLMNRによる解決手法を追加:ITpro
ASCII.jp:Windowsネットワークの名前と番号 (5/5)|完全解剖「名前とアドレス」
Web系雑記: Windowsにおける名前解決の挙動(DNS・LLMNR・NBT)
KASAGO LLMNR 図研エルミック
日々記: コンピュータ名での名前解決ができない
プロトコルについて

ICMP

本の虫: Pingプログラムの話
packet socketsを使用してパケットを送信する - ゾンビ狩りクラブ
libnetを使用してパケットを送信する - ゾンビ狩りクラブ
おなじみ「ping」コマンドの生みの親が20年以上前に開発秘話を記したブログ - GIGAZINE

ARP

internal22-265-アドレスの解決 - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
internal22-264-データ構造 - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
アドレス解決プロトコル - Linuxカーネルメモ
ARPスプーフィングしてみた - Qiita
FadisさんはTwitterを使っています 「ARPのヘッダのHardware Type、IANAのドキュメントには0x0001はEthernet(10Mb)って書かれてるけど、Fast EthernetだろうとGbEだろうと、そもそもEthernetですらさない802.11でも0x0001って言ってて、Ethernetと同じ長さのMACアドレスがあったらEthernetでいいや感が漂ってる https://t.co/XIxzAJPPzF」 / Twitter
Address Resolution Protocol (ARP) Parameters
FadisさんはTwitterを使っています 「ノードの識別にEthernetのMACアドレスと異なる形式を用いるネットワークではARPのHardware TypeはEthernetとは別の値になっていて、TCP/IP over アマチュア無線の為の規格AX.25ではノードをコールサインで識別する為Hardware Type = 0x0003が割り当てられている、と」 / Twitter

NIC

RNDIS

Android USB Tethering - Gentoo Wiki
Android テザリング - ArchWiki
Android tethering - ArchWiki
[Linux] USB Ether gadget(g_ether) の使い方等 - Qiita
Overview of Remote NDIS (RNDIS) | Microsoft Docs
[MS-RNDIS]: Remote Network Driver Interface Specification (RNDIS) Protocol
RNDIS について | WDDDC

CDC-ECM

cdce(4)
Develop
Ethernet over USB - Wikipedia
AN64465 - West Bridge® Integration to Android on OMAP Zoom II MDP:RNDIS, CDC-ECM, and Mass Storage Functions | Cypress Semiconductor

CDC-EEM

CDC EEM
DriverCore
XLsoft Corporation : エクセルソフト デバイスドライバ開発ツール : USB Communication Device Class
MCCI Windows drivers for CDC EEM
CDC EEM Subclass Architecture

CDC-NCM

USBのNCM(Network Control Model)仕様が世界標準に | 共同通信PRワイヤー
MCCI Network Control Model (NCM) class drivers
CDC: Communication Device Class (NCM)
TR-018_Ver1.0.pdf
TR-017_Ver1.0.pdf

MBIM

USB-IF、モバイルブロードバンド・インターフェースモデル仕様の提供を発表 | Business Wire
次世代Windows OSで変化する無線ネットワーク環境とファイルシステム (1) 無線ネットワーク機能をブラッシュアップする「モバイルブロードバンド」 | マイナビニュース

CDC-WMC

Support for the Wireless Mobile Communication Device Class (Windows Drivers)

ASIX

AX88772 - ASIX Electronics Corporation
AX88772B - ASIX Electronics Corporation

virtio-net

ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第3回 I/O仮想化「デバイスI/O編」
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第11回 virtioによる準仮想化デバイス その1「virtioの概要とVirtio PCI」
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第12回 virtioによる準仮想化デバイス その2「Virtqueueとvirtio-netの実現」
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第19回 bhyveにおける仮想NICの実装
virtio(vhost)の概要 - tkokamoの日記

NIC(Intel)

Intel® ICH 8/9/10 and 82566/82567/82562V: Developers Manual
Intel® 82541PI Gigabit Ethernet Controller: Specification Update
Intel® Gigabit CT Desktop Adapter Product Brief
Intel PRO/1000 GT Desktop Adapter
www.intel.com/content/dam/doc/manual/8255x-10-100-mbps-ethernet-controller-software-dev-manual.pdf
Intel® PRO/1000 PT Desktop Adapter - Overview
Intel 8254x - OSDev Wiki
download.intel.com/support/motherboards/desktop/sb/pnpbiosspecificationv10a.pdf
PCIe* GbE Controllers Open Source Software Developer’s Manual
PCI-PCI-X GbE Family of Controllers Software Developer’s Manual

NIC(Realtek)

www.cs.berkeley.edu/~kubitron/cs194-24/hand-outs/rtl8029as.pdf
akizukidenshi.com/download/RTL8019AS.pdf
www.intrasoft-spb.ru/pdf/Gigabit_ethernet_controller_RTL8169.pdf
RTL8111B_8168B_Registers_DataSheet_1.0.pdf

NIC(Broadcom)

Ethernet NIC Driver Support

NIC(Marvell)

Marvell_88E8053.pdf

自作OSに10GbE NICを移植する – Raphine Project
既存のCAT5eケーブルで2.5Gbps、CAT6ケーブルで5Gbpsを実現する有線LAN規格「IEEE 802.3bz」が承認 -INTERNET Watch
MII-RMII
Yojiro UOさんのツイート: "某NICの内部カウンターのインクリメントタイミングを決めている定格80MHzのオシレータ、しばらく計測した結果80.003MHzくらいで発振してることがわかった。<40ppmくらい。なるほど。 微妙に時間がズレる。"
Yojiro UOさんのツイート: "NIC内カウンター、クロックタイミングごとの加算値をキャリブレーションするためのレジスタがあるので、そこをほげると補正できるはず。"
Yojiro UOさんのツイート: "80MHzのオシレータが3KHzもずれていると、1クロックあたり4.6psくらいずれていく計算になる。 1秒で0.36ms。 今時の腕時計でもこんなにずれない。"
Yojiro UOさんのツイート: "昨日みてた某NICの内部クロック、個別にキャリブレーションして一晩ちょっとフリーランしておいた結果を眺めた。ずれは1/20くらいにはなったけどまだずれてる。 一秒あたり1usecくらい。 内部クロックだけの精度でさらに1/10くらいに追い込めそうな気はする。"
中村 実さんのツイート: "1/4nsってPTPの仕様上の分解能の限界だがな。一番下の桁でカウントアップしているだけじゃないかしらん? https://t.co/YPNbMUCDqo"
Yojiro UOさんのツイート: "ちなみにintel x550のタイムスタンプの時間分解能は12.5nsのはず。"
IzNoMaさんのツイート: "日本では10年前に 4ns分解能のがありました。特定のアトリビュートを持った udp データグラムにのみ打刻するタイプですね。 現時点での 250ps分解能はそのまま FPGAの性能向上を示してる気がします。^^ https://t.co/Ig78TWsA6k https://t.co/pQrSeaoihC"
ryoさんはTwitterを使っています: 「動的解析の結果謎レジスタの意味がわかった。どうやら0x80000000がRSS Enableのフラグで残りはprotocol毎のRSS ringの数(2^n)のようだ。https://t.co/gwFKqbTNei 謎数値の埋め込みやめてw」 / Twitter
aqtion-freebsd/aq_hw.c at master · Aquantia/aqtion-freebsd
技術書典6で自作NICドライバ本「ぼくらのイーサネットフレーム!」出します! - へにゃぺんて@日々勉強のまとめ
ふつうのNICでハードウェアL3スイッチング; あるいはSR-IOV switchdev modeとTC hardware offloadの使用例 - yunazuno.log
tc flowerオフロードを利用してNICハードウェア上でパケットフィルタを実施する - yunazuno.log
RustのSTM32向けイーサネットドライバを解説する(受信編) | 己の不学を恥じる
FadisさんはTwitterを使っています 「Ethernetヘッダが14バイトとかいう中途半端な大きさだから、4バイト境界に沿って読まないと性能が落ちるアーキテクチャではLinuxカーネルがEthernetヘッダの前に2バイトのパディングを挿入して、後続のIPヘッダのIPアドレス(頻繁に読む)が4バイト境界に来るようにするの頭良い https://t.co/rnP8NiiqVz」 / Twitter
ネットワークスタック内の謎の2バイトについて探る - Handwriting

VLAN

タグVLAN 設定例 | YamahaルータのタグVLAN
特集:ネットワーク構築の基本はVLANから(1):VLANの基本的な仕組みを攻略する - @IT
VXLAN(RFC7348)を学ぶ:VXLANが登場した理由、他の実装との違い、特徴を整理しよう (1/3) - @IT
Virtual Local Area Network - Wikipedia
IEEE 802.1Q - Wikipedia

キープアライブ

ハートビートとは|heartbeat - 意味 / 定義 / 解説 / 説明 : IT用語辞典
キープアライブとは|キープアライブパケット|キープアライブ機能|keep alive - 意味 / 定義 / 解説 / 説明 : IT用語辞典
ヘルスチェックとは|health check - 意味 / 定義 / 解説 / 説明 : IT用語辞典
セッションとは|session - 意味 / 定義 / 解説 / 説明 : IT用語辞典

AirPrint

IPP

Internet Printing Protocol - Wikipedia
Internet Printing Protocol - Wikipedia, the free encyclopedia
IPP ‐ 通信用語の基礎知識
IPP 1.1: Model and Semantics Main
williamkapke/ipp: Internet Printing Protocol (IPP) for nodejs
RFC 8010 - Internet Printing Protocol/1.1: Encoding and Transport
RFC 8011 - Internet Printing Protocol/1.1: Model and Semantics
FadisさんはTwitterを使っています 「PAPPL 1.0のRCが出たらしい。PAPPLは従来CUPSなどで使われていたgutenprint等のプリンタドライバをバックエンドとして、IPP Everywhereを喋るデーモン。最初からIPP Everywhereを喋るナウいプリンタを期待するナウいアプリケーションが太古のプリンタで印刷出来るようにする。 https://t.co/BH6ztn7FMR」 / Twitter
PAPPL 1.0 RC1 Released With A Goal To Replace CUPS Printer Drivers - Phoronix

CUPS

CUPS.org
apple/cups: Official CUPS Sources
Common Unix Printing System - Wikipedia
CUPS - Wikipedia, the free encyclopedia
Line Printer Daemon protocol - Wikipedia, the free encyclopedia
Job Definition Format - Wikipedia, the free encyclopedia
2017年1月6日号 『ドライバレス』でのプリンタ対応・UWN#492・493:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Ubuntu 17.04 その8 - ドライバーがなくてもプリンターから印刷可能に・IPP Everywhereプリンターをサポートするためテストの呼びかけ - kledgeb
3Dプリンタに対応した「CUPS 2.1」リリース | OSDN Magazine
印刷システムCUPSが15周年、最新版となる「CUPS 2.0」をリリース | OSDN Magazine
Apple傘下で開発が進められているUNIX向けプリントシステム「CUPS」、1年ぶりの新バージョン「1.6」がリリースされる | OSDN Magazine
Mantaroh@media=printさんのツイート: "CUPS ダイジェストから見る限り、1万の仮想プリンタを用意したテストを走らせてるってことね。仮想デバイスが作れる環境だとやりやすそう。"
「CUPS 2.3」リリース、新たなライセンスで提供 | OSDN Magazine
FadisさんはTwitterを使っています 「*NIXでお馴染みのオープンソース印刷システムCUPSの開発が死んでいるという話。2007年以降CUPSはAppleの下で活発に開発されてきたが、今年に入って行われたコミットは1個だけ。CUPSの主要な開発者が今年の頭にAppleを退職している事と関係しているのではないか、とされている https://t.co/Lc4ceKgQLK」 / Twitter
CUPS Printing System Open-Source Development Has Seemingly Dried Up - Phoronix
Appleによるプリンタードライバーの開発がひそかに幕を閉じていたと判明 - GIGAZINE
FadisさんはTwitterを使っています 「CUPSの今後。OSSなプリンタサーバCUPSは2007年の買収以来Appleの下で開発されていたが2019年以降開発が止まっていた。Linux Foundationが支援するOpenPrintingはCUPSをforkしてsecurity fixを行なっていたが、OpenPrintingがCUPSの開発を引き継ぐことが正式に決まったらしい https://t.co/G7BmJr8Gog」 / Twitter
OpenPrinting Now Developing Upstream CUPS, Apple Bows Out - Phoronix
FadisさんはTwitterを使っています 「00年代、USB接続の家庭用プリンタの多くは専用のドライバが必要で、それらのドライバを抱えてIPPに変換しアプリケーションにデバイス非依存のプリンタの利用方法を提供する為にCUPSは不可欠だった。しかし今日のプリンタの多くはIPP EverywhereやAirPrintといった共通の規格で印刷データをやりとりする」 / Twitter
FadisさんはTwitterを使っています 「この為CUPSはプリンタを使う為に必ずしも必要ではなくなっている。そんな事情もあってか(そもそもiPhoneから印刷する為にAirPrintを普及させた張本人である)Appleは既にCUPSの改良を続ける気は無いらしい」 / Twitter

AirPrint について - Apple サポート
AirPrint - Wikipedia
AirPrint - Wikipedia, the free encyclopedia
BonjourPrinting
Adobe Serial and Parallel Communications Protocols Specification
外出先でAirPrintに挑戦: あれやこれや備忘録

SNMP

SNMP MIB

MIBを確認するために便利なツールとか – ネットワークエンジニアが日々の出来事を語る
Windows用MIBブラウザ
SNMP Informant Standard

Simple Network Management Protocol - Wikipedia
Simple Network Management Protocol - Wikipedia
管理情報ベース - Wikipedia
Management information base - Wikipedia
net-snmp download | SourceForge.net
Net-SNMP - Wikipedia
100% recycled matsuuさんのツイート: "わかるー。接続数が多いサーバにsnmpd経由で取得しようとするとCPU負荷が悲惨なことになる。ちなみにnetstatも同様の事象が発生するのでss使おうな。 / “本当に恐ろしいsnmpd - Qiita” https://t.co/tvfn3GLPWl"
本当に恐ろしいsnmpd - Qiita

UPnP

OCF - UPnP Standards & Architecture
UPnPによるポートマップ - なぜなにTorrent

Captive Portal

Captive portal - Wikipedia
Captive Portal Problem Statementについて - ASnoKaze blog
Captive Portalとは | OSSでのシステム構築・デージーネット
Captive Portalとは | OSSでのシステム・デージーネット
Captive Portalって何? - にたまご。
Captive Portal Detectionについて - にたまご。
Captive Portal(CAPPORT) APIについて - にたまご。

MS

[MS-WINPROTLP]: Windows Protocols | Microsoft Docs
[MS-WINPROTLP]: Archive Documents | Microsoft Docs
Fadisさんのツイート: "次世代VPN WireGuardの人がWireGuardをWindowsに移植する際にマトモなIPパケット直書きAPI(所謂TUN)がなくて困り、Windows用のTUNを作ってしまったらしい。で、これが他のソフトウェアでも有用という事でWireGuardから切り離されてオープンソースで公開されたのがWinTUN https://t.co/8xC9Em74U3"
WinTUN: Windows Finally Gets A Good TUN Driver & It's Open-Source - Phoronix
ASCII.jp:ケーブル直結で設定なしでもWindows機の間で通信可 自動IPアドレス割り当て「APIPA」解説 (1/3)|Windows Info

スライド

Seccamp 2016 チューター成果報告
ネットワーク超入門
SAI ちょっと調べてみた - Speaker Deck
詳解 Reliable UDP - Speaker Deck
「ネットワーク図」のモデル化とモデルを起点にした自動化の可能性 / onic2018 - Speaker Deck
作って理解するWireGuard - Speaker Deck
L2 WireGuard - Speaker Deck

POSTD

Pingの発展版 : httping, dnsping, smtpping | インフラ・ミドルウェア | POSTD

Qiita

ネットワークキャプチャデータを見る時のTips - Qiita
SLICECAP: PCAPファイルの分割並列処理 - Qiita
coturn使ってみた - Qiita
インターフェース名&PCIe BDF名を調べる(Ubuntu 16.04) - Qiita
Kazuho Okuさんのツイート: "Destinationの定義もRFC1122の定義も、ホスト間の通信で0.0.0.0を使えない、と言っているだけで、ローカルホスト内での宛先として使うのは良いのでは? / https://t.co/8scijvjgFl"
0.0.0.0にはアクセスしないこと - Qiita
Kazuho Okuさんのツイート: "RFCの解釈論はあまり意味がないんだけど、この場合、宛先の有効性の定義について「デバイス間の」というのは意図して書かれたんだろうし、1122にも同じ限定があるし、それは実際のソフトウェアの動作とも合致するんでしょ?"
お盆休みにIEEE Ethernet規格(英文:個人利用無料)を読もう。1日1000ページ目標。 - Qiita
同期通信(synchronous communication)って言わないで! - Qiita
WebCodecsで、簡易NWエミュレータ作ってみた - Qiita
DID Specifications 読み進めガイド - Qiita

GitHub

ASCII Header Generator

Protocol | An ASCII Header Generator for Network Protocols
luismartingarcia/protocol: An ASCII Header Generator for Network Protocols

Mosh

Fadisさんのツイート: "sshはtcpで通信するから回線品質が悪かったり、接続元が変化したりするモバイルデバイスから使うには厳しかった。そこで「udpで正しく復号できる暗号を投げてくる奴は正しい通信相手だ」でセッションを管理するのがモバイルのためのシェル Mosh https://t.co/r0L87Svo9s"
Mosh: the mobile shell
mobile-shell/mosh: Mobile Shell

Dripcap
networkprotocol/netcode.io: A simple protocol for creating secure client/server connections over UDP
FRRouting/frr: FRR - The FRRouting Protocol Suite, forked from Quagga
keiichishima/slicecap: The Slicecap utility slices a large pcap file into small pieces and hands over them to sub process in parallel.
ldcsaa/HP-Socket: High Performance TCP/UDP Socket Component
t6x/reaver-wps-fork-t6x
Tylous/SniffAir: A framework for wireless pentesting.
yarrick/pingfs: Stores your data in ICMP ping packets
kcp/README.en.md at master · skywind3000/kcp
FadisさんはTwitterを使っています 「libuinet: FreeBSDのカーネルのネットワークスタックだけ剥がしてユーザ空間のライブラリにしたやつ https://t.co/ouXKHr5mcX」 / Twitter
pkelsey/libuinet: a library version of FreeBSD's TCP/IP stack plus extras

Wikipedia

Resource Reservation Protocol - Wikipedia
Wake-on-LAN - Wikipedia, the free encyclopedia
媒体アクセス制御 - Wikipedia
ディープ・パケット・インスペクション - Wikipedia
hikaliumさんはTwitterを使っています: 「spanning tree protocolは必要な場合を除いて切っておいた方がいいなというのを体感した(物理的に繋いでから通信可能になるまでの時間が全く違った)。」 / Twitter
スパニングツリープロトコル - Wikipedia
帯域制御 - Wikipedia
帯域幅調整 - Wikipedia
トラフィックシェーピング - Wikipedia

Twitter

その他

じとめすきーさんはTwitterを使っています: "VLANつながらないところ見つけたのでWiresharkでパケット眺めてたらIOデータの機器からプロトコル0x8899のパケットが大量に出てた.調べてみたらループ検知用のパケットらしい."
なぎせ ゆうきさんのツイート: "1byteが8bitとは限らないので1octet(オクテット)と表現しないと正確じゃない、みたいな話じゃないかしら。 でも、多分技術的観点での厳密さという事情より数字を大きく見せたいという理由が強そう https://t.co/qrDWGntJMq"
辻村 伸太郎さんのツイート: "個人的にはbits/sとByte/s、生まれが違うから別の方がしっくりくるんだけれども、ここまで物理層が世の中から隠蔽された(いい意味で)の中ではByte/sを一般的に使い回す方が間違い無いのかな?というような気もするなぁ…"
豆債務超過さんのツイート: "bits/s と Bytes/s を混在させるとネットワーク屋さんがキレる"
Rockridgeさんのツイート: "Fx49:TCPウィンドウのサイズを原則としてOSの設定に合わせる一方で、Windows XPは128KB、Vista以降は512KBとした。 / “1135104 – windows upload speed limited …” https://t.co/NXbdvYY5A0"
勝(まさる)さんのツイート: "netmapとDPDK、パケットデータをゼロコピーでユーザプログラムからアクセスするという点だけ見れば似ているのだけど、それを実現する方法が違う、ということですね。"
研究千年牛酪情報保管庫菩薩さんのツイート: "世界のWebDav実装最悪だな…って言いたくなる感じのコードのところです(そして, いまつなぎたいところはこれでも動かない… https://t.co/7gLPqo3cV2"
rclone/types.go at master · ncw/rclone
Kazuho Okuさんのツイート: "僕のまわりのサーバ屋さんだとnetmap一択な感じなんだけど、ツイッターの日本語界隈だとdpdkの話ばかりなのは、なぜなんだろうと思ってる"
Hiroki Satoさんのツイート: "netdb.hにあるstruct addrinfoのメンバ変数の順番がPOSIXとRFC2133で違ってるのはどうしてなのか、誰か理由を知っていたら教えてください。調べた限りでは*BSDはF, NがRFC, OがSUS, SolarisはRFC, LinuxはSUSになってるもよう。"
Hiroki Satoさんのツイート: "FreeBSDのgetaddrinfo(3)のmanpageはSUSの原稿を許可もらってそのまま入れたのだけど、そのせいでずーっと実装と違う順番の構造体定義が書いてあったようだ。macOSもFreeBSDから持って行ってるので同じ間違いが。"
SODA Noriyukiさんのツイート: "NetBSDにも同じ間違いがあった。 この変更が入ったのは FreeBSD: https://t.co/oJUD2d5BO1 NetBSD: https://t.co/R3bEk73zqy なので KAME Project / WIDE Project に知ってる人がいそう。 Solaris 9 は実装もmanもRFCと同じだった。 https://t.co/VMItWtp1lP https://t.co/ln9xVB3kPI"
神明達哉さんのツイート: "RFCとPOSIXでメンバの順番が違うのはなぜか、についてですか?うーん、わからないですね…basic APIドラフトの著者がOpen GroupとのリエゾンみたいになってPOSIXに取り込んだ、という経緯だと記憶してますが、その間のどこかで順番が変わったけど誰も気にしなかった、くらいが実情かもしれません。… https://t.co/kbOBUBxzSo"
神明達哉さんのツイート: "もしかするとOpenBSDの誰かがPOSIXへの取り込み作業に絡んでいたとかかもしれないですね。あるいはPOSIXのドラフトが途中で公開されててそれを参照したとか。まあすべて推測でしかないですが…いずれにせよ、2003年のRFC3493でも違ってるままなので「誰も(大して)気にしなかった」ということでしょう:)… https://t.co/lK2LOKHcbY"
西塚 要さんはTwitterを使っています 「なぜMTUが1500byteか。それは80年代のケーブル上の電気信号の制約に遡る。しかし今となっては、どれだけ通信が無駄になっているか。この人の記事はいつも面白い。 https://t.co/I7ttPsRoXr」 / Twitter
Ben CoxさんはTwitterを使っています 「"Why is the MTU of Ethernet 1500 bytes?" A question I asked myself a few nights back and could not find a quick response to. So after many days in a rabbit hole I present: --- How 1500 bytes became the MTU of the internet https://t.co/7s2zFxdQHV https://t.co/gJsYv6LgJg」 / Twitter
How 1500 bytes became the MTU of the internet
にゃははー仙人さんはTwitterを使っています 「@uchan_nos @TumoiYorozu 原則じゃない理由としては大体のfirewall実装がpentalobe(プロトコル、送信ip、送信port、受信ip、受信port)を記録してステートレスにnaptを管理するので、それに一致しない場合は落とされます。これはUDPにも同じ実装ができるので、強めのfirewallでは落ちる場合があります」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 tapデバイスをオープンしているプロセスは、tapデバイスに書き込まれたパケットを受信します。ip route show すると 10.0.0.0/24 宛のパケットは tap に書き込まれるようになってるはずで、自作プロトコルスタックに(OSのプロトコルスタックがtapに書き込んだ)10.0.0.2 宛のパケットが届きます。」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 10.0.0.1 宛のパケットはOSのプロトコルスタックが処理するので 10.0.0.1 に対する ARP や ping はOSのプロトコルスタックが応答します(自作プロトコルスタックにはパケットは届きません)。」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 tapは仮想Ethernetデバイスなのでtapに書き込まれたパケットは(見えないケーブルを通じて)何処かに送られていきます。その "何処か" がtapデバイスをオープンしているプロセスです。」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 そのプロセスが 10.0.0.2 宛のパケットだけを処理するなら 10.0.0.2 というノードが存在するように見え、10.0.0.3 や 10.0.0.4 宛のパケットも処理するなら 2台、3台のノードがtapデバイスの先に存在する、というようにOS側からは見えます。」 / Twitter
おしぼり(2月18日15時半面談)さんはTwitterを使っています 「@pandax381 &gt; ip route show すると 10.0.0.0/24 宛のパケットは tap に書き込まれるようになってる これはip addr add 10.0.0.1/24 dev tap&lt;num&gt;した時に自動的にそのようになるのでしょうか?(僕の理解が浅く、コマンドの仕様なのかIPアドレスの概念的に当然そうなるものなのか分からないです・・)」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm はい、その通りです。デバイスにIPアドレスを設定したタイミングで同じサブネット宛のパケットがそのデバイスから出力されるようにルーティングエントリが自動で追加されます。 microps だとこの辺でやっている処理です。https://t.co/D9ECE96QBV」 / Twitter
microps/ip.c at rebuild · pandax381/microps
おしぼり(2月18日15時半面談)さんはTwitterを使っています 「@pandax381 やっと理解できました・・!!本当にありがとうございます🙇🙇 pingで10.0.0.2に届くARPパケットの送信元が10.0.0.1なのは、仮想Ethernetデバイスとして振る舞うtapデバイスから10.0.0.2のノードへパケットが転送されているからという認識で合っているのでしょうか?(何度もすみません)」 / Twitter
YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm はい、その通りです👌 tapデバイスをオープンしているプロセスがARPリプライを返せばOSのプロトコルスタック側からtapの先にノードが存在するように見え、なにも返さなければ存在しないように見えます。 なお、ARPのリプライやEthernetヘッダのMACアドレスは任意の値でも動作します。」 / Twitter
FadisさんはTwitterを使っています 「DPDK、Linuxのtapに対してパケットを喋れるから、実は蟹のNICでもDPDKを動かせないことはない(性能が出るとは言っていない) #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「VM上でDPDKするときはCPU pinningしておかないとエミュレータがCPUを剥がしにくるのか… #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「iperfで計測するとそこでLinuxの限界にぶつかるので計測する側もDPDKw #kernelvm」 / Twitter

エンドポイント

Kazuho Okuさんのツイート: "「endpoint: Either the client or server of the connection.」(RFC 7540 section 2.2.)はじめ、サーバを含む用例はいくらでも思いつくけど、積極的に「クライアントのみ」をendpointって呼んでる用例はあるのかしら… https://t.co/N5bU8oaJSJ"
徳丸 浩さんのツイート: "エンドポイントという用語はクライアントPCやスマートフォン等の端末のことで、サーバーは含まないと思っていたのですが、用例によってはサーバーも含むようですね。皆様の「語感」を教えてください。エンドポイントという用語は、サーバーを含む or 含まない?"
Kazuho Okuさんのツイート: "ある外来語を特定の文脈でしか見たことのない人が、その語本来の意味が何か推測できない場合、その特定の文脈での用法でしか使わないものと勘違いすることはあるんだろうなとは思うけど"
Shigeki Ohtsuさんのツイート: "RFC7540(HTTP/2)ではサーバを含むと定義しています。 "endpoint: Either the client or server of the connection." https://t.co/gLLMdIOZrm https://t.co/rtXWQ3WIGm"
RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)
Shigeki Ohtsuさんのツイート: "RFC8446(TLS1.3)でも同じ定義ですね。 https://t.co/wmDVJqlFac"
RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3

sendmsg() / recvmsg() で他プロセスに fd を送信

るくすさんのツイート: "本来はrlimitに引っかかってソケットは一定数しか作れないのに、socketpairを親子で再帰的に作って、子プロセスでcloseした後sendmsgで親に閉じたfdを渡していくというのを繰り返すと、好きなだけソケットが生成できるという仕様があるらしい。 すごい"
SODA Noriyukiさんのツイート: "UNIXドメインソケット使ったこの機能、4.2BSDくらいで入った筈。 自分はファイルサービス用デーモンがクライアントと同じホストで動いてる場合、クライアントに fd 渡してクライアントプロセスが直接バックエンドで管理されてるファイルに書き込んだりする機能とかで使ってるなあ。 https://t.co/HUosUNlBSk"
るくすさんのツイート: "File descriptor passing with sendmsg(2) and recvmsg(2) over Unix domain socket https://t.co/OUWgZVEkgd え fdってソケットのCMSG使ったら送信できるのか"
SODA Noriyukiさんのツイート: "OSがもともと提供する権限機構とは別の自分で定めた方式で権限委譲できて大変便利ですよね。 https://t.co/XIkZpw3jjt"
AoiMoeさんのツイート: "デスクリプタパッシング、setuidビットを立てたヘルパー実行ファイルと組み合わせると便利"
SODA Noriyukiさんのツイート: "ちなみに 4.3-Renoで API が変ってます。昔は struct msg_control に msg_control メンバーがなくて、代わりに msg_accrights があった。Stevensの「詳解UNIXプログラミング」第15章に解説アリ。SVR4は古いAPI。"
るくすさんのツイート: "@uchan_nos ん まずfdはシステムワイドなstruct fileへのポインタなので、特に違和感なく出来ると思いますよ。sendmsgの場合は受信元でfdが変わりますが、これは単にfork時に引き継がれたfdと区別するためなのかなと推測します。"
るくすさんのツイート: "@uchan_nos ああ URL先を見て頂けると書いてあるんですが、sendmsgの場合は単にFD番号を送っているのではなく、FDを開き直して新しいFDを送ってます。(4,5です) カーネルがよろしくやってるのかと。"

users

@mhiramat

まさみさんは語りたいさんのツイート: "loopデバイスは一応drivers/blockの下にあるからブロックデバイスとして認識されるはずなのか。"
まさみさんは語りたいさんのツイート: "未だout-of-treeのWifiドライバも多いんですよね・・・。… "
henrichさんのツイート: "freeではない(OSSではない)firmware blob提供してるベンダーに言ってもらわないと、どうしようもないんだな、これが。あるいはunofficial image使う。… "
denden2501@ゴーゴーさんのツイート: "頼むからぁ debian さぁ Wifi くらい自動認識しろよ…… "
まさみさんは語りたいさんのツイート: "GPUでRAIDコントローラのロジックを実行させた上で、他のポートにつながった複数のNVMeに対してRDMAをする、というのはもうありそうなんだけど見つからない。"

@shirouzu

histric-1

SHIROUZU(白水啓章)さんのツイート: "linuxのtcコマンドのように、NICに latency / jitter を設定できないかな…netshとかにあるといいのだが。試しにWSL上のtcを使ってみたが、Cannot talk to rtnetlink: Operation not supported となった。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "40G NIC同士の直結転送で転送レートが波打つ(綺麗に規則的に)原因が今のところ謎…。 10G NIC同士だと、綺麗に10Gbps近隣で安定。 また単独動作だと、PCIe*2なSSDアクセスで48Gbps、RAM-Diskで80Gbpsで安定。 割り込み&上位層までのコピー・結合コストあたりか。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Mellanox 40G NIC、UDP sock 3つを投げっぱなしでようやく、40Gbps達成!(笑)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "udpでのwritev(iov)相当は、sendmsgもしくは(udp_sockに)connectを掛けた上でwritevと。 Win系だとIOCPとRIOの組み合わせになるのかしらん?(要調査)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gb NICのWin10Pro同士で、FastCopyでの転送実験。 ほぼ10Gbpsまで速度が出る。 ジャンボパケットOFFだと、6Gbps前後に速度低下。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "(少なくともL2レイヤでは)ジャンボフレームは自動選択できるようにならないものかしらん。 (この記事ではDIXフレームにサイズフィールドが無いので…とあるが本当にこれが理由なのか、やや疑問に思うところも) https://t.co/wgrieGFGJo"
【10GBASE-T、ついに普及?】10GbEでは「Jumbo Frame」が効果的、1Gとの混在環境ではMTUサイズに注意【期待のネット新技術】 - INTERNET Watch
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gb高レイテンシ環境を作るには、10Gb NIC2枚刺しPC(Linux)を調達してブリッジさせるのが一番良いかな。 次はCoffeeLakeではなくて、Ryzenマシンにしてみよう。 (satさんのおかげか、最近は不安定という話が聞こえてこない)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10G NIC2枚刺しにするか、10G dual-port にするか、微妙に迷い中。 PCI-E Gen3とGen2で結構な価格差がある様子。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "新しいPCのための部材発注が終わった。 10GブリッジなLinuxマシンとして動作させることがメインなので、検討した結果、 i3-8100 という選択になった。(グラボなし)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今回のNIC は Intel X540-T2 という 10Gb dual port に。 ASUS 10G のJumbo Frame最大は約16KBだったが、Intelは15.5KBと書いてある…X540-T2をブリッジで使うなら、全てを9KBで統一した方が安全かな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "今のところ、ブリッジモード + tcコマンドで、結局10Gpbs出ない可能性が一番気になる点だが、さてどうなることやら。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NVR500で、NAT descriptorを2つ定義した上で、ip route gateway ... filter ... gateway filter という形で、1G回線と100M回線をsrcのipaddr範囲で使い分けるようにしてみる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2用Linuxドライバは自分でmake install。 すると ixgbe.ko がインストールされ、(念のためrmmod ixgbeした後)modprobe ixgbe とすれば、dmesgに enp2s0f0: renamed from eth0 等と出るはずと。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxで10Gbitなブリッジを作る件、目論見通りに動作。 Win10 -- Linux(Bridge) -- Win10 という経路で、FastCopyで転送実験した時の模様。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ブリッジに遅延を入れた場合のSMBの速度変化。 10ms - 10.0 Gbps 50ms - 2.5 Gbps 125ms - 1.0 Gbps 250ms - 0.5 Gbps"
Shirouzu Hiroaki(白水啓章)さんのツイート: "パケットロスを0.1%でも入れると、125ms latencyで 20Mbps ~ 200Mbpsで波打ちつ。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2 の dmesgメモ。 ixgbe: Multiqueue Enabled: Rx Queue count = 4, Tx Queue count = 4 XDP Queue count = 0 ixgbe: PCI Express bandwidth of 32GT/s available ixgbe: (Speed:5.0GT/s, Width: x8, Encoding Loss:20%) ixgbe: Intel(R) 10 Gigabit Network Connection"
Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gbps相手だと1.5GB/sec程度の性能があれば十分だけど、できれば3GB/s程度のストレージを用意したいところ。 (ピーク速度3~6GB/s出る環境はあるものの、持続するのは15GB程度の領域までなんだよなぁ…)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで10Gbps NIC 経由100GBファイルコピー。 結果は80.0秒、ネットワーク転送レートは 9,898.6 Mbpsという結果。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "5MB程度の大量をネットワーク越しに処理する場合、(少なくともSSD同士なら)並列処理した方が明らかに速い。 Read/Writeと違って、CreateFile/CloseHanldeには非同期処理が無い、という点が大きいかもしれない…まだ探求すべき点は結構あるなぁ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ジャンボフレームOFFでも、ほぼ10Gbps出るように。 (前回は片側がRAM-Diskだったため、(CPU全体では余裕があったが)1コアの天井を打っていた可能性…あとで確認しておこう。今回は両側でM.2 SSD)… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "実験メモ。AES128CTR暗号化、CoffeeLake-S世代(3.6GHz)で1.5GB/s、さくらVPS東京(Xeon E5-2650 2.60GHz)で 698MB/s、さくらVPS大阪( Westmere E56xx/L56xx/X56xx)で 534MB/s。 いずれもAES処理に1コア使い切り状態で。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最新CPUで複数コアを使えば、10GbpsネットワークでのAES-CTRがギリギリこなせるレベルかな。GCMになると厳しいかも。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NVR500のDHCPD、ログ出力が頻繁に出て(抑止方法もない)、他の大事なログが埋もれてしまうため、自宅サーバ側に isc-dhcpd-serverを立てた。 ただ、ISCとしては isc-dhcp よりも kea dhcp server が一押しらしい。 (リース情報をテキストファイルではなく、PostgreSQL等に格納するらしい)"

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの速度調整、そこそこ低コストで妥当なロジックを思いついた。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "動作中時間 T が総時間の R%(=r) になるよう、スリープ時間 S を計算する、という中学レベルの方程式を計算した。 結果、S = (T - rT) / r となった。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、OS側バックグラウンド処理があると過剰に処理が進むし、シークの連続性が失われることで過剰に遅くなることもありえて、純粋なSleepでの速度調整というのは、もともと無理があるけれど。 (実際に全力writeして最高速度を求めた後に、最高速度*rへ調整しない限り)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2(10G*2port)はPCIe Gen2なので8レーン仕様だが、X550-T2はGen3なので4レーン仕様。 20Gbps以上を非サーバ系マシンで使う場合、Gen3対応でないとPCIeレーン数不足になりやすいので気をつけないと。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 + ASUSの10G NICで、1.5KのUDPを大量に送り付けられると(受信プロセスは無くとも)、その間フリーズしてしまう。(マウスすら動かない) Linux + Intel X540だと、そんな現象は起きないので、OS or ドライバの作りの問題かしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "特定コアで処理しようとして固まっている印象なので、RPS/RSSをサポートしていないという話? なお、9K以上の大きなUDPパケットになると問題は起きなくなる。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(WS)+ASUS XG-C100C と Linux(4.17)+Intel X540 では、ジャンボフレームなしでも、TCP性能はあまり変わらないが、UDP受信性能が大幅に違う。(後者が良い。前者はそもそも固まる) 前者のダメっぷりはOS/ドライバに起因するのか、ハードウェアに起因するのか…面倒だがHW交換してみるかな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "azure東海岸とUDP通信すると、転送レートが飽和するのは、0.02%くらいのロス率を越え始めたとき。820Mbps前後。 ちなみに、100Mbpsでもロス率0.002%で、0%にはならない。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarm運用、10.7PB、1.1億ファイルで、5ファイルの書込後のデータ破損を検出。(I/Oエラーなし) ちなみに、gfarmのベリファイは、src読込時のテンポラリエラーも検出できるのだろうか? (そのためには、srcを2回読んでhash計算も2回行う必要あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarmでは、md5やsha1等を検証に使っているとのことだが、md5やsha1は並列演算が難しいため、速度ネックにならないのだろうか? ハッシュツリー化して並列演算対応したり、xxhash等の圧倒的に軽いhashを使う、などの構想はあるのかしらん? https://t.co/z7b9P7UEVs"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの場合、I/Oよりもmd5が速度ネックとなる事態が発生。 そこでストライプによる並列演算プロトタイプを作ったが、xxHash最適化でI/O速度を十分超えたため、まずはxxHashをデフォルトとすることで、問題解決とした。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Read I/O、Write I/O、src-hash計算、dst-hash計算、全てが独立スレッドでパイプライン的に動作させていたのだが、まさかhash計算がネックとなるとはと思った記憶。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarmの5件のデータ化け、どういう化け方をしていたのかにも興味がある。 僅かな個所のbit flipしていたのか、I/O単位で丸ごとデータ化けしていたのか等。 (FastCopyで1例だけ、高負荷でバスリセットが何度か掛かった挙句、上位にエラーを通知なしにDMA転送が数ページ欠落と思われる事例あり)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ASUS 10GNIC(XG-C100C)、UDPで大量通信するとドライバが死んだ。 昔から、安物NICはアプリ側UDP通信に弱いの個人法則。 (昔のカニドライバ、UDPでギリギリでIPフラグメントが発生すると常に受信破棄とか、Win3.1時代、UDP通信すると不安定になるベンダドライバを思い出したり)… https://t.co/0gpJ3TnR8X"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いまだに、RealTek NIC の UDPチェックサム・オフロードのバグが無くならない…困ったものだ。 https://t.co/sJKkwN9Nkt」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、ペイロードが1501~1563byte(octet)、のようにギリギリでフラグメントが発生するUDPパケットでのみチェックサムが狂い、受信先によって捨てられてしまう。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、NICをswapしても結果変わらずだった。 つまり、Windows(Pro for WS)では、UDPパケット受信 → recvfromまでのどこかで、処理が追い付かない。(TCPなら問題なし) これはLinuxのNAPI的な仕組みがないということかな? https://t.co/GE3f7qsLGf」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これを見るとドライバ依存ながら、NAPI的な処理はやっているっぽい? https://t.co/JHy3or3NLv それと Linux softirq に相当する DPC(Delayed procedure call)もあるので、なおさら謎…(存在するれどUDPで使われない場合がある?)」 / Twitter
NAPI for windows — OSR
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tss_ontap 90年代にオンライン情報処理を取ったときも、アーランやM/M/1のあたり必須知識でしたね。 (そして「トラヒック」というNTTだかJISだかの表記がずっと使われていたり)」 / Twitter

@fadis_

Fadisさんのツイート: "pub/subモデル: subscriberがtopicに参加し、publisherがtopicにメッセージを送るとtopicに参加しているsubscriberにメッセージが送られるモデル #boostjp"
Fadisさんのツイート: "いにしえのネットワークプログラミングではクライアント毎にスレッドを立てて処理したりしたけど、スレッド作りすぎるとコンテキストスイッチのオーバーヘッドが大変な事になるから非同期でネットワークI/Oしよう #boostjp"
Fadisさんのツイート: "複数のスレッドでio_serviceをrun()するとタスクの実行順序が保証されない。「参加」「脱退」「配信」をそのまま流すと脱退前に用意した配信が脱退の処理を完了した後に実行されてしまう恐れがある #boostjp"
Fadisさんのツイート: "そこでasync_writeの中でコネクション単位のキューを用意し、同じコネクションに対する書き込みは順序が保証されるようにした、と #boostjp"
Fadisさんのツイート: "RFC4614 A Roadmap for Transmission Control Protocol (TCP) TCPの拡張が多すぎて何処に何があるか分からんから「まとめ」を作りました、と https://t.co/Y0Lkfhfwe8"
RFC 4614 - A Roadmap for Transmission Control Protocol (TCP) Specification Documents
Fadisさんのツイート: "さくらVPSがPS4を自称して通信を待ち受けてたりするけど不審な者ではありません(IPoEにIPv4しか喋らないPS4のP2Pな通信を乗せるにはIPv6でVPSにVPNを張って、PS4からのブロードキャストをVPNでVPSに投げて、UPnPのパケットをそこで拾うしかなかった)"
Fadisさんのツイート: "SCTPはVerification Tagと呼ばれる32bit値をハンドシェイク時に通信相手と共有している。SCTPはVerification Tagを通信相手の識別に使える為、ソースIPアドレスを通信相手の識別に使うTCPと異なり、通信の途中で送信元のIPアドレスが変わってもセッションを維持する事が出来る"
Fadisさんのツイート: "systemdの人達がIPv4の衝突検出、IPv6の近傍検索、DHCPといったネットワークの設定をするソフトウェアに必要になる基本的な機能をライブラリ化したオープンソースライブラリを公開。その名もnettools (ifconfigとかで知られるnet-toolsとは全くの別物) https://t.co/62fDlRcciT"
Linux Is Getting New Network Libraries From Veteran systemd/BUS1 Developers - Phoronix
FadisさんはTwitterを使っています 「Linuxのネットワークまわりを網羅的に解説する為に要求される知識幅広すぎ問題( 一体幾つの輻輳制御アルゴリズムとQoSを実装してんだ。お前はIPXを、AppleTalkを覚えているか。iptablesが第四層を読んでいる、だと。そもそもTCPがでかい。よーしカーネル自力でDHCP喋っちゃうぞ。Open vSw(以下略」 / Twitter
FadisさんはTwitterを使っています 「802.3adはリンク毎の帯域に基づいてパケットを割り当てる為、パケットの送受信の時刻を必要としている。ところがDPDKはNICをポーリングで操作する為ポーリング間隔が大きくぶれると正確な帯域の変化が計算できない。この為802.3ad使用時は100msに1回は送受信しろ、とドキュメントに書かれている」 / Twitter

@kazuho

histric-1

Kazuho Okuさんのツイート: "TCP_NOTSENT_LOWAT をゼロにしたら ssh がハングする問題、デバッグするためにコンソールつなぐのがめんどくさくて切り分けませんでした #spkai"
Kazuho Okuさんのツイート: "sockaddr_unがsockaddr_storageよりでかくなることがあるSolarisと、getsockoptにsizeof(sockaddr_storage)より大きいサイズ渡すとエラーを返したlinuxか。つらい #spkai"
Kazuho Okuさんのツイート: "すっごいマジレスするとTCP接続本数を増やすことでダウンロードが高速化されるのは、回線の途中で輻輳が発生している場合のみで、つまりその場合は他のTCP接続に割り振られるべきバンド幅を奪ってる。途中の回線で輻輳が発生していない場合はTCP接続1本が最速で、複数本接続すると遅くなる"
Kazuho Okuさんのツイート: "「UDPはトランスポートレイヤプロトコルではない。IPパケットを多重化するための仕組みである。本来はIPレイヤにポート番号が入っているべきだった」 #ietf96j"
Kazuho Okuさんのツイート: "snd_wnd と snd_cwnd と inflight を一度に取れる OSX 最高!他のOSは全部イマイチ、という結論になりつつあるw"
Kazuho Okuさんのツイート: "パケット単位でコンテクストスイッチが必要になるTCPサーバで、カーネル内にTCPスタックがあることがオーバーヘッドになるというのは昔からある話であり、一方でそのようなアプリはあまり多くない"
Kazuho Okuさんのツイート: "そして、パケットよりも小さいメッセージを大量にやりとりするシステムでは、TCPスタックの位置を寄せることよりも、各エンドポイントで複数のメッセージをとりまとめ、少数本のTCPストリームに多重化するほうがパフォーマンスが稼げる。なぜならパケット数が減るから"
Kazuho Okuさんのツイート: "というわけで、僕は、パフォーマンスの観点からはユーザランドTCPに懐疑的です"
Kazuho Okuさんのツイート: "寄せるとしたらユーザランドに寄せるべきですし、実際quic対応でトランスポートの独自実装を進めてますね https://t.co/ZTm4PyhnEj"
Kazuho Okuさんのツイート: "“c - Linux: Can Recvmsg be used to receive the IP_TOS of every incoming packet - Stack Overflow” https://t.co/XdY35puqSg"
c - Linux: Can Recvmsg be used to receive the IP_TOS of every incoming packet - Stack Overflow
Kazuho Okuさんのツイート: "トランスポートにおいて「path」がIPアドレスの組を指すのか、4-tuple(ポート番号を含む)を指すのかは形而上の議論のあるところだと思うけど、個人的には「address validation」あたりの用法がIPアドレス「とポート番号」を指して「アドレス」と呼んだりするので諦めてる"
Kazuho Okuさんのツイート: "2RTTくらいの遅延を許容できるならFEC使わない方が帯域増えてうれしいよねという基本的理解"
Kazuho Okuさんのツイート: "そろそろ日本語がやばいというか、congestion controlの日本語訳が輻輳制御なのはわかっても、loss recoveryの日本語がわからない"
Kazuho Okuさんのツイート: "再送制御と呼ぶような気がしてきた"
Kazuho Okuさんのツイート: "微細化が壁にぶちあたりつつある影響の話、インターネットプロトコル屋さんからすると、光の速度はずっと不変だし、速くなるCPUと広がるバンド幅をより上手に使いたいという要求は今後もかわらないでしょ?という感じな気がする"
Kazuho Okuさんのツイート: "再送制御の応答性に対する要求というのは、昔から一貫してあるもので(なぜなら光速は不変だから)、インターネットのバンド幅の拡大に伴いレイテンシがボトルネックになったというのとは全然関係ない話ですよ"
Kazuho Okuさんのツイート: "5GだとRTTの変動が激しくてトランスポートがパケロスと誤認するという話。おもしろい。この資料公開されるのかしら #html5j #html5j_h"
Kazuho Okuさんのツイート: "うーん。ちゃんと考えると、単なるRTTの増大をQUICがパケロスと誤認することはないんだよね(リオーダーが絡むとありうる)。BBRが誤解するのはわかる。再送・輻輳制御のチューニングとしては今後課題になるんだろうなぁ"
HTTPP and 5G fixed1
Kazuho Okuさんのツイート: "TCPの場合は、再送制御でロスを検出したらCWND縮小してたけど(そののちにspuriousだと判断したら拡張)、QUICはspuriousの区別ができるので、ロスが確定したタイミングでCWND縮小するという違い"
Kazuho OkuさんはTwitterを使っています: 「相手が何も送ってこないならwrite直後にcloseしていいし、readがゼロを返すのは相手が書き込み側をshutdownした時」 / Twitter
Kazuho OkuさんはTwitterを使っています 「16KBはだいたい妥当なイメージだけど、L1$を全部上書きしちゃわないかは気になる」 / Twitter
Inada NaokiさんはTwitterを使っています 「OSのソケットバッファからユーザーランドの受信バッファへのコピーするときのバッファサイズってどれくらいあれば効率良いのかな。 16KiBでもケチりすぎかな。」 / Twitter
Inada NaokiさんはTwitterを使っています 「https://t.co/E7cGucNIkI MySQLのデフォルトは16KiBなのでとりあえず今の4KiBは小さすぎる。」 / Twitter
MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.1.4 サーバーシステム変数
Kazuho OkuさんはTwitterを使っています 「pipeだとすると両プロセスは別コアになって並行動作するからそれぞれのプロセスにおけるワークセットサイズ問題になるんだろうか / https://t.co/15H57eIxNy」 / Twitter
go-sql-driver/mysql のバッファサイズが4KiBなのは小さすぎる?? - methaneのブログ

Kazuho OkuさんはTwitterを使っています 「会社ブログのネットワークパフォーマンス記事、自前のUSBイーサネットアダプタで書いた私がとおりますよ https://t.co/ybtQa2m56t」 / Twitter
Can QUIC match the computational efficiency of TCP? Our research says yes. | Fastly
Kazuho OkuさんはTwitterを使っています 「必要な時に必要な機材にアクセスできることは重要だけど、デチューンした環境を使えば済む話ってのは、いっぱいある」 / Twitter
Kazuho OkuさんはTwitterを使っています 「ただ、これは性能改善のための指標がほしい開発側の論理なので、普段、容量設計のために絶対値を求めがちな運用側の人に言うと、ぽかんとされることがある」 / Twitter
Kazuho OkuさんはTwitterを使っています 「WebTransport はともかく、本格的にやるならTCPよりQUIC勉強したほうが良いのは間違いないと思う。TCPは歴史的事情から開発コストに対して得られるメリットが小さいが故にメジャーなプレイヤーがQUICに移行したわけで、じゃあ今後誰がTCPに投資するの、という」 / Twitter
VさんはTwitterを使っています 「WebTransport / QUIC / HTTP/3 はいろいろな場面で使えると思っているので、引く手あまただと勝手に思ってます。」 / Twitter
Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「いまQUIC勉強して入れる会社ってCDN屋さんかブラウザベンダー、あと時雨堂?とか考えたけど、前職でATSのHTTP2対応パッチ書いた人たちはAppleに転職していたし、GAFAはじめ行けるところは結構あるのかもね」 / Twitter
VさんはTwitterを使っています 「いまなら QUIC を勉強して人生一発逆転だ!はどうでしょうか。」 / Twitter
小川晃通(あきみち)YouTubeでIPv6解説動画作ってますさんはTwitterを使っています 「プログラミングを勉強して人生一発逆転だ!と考える人が多いのに、TCP/IPを勉強して人生一発逆転だ!と考える人が稀に思えるのは何故なのか」 / Twitter
Kazuho OkuさんはTwitterを使っています 「一方で、パフォーマンス出るTCP+TLS自前実装するより、QUIC実装するほうが、だいぶ楽だとも思う。TCPやりたくない(やらない)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「TCPって自転車を魔改造して高速走れるようにしたみたいなもんで、自転車は作れたとしてもそこからの積み上げが死にそうなんだよね。QUICは最初からエンジン含め高速用に設計された四輪車なので」 / Twitter
Kazuho OkuさんはTwitterを使っています 「RFCのMUST,SHOULD,MAYといったキーワード、定義はRFC 2119になるけど、命令とか推奨というより、 * MUST - 守らないと問題が出るかも。出たら自分のコードを直すしかない * SHOULD - 守らないと問題が出るかも。出たら相手側に直してもらってもいい (続く)」 / Twitter
Kazuho OkuさんはTwitterを使っています 「* MAY - やってもやらなくてもいい。問題が出たら相手側に直してもらう くらいの認識」 / Twitter
Kazuho OkuさんはTwitterを使っています 「法律ではなくて相互運用性を確保するためのルールなので、問題発生時の切り分けのためのガイドラインであって、それを予め守っておけば問題の発生可能性を下げておくことができる、くらいの。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「メモ: CLOSE_WAITステートのソケット全消しは   ss --tcp state CLOSE-WAIT --kill でできる cf. https://t.co/GX00GENPQp」 / Twitter
linux - How do I remove a CLOSE_WAIT socket connection - Stack Overflow

@rui314

Rui Ueyamaさんのツイート: "OSI 7層モデルを使ってプロトコルを教えるのはやめたほうがいいんじゃないかなぁ。OSIは過剰設計で誰も使わなかったわけで、そのモデルを説明しても仕方ないというか、実際のEthernet/IP/TCPを直接普通に説明すればいいだけのような。OSIにどうマップされるかはトリビア的な… https://t.co/ftfQfxzJkr"
Rui Ueyamaさんのツイート: "もはや意味がないのになぜいまだにOSI参照モデルを使って実際のプロトコルを教えているのかというと、きちんと教える=OSIモデルを説明する、という固定観念があるだけだと思う。そろそろ自分がそう教わったから同じことをそのまま教えるというサイクルは切った方がよいような。"

@kumagi

kumagi2.0さんのツイート: "c10K問題に続きc10M問題というのがあって、コア数程度のスレッド数でO(1)なselectで適切にソケットを扱っても、ネットワークパケットをカーネル空間とユーザ空間の間でコピーするコストだけで性能がサチってCPIがガタ落ちするとかいうやつ。"
kumagi2.0さんのツイート: "1千万接続を超えるあたりで性能がサチるc10M問題にどう対処するかというと、DPDKみたいな方法でカーネルを経由せずに全部ユーザ空間でゼロコピーでやるようにするとか言ってて世の中こわいですね。"

@methane

INADA Naokiさんのツイート: "輻輳じゃなくて無線環境によってパケロスが生じるモバイルの場合はどうなんだろう?>複数TCP"
INADA Naokiさんのツイート: "無線だと、スループットはそこそこあるんだけど、遅延が大きく、パケロスも多い、っていう環境なんで、TCPの性能発揮しづらそうなんだよな。"

@KuniSuzaki

suzakiさんのツイート: "データセンターネットワーク4つ目。カーネルバイパスする高速TCPの研究は良いが、現在のTCPは複雑であり、カーネルスタックを使わないのは賢くない。特にカーネル内でTCP/IP ネットワークスタックは高速であり、問題はIOである。この問題を解決するstackmapの提案。"
suzakiさんのツイート: "Stackmapではカーネル内で静的なバッファ割り付やFile Descriptor arrayとScratchpadのデータ構造を追加し、カーネル内で高速IOを実現。カーネル内のTCP/IP スタックは再利用する。"

@marbocub

まあぼ@cubさんのツイート: "だから「数字を大きく見せたいからbpsじゃないか」みたいなモノとはぜんぜん違う。"
まあぼ@cubさんのツイート: "僕はネットワーク屋さんじゃないからキレないけど、混同されると「ああこの人は分かってないんだな」って思った後で、相互の理解の一致に至るまでのハードルの高さを感じて身構えたりする"
まあぼ@cubさんのツイート: "イーサネットなんてフレームサイズやプロトコルなどの条件を仮定した場合での表記になっちゃったら、かえって面倒だと思うの"

YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「"研究所が開発している”HOLISTIX”は、GUIでネットワークを設計(Plan)し、自動的に通信機器(ルータなど)の設定を生成、動作確認(Verify)から実際のルータへの設定反映(Deploy)までを行う集中管理ツールです" / “JANOG48 IIJ バーチャルブース | IIJ Engineers Blog” https://t.co/eCEBn7fuhg」 / Twitter
JANOG48 IIJ バーチャルブース | IIJ Engineers Blog

USB

その他

hwhack: ugenでラピッドプロトタイピング(*BSDでUSB)
『*BSDでのUSBデバイスドライバーの実装』 2003年10月18日 OFUG勉強会資料
USB-仕様 - SyncHack
USB.org - Welcome
Universal Serial Bus - OSDev Wiki
USBの基礎知識 ――パケットのフォーマットからプロトコルの詳細まで|Tech Village (テックビレッジ) / CQ出版株式会社
電子工作室
ディスクリプタ | ルネサス エレクトロニクス
FAQ 1004570 : USB HUBコントローラでTransaction Translator (TT) とはなんですか?また、"Single" と "Multi" とはなんですか? – ルネサス エレクトロニクス株式会社
Type-C、WiGig、AirFuel……:2016年に期待のPCテクノロジー“5選” (2/3) - ITmedia PC USER
現代PCの基礎知識(7):仕様書を紐解くとわかる―本当はややこしいUSB | Think IT(シンクイット)
NetBSD で USB デバイスを強制的に ugen(4) として attach したい - nikki
USB-PD Sniffer - The Chromium Projects
USB3.0のデバドラを書いてみた - livaの雑記帳
mvp/uhubctl: uhubctl - USB hub per-port power control
uhubctl/uhubctl.c at master · mvp/uhubctl
View any installed/connected USB device on your system
USB/Descriptor - SyncHack
www.picfun.com/usb02.html
エンドポイントとは | インターフェイス株式会社
USB/エンドポイント - おなかすいたWiki!
アドレスの設定 | ルネサス エレクトロニクス
USB HID クラス ‐ 通信用語の基礎知識
USB Human Interface Devices - OSDev Wiki
UEFI自作OS日記 v0.6.1 ゆ。 - 借り初めのひみつきち
Nerry さんはTwitterを使っています: 「USBマウスのブートプロトコルにはホイールのデータがないけど、通常のレポートデータの後に(規格外の)ゴミがつくことが許容されていて、実際にホイールだけ動かすと[0 0 0]のデータが飛んでくる。」 / Twitter
Nerry さんはTwitterを使っています: 「おそらくブートプロトコルモードのときはホイールのデータをマスクしていて、レポートプロトコルモードにするとゴミだった部分にホイールのデータが来ると思われる。 試した限りブートプロトコルモードでホイールデータが取れそうなマウスはなかった。」 / Twitter
Nerry さんはTwitterを使っています: 「GPDってどうもデータないときにinterrupt転送すると一瞬で0返す実装になってるぽくて、現在のXHCIドライバは一度に大量の転送するとURBが一時的に発行できない状態になるのでそれが原因な気がする」 / Twitter
Nerry さんはTwitterを使っています: 「GPD pocketがマウスに触った瞬間キーボード応答なくなる・・・」 / Twitter
Nerry さんはTwitterを使っています: 「最初のデバイスのIF 0がbootキーボードでIF 1が汎用HIDになってて、おそらくマウスを触るとIF 1のデータが詰まってキーボード側がうんともすんとも言わなくなる」 / Twitter
汎用的なBadUSB - 這いよれ Cracking Lab - Medium
WebのペリフェラルAPIに関わるセキュリティ懸念
FadisさんはTwitterを使っています 「WebHID: 特殊なゲームパッド等の標準的なAPIから扱えない入力デバイスをWebから扱えるようにするAPI。ユーザが許可した入力デバイスに対する生のアクセスが可能になる。デバイス屋さんは悪意あるWebページがデバイスのファームウェア書き換えるかもしれないから気をつけてね https://t.co/lgRifGMQ60」 / Twitter
WebHID API
FadisさんはTwitterを使っています 「で、このWebHIDが次のChromeから使えるようになる、と。まじかよ https://t.co/Gx1zWNp8Rn」 / Twitter
Chrome 86 Beta Enables Native File-System API By Default, WebCodecs Added - Phoronix
FadisさんはTwitterを使っています 「LinuxカーネルにCorsairの電源ユニットのドライバが入ったらしい。通常電源にドライバは必要ないが、一部のCorsairの電源は温度、各電源ラインの電圧、電流等の値を取るUSBデバイスが生えている。このドライバはCPUの温度センサ等と同じhwmonで、sysfsから値をとる事ができる https://t.co/fw1TjYuzux」 / Twitter
The Reverse-Engineered Corsair PSU Linux Driver Continues To Be Improved Upon - Phoronix
FadisさんはTwitterを使っています 「Linux 5.13にGeneric USB Display(GUD)ドライバが入りたがっている。GUDデバイスに向かって描くDRMドライバとGUDデバイスになりきって別のDRMデバイスに要求を流すGadgetドライバで構成され、USBデバイス側になれるLinuxマシン(RasPi4等)でUSB外付けディスプレイを自作できる https://t.co/h5x5xUF6YG」 / Twitter
Generic USB Display Driver "GUD" Slated For Linux 5.13 - Phoronix
電子工作室

USB Sniffer

Event Tracing for Windows (ETW) の トレースプロバイダーリストを取得してみる - tech.guitarrapc.cóm
Download Microsoft Message Analyzer from Official Microsoft Download Center
百害あって一利無し!のAMD USB Filter Driverの削除方法 - PC破壊日記的ブログ
フィルタドライバ入門
フィルター ドライバー
レポート22:デバイスオブジェクト
[HOWTO] フィルタ ドライバに IOCTL を送信する方法
Windowsデバイスドライバ開発入門 - 人とか機械とか
USBView の中身を見てみる - Japan WDK Support Blog - Site Home - MSDN Blogs
USBView ってなに? - Japan WDK Support Blog - Site Home - MSDN Blogs
ユニバーサル シリアル バス (USB) (Windows Drivers)
デバイス ノードとデバイス スタック (Windows Drivers)
Windows-driver-samples/usb/usbview at master · Microsoft/Windows-driver-samples
Windows-driver-samples/LICENSE at master · Microsoft/Windows-driver-samples
新しい WDK (Build 10586) と EWDK を使ってドライバーをビルドするまで | Japan WDK Support Blog
重箱の隅のデバッグ(2) – エラーの意味を探る – JAPAN Platform SDK(Windows SDK) Support Team Blog
Microsoft/windows-driver-docs: The official Windows Driver Kit documentation sources
Windows 10 と SHA-1 廃止ポリシーによるドライバー署名への影響について – Japan WDK Support Blog
Windows 10 Anniversary Update で適用されたドライバー署名の新しいポリシーについて – Japan WDK Support Blog
USBディスクリプタ解析ツール usbview | Infinitegra TechBlog

コントローラ

EHCI

Enhanced Host Controller Interface - OSDev Wiki
Enhanced Host Controller Interface Specification
Enhanced Host Controller Interface Specification: Addendum
IntelチップセットのUSBの実装がいつの間にか変わってた件 - 人とか機械とか
ドキュメント一覧 | ルネサス エレクトロニクス
japan.renesas.com/products/soc/usb_assp/download/USB102-INFO-2-01J.pdf

xHCI

Twitter

その他

Yojiro UOさんはTwitterを使っています: "@syuu1228 xhciのspecを見直してみたら冒頭からこんなに強調してるんだよね。本当に実装ないのかなあ。 http://t.co/GHUmGzchPP"
Hiroki Satoさんのツイート: "今時なら xHCI の DbC が使えるものが多いので、それで我慢するしかないですね。UARTほど単純なものではないですが。… "

@NerryN3

histric-1

Nerry さんのツイート: "USBって規格上127個までだったと思うけどxHCIのデバイススロット32とか64しかない奴が多いんだけどもしかして127個も繋げない?"
Nerry さんのツイート: "Atom系→AddressDeviceまで進む Core系→EnableSlotが無視されるまたは死ぬ"
Nerry さんのツイート: "nopは反応あるのにenable slotするとなんとも言わなくなるのがよくわからんΣ(-᷅_-᷄๑)"
Nerry さんのツイート: "qemuだとなんの反応もないけと実機だと一応通信してるのか?… "
Nerry さんのツイート: "stall errorとtransaction error😩"
Nerry さんのツイート: "USBについて詳しくなっていくほどにUSBはHIDに向いてない規格だという気持ちが強まる"
Nerry さんのツイート: "USBの抜き差し検知できるようになった。 実質1ビットの入力ポートを手に入れたヽ(•̀ω•́ )ゝ✧"
Nerry さんのツイート: "まだ解放処理がうまくできてないから挿入時にenable slotすると2回目の挿入で死ぬ。 enable slot無効化したバージョンだと抜き差し自体は検知できるよになった"
Nerry さんのツイート: "disable slotもうまく動いたʕʘ‿ʘʔ… "
Nerry さんのツイート: "ん、なんか動き怪しいな・・"
Nerry さんのツイート: "細かいバグ修正とDisableSlot対応して抜き差しできるようになったくらいで全体的には進捗微妙(´・ω・`)"
Nerry さんのツイート: "AddressDevice終わったのにGetDescriptor出来てないし、今だにEnableSlotうまく動かない機種もある(´・ω・`)"
Nerry さんのツイート: "AddressDevice終わってもまだEndPoint有効になってない?"
Nerry さんのツイート: "進捗 ほとんどの環境で割り込みとEventRingは概ね動いている EventRingの動く環境でCommandRingは動いてNopCommandも反応があるが、EnableSlotが動く環境と動かない環境がある EnableSlotできる環境ではAddressDeviceも動く TransferRingが動く環境と動かない環境がある データ転送は全滅"
Nerry さんのツイート: "進捗じゃないなただの現状整理か"
Nerry さんのツイート: "昨日の進捗は AddressDeviceでInputContextとDeviceContextを混合してた間違いを修正 ポート抜き差しの通知に対応してDisableSlotできるようになった、ただし複数回抜き差しすると不安定"
Nerry さんのツイート: "xHCIデバイスとお話できるようになるまで手順多すぎだし必要な構造体も多すぎだし禿げる:;(∩´﹏`∩);:"

histric-2

Nerry さんのツイート: "やっとGetDescriptor出来た😡… "
Nerry さんのツイート: "GPD WIN… "
Nerry さんのツイート: "1個転送失敗しとるが"
Nerry さんのツイート: "USBデバイスってDEVICEのDESCRIPTORには実質ほとんど情報がない😩"
Nerry さんのツイート: "CONFIGRATION DESCRIPTOR + INTERFACE DESCRIPTOR 見えた あと1個なんかくっついてるぽいけどなんだろ… "
Nerry さんのツイート: "21ってHID DESCRIPTORか"
Nerry さんのツイート: "xhci.c 800行あってできることがコンフィグレーションのダンプ😩"
Nerry さんのツイート: "明日はバスドライバ作れるといいな"
Nerry さんのツイート: "今日の進捗 デバイスとお話しできた"
Nerry さんのツイート: "GET DESCRIPTORできるようになったということはUSBバスに信号流せるようになったということで、やっとひとつ上のレイヤーに進める。"
Nerry さんのツイート: "xhciは複数のデバイスのリクエストを非同期に処理するけど、port status changeからaddress deviceまではevent trbで区別できるけどそれ以降の普通のUSBプロトコルの転送はtrb見ただけだと何の転送かわからない"
Nerry さんのツイート: "ひとつのリクエストを処理中は他のリクエストを受け入れないようにすれば区別が容易だけど、それは頭悪い。 デバイスごとにthread作って管理するのも大袈裟な感じがする。 fiber使うのがいいのかなぁ"
Nerry さんのツイート: "デバイスのコンフィグレーションの段階になるとひとつのdescriptor読み込んで処理してつぎのdescriptor読み込んで処理してみたいな感じになるので転送ごとに処理を区切るのは現実的ではない"

histric-3

Nerry さんのツイート: "configuration descriptorのサイズ見て読み直してるヽ(•̀ω•́ )ゝ✧… "
Nerry さんのツイート: "読み込み待ちがゴミのように適当です"
Nerry さんのツイート: "あとはendpoint descriptor見つけてごにょごにょすれば入力できそうな予感"
Nerry さんのツイート: "descriptor解析するとこうなる… "
Nerry さんのツイート: "boot interfaceしかサポートしてないHID実は多い?"
Nerry さんのツイート: "configure endpointうまくいかない"
Nerry さんのツイート: "きのうのしんちょく ホストコントローラードライバーとバスドライバーを分離した ディスクリプター読み込んでごにょごにょ configure endpointは成功しなかった"
Nerry さんのツイート: "fiber未実装なのでデバイスごとにthreadで仮実装 転送やコマンドの実行結果をデバイスに返す手段がまだない"
Nerry さんのツイート: "HIDかどうかはもう認識できてるのでHIDのポーリングはやろうと思えばできるのか?"
Nerry さんのツイート: "config endpoint動いた。 キー入力まであと一歩!… "
Nerry さんのツイート: "qemuではキー入力取れた。… "
Nerry さんのツイート: "実機ではうまくいかない:;(∩´﹏`∩);:"
Nerry さんのツイート: "なんかtimeout起こしてるぽいな。interrupt転送の仕様よく分からん:;(∩´﹏`∩);:"
Nerry さんのツイート: "transaction errorってどういうことだ:;(∩´﹏`∩);:"

Nerry さんのツイート: "じつはmoeは最初からHID前提で作ってたのでキーコード読めれば入力できる (6key対応してない手抜きだが)… "
Nerry さんのツイート: "ん、一部のデバイスがbabble error返してUSBトランザクション壊れてHIDのデータ転送まで悪さしてるのか"
Nerry さんのツイート: "babble errorどうすればいんだ…"
Nerry さんのツイート: "🤔 > A babble error occurs when the hots computer or the device receives more data than the specific maximum packet size."
Nerry さんのツイート: "しばらくほっといたらやばなってた… "
Nerry さんのツイート: "なんかdescriptorがめちゃくちゃでかいデバイスあってバスおかしくなってるみたいだけど…"
Nerry さんのツイート: "というかdevice descriptorにpacket size 64って書いてるのに9バイトのデータ読み取り失敗してどうするんだ"
Nerry さんのツイート: "きのうのしんちょく configure endpointできた qemuはget reportもinterrupt inも動いてキー入力できた 実機は動かない"
Nerry さんのツイート: "babble error解消したけど肝心のHIDがtransaction error直らん"
Nerry さんのツイート: "normal trbしか送ってないのにtransactionもくそもないのだが・・・"
Nerry さんのツイート: "HIDってクラス030000と030101と030102だけだと思ってたら意外と別のクラスのデバイスが存在してた 仕様書にも乗ってないデバイスはどうしたらいんだ"
Nerry さんのツイート: "030300番台ってHID仕様書にものってない謎デバイスなんだが…… "
Nerry さんのツイート: "うまく動かないのこの機種固有の問題ではないかと他の機種で試すと起動しないかboot keyboardサポートしてない:;(∩´﹏`∩);:"
Nerry さんのツイート: "virtual box割り込み動かんけどイベントポーリングしたらUSB認識しよった… "
Nerry さんのツイート: "試しにキーボード繋いでみたら普通にキーボード読めた🤔… "
Nerry さんのツイート: "configure endpointでちゃんと1返ってきてからのtransfer commandでendpoint not enabled error😩"
Nerry さんのツイート: "実機でデバイスとお話しするところまで行けなくてその上のレイヤーに行けない😭"
Nerry さんのツイート: "xhciドライバエミュレータではそこそこ動いてるけど実機だとうまく動かんどころかUSB接続した瞬間再起動するバグもあるので本流に乗せれない😿"
Nerry さんのツイート: "qemuでは概ね動く vboxは割り込み動かないけどポーリングなら動く ほとんどの実機でport status changeは動く(時々割り込み止まる enable slotがうまく動かない機種がある descriptorとれてendpoint設定できる機種でも読み込みが動かない"
Nerry さんのツイート: "初期のsurfaceはシリーズ違ってもキーボードコネクタ互換あったけど、同じような見た目でも結構中身違うんだな。… "
Nerry さんのツイート: "surface 3pro type coverは USB HID 03000 surface 3 type coverはUSB HID 030300 surface 2? type coverはI2C HID"
Nerry さんのツイート: "同じコネクタでUSBとI2Cが同居してる。いったいどんな規格だ"
Nerry さんのツイート: "これ、初代surfaceに繋ぐとUSBになってsurface3に繋ぐとI2Cになる・・・(RTは今試せず"
Nerry さんのツイート: "初代RTで試したら何を繋いでもI2Cになった🤔"
Nerry さんのツイート: "まとめ 初期のsurfaceキーボードコネクタはUSB HIDとI2C HIDのデュアルスタック RT系デバイスに繋ぐと基本I2C、Pro系に繋ぐと基本USBで繋がる。一部例外がある"
Nerry さんのツイート: "どうでもいいことに時間を費やした。そして久々にRT起動した。"

@uchan_nos

histric-1

OS作れないマン WalB担当さんのツイート: "xHCIのリングバッファの実装方法おもろいな。書き込みポインタが一周するたびに「周回ビット」を反転させて、その周回ビットをリングバッファの各要素に書き込んでおくらしい。読み込み側も周回ビットを独自に持っていて、周回ビットと要素のビットが等しいなら有効なデータだとして処理。"
OS作れないマン WalB担当さんのツイート: "ソフトウェア側が読み込みポインタを更新すると、xHCはそこまでの要素が処理し終わったと認識するらしい。ということは、そのメモリ位置への書き込みがコンパイラ、またはCPUでリオーダされないようにしないと微妙にバグりそうだ。"
OS作れないマン WalB担当さんのツイート: "QEMUのxCHIドライバのソース読んだら規格と全然違う実装してあってこりゃ動くわけないぞ"
OS作れないマン WalB担当さんのツイート: "CRCRレジスタ唯一有用なビットをマスクしちゃってたらそりゃ0になるわ。さらに規格で「読みだすと0」になるべきビットをマスクしてなかったり。"
ファッション自作OSマンさんのツイート: "livaさんにuioでxHCIドライバを書く際に気をつけることを教わった。それは、xHCIサポートを外したカーネルを使うということ。サポートを外しておかないとカーネルと自分のドライバが競合する。"
ファッション自作OSマンさんのツイート: "xHCIドライバをまずモジュールにしつつ、自動読み込みしないようにしておく。"
ファッション自作OSマンさんのツイート: "QEMUのxHCIドライバにNo-Op Commandが実装されてない.悲しみ."
ファッション自作OSマンさんのツイート: "自作OSのxHCIドライバに割り込みに対応する機能を追加した。これでコマンド発行から完了通知割り込みまではできるようになった。次はUSBデバイスがポートに接続されたのを検知する機能と、ポートの初期化部分を書く。"
x86-64-128さんのツイート: "xHCIのUSBSTS.CNR(Controller Not Readyビット)が0になれば大丈夫だと思っていたら,そのビットだけの検査では不十分で,USBSTS.HCRST(Host Controller Resetビット)が0になるのを待つ必要があるっぽい."
x86-64-128さんのツイート: "USBCMD.HCRSTが0になるのを待つようにしたらすこぶる快調である."
x86-64-128さんのツイート: "再設計したUSBドライバによるキーボード読み取り成功"
技術書典4 け-51 x86-64-128さんのツイート: "少なくとも「USB 3.0 設計のすべて」という書籍より,xHCIのドライバ部分の記述は具体的になっている.例えばデフォルト・コントロール・パイプのMax Packet Sizeの決定方法について,その本には書いてないが僕の本にはある."

OS開発ゼミ担当 uchan_nosさんのツイート: "昨日の調査まとめ.USBの受信が遅いなーと思っていたのは,どうやらエンドポイントのbIntervalに左右されていた.64msに1回しかポーリングしないようになっており,キーボード入力がそれよりちょっと遅いと,とたんに128ms周期になってしまい,取りこぼす."
OS開発ゼミ担当 uchan_nosさんのツイート: "作戦としてはバッファを大きくしつつ,データ量が少ない時にshort packet割り込みを発生させれば,もし1入力しかなくてもすぐ入力できるし,複数入力が待機しているときも全部入力できるかなーと."
OS開発ゼミ担当 uchan_nosさんのツイート: "MinnowBoard Turbotに搭載のxHCIって,もしかしてShort Packet割り込みが発生できない?"
OS開発ゼミ担当 uchan_nosさんのツイート: "Short Packetについて勘違いしていたっぽい.Short Packetは基本的には1パケットのバイト数がwMaxPacketSizeに満たないときに発生するのであって,私が使っているキーボードのwMaxPacketSizeは8だから,絶対にShort Packetにはならない."
OS開発ゼミ担当 uchan_nosさんのツイート: "ふーむ.すると64msのポーリング周期で取りこぼさないようにするにはどうすれば?"
OS開発ゼミ担当 uchan_nosさんのツイート: "僕が使っている外付けキーボードがポンコツなんだろうと思ってLinux機に挿したらめっちゃ快適に入力できたんで,どうやら悪いのは自作ドライバの方だ"
OS開発ゼミ担当 uchan_nosさんのツイート: "キーボードのInterrupt INに対応するTransfer Ringに事前に複数のTransfer TRBを積んでおけば取りこぼさないだろうと思ったんだけど,依然として取りこぼすな."
OS開発ゼミ担当 uchan_nosさんのツイート: "OVMFのxHCIの実装を見た感じ,どうやら1msに1回の頻度でTransfer TRBの完了を監視していて,完了してたら次のを投げる,みたいにしてる感じがする."
OS開発ゼミ担当 uchan_nosさんのツイート: "え,USBデバイスのEndpoint Descriptorに書いてあるbIntervalの値ってなんなの?参考程度の情報?bIntervalより小さな値を設定すると,ちゃんとインターバルが縮まるんだけども."
OS開発ゼミ担当 uchan_nosさんのツイート: "よっしゃ.キーボード入力の取りこぼしがなくなった"
OS開発ゼミ担当 uchan_nosさんのツイート: "英語の数式表現がよくわからないんですけど,これってどういう計算すればいいんですかね round X down to the nearest base 2 multiple of Y * 8"
OS開発ゼミ担当 uchan_nosさんのツイート: "解明できてきたけど、まだ "nearest base 2 multiple of Y * 8" が謎… "
やめるのだフェネックで学ぶC++さんのツイート: "ご参考までに、以下のコードではround~2を、2のべき乗単位に切り下げるという意味で使っているようです(floorBase2関数 : Utils.h, Utils.cpp)。間違っていたらすみません。 https://t.co/L76z73Qy2N… "
OS開発ゼミ担当 uchan_nosさんのツイート: "USBホストコントローラのIntervalに設定する値が切り捨てなのか切り上げなのかの謎は、結局完全に解決はできなかった。round downと書いてあるのを鑑みると切り捨てっぽいな、という感じだけど、英文が完全に解読できたわけではない。"
uchanさんはTwitterを使っています 「最近、UEFIのUSBホストコントローラドライバの実装を読んでるんですけど、まだ最初の方なのに知らなかったことがいくつかあって参考になりますねこれ。」 / Twitter
uchanさんはTwitterを使っています 「「いくつかのサードパーティのxHCI外付けカードは64ビットレジスタアクセスをサポートしてないから32ビット×2回で書き込みます」っていうコメントがあったりして趣深い(仕様書読んでるだけじゃ絶対に手に入らない知識)」 / Twitter
uchanさんはTwitterを使っています 「USB ドライバのデバッグをしていて、完璧ではないけどかなり前進した。以前まではUSBホストコントローラの動作を開始した直後にシステムがフリーズしていたのだけど、今はご覧の通り、正常に起動するようになった。完璧ではないと言うのは、キーボードとマウスが使えないこと。 https://t.co/MdNjxJpykY」 / Twitter
uchanさんはTwitterを使っています 「原因を完結にまとめておく。USBLEGSUP拡張レジスタにXHCの所有権を表すビットがあり,そのBIOSビットが立っていたのが原因。UEFIが所有権を持っているのにOSがXHCを起動しようとしたから処理が競合したらしい。USBLEGSUP.OSを1にして所有権を要請し,所有権がもらえてから操作したら大丈夫だった。」 / Twitter
uchanさんはTwitterを使っています 「マウスとキーボードが動かないのは,この実験用PCに謎に2つのxHCIが載っているから説。自作OSでは最初に見つかったxHCIだけを親だと思うから… https://t.co/226CDE3Qv3」 / Twitter
uchanさんはTwitterを使っています 「xHCIのCRCRに関する仕様,ほぼ同じで若干違う表現が使われてるの気になる。なんだろう? RCS: Reading this flag always returns ‘0’. CS: Reading this bit shall always return ‘0’. CA: Reading this bit always returns ‘0’. Command Ring Pointer: Reading this field always returns ‘0’.」 / Twitter
uchanさんはTwitterを使っています 「flagとbitで変えてる意味が分からない。fieldは,まあそれが1ビット幅じゃないから分かる。shallの有無もよく分からない。」 / Twitter
tamura🍺さんはTwitterを使っています 「@uchan_nos なんとなく,shallがついてると「そうではない場合がある (そうではない時は何かがおかしい)」と言いたいのかなと.flag と bit はなんだろう… RCSって0ビット目でしたっけ?であればシフト演算なしに取り出せるからflag??? bitはビットマスクで取り出す的な??? わからん」 / Twitter
uchanさんはTwitterを使っています 「@y7amura Shallについては,なるほど… flag/bitは,RFLAGSレジスタにたくさんの「hoge flag」があることを考えると,ビット0だけをflagと呼ぶ,というのは若干眉唾ですね… 分からないですねw」 / Twitter
uchanさんはTwitterを使っています 「パワポのテンプレートってほとんど作ってこなかったんだけど,ふいに作りたくなって作った。シンプルな感じで仕上がった。 https://t.co/4CZaNhl2VT」 / Twitter

@liva

Fadisさんのツイート: ".@liva_jyxHCI さんの「(USB3.0 HC)デバドラを自作してみよう」が始まります #kernelvm"
Fadisさんのツイート: "「みなさん、USB使いますよね?デバドラ書いたことありますか?」って煽ろうとしたら前回のカーネル/VMでもうデバドラ書いてる話が出てたwww #kernelvm"
Fadisさんのツイート: "USB 3.0通信速度みたいな物理的な側面が進歩として有名だけど、「USBデバイスたるもの持っていなければならない情報」が大幅に増えてソフトウェアがデバイスの事をより詳しく知って扱えるようになったことも大きいんだよな #kernelvm"
Fadisさんのツイート: "USB1.1/2.0ではCompanion Host Controllerで使用するコントローラを選択して、それぞれのコントローラに対するドライバでデバイスを叩いていたが、3.0では1.xから3.xまでの全てのデバイスが期待するプロトコルをxHCIホストコントローラが喋るようにな… https://t.co/B5TiVlRMdj"
Fadisさんのツイート: "自作OSをしていると、ネットワークサポートとUSBサポートを作らないと基本的人権が満たされない #kernelvm"
Fadisさんのツイート: "自作OSへのUSB 1.1と2.0のホストドライバの実装の経験から3.0のドライバは絶対書きたくないと思ったが飲み会で作ると宣言してしまい3ヶ月かけて実装した、と #kernelvm"
Fadisさんのツイート: "品質が心もとない自作OSの上でデバイスドライバの開発を行うと問題が起きた時どちらの問題かわからなくて開発が難航する → uio(User space IO)を使ってとりあえずLinux上でドライバの開発を行う #kernelvm"
Fadisさんのツイート: "発表者「NetBSDがやっているなら僕でもできる」 #kernelvm"
Fadisさんのツイート: "CPUいじめてSEGVしちゃうどっかの人 #kernelvm"
Fadisさんのツイート: "UIOでユーザ空間でドライバの開発を行うとlibcが使えるので開発時の生産性が上がる → そうして動くところまで持って行ってからカーネルに移す #kernelvm"
Fadisさんのツイート: "xHCIホストコントローラはUSB 3.0の速度でスループットを出せるようにインターフェスがEHCIから大きく変更されている #kernelvm"
Fadisさんのツイート: "xHCIでは接続されたデバイス毎にslotと呼ばれるリングバッファが確保される #kernelvm"
Fadisさんのツイート: "xHCIのリングバッファはバッファの最後の値をnextとするリンクリストでしかなくどのくらいの長さのループにするか等はソフトウェアレベルでコントロールできる #kernelvm"
Fadisさんのツイート: "xHCIではハブにつながっているデバイスも全てホストコントローラで面倒を見る #kernelvm"
Fadisさんのツイート: "HHKBを繋いでテストしようとしたらHHKBが後ろについているUSB端子のためにハブを積んでいてなぜかハブのドライバを書く羽目になった、と #kernelvm"
k/vm 関西#8 - Google ドライブ
liva/xhci_uio
雑記(10月〜12月) - livaの雑記帳

@t_hash425

t_hash425さんのツイート: "USB3 hubのHS部分が不定期にdisconnectされる件、いろいろやってたらFでも起きることに気付きテスト用のが当たりhubと判明した ケーブル替えたりLPMいじったりこんなに時間かけて一体なんだったのか"
t_hash425さんのツイート: "FでもIntelさんのxHCはattachするごとに空いたslotでなく次のslotを使うらしく、このhubをつないでおくとデバイスのアドレスが1ずつ増えてく Nではずっとやってると無反応になる"
t_hash425さんのツイート: "Nのxhci.cの実装だとIntelさんのxHCがctrl xferでのLINK TRBをうまく処理できないぽい Intelさん以外だと起きない"
t_hash425さんのツイート: "そういやaddr = XHCI_SCTX_3_DEV_ADDR_GET(le32toh(cp[3]))のle32tohを忘れてる big endianだと動かなさそう"
t_hash425さんのツイート: "r1.63で直したつもりのLink TRBの扱いの件が直ってなかった 前回のテストではi/f upしt確認していたが、!IFF_UPのままifconfig axe0を連射すると7回目で刺さる"
t_hash425さんのツイート: "xfer ringの255番目にLink TRBが置かれるとTDが無視されるようにみえるが(ただしIntelさんに限る)、upしてるとtick taskが定期的にctrl xferを流すので問題が隠れてしまっていたと思われる"
t_hash425 @t_hash425

@ryo_on

Ryo ONODERAさんはTwitterを使っています: "XHCI_TRB_3_EP_GET(trb_3)=1か。"
Ryo ONODERAさんはTwitterを使っています: "でも、xHCI 1.1によるとroute stringというのはSuperSpeedのために必要なものであるらしいので、HighSpeedしか扱わないのであれば必要ないか。"
Ryo ONODERAさんはTwitterを使っています: "帰りにxhci 1.1 specを読んでいたのだが、疑問に思っていたことが次々と書いてあって、やっぱりちゃんと読まないといけないと思ったのであった。"
Ryo ONODERAさんはTwitterを使っています: "紙でxhci 1.1 specを持っていたら読むのは楽だと思ったが、500 pagesはちょっと持ち歩けない。"
Ryo ONODERAさんはTwitterを使っています: "xHCI 1.1 4.10.2.3に、一応解説があるようなので読んでみる。"
Ryo ONODERAさんはTwitterを使っています: "xHCI 1.1 4.6.5 Address Deviceを読んでみる。"

EXtensible Host Controller Interface - OSDev Wiki
www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/extensible-host-controler-interface-usb-xhci.pdf
セカンド・オピニオン (345) USB 3.0の研究(72) | マイナビニュース
セカンド・オピニオン (346) USB 3.0の研究(73) | マイナビニュース
セカンド・オピニオン (347) USB 3.0の研究(74) | マイナビニュース
セカンド・オピニオン (348) USB 3.0の研究(75) | マイナビニュース
セカンド・オピニオン (349) USB 3.0の研究(76) | マイナビニュース
IDF 2013 - USB 3.1や新規格「Media Agnostic USB」などUSB関連を総まとめ (1) 2倍の転送速度を目指すUSB 3.1 | マイナビニュース
USB Type-Cのspecを少し読んだので解説する - 人とか機械とか
SkylakeではXHCI(USB 3.0)のみのサポートとなる: 98のWeblog
規格の1mを超える転送が可能に:USB 3.1 Gen2の転送距離を延ばすマルチプレクサー - EE Times Japan
ERI USB-Audio用USBを考える
【レビュー】ASUSのプロトタイプで10Gbps対応になったUSB 3.1を試す - PC Watch
【大原雄介の最新インターフェイス動向】USB 3.0 その5 - PC Watch
uio_pci_genericでデバドラを書く<その1> - livaの雑記帳
uio_pci_genericでデバドラを書く<その2> - livaの雑記帳
uio_pci_genericでデバドラを書く<その3> - livaの雑記帳
USB Memo · osdev-jp/osdev-jp.github.io Wiki
【技術書典4】USB 3.0 ホストドライバ自作入門を出します(ダウンロード頒布有) - uchan note
USB3 host driver program structure
moe の xHCI / USB 実装 - 借り初めのひみつきち
USB/xHCI インタラプト転送の罠 - 借り初めのひみつきち
最小限の USB Hub 対応 - 借り初めのひみつきち
USB3.0ドライバ開発の道 - uchan note
USB3.0ドライバ開発の道
USBキーボードドライバを作成した - 備忘録やめた

USB ASSP | ルネサス エレクトロニクス

UCSI

FAQ: Windows システムの USB Type-C コネクタ (Windows Drivers)
USB Type-C Connector System Software Interface (UCSI) driver (Windows Drivers)
USB Type-C Connector System Software Interface Specification
Winhec_USBTypeCIntroductionandImplementationinWindows10.pdf
USB 3.1 Electrical Design
USB_Type-C_challenges-jp.pdf
BIOS Implementation of UCSI
USBC000って何だ? - Speaker Deck
ASCII.jp:USB Type-Cで再スタートを切ったWindowsとUSBの関係 (2/2)|Windows Info
ASCII.jp:Windows 10とUSB Type-Cとの関係を深掘りする (1/2)|Windows Info
ASCII.jp:USB Type-Cで再スタートを切ったWindowsとUSBの関係 (1/2)|Windows Info

ストレージ

USB MASS

SCSI

SCSI command - Wikipedia
SCSI CDB - Wikipedia
SCSI Status Code - Wikipedia
Fadisさんのツイート: "SCSIコマンド、歴史的な理由で大量にあるから、自分が使うコマンドだけ使えれば良いイニシエータ側の実装は簡単だけど、多様なコマンドに備える必要があるターゲット側の実装は物量的な意味で容易ではないんだよな"

SFF-8020i/MMC-2(ATAPI)

AT Attachment 8 - ATA/ATAPI Command Set
sff8020i.pdf

USB Floppy Interface(UFI)

Microsoft Word - usbmass-ufi10.doc

マスストレージクラスコマンドセット | インターフェイス株式会社
USB mass storage device class - Wikipedia
USB Mass Storage Class Devices - OSDev Wiki
Microsoft Word - usb_msc_boot_1.0.doc
USB/Class/Mass-Storage - SyncHack
www.usb.org/developers/docs/devclass_docs/usbmassbulk_10.pdf
labo.nshimizu.com/thesis/b2003/0aet1132.pdf
実践しながら学ぶ Android USBガジェットの仕組み(11):Android USBパケットをキャプチャーし、UMSプロトコルを解析する!! (1/3) - MONOist(モノイスト)
実践しながら学ぶ Android USBガジェットの仕組み(12):Android USBマスストレージクラスのパケットを理解しよう! (1/3) - MONOist(モノイスト)
実践しながら学ぶ Android USBガジェットの仕組み(13):UMSクラスドライバを改造し、Androidを“CD-ROMドライブ”として認識させる!! (1/3) - MONOist(モノイスト)
Fadisさんのツイート: "USBマスストレージと通信するプロトコルとして古くから用いられているBulk Only Transportでは、SCSIコマンドをデバイスに投げる→コマンドにデータが伴う場合はデータを受ける|投げる→コマンドの結果をデバイスからもらう の3つの状態の繰り返しでデータを読み書きする"
Fadisさんのツイート: "USBMSがリトルエンディアンで、その上に乗ってるSCSIがビッグエンディアンで、それ投げて返って来るパーティションテーブルがリトルエンディアンなの、個々の規格には何も問題がないけどくっつけると優秀なトラップになってる"
マスストレージクラス転送方式 | インターフェイス株式会社

UASP

USB Attached SCSI - Wikipedia, the free encyclopedia
デュアルソケット・ザ・ワールド Windows 8 で USB3.0 の UASP を ENABLE(有効) にする方法
価格.comマガジン ランダムライトが約3倍高速に! Windows 8で高速化するSSDケース
セカンド・オピニオン (336) USB 3.0の研究(63) | マイナビニュース
セカンド・オピニオン (337) USB 3.0の研究(64) | マイナビニュース
セカンド・オピニオン (338) USB 3.0の研究(65) | マイナビニュース
セカンド・オピニオン (339) USB 3.0の研究(66) | マイナビニュース
セカンド・オピニオン (340) USB 3.0の研究(67) | マイナビニュース
ASCII.jp:USB 3.0対応HDDが速くなる? Windows 8でのUSBの仕組み (1/3)|塩田紳二のWindows 8 IN-N-OUT
UASPとは|USB Attached SCSI Protocol - 意味 / 定義 / 解説 / 説明 : IT用語辞典
UASP ‐ 通信用語の基礎知識
USB 3.0 Boost ‐ 通信用語の基礎知識

MTP

第653回:MTP接続 とは - ケータイ Watch Watch
メディア転送プロトコル - Wikipedia
Media Transfer Protocol - Wikipedia, the free encyclopedia
Microsoft and FotoNation Team to Support the Media Transfer ProtocolFor Wireless Digital Still Cameras | News Center
【Android】USB接続時のMTP/PTPモードを切替える方法 | TeraDas-テラダス
Media Transfer Protocol Specification
AndroidのUSB接続は説明した:MTP、PTP、およびUSBマスストレージ
MTP (Media Transfer Protocol) ‐ 通信用語の基礎知識
Download Media Transfer Protocol Enhanced Specification from Official Microsoft Download Center

PTP

画像転送プロトコル - Wikipedia
Picture Transfer Protocol - Wikipedia, the free encyclopedia
pima15740-2000.pdf
ISO 15740:2005 - Photography -- Electronic still picture imaging -- Picture transfer protocol (PTP) for digital still photography devices
PTP (Picture Transfer Protocol) ‐ 通信用語の基礎知識

Rufus - 起動可能なUSBドライブを簡単に作ろう
pbatard/rufus: The Reliable USB Formatting Utility
ブータブルUSBドライブ作成ツール「Rufus」がメジャーバージョンアップ、v3.0に - 窓の杜

ベンダ固有

FTDI

USB/Class/Serial - SyncHack
FT232R
FTDIドライバにおけるLatancyTimerについて
Linux/drivers/usb/serial/ftdi_sio.c - Linux Cross Reference - Free Electrons
FTDI Knowledgebase
uftdi(4)
Linuxで高速なUARTを使ってみた - Qiita

PaSoRi

libusb

libusb - Wikipedia, the free encyclopedia
libusb-win32 download | SourceForge.net
libusb
libusb-1.0 API Reference
libusb-1.0.18
hiro99ma blog: libusb-1.0はzadigを使うべし
libusb-1.0のメモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
平坂久門ただいま失業中: libusb-1.0でUSBデバイスのEPをR/Wするサンプルプログラム
libusb
libusbについて - Linux工作室

WinUSB

WinUSBデバイスとシリアル通信するには | garicchi.com
WinUSB (Winusb.sys) (Windows Drivers)
Daisuke Kobayashi - WinUSB で USB デバイスと通信 1 - 概要
第157号(2012年3月7日発行) 技術レポート「WinUSBを用いたWindowsアプリケーション開発」|ソフテックだより|株式会社ソフテック
WINUSBの簡単な初歩や基本的な使い方・利用方法・仕様方法・やり方 | 初めての利用方法や使用方法・初心者でも簡単 使い方ラボ
WinUSB.sys事始め/ウェブリブログ
WinUSB - AVR etc

libpafe

libnfc

NFC Tools
libnfc: libnfc reference manual
MacでPasoriでNFCカードを読んでみる(libnfcを使って) | 9ensanのLifeHack
RC-S330をLinuxで使う | 團長の小部屋
nfc-tools/libnfc: Platform independent Near Field Communication (NFC) library

libpafe
gsuica
suica_plugin
GEdy
edy_plugin

libpasori

libpasori - RC-S320操作コード
PaSoRi/RC-S320 - osdev-j (MMA)

PC/SC

NFC - Web Application Programming Wiki*
NFC/PC_SCサンプル - Web Application Programming Wiki*
スマートカード
スマートカードサブシステム
PC/SC Workgroup
pcsc-lite: API
Zinnia hacks tomorrow.
NFC 入門 | TipsZone

nfcpy

nfcpy in Launchpad
Python module for near field communication — nfcpy trunk documentation
Raspberry Pi と Sony RC-S380/P、nfcpy で NFC カードの IDm を読み取る | 傀儡師の館.Python - 楽天ブログ
nfcpyでお手軽NFC開発[1/2]
nfcpyでお手軽NFC開発[2/2]
raspberry piでSuicaの履歴の表示 | TomoSoft
Raspberry Pi 2 で NFC (FeliCa) を使えるようにする - しばやん雑記
RaspberryPiとICカードリーダ - アラのアラアラしい日記
Raspberry Pi に nfcpy をインストールする手順 - 2016年3月 私家版 : @jsakamoto
OS作れないマンさんのツイート: "nfcpyのGetting Started通りにやるだけでは、複数のsystem codeを持つNFCはうまく扱えない。on-discoverコールバックの中で、引数targetのsensf_resメンバを強制的に書き換えることで対処。"
OS作れないマンさんのツイート: "もっと単純に idm, pmm = tag.polling(希望のsystem code) tag.idm, tag.pmm, tag.sys = idm, pmm, 希望のsystem code とすれば万事OKだった。"
nfcpy で複数の System Code を持つ NFC タグを扱う方法 - uchan note

IC SFCard Fan
PaSoRi - Wikipedia
Sony Japan | FeliCa | 法人のお客様 | 製品情報 | ICS-D010・D004・D002・D003
Sony Japan | FeliCa | 法人のお客様 | 技術情報/FeliCa技術方式の各種コードについて
hiro99ma blog: RC-S380はRC-S370ではない
hiro99ma blog: [win8]RC-S380のデバイスドライバ/ライブラリ
Jさんのツイート: "Today, JR East explained global NFC phones will support Mobile Suica in the future. https://t.co/f6lZG7tmAg"
Sony Japan | FeliCa | 個人のお客様
iPhoneでモバイルSuicaが使えるようになる? - NFC対応スマートフォンにFeliCa搭載という流れ (1) NFC Type Fの採用が決め手となる | マイナビニュース
iPhoneがおサイフケータイ(FeliCa) に対応か。Apple Payが間もなく日本上陸 - Engadget Japanese

DirectInput と XInput - 借り初めのひみつきち
FadisさんはTwitterを使っています 「linux-5.7からiPhone等の急速充電ドライバが入るらしい。iPhoneはUSBで接続された時点では0.5A以下で充電を行うが、急速充電デバイスに書き込みがあると2.5A吸って充電するようになる。専用の充電器はこの書き込みを行なうが、同様の操作をlinuxカーネルが出来るようになる https://t.co/tUni6BNsRM」 / Twitter
Linux 5.7 To See USB Fast Charge Support For Apple iOS Devices - Phoronix
FadisさんはTwitterを使っています 「ただし、これを有効にするとiPhoneは遠慮なく2.5A吸いに来るが、ハードウェアがそれをして大丈夫なハードウェアかどうかは別問題」 / Twitter

HID

FIDO U2F

HUTRR48.txt - Notepad
FIDO Alliance Download Specifications - FIDO Alliance
FIDO U2F HID Protocol Specification
v2f.py/u2fhid.py at master · concise/v2f.py
u2f/hid.go at master · flynn/u2f
Yubikeys overall overview - WIP

WebHID

FadisさんはTwitterを使っています 「Chrome 89からWebHIDがデフォルトで有効になるらしい。WebHIDはWebUSBで懲りていなかったGoogle最新のヤバAPI。JSで書かれたドライバでシステムに接続された入力機器を直接操作する。WebUSB同様ユーザがダイアログで許可した事をもってWebページにデバイスの使用を認める https://t.co/Fceyjauaek」 / Twitter
Chrome 89 Beta Enables WebHID By Default, Other New Web APIs - Phoronix
FadisさんはTwitterを使っています 「入力デバイスの中にはファームウェアアップデートを無条件で受け付ける等のインターネット越しに触らせてはいけない物も数多く存在するが、それらに対しては「ダメなデバイスのベンダーIDとプロダクトIDのリストをブラウザが持って、それを頑張って更新する」という驚くべき対策が仕様に書かれている」 / Twitter
FadisさんはTwitterを使っています 「ちなみにWebページがUSBデバイスの完全なコントロールを手に入れるWebUSBは、「WebUSBを活用して2要素認証ドングルに偽の情報を送る事で2要素認証を突破するフィッシングサイト」に活用された後、主要なほぼ全てのデバイスクラスでWebUSBを使えなくする修正が入ってAPIが生えたまま死んでる」 / Twitter
FadisさんはTwitterを使っています 「Webページのスクリプトの提供者は信頼できるか判断がつかない相手で、システムはデバイスドライバに悪意が無い事を期待している為デバイスドライバの提供者は信頼できる必要があって、WebUSBにもWebHIDにもこのギャップを埋める物がない。必要なのはGoogleによるドライバに対する署名だと思うんだ」 / Twitter
Webアプリがジョイコンなどに対応する「WebHID」、NFCタグを読み書きする「Web NFC」、シリアルポートで通信する「Web Serial」など、Chrome 89ベータではデフォルトで有効に - Publickey

Twitter

Livaさんのツイート: "USBキーボードからのパケット(実機)、1つのキーを押している時はTransfer Descriptor内にキーデータが入らない(1つ処理されて割り込みは入る)のだけど、2つ以上キーを同時押しするとデータが入る #liva_notebook"
Livaさんのツイート: "何言ってるのか自分でもワケワカメなんだけど、要はAならAだけ押した時、自作OS側からはどのキーを押されたかが分からない(何かが押された事は割り込みが来るから認識できる)のだけど、Shift + Aだと、ShiftとAの双方が押された事がわかる #liva_notebook"
Livaさんのツイート: "freebsdのコード読むと https://t.co/PArc0Pgn80、ukbd_interruptでパケットを読んだ後で、ukbd_read_charでもう一文字読んでるような気がするのだけど・・・わからぬ #liva_notebook"
Livaさんのツイート: "もう一文字読んでるってのは、単一のキーしか押されてない場合、Interrupt Transfer以外の別の仕組みでキーを読んでるのかなぁ、と推測 #liva_notebook"
Livaさんのツイート: "もっとDevice Class Definition for Human Interface Devices (HID) https://t.co/mhqn81LOIR を読み込まなければならぬ #liva_notebook"
Livaさんのツイート: "寝ぼけてた。ukbd_put_keyでsc->sc_inputsをインクリメント、デクリメントして、その値が0だったらukbd_event_keyinputでreturnしちゃうからukbd_read_charにたどり着くわけない #liva_notebook"
Livaさんのツイート: "要するに、ukbd_read_charでもう一文字追加でどっかから読んだりなんてしてない #liva_notebook"
Livaさんのツイート: "えー、じゃあやっぱ単一キーを押した時にキーデータが送られてきてないように見えるけど、自作OSのバグなのかなぁ #liva_notebook"
Livaさんのツイート: "困った時のfreebsdという事でfreebsdで先程のコードにprintf仕掛けたら、一文字のときもちゃんとInterrupt Transferにキーデータが流れてきている模様。という事は自作OSのバグか・・・ #liva_notebook"
Livaさんのツイート: "問題の切り分けはできたけど、Interrupt Transferのデバッグやらなきゃいけないの、やだなぁ #liva_notebook"
Livaさんのツイート: "ん、ちょっと勘違いしてたぞ。keycodeの取得をやってるのは、 https://t.co/3KsSAPpFar か #liva_notebook"
Livaさんのツイート: "まあ結局単一キーでもちゃんと取得できている事には変わらないけども #liva_notebook"
Livaさんのツイート: "お、 https://t.co/t5fj3AOBmV これダンプすれば良さそう #liva_notebook"
Livaさんのツイート: "やっぱ単一キーでもちゃんとパケット来てるんだよなぁ #liva_notebook"
Livaさんのツイート: "お、IOAPICのEOI registerの実装が入ってたのか、これは最新版を使うしかあるまい https://t.co/09mUxTV4NG #liva_notebook"
Livaさんのツイート: "正直に言うと、EOI registerを使わない手法がバグってる #liva_notebook"
Livaさんのツイート: "この件、解決した。連続で同じレジスタ(MMIO) にwriteするのだけど、何も考えずに実装したのでコンパイラによって2つのwriteが1つに握りつぶされていた。asm volatile("":::"memory")を挟んで解決 #liva_notebook https://t.co/B5Zd22a0Kn"
Livaさんのツイート: "USBキーボードにはBoot ProtocolとReport Protocolがあってそれぞれ異なる方法で入力を返すのか。HID Specificationを読んでてよくわからなかったのだけど、やっと少し理解できた。 #liva_notebook"
Livaさんのツイート: "うーん、Boot Protocolをセットするのが問題でもないのか。。。 #liva_notebook"
Livaさんのツイート: "Interrupt Transferの2つに1つがパケロスしてるのではないかという仮説を立てた #liva_notebook"
Livaさんのツイート: "2つに1つ消えているという仮説から、data toggleをしてないのがいけないのではないかと思って設定してみた所、usb keyboardが実機で完璧に動いた!! #liva_notebook"
Livaさんのツイート: "interrupt transferにはdata toggleに関する記述が無かったからこれまで設定してこなかったのだけど、isochronous transfer以外はちゃんとdata toggleをしましょう #liva_notebook"
10/27,28はOSC Tokyoさんのツイート: "自作OSのために作ったUSBホストドライバ+HIDキーボードドライバの動作をシーケンス図にしてみた.結構苦労してプログラムしたけど,苦労するだけあるわ.絵のレベルでも凄い複雑だもん.… "
NerryさんはTwitterを使っています: 「HIDクラスって本来3.0.0か3.1.1か3.1.2しか存在しないはずだけど、たまに3.0.1とか3.0.2って名乗ってる変なデバイスあるし、3.3.0ってなんだよsurface」 / Twitter
FadisさんはTwitterを使っています 「Googleが謎のUSB HID moonballのdevice IDを追加するパッチをlinuxに投げてきた話。Googleは過去にも謎のデバイスHammerのドライバをlinuxに追加しており、これは後に出た一部のChromebookで利用されているが、moonballはhammer-likeなデバイスであると説明されている https://t.co/y3EAUysdj5」 / Twitter
Google "Moonball" Will Be Supported By Linux 5.7 - Phoronix

www.usb.org/developers/hidpage/Hut1_12v2.pdf
HIDデバイス/開発 - おなかすいたWiki!
USB.org - HID Tools
USB HID クラス ‐ 通信用語の基礎知識
Windows 8 におけるセンサーのサポート – Building Windows 8
ワコム、ホイールとファンクションキーが加わった「FAVO 4」
自作OSにUSBを実装する - livaの雑記帳
Microsoft Word - HUTRR39b.docx
USB.org - Microsoft Related HID Documentation
Keyboard and mouse HID client drivers | Microsoft Docs
USB プロジェクト - マウスのReportDescriptorを見てみよう:新適当マイコン電子工作研究所:So-net blog
レポートディスクリプタ - おなかすいたWiki!
コメを噛め» Blog Archive » HID Mouse から Joystick へ
マイコンの実験:PIC内蔵USB機能(HID)の実験6
USBマウスのレポート・ディスクリプタで悩む:親族SNS管理人ブログ:So-netブログ
rjj05b1417_m16cap | 検索 | ルネサス エレクトロニクス
Keyboard and mouse HID client drivers | Microsoft Docs
USB Human Interface Devices(HID)Class サンプルプログラム
Enhanced Wheel Support in Windows - Windows 10 hardware dev
USB1.1接続のマウスは2.0と比べて反応は? -有線でUSB1.1接続のみのマ- マウス・キーボード | 教えて!goo
usb touch screen protocol - Google 検索
レポートディスクリプタ - おなかすいたWiki!

Audio

Windows

DTMで必ず登場するASIOドライバって何? : 藤本健の“DTMステーション”
Windowsの音質を阻害するカーネルミキサー : 藤本健の“DTMステーション”
オンボードのサウンド機能を高性能化するWASAPI : 藤本健の“DTMステーション”
WASAPIでiTunesを高音質に再生!? : 藤本健の“DTMステーション”

DSD

Sony PCM-D100 の為に DSD64(1bit/2.8MHz)の曲を探してみた。 - ICT備忘録
ERI 「ハイレゾノイズ」にご用心?
About - ハイレゾ音源配信サイト【e-onkyo music】
音声のデジタル化方式について | インターフェイス株式会社
PCで音楽: DSD256の聴き方!
Direct Stream Digital - Wikipedia
DSD 64 2.8MHz v.s WAV 24bit 192kHz : Studio Okamoto の 徒然日記
DSDデモトラック | サポート | OPPO Digital Japan株式会社
【藤本健のDigital Audio Laboratory】第475回:いまさら聞けないDSD/スーパーオーディオCD - AV Watch
SUPER AUDIO CD - about SUPER AUDIO CD - Format - DSD
【藤本健のDigital Audio Laboratory】“DSDのまま編集”を実現!? 帽子型補聴システム、24ch再生などDSDの新たな可能性 - AV Watch
ハイレゾ音源がダウンロードできるおすすめ配信サイトと4つの注意点
ASIO - Wikipedia
【藤本健のDigital Audio Laboratory】第546回:DSD対応USB DACの再生ソフトを比較する - AV Watch
【藤本健のDigital Audio Laboratory】第557回:DSDの基本から未来まで。「1ビット研究会」レポート - AV Watch
ASCII.jp:ハイレゾを始めるならUSB DAC? それともネットワーク? (3/5)|麻倉怜士のハイレゾ入門講座
ソニー、DSD関連フォーマットの仕様を公開
zionote、DSD対応技術「JAVSLINK2」のライセンスを公開 - 個人利用は無料 - PHILE WEB

USB オーディオ クラス ‐ 通信用語の基礎知識
OSS開発-Tethys USB: 風のまにまに心のままに、そして想いの力を信じて
02 « 2月 « 2010 « PCオーディオブログ
USB Audio - Speaker - マイコン工作実験日記
uaudio(4)
WhatsNew/FreeBSD10 - FreeBSD Wiki
AN295.pdf
usb-audio-simplified.pdf
USB Audio Design Guide
USB Audioの転送データサイズ | インターフェイス株式会社

MIDI

MIDI - Wikipedia
MIDI - Wikipedia
今さら聞けない、「MIDIって何?」「MIDIって古いの?」 : 藤本健の“DTMステーション”
MIDI規格がすべて無料公開!GitHubも同時スタートし、よりオープンに進化する! : 藤本健の“DTMステーション”
Home
RP/CA
About | Creators' Hub - Presented by AMEI
amei-music/CreatorsHub: 異なるプロトコルやアプリケーションのメッセージを相互に変換するプログラムです。MIDI, OSC, Web Socketを流れるJSON等の相互変換ルールを定め一意に変換することで、音楽や映像アプリケーション間の接続性や汎用性を高め、様々なメディア・デバイスが連動したクリエーションをより容易にします
MIDI規格委員会
MIDI1.0規格書
DTM技術情報 - 0.目次 | g200kg Music & Software
SMF(Standard MIDI File)フォーマット解説 | 技術的読み物 | FISH&BREAD
SMF (Standard MIDI Files) の構造 - Welcome to yyagi's web site.
apollo twin USBを駆使する声優の小岩井ことりさんの本気すぎるDTM環境 : 藤本健の“DTMステーション”
MIDI 2.0 の件 | g200kg Music & Software

Wacom タブレット

Wacom タブレット - ArchWiki
Home · linuxwacom/input-wacom Wiki
Wacom Protocols · linuxwacom/input-wacom Wiki
USB Protocol - linuxwacom

DisplayLink

DisplayLink
DisplayLink - Wikipedia
【イベントレポート】DisplayLink、4K/60Hzの2出力対応のUSBディスプレイコントローラ - PC Watch
DisplayLink/evdi: Extensible Virtual Display Interface
displaylink-rpm/displaylink-rpm: RPM sources for the DisplayLink USB display adapters
AdnanHodzic/displaylink-debian: DisplayLink driver installer for Debian/Ubuntu based Linux distributions.
zhsj/displaylink: Debian package for DisplayLink Linux driver
magoroku15/DisplayLink-driver-for-android: Little modification for android
venix1/PiDock: displaylink clone
linux/udlfb.c at master · torvalds/linux
floe/tubecable: DisplayLink open-source protocol reference implementation
Home · floe/tubecable Wiki
libdlo
https://www.kernel.org/doc/Documentation/fb/udlfb.txt
HOWTO: Use a DisplayLink USB graphics adapter on Crunchbang Linux v11 Waldorf with partial upgrade to Debian Jessie

Class

USB device class drivers included in Windows (Windows Drivers)
USB.org - Defined 1.0 Class Codes
USB.org - USB Device Class Specifications
デバイスクラス ‐ 通信用語の基礎知識
3.5mmイヤホンジャックが消える日も近い?音声対応USB規格発表 - iPhone Mania
Hit the road, headphone jack. USB wants your job - CNET

エニュメレーション

エニュメレーション | インターフェイス株式会社
USB/エニュメレーション - おなかすいたWiki!
Prot3 USB Protocol( 3)  FT-232Hのエニュメレーション完了を検出
USB/PnP - SyncHack
設計の基本は仕様の理解 ――高速シリアル通信を実現するために知っておくべき最低限の知識 |Tech Village (テックビレッジ) / CQ出版株式会社
USBのエニュメレーション(まとめ) : prittyparakeetのblog
USBの解説.PDF
USB1.1 およびUSB2.0におけるエニュメレーションの違いが知りたい - 108: 上記以外のマイコン関連 - Forum - かふぇルネ - Renesas Rulz - Japan
USB ( Universal Serial Bus ) インタフェース | 東芝デバイス&ストレージ株式会社 | 日本
USB Host Human Interface Device Class Driver (HHID)
エニュメレーション | インターフェイス株式会社
USBデバイス状態遷移図 | インターフェイス株式会社

パケットキャプチャ等

【レビュー】スピードテスト機能も搭載。USBデバイスの情報を一覧表示できる「USBDeview」 - 窓の杜
FREE USB Protocol Analyzer Software USB Sniffer and Logic Analyzer
hiro99ma blog: USBのパケットキャプチャ
マイコンの実験:PIC内蔵USB機能の実験3
Wireshark · Download
USBPcap
Usb Sniffer for Windows download | SourceForge.net
RatatoskrによるUSBキャプチャ - Qiita

Wikipedia

USB Type-C - Wikipedia, the free encyclopedia
USBハブ - Wikipedia
CCID (protocol) - Wikipedia

Twitter

Fadisさんのツイート: "USBデバイスを物理的に取り外さずにLinuxカーネルの管理から外すには echo <デバイス名> >/sys/bus/usb/drivers/usb/unbind 再びカーネルに握らせるには echo <デバイス名> >/sys/bus/usb/drivers/usb/bind"
Fadisさんのツイート: "カーネルの管理から外れたデバイスはユーザ空間から誰にも邪魔されずに会話できる状態になるため、ゲスト環境にホストのUSBデバイスを直接触らせたりする時に便利、と"
Fadisさんのツイート: "CDC ACMのシリアル通信って入力 出力 割り込み通知の3本のエンドポイントが転がってるだけで特にUSBの上にプロトコルのようなものはなくてそのままシリアル通信のデータが流れてるんだな…"
a.rin@mixさんのツイート: "USB が 1msec フレームなんで、GPSからの時刻データをUSB経由だと、1msecくらいのジッタがでちゃうのね"
なかのん&マジックさんのツイート: "色んなキーボードレイアウト(物理)を見てると、日本が強かった時代がコンピュータの黎明期で色々と得してるなーとは思う。こんだけ購買力落ちててもJISキーボードの販売・サポートは必須やからね。歴史的要因って強い。"
なかのん&マジックさんのツイート: "JISキーボード固有のキーが無かったらどうなるのかは、中国語のIMEがどうやってON/OFF切り替えるのかとか見ると、結構真顔になってしまう。"
なかのん&マジックさんのツイート: "USB規格にはLang1からLang4までの特殊キーが定義されてるんで、あれを各、非ASCII文字な言語圏は活用すべきだと思うんだけど、物理キーボードにそのキーを載せるとなると、やっぱりコストがかかるから、肝心のPCメーカーが率先してキーの追加を提案したりはしないわなぁ。"
なかのん&マジックさんのツイート: "失礼。Lang4までじゃない。Lang9まであった。"
Nerry さんはTwitterを使っています: 「control trb の status stage の dir は data stage の種類によって違う:;(∩´﹏`∩);:」 / Twitter
神無月ねりさんはTwitterを使っています: 「usbポートって抜き差しする時結構チャタリングでイベント飛んでるのね。使い終わったスロット解放してないからめっちゃスロット番号とぶ」 / Twitter

The USB ID Repository
www.linux-usb.org/usb.ids
home | USBGuard
dkopecek/usbguard: USBGuard is a software framework for implementing USB device authorization policies (what kind of USB devices are authorized) as well as method of use policies (how a USB device may interact with the system)
USB転送方式 | インターフェイス株式会社
USB4™ Specification | USB-IF
USB4 Adopters Agreement | USB-IF
USB4 | USB-IF

Bluetooth

その他

デバイスに搭載されているBluetoothのバージョンをGUIで簡単にチェックできるツール - 窓の杜
第267回 Bluetoothデバイスで離席管理する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
HCIプロトコル
21.4. Bluetooth
Chapter�21.�Bluetooth on NetBSD
Bluetooth
OSx86jp @ ウィキ - 動作報告 Bluetooth編
できる周波数ホッピング
デュアルブート環境で Bluetooth を使いたい!
Bluetoothの暗号鍵ネゴシエーションに脆弱性、仕様自体を修正 - PC Watch
【アプデ/10】 2019年7月度(あるいはそれ以降も?)のWindowsUpdate適用でBlurtoothスピーカーに不具合 : ニッチなPCゲーマーの環境構築
Windows 10プレビュー版、BTデバイスのペアリングをより簡易化 - PC Watch
【レビュー】Windows 10はBluetoothの高音質通話「HD Voice」に対応したのか? ~バッファロー製ヘッドセットで実証テスト - PC Watch
サポートされる Bluetooth プロファイル - Windows Help
「Windows 10 20H1」Build 19002が“Fast”リングに ~Bluetooth機器の接続が手軽に - 窓の杜
Windows 10プレビュー版、Bluetoothの簡易接続機能が全ユーザーに提供 - PC Watch
ASCII.jp:Windows 10でようやくまともになったBluetoothのサポート (1/4)|Windows Info

Bluetooth

https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
Adopted Specifications | Bluetooth Technology Website
Specification | Adopted Documents | Bluetooth Technology Special Interest Group
ECN specification for Bluetooth SDP
Bluetooth - Windows 10 hardware dev
Bluetooth stack - Wikipedia, the free encyclopedia
Bluetooth - ArchWiki
Bluetooth - ArchWiki

Apple

Bluetooth Accessory Design Guidelines for Apple Products
iOS:iOS デバイス対応の Bluetooth プロファイル - Apple サポート
iPhone テザリング - ArchWiki
iPhone tethering - ArchWiki
Bluetoothテザリング子機として使える機種を探す方法と注意点
iPhoneはBluetooth PAN(テザリング)の子機として使えない(備忘録) – Captain's Log, Supplemental
今さら聞けないテザリングについて|プラカンブログ | プラスデザインカンパニー【大阪・東京 ホームページ・WEB制作】
Bluetooth経由でiPhoneへ写真を転送できる? - いまさら聞けないAndroidのなぜ | マイナビニュース
なぜ「AirDrop」はBluetoothを使うのにファイル転送が速いの? - いまさら聞けないiPhoneのなぜ | マイナビニュース
The Official Bluetooth SIG Member Website
日記 (2019 年 2 月上旬)

Classic

Audio

SCMS-T

第497回:SCMS-Tとは - ケータイ Watch Watch
SCMS - Wikipedia
Bluetoothヘッドホンからテレビの音が聞こえません!? - いまさら聞けないAndroidのなぜ | マイナビニュース
SCMS-T | 用語集 | KDDI株式会社

BT-UHD

<IFA>ファーウェイ、Bluetooth新プロトコル「BT-UHD」。LDAC比2倍以上、2.3Mbpsでオーディオ再生 - PHILE WEB

LDAC

Sony Japan | LDAC™で高音質ワイヤレスリスニング
ソニーのハイレゾ対応コーデック「LDAC」は何がスゴい? 開発者に疑問をぶつけた - AV Watch
次期OS"Android O"の開発者プレビューが公開。ソニーの協力によりLDACをサポート - PC Watch
第707回:LDACとは - ケータイ Watch Watch
platform/external/libldac - Git at Google
LDACエンコーダを使ってみた - Qiita
eggman/ldacenc: LDAC encoder
eggmanさんのツイート: "AOSPにLDACのencoderのソースコードがあった。 https://t.co/sdNwBJpx42 次のAndroidにはLDACが標準搭載されるっぽいですね。"

apt-X

Qualcommが英CSRを買収。BLEやaptXなどBluetooth資産を獲得し、IoE強化 - AV Watch
aptX対応のワイヤレスBluetoothオーディオ製品と技術
ボクらのスマホ&iPhoneを最新のaptX-LL対応にする方法(ワイヤレスイヤホン選びを真剣に考える③)|オモロダイブ
高音質ワイヤレスで注目の「aptX HD」は他とどう違う? クアルコムに聞いた - AV Watch
【笠原一輝のユビキタス情報局】Windows 10も標準で対応しているaptXをハイレゾ化する「aptX HD」 - PC Watch
Qualcommが展開する「DDFA」の高音質化技術とハイレゾ対応Bluetooth技術「aptX HD」 - PC Watch
Qualcomm® aptX™ Low Latency Synchronised Audio
aptX Low Latencyを試してみる? | Wasters haven.
新Bluetooth音声コーデック「aptX Adaptive」。動的レート制御で音質と接続性向上 - AV Watch
Qualcomm、レイテンシ削減でゲームにも対応できる無線オーディオコーデック「aptX Adaptive」 - PC Watch
第876回:aptX Adaptive とは - ケータイ Watch
【笠原一輝のユビキタス情報局】Windows 10も標準で対応しているaptXをハイレゾ化する「aptX HD」 - PC Watch
Bluetoothを高音質/低遅延化する「aptX」。CSRが説明 - AV Watch
次期Android“Oreo”が対応「LDAC」「aptX HD」はどのスマホで使えるようになるのか? (1/3) - PHILE WEB

AAC

【第153回】“iPhoneのAACファイルをAACでBluetooth伝送すると音質劣化しない”は本当か? - Phile-web
License Fees - Via Corp

SBC

SBC (codec) - Wikipedia, the free encyclopedia
BluetoothのSBCって何ですか? - afnf.net
https://tools.ietf.org/id/draft-ietf-payload-rtp-sbc-03.txt

Bluedroid

Andorid 4.2以降はBluetoothが違う、ってどういうこと? - いまさら聞けないAndroidのなぜ | マイナビニュース
Android 5.0でBLE advertising するための要件 - Qiita
Android Bluetooth HAL Interfaces について 概要編 - Qiita
Bluetooth | Android Open Source Project
Bluedroid ‐ 通信用語の基礎知識
platform/external/bluetooth/bluedroid - Git at Google
embdrv/sbc/encoder/srce/sbc_encoder.c - platform/external/bluetooth/bluedroid - Git at Google

PulseAudio

Fadisさんのツイート: "PulseAudio 10.0がリリースされました。主な変更点はBluetooth使用時にアプリケーションの申告に基づいてA2DPとHSPを切り替える仕組み、パススルーモード、USB接続のサラウンドなデバイスが使えない不具合の修正他 https://t.co/wSWB3Q7rom"
PulseAudio 10.0 Officially Released - Phoronix
10.0

冒頭に無音を挿入

Rui Ueyamaさんのツイート: "なんかほとんどのBluetoothスピーカーやヘッドフォンは、数秒以上使われていないと待機状態に移行して、そのあと復帰直後の音の最初の0.1秒くらいが欠落するぽい。ひどい実装だ。"
Rui Ueyamaさんのツイート: "なのでTCFMではsoxで0.1秒の実質的な無音ファイル(-50dbのbrown noise)を作って音声ファイルの冒頭にくっつけるということをすることに。そうしないとBluetoothで聞いたとき最初の子音が欠落してしまう。ここらへんも含めて加筆修正しました。 https://t.co/bewRhFDebf"

【Bluetoothヘッドホン】【Bluetoothスピーカー】AAC/aptXとは?
AACとapt-Xコーデック(ポータブルスピーカー まとめ) : 日々妄想 -書籍と家電の個人的記録-
apt-x HDとLDAC ワイヤレスハイレゾの覇権をとるのはどっちだ | IT Trend news
LDAC vs aptX HD。いよいよ動き始める「ハイレゾ級ワイヤレス」 – boomil
Android の aptX aptX-HD LDAC AACサポートについて - Qiita
「Bluetoothオーディオ」の仕組みと用語 〜Bluetoothスピーカーやヘッドホンを選ぶ際におさえておきたいポイント - Fluffy white croquis
A2DP ‐ 通信用語の基礎知識
とみながたけひろさんのツイート: "相変わらず周波数特性と波形で音質評価といってる人の記事が流行ってるのか、、、"
とみながたけひろさんのツイート: "BTヘッドフォンをちゃんと電波部分、コーデックアルゴリズム、デジタル、アナログ回路性能、マイク、ヘッドフォン性能、ぐらい分離して細かくレビューしてほしい(無理)(やっぱり専業とかデカイ会社ではやっとるんかなあ)"
とみながたけひろさんのツイート: "コーデックはまあそれなりに知ってるけど、それ以外で世間の製品がどう頑張ってるか知りたい。電波状況が悪化して一度帯域を落としたら二度と戻らないようです、とか、帯域切替を頻繁に行うのでそこでノイズが載ったように聞こえますとか、遅延と音質との関係とか、クロック同期とか、、、"
とみながたけひろさんのツイート: "まあとりあえずなんちゃって評価するにしても、数秒とかのサイン波でやるなら、電波が飛ぶ領域だけでもちゃんと簡易電波暗室的な奴(アルミ缶とかでもいい)に入れて評価してほしい"

HIDP ‐ 通信用語の基礎知識
PAN (Bluetooth) ‐ 通信用語の基礎知識
BNEP ‐ 通信用語の基礎知識
L2CAP ‐ 通信用語の基礎知識

BLE

BLE-MIDI

Apple Bluetooth Low Energy MIDI Specification
Bluetooth for Developers - Apple Developer
【藤本健のDigital Audio Laboratory】第669回:Bluetooth MIDI伝送で何ができる? 対応5製品とiPad連携などを試す - AV Watch
Spec / Faq | microKEY Air | BLUETOOTH MIDI KEYBOARD | KORG
microKEY Air | BLUETOOTH MIDI KEYBOARD | KORG
Bluetooth LE MIDI Specification

6LoWPAN

わふう>ω<のひとさんはTwitterを使っています: "OpenWRT + BLE over IPv6/6LowPAN。つまり市販されているWiFiルータにBLEドングルを刺してOpenWRTでIPv6/6LowPANのルータがデモンストレーションできる、と
わふう>ω<のひとさんはTwitterを使っています: "IPv6 over Bluetooth Smart (Low Energy) [OpenWrt Wiki] https://t.co/vxgpSbU2Mi"
わふう>ω<のひとさんはTwitterを使っています: "6LoWPAN for Bluetooth low energy on OpenWRT RT Blogs - Nordic Developer Zone https://t.co/k1UkJKpOq9"
6LoWPAN のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社

Bluetooth Low Energy(BLE)入門――なぜBLEは世界で愛用されるのか - EE Times Japan
Bluetooth LE と Beacon の話
2016年のBLEを振り返る | Reinforce-Lab.'s Blog
「IoTの成功モデル」、BLE市場が活況 - 家電・モバイル - 日経テクノロジーオンライン
IoT技術の代表「BLE:Bluetooth Low Energy」の動作原理を理解してみよう【前編】 (1/3):CodeZine(コードジン)
DSAS開発者の部屋:既成の BLE デバイスを自作プログラムから利用する試み
FreeBSDで Bluetooth Low Energy (BLE)を使う | 元祖ワシ的日記
HOGP ‐ 通信用語の基礎知識
GATTのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
GATT のはなし2|Wireless・のおと|サイレックス・テクノロジー株式会社
Takashi KawasakiさんはTwitterを使っています 「BLEが位置情報の権限を必要とする根本的な理由についての認識って共有されてないんだな。ビーコンに限らず、BLE機器をスキャンしたら周りにある機器が特定できちゃうので、間接的に場所が特定できちゃう可能性が高まるんだよね。別にGPSが動くわけじゃない。」 / Twitter
Takashi KawasakiさんはTwitterを使っています 「少なくとも、この人とこの人、ひょっとしてお隣さん?みたいな事は十分にわかっちゃう可能性がある。Macの名前とかモロバレだし、そうじゃなくても、ユーザーのフィンガープリンティングとしては割と精度が高い。」 / Twitter

Google

bluetooth - Git at Google
platform/external/bluetooth/hcidump - Git at Google

セキュリティ

Bluetooth経由でスマホからPCまで乗っ取れる攻撃手法が発覚 ~Bluetoothがオンになっているだけで攻撃可能 - PC Watch
JVNVU#95513538: 様々な Bluetooth 実装に複数の脆弱性
数十億を超えるBluetooth機器に影響、ペアリングなしで乗っ取られる脆弱性“BlueBorne”が明らかに - 窓の杜
Armis BlueBorne: Bluetooth vulnerabilities | Firmware Security
BlueBorne Technical White Paper.pdf
Bluetoothのセキュリティ強化とリスクの軽減を図るための3つの対策
Fadisさんのツイート: "BlueBorneで明らかになった脆弱性の1つCVE-2017-1000251は、Bluetoothのデータリンク層の設定を行うL2CAP CONFIGURATION REQUESTに巨大なパラメータを付けて投げると、それを想定していない実装がスタック破壊→任意コード実行という物で、いわば21世紀のping of death https://t.co/q5DEtKHEzU"
Blueborne - Linux Kernel Remote Denial of Service in Bluetooth subsystem - CVE-2017-1000251 - Red Hat Customer Portal
Bluetoothに通信傍受などの脆弱性、「Apple」「Intel」「QUALCOMM」製品などが影響を受ける恐れ - INTERNET Watch
JVNVU#92767028: Bluetooth 実装の楕円曲線ディフィー・ヘルマン鍵共有において公開鍵を適切に検証していない問題
Fadisさんのツイート: "Bluetoothの仕様が複雑すぎ、実装者に多くの選択肢を用意しすぎている為、実装者は目的を達成するのに必要なサブセットを摘んで実装する傾向があり、それがBluetoothを格好の攻撃対象にする原因になっている、という話 https://t.co/YuD0fAs5dl"
Bluetooth's Complexity Has Become a Security Risk | WIRED
Fadisさんのツイート: "Bluetoothの規格書、WiFiの約10倍のページ数があるのか…"
More information on “…Exploiting Low Entropy in the Encryption Key Negotiation of Bluetooth® BR/EDR” *

Wireless・のおと

Bluetoothのはなし(1)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(2)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(3)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(4)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのはなし(5)|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetoothのセキュリティのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
GATTのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
GATT のはなし2|Wireless・のおと|サイレックス・テクノロジー株式会社
IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
SEP2.0のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetooth 5 のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetooth5の補遺|Wireless・のおと|サイレックス・テクノロジー株式会社

通信用語の基礎知識

Bluetooth ‐ 通信用語の基礎知識
Bluetoothプロファイル ‐ 通信用語の基礎知識
SDP (Bluetooth) ‐ 通信用語の基礎知識
HCI (Bluetooth) ‐ 通信用語の基礎知識

GitHub

Fadisさんのツイート: "Logitech(ロジクール)のUSB接続BluetoothドングルのデバイスのペアリングをLinuxから行う為のオープンソースなツール Solaar https://t.co/fpbi8nDC3I"
Solaar
pwr/Solaar: Linux devices manager for the Logitech Unifying Receiver.
bluekitchen/btstack: Dual-mode Bluetooth stack, with small memory footprint.
RedBearLab/BLE_HCI: Allows external systems or MCUs to connect BLE (CC2540) using HCI as BLE Central Role
JiounDai/Bluedroid: PoCs of Vulnerabilities on Bluedroid

Qiita

Bluetooth Low Energy Advent Calendar 2014 - Qiita
Bluetooth Low Energy Advent Calendar 2015 - Qiita
Bluetooth Low Energy Advent Calendar 2016 - Qiita

Twitter

as9kさんのツイート: "A2DPはHSP/HFP(ヘッドセット・ハンズフリー)よりはるかに音がいい。A2DP使えないものと比べたから確か"
なかのん&マジックさんのツイート: "AndroidにBluetoothのDUNを追加するアプリはあるけど、HFPを機能があるかのように見せるだけで良いんで、HFPを追加するアプリって無いんかな? 技術的にできるんか知らんけど。"
なかのん&マジックさんのツイート: "カーナビは、HFPで接続の成否を判断してるんで、HFPの無いタブレットをモデムとして使えないんだよな。"

ACPI

その他

ReactOS: drivers/bus/acpi/acpica/namespace/nsinit.c File Reference
https://www.bitvisor.org/summit/slides/BitVisor-Summit-02-eiraku.pdf
ACPI Wakeup - MythTV Official Wiki
Links to ACPI-related Documents | Unified Extensible Firmware Interface Forum
ACPI BGRT - ねりりんと借り初めのものがたり
Judgement Day - ねりりんと借り初めのものがたり
ACPICA – Raphine Project<サイト製作中>
ACPI Table - Qiita
ACPIの最新仕様書は、UEFI Forumによって管理されています。(2013年10月以降) - 64bitマシンとか、Linuxとか、アニメとかのブログ
Linux kernel ACPI-centric CVE-2017-13694: Awaiting Analysis | Firmware Security
FWTS 17.08.00 released, many new ACPI tests | Firmware Security
AML - OSDev Wiki
FADT - OSDev Wiki
New ACPI IDs for November: Nexstgo and Insyde | Firmware Security
日記 (2017 年 4 月中旬)
日記 (2017 年 4 月中旬)
日記 (2017 年 4 月中旬)
ACPICA - OSDev Wiki
Shutdown - OSDev Wiki
初心者のためのACPI
第8回 ACPI その2 ACPICAを使おう - ブログやめる日記
ACPI で電源を切る - 借り初めのひみつきち
ACPI で電源を切るの補足 - 借り初めのひみつきち
Nerry さんのツイート: "たったふたつのOUT命令でここまで長い記事になるとは書き始めた時は思ってなかった。深い。"
2019年3月29日号 discoのBetaとカーネルフリーズ,ACPIまわりのデバッグ方法:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
Debug ACPI DSDT and SSDT with ACPICA Utilities | Ubuntu blog
⚙ D20630 ACPI support for USB , mainly hub.
Nerry さんはTwitterを使っています: 「そういえば現状ACPI ENABLEしないままXHCIドライバとPS2ドライバ両方起動してるから一部のレガシーエミュレーションしてる機種でうまくない動作してるかもしれん。。あとで直しとこ:;(∩´﹏`∩);:」 / Twitter
Nerry さんはTwitterを使っています: 「ほんとはACPI ENABLEして電源ボタンのイベント取りたいけど機種によってはAML読まないと電源イベント取れない機種があってその辺の対応がめんどくさい:;(∩´﹏`∩);:」 / Twitter
まちカドおるみんさんはTwitterを使っています: 「ラップトップに Linux 入れて PowerTop を実行するとまず LCD が電池を喰ってて次に CPU だったりするから,輝度を落として CPU も CPUfreq で governor を powersave とかにするだけでだいぶバッテリーが保つんですよね」 / Twitter
機械学習を利用してバッテリーの充電傾向を把握し、使用直前までバッテリー充電率を80%で止めてくれるiOS 13の新機能「最適化されたバッテリー充電」は位置情報も使用し、旅行先などでは機能を停止する。 | AAPL Ch.
Appleは新しいMacBook Pro向けの新機能として、IntelのTurbo Boostを長時間継続させアプリのパフォーマンスを向上させるような「Pro Mode」をmacOS Catalina Betaでテストしているもよう。 | AAPL Ch.
kworker/kacpidのCPU使用率が高い問題に対処した

S0ix

Linux

ols2012-mansoor.pdf
Intel's Guide To Achieving S0ix Low-Power States On Linux - Phoronix
How to achieve S0ix states in Linux* | 01.org
Intel's Guide To Achieving S0ix Low-Power States On Linux - Phoronix Forums
Add suspend-to-idle validation for Intel SoCs [LWN.net]
[linux-joule,9/9] Enable type-c HOST mode with S0iX suspend - Patchwork
ref-os-iot/0004-Enable-USB-Type-C-HOST-mode-with-S0iX-suspend.patch at master · intel/ref-os-iot
Mailing List Archive: [PATCH v2 5/5] intel_idle: Add S0ix validation
LKML: "dbasehore .": Re: [PATCH v5 5/5] intel_idle: Add S0ix validation
Linux-Kernel Archive: [PATCH] platform/x86: intel_pmc_ipc: read s0ix residency API
x86/pmc_atom: Eisable a few S0ix wake up events for S0ix residency [Linux 3.17] - Linux Kernels
Re: S0ix failure due to "clk: x86: Do not gate clocks enabled by the firmware" — Clock Framework

FreeBSD

⚙ D17676 Emulated S3 with s0ix (not currently working)
bwidawsk/freebsd: bwidawsk's FreeBSD src tree

Challenges around _OSI
8th Gen (S-platform) Intel® Processor Family Datasheet Vol. 1
IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - マイクロアーキテクチャ編 (3) 省電力周りの変更点、Atom同等のS0iXモードのステートを追加 | マイナビニュース
【笠原一輝のユビキタス情報局】スマートフォンと同様の使い勝手を実現するIntelのS0ix実装 ~IntelがClover Trailの詳細を公開 - PC Watch
ASCII.jp:インテルが最新モバイルCPUで実現した省電力技術とは?
画面オフ・モダンスタンバイ・休止状態 - ※ただの日記ブログです※
Windows 10ミニTips (57) 電源コマンドを使ってPCの「モダンスタンバイ」対応を確認する | マイナビニュース
Powercfg のコマンド ライン オプション
ASCII.jp:Modern Standby対応PCでバッテリーアイコンをクリックすると表示されるスライダーの謎 (1/2)
retrageさんはTwitterを使っています 「Modern Standby/S3 ResumeでのBIOSの動作って結構バグっていることが多いのでBIOS updateしてみるといいかもしれません。」 / Twitter
【山田祥平のRe:config.sys】モダンスタンバイ、信じる、信じない? - PC Watch

Hardware-reduced ACPI platforms

HW reduced ACPI - 借り初めのひみつきち
SoC ベース プラットフォームのハードウェア要件 - Windows 10 hardware dev
Overview of Windows support for ACPI 5.0 | Microsoft Docs
Hardware requirements for SoC-based platforms | Microsoft Docs
モダン スタンバイ - Windows 10 hardware dev
モダン スタンバイの SleepStudy レポート - Windows 10 hardware dev
ACPI ファームウェアの実装要件 - Windows 10 hardware dev
ACPI バッテリおよび電源サブシステムのファームウェアの実装 - Windows 10 hardware dev
バッテリおよび電源サブシステムのハードウェア設計 - Windows 10 hardware dev
バッテリと充電 - Windows 10 hardware dev
Nerry@さんのツイート: "あ、HW reduced ACPIもPM1 control registerとほぼ同じレジスタが別にあるのか"
Nerry さんのツイート: "virtual boxで電源落とせるようになった。 HW reduced ACPI はこれでいけるはずだけどまだテストできてない… "
Nerry さんのツイート: "S5のSってSleepなのかStateなのかその他の意味なのか"
Nerry さんのツイート: "S5探す作業だいぶ短くできた… "

Skylake

ASCII.jp:Windows 10の電力管理を支えるACPIを見る (1/2)|Windows Info
ASCII.jp:「スロットリング」ではCPUの電力管理をOSではなく、CPU任せにする (1/2)|Windows Info
ASCII.jp:スリープ中に見えてもスマホのようにアプリが動作するWindows 10の「モダンスタンバイ」 (1/2)|Windows Info
電力管理ガイド - Fedora における電力消費の管理について
IDF Session Presentation Template
Call for help for Skylake Power Management – Pike's Universum
linux/x86_energy_perf_policy.c at master · torvalds/linux
CPUID — CPU Identification
paper.pdf
1905.12468.pdf
【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
【CPU】 Skylakeの機能、Speed Shift TechnologyがWin10で有効に | ニッチなPCゲーマーの環境構築Z
質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (1/2) - ITmedia PC USER
これで分かるSkylakeマイクロアーキテクチャ。性能向上と省電力化のために加えられた多くの改良が明らかに - 4Gamer.net

電源管理

北森瓦版

北森瓦版 - “Skylake”で導入された“Speed Shift technology”
北森瓦版 - “KabyLake”と14nm+プロセス

本の虫

本の虫: Linux 3.9はPM_SUSPEND_FREEZEをサポート

PC Watch

【笠原一輝のユビキタス情報局】Intelの開発責任者に聞く、Skylake開発秘話 - PC Watch
【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
【Windows 10ユーザーズ・ワークベンチ】Windows 10で実装されたモダンスタンバイを試す - PC Watch
【後藤弘茂のWeekly海外ニュース】Intel CPUの大きなマイルストーンとなる「Haswell」が遂に登場 - PC Watch
【後藤弘茂のWeekly海外ニュース】Ultrabookのアイドル電力消費を100mW以下にするHaswellの省電力技術 - PC Watch
【後藤弘茂のWeekly海外ニュース】Intelの「Haswell」のダイと省電力技術 - PC Watch
【後藤弘茂のWeekly海外ニュース】Atomスマートフォンで勝負をかけたIntel - PC Watch
【Windows 10ユーザーズ・ワークベンチ】Windows 10で実装されたモダンスタンバイを試す - PC Watch
【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch

ASCII.jp

ASCII.jp:Windows 8.1で利用できるInstant Goの挙動を調べる (1/2)|Windows Info
ASCII.jp:Win 8.1で利用できるInstant Goのトラブルを解決する (2/2)|Windows Info

OSDN

Linuxカーネル3.9リリース、SSDをキャッシュとして利用する「dm-cache」やAndcroidエミュレータ機能などを新たに搭載 | OSDN Magazine

Wikipedia

スリープ (コンピュータ) - Wikipedia

Qiita

BitVisorとACPI - Qiita

Twitter

kmem_cacheさんはTwitterを使っています: "お、マウスの電池残量が少ないことまで通知してくれるのか > gnome3 https://t.co/QwbmRDg5Xa"
Takahiro HASHIMOTOさんのツイート: "GPD PocketのUbuntu版カーネルで、bq24190_charger ドライバが充電器から取り出す電流が3Aハードコードされてるらしい。純正電源ならいいが他のはヤバいのでこのカーネルは使うなとHans氏が注意喚起してる https://t.co/kF52Mmq65T"

“「使っていない時も省エネ・・・!?」~欧州規制EuP指令の対応”|環境活動|エプソン
3メーカーに聞く、Haswell時代の電源選び 【玄人志向編】技術者「謎のサングラス男」に聞く、Haswell対応の根本とポイント - AKIBA PC Hotline!
ErP Lot 6 って?|エナぶろぐ
UEFI(U1E)へアップデートしてみました - GIGABYTE LGA1155 intel Z68(B3) Micro ATX GA-Z68MX-UD2H-B3のレビュー | ジグソー
価格.com - 『USB給電を止めたいです。』 ASRock Z87 Pro3 のクチコミ掲示板
価格.com - 『シャットダウン時にUSBへの電源供給を止めることはできますか?』 ASRock Z87 Extreme4 のクチコミ掲示板
www.eceee.org/ecodesign/products/standby/
openSUSE 13.1: 第11章 電源管理
ACPI の基礎知識
いろいろ Tips02.スタンバイと休止状態 - cool-r32.com
休止状態とスリープ状態の違い - 道すがら講堂
mjg59 | Skylake's power management under Linux is dreadful and you shouldn't buy one until it's fixed

SMBus

SMBus Specifications
SMBus ‐ 通信用語の基礎知識
セカンド・オピニオン (134) バスのアーキテクチャ - 過去から未来へ(95) | マイナビニュース
I²C ‐ 通信用語の基礎知識

SBS

SBS-IF - SBS Specifications
「バッテリーを交換してください」とは? powercfg による診断 - Web/DB プログラミング徹底解説
スマートバッテリ ‐ 通信用語の基礎知識

APEI

第3章 カーネル
A_Tour_beyond_BIOS_Implementing_APEI_with_UEFI_White_Paper.pdf
ACPI モジュール - ArchWiki
ACPI, APEI support [LWN.net]
https://www.kernel.org/doc/Documentation/acpi/apei/einj.txt
Linux/Documentation/acpi/apei/einj.txt - Linux Cross Reference - Free Electrons
Linux/drivers/acpi/apei/hest.c - Linux Cross Reference - Free Electrons
LEG/Engineering/Kernel/RAS/APEITests - Linaro Wiki
linux/drivers/acpi/apei at master · torvalds/linux

ACPI 連載

www.init-main.com/acpirensai/acpi.txt
www.init-main.com/acpirensai/acpi3.txt
www.init-main.com/acpirensai/acpi4.txt
www.init-main.com/acpirensai/acpi5.txt
www.init-main.com/acpirensai/acpi6.txt
www.init-main.com/acpirensai/acpi7.txt
www.init-main.com/acpirensai/acpi8.txt
www.init-main.com/acpirensai/acpi10.txt
www.init-main.com/acpirensai/acpi-features.txt
Takanori Watanabe(@takawata19)さん | Twitter
Takanori Watanabe's Home Page

DSDT

DSDT - ArchWiki
ja/Fixing DSDT
OSx86駆け込み寺 - DSDT
おかしなDSDTを直そう | rionaoki.net
PCI 情報/DSDTテーブルの取得方法 - Japanese - InsanelyMac Forum
OSX86 Hackintoshで良く出てくる DSDTや SSDTって何?取得方法は?の夢 (DSDT.amlや SSDT.amlの取得方法、ACPI電源管理用の情報が書いてあるファイルです)

DMAR

howto_implement_hypervisor/part16.md at master · syuu1228/howto_implement_hypervisor
KVM PCIパススルー (PCI PassThrough) | nexia inc
第16章 仮想化
UEFI機能一覧(Workload Optimized 2) : Enterprise Cloud Knowledge Center Baremetal Server 1.5.6 ドキュメント
OVMF による PCI パススルー - ArchWiki
ACPI DMARメモ - 睡分不足

MS

ESRT

ESRT テーブルの定義 - Windows 10 hardware dev
ESRT table definition
ESRT テーブルへのデータ入力 - Windows 10 hardware dev
Windows UEFI ファームウェア更新プラットフォームの機能の検証 - Windows 10 hardware dev
Better Firmware Updates in Linux using UEFI Capsules
Windows UEFI ファームウェア更新プラットフォーム - Windows 10 hardware dev
更新プログラムの処理 - Windows 10 hardware dev
ファームウェア更新ステータス - Windows 10 hardware dev
ファームウェア更新パッケージの作成 - Windows 10 hardware dev

SoC プラットフォーム用 Windows ACPI 設計ガイドライン - Windows 10 hardware dev
Hardware requirements for SoC-based platforms
ACPI 5.0 用 Windows サポートの概要 - Windows 10 hardware dev
Overview of Windows support for ACPI 5.0
ACPI 定義のデバイス - Windows 10 hardware dev
その他の ACPI 名前空間オブジェクト - Windows 10 hardware dev
ACPI システム記述テーブル - Windows 10 hardware dev
ACPI system description tables
ドッキング - Windows 10 hardware dev
Microsoft Software Licensing Tables (SLIC and MSDM) - Windows 10 hardware dev
Microsoft ASL Compiler (asl.exe) を使ってみる – Japan WDK Support Blog
デバイス管理の名前空間オブジェクト - Windows 10 hardware dev
AcpiGenFx を使った ACPI テーブルの生成 - Windows 10 hardware dev
ACPI ドライバーインターフェース – Japan WDK Support Blog
モダン スタンバイのためのハードウェアの準備 | Microsoft Docs
指示電源管理フレームワークの概要 - Windows drivers | Microsoft Docs

GitHub

illumos-joyent/dbnames.c at master · joyent/illumos-joyent
phantomuserland/acpi_main.c at master · dzavalishin/phantomuserland
PG_MANAさんはTwitterを使っています 「なんと、たった、2600行であのAMLが中途半端に動くようになります。 https://t.co/dK8M29e9Pl」 / Twitter
[add] AML Evaluator(provisional) · PG-MANA/Methylenix@e830e29

OSDN

ファイル詳細: /drivers/acpi/acpi_ctl.cc (master) - uniqos (git) - OSDN
ファイル詳細: /drivers/acpi/acpi_os.cc (master) - uniqos (git) - OSDN
ファイル詳細: /snapgear-2.6-p42/linux-2.6.21.1/drivers/acpi/namespace/nsalloc.c (master) - leon-mjpeg (git) - MJPEG-LEON-FPGA - OSDN
ファイル詳細: /snapgear-2.6-p42/linux-2.6.21.1/drivers/acpi/namespace/nswalk.c (master) - leon-mjpeg (git) - MJPEG-LEON-FPGA - OSDN
https://osdn.jp/projects/linux-kernel-docs/docs/C06/ja/1/C06.pdf

Wikipedia

Advanced Configuration and Power Interface - Wikipedia
Reset vector - Wikipedia, the free encyclopedia

Twitter

その他

mrtska@4thSSA両日LVさんのツイート: "[StarRing] https://t.co/CXAW6qhcaR mrtska - ACPICAでACPIシャットダウンに成功したぞ"
Fadisさんのツイート: "Linux-4.8がリリースされました。主な変更点はRaspberryPi3のSoCのサポート、AMD OverDriveのサポート、ACPI Low-Power Idleをサポート、Surface3のタッチスクリーンをサポート他 https://t.co/S5XM87PpTt"
勝(まさる)さんのツイート: "ノートPCでちゃんと動くっていうと、ふたをしめて開いたら液晶がちゃんと復活するところから<おい"
AoiMoeさんのツイート: "だいたいOSがACPIの仕様書通り実装してもちゃんと動かないBIOSばっかりだもんなあ"
СЮУ1228🔥🐉さんのツイート: "@uchan_nos @kotatsu_mi そもそもACPIはそのPC上の全デバイス情報を始めとしてあらゆるPC固有の情報突っ込んでおいてOSに渡すためにあるので、電源管理だけのためのものじゃないす"
𝔬𝔯𝔲𝔪𝔦𝔫(orumin)さんのツイート: "@uchan_nos @syuu1228 自分のマシンを Linux とかで起動したときに,/sys/firmware/acpi/tables/ にあるファイルの中身をどっかにコピーした上で,それに対して iasl -d とかのコマンドでデコンパイルしたら実際の ASL に何が記述されてるとか読めそう"
ドラゴン・ユタカ・フルーツ🐬さんのツイート: "パソコンやサーバの電源ボタンを短押し(軽く一回押すこと)すると、OSシャットダウンして電源が落とせますが、実際にはOSの設定に依存します。また、RHELはログオン状態だとダイアログが出るだけです。 ログオンできないけど、マシンを落としたいときは便利な機能です。"
Yasunori Gotoさんのツイート: "ACPI 6.2が出たので見てるんだけど、NVDIMM関連の仕様も色々増えていて、頭抱えてる。 SLIT テーブルはレガシー仕様になる予感"
技術書典4 け-51 x86-64-128さんのツイート: "ACPIについて勉強。ACPIを使うには何と言ってもRSDP(64ビット環境ではXSDP)を得る必要がある。ACPICAを使うにしても、RSDPの値はユーザが与える必要がある。UEFIが有効なシステムではSystem TableからRSDPの値を探す。 #uchan_devbox"
技術書典4 け-51 x86-64-128さんのツイート: "OSを初期化するためにACPIのテーブルを読む必要があるので,ACPICAではACPIテーブルを読む機能は"Early ACPI Table Access"と言って動的メモリ管理などが無くても使えるようになっている.ACPICAのフル機能は動的メモリ管理とかマルチプロセスなんかが必要となる. #uchan_devbox"
ゆたかさんさんのツイート: "(x86な)Linuxは、システムに搭載されているCPUの数を、BIOS(UEFI)が持つACPIテーブル(DSDT)から取得します。 /sys/firmware/acpi/tables/DSDT DSDTはバイナリなので、Intelお手製のiaslツールで逆コンパイルすると読めるようになります。Processor()がCPUの定義です。… https://t.co/Q7ho4T5BpQ"
ゆたかさんさんのツイート: "PSTAメソッドでPCNTという定義が出てきますが、OperationRegion()で記述されています。つまり、0xF7FD9000をメモリダンプするとPCNTの値が入っているということです。ByteAccはバイト単位ではなくビット単位なので、PCNTは24バイト(6*32ビット)目。… https://t.co/DdSXX7H5wn"
Yasunori Gotoさんのツイート: "私の場合、acpica-toolsのacpidumpをつかって、いったんバイナリを全部ファイルに吸い取ってからiaslでdisassembleしてました。まあ、acpica-tools自体がsys配下の情報を読み取っているのでしょうけど、ユーザが直接sysを読みに行くよりはacpica-toolsを使った方が好ましいかもしれません。… https://t.co/1wup6CDG04"
Yasunori Gotoさんのツイート: "もう一個。大分昔の記憶なので正直うろ覚えですが、CPUの数はDSDTの数ではなく、MADTからLAPICの数で確認してなかったかしら?… "
C++でOS自作 技術書典5 お05さんのツイート: "The ideal and reality of NVDIMM RAS by @YasunoriGoto1 #linux #nonvolatilememory https://t.co/kZ1HqWU5xl @SlideShareより ACPIに_DSMてのがあるのか。どうやって呼び出すんだろう?"
The ideal and reality of NVDIMM RAS
Yasunori Gotoさんのツイート: "ACPIにはDSDTとかSSDTって呼ばれるツリー構造のデータが定義してあって、それがハード構成を示してます。 デバイス固有の機能があればDvice Specic Methodすなわち_DSMがそのツリーの中のデバイスの配下に定義されてて、それを呼び出すというのが流れですね。… https://t.co/QgohjFp311"
C++でOS自作 技術書典5 お05さんのツイート: "そうなんですね。ACPIテーブルはXSDTからHPETのレジスタ定義を読むというのはやったことがあるレベルなんですけど、DSMを呼び出すというのが、具体的にどうやるのかっていうのが興味あります!… "
Nerry@さんのツイート: "windowsの一番気にくわない挙動 なぜか時々勝手にスリープ解除する→誰も解除しないロック画面を愚直に表示し続けるのコンボ"
Nerry@さんのツイート: "A社のOSではなんかの間違いでスリープから起きても誰もロック解除しないなって気付いたらスリープし直します。"
yuYabu☕️さんのツイート: "え、窓は寝直さないんですか… "
Nerry@さんのツイート: "どうも実機にはgeneral purpose eventがめっちゃあるみたいで全部無効にしたら問題なく動いた・・・"
Nerry@さんのツイート: "これ結局AML見ないと何が起きてるかわからない案件なのかな"
Nerry さんのツイート: "昨日のまとめ SCI有効にして電源ボタン入力を取るだけなら簡単 実機では大量の謎のGeneral Purpose Eventが規定で有効になってるがAML読まないと何が起きてるかたぶんわからない SCIはレベルトリガーなので割り込み要員を解消するまで永遠に割り込みが発生する"
Nerry さんのツイート: "大量の謎のGPEで何が起きてるかわからない以上、AML読めるようになるまではいたずらにACPI ENABLEしない方がいいのでは?"
Nerry さんのツイート: "こういうのはブログにまとめた方がいいんだろうか🤔"
Nerry さんのツイート: "そもそも別のブログ記事書いてる途中に思いついてSCIで遊んでたっていう事案"
Nerry さんのツイート: "SCI_INTが0の機種ってどうすればいんだ・・・"
Nerry さんのツイート: "GPD今までずっとHW reduced ACPIだと思ってたら違った。"
Nerry さんのツイート: "なにか適当に作った時、panasonicは大体うまく動く。"
Nerry さんのツイート: "GPDのFADT尊重するとこいつはHW reduced ACPIじゃないということになるんだがHW reduced ACPIにしかないはずのSleep Control Registerが存在してて謎すぎる"
Nerry さんのツイート: "PM1a_CNT_BLKが0404になっててSleep Control Registerが0405になってる。 Sleep Control Registerは実質PM1 Control Registerの上位8ビットなので実態は同じものを指している。"
Nerry さんのツイート: "電源ボタンのSCIが長押ししないと取れない上に有効にしてないはずのTMR_STSビットが立つ機種がある🤔"
Nerry さんのツイート: "一部の機種で電源ボタンを押すと電源切れるようになった💤"
Nerry さんのツイート: "電源ボタンのSCIがおかしい機種はやっぱAML見ないとダメなんだろうか・・・"
Nerry さんはTwitterを使っています: 「起動時に留まる機種があって色々調べたらACPI PM タイマーが、ない:;(∩´﹏`∩);:」 / Twitter
市川 真一さんはTwitterを使っています: 「@uchan_nos ということは、これを解決するには Local APIC Timer の周波数を Intel SDM に書かれている方法で求めてから、初期化する必要があるってことなんですね、きっと」 / Twitter
ryoさんはTwitterを使っています 「pwm regulator書いてるけどバグったら変な電圧かかってボードぶっ壊しそうで恐い。今時はソフトでハードを結構簡単に壊せるんや。PC互換機のBIOSでCPUやメモリの電圧変えられるようになっりBIOSがflashになった頃からか。90年代半ば~後半くらいから?」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Windows 9xとかの頃の初期のACPIなんて、各ベンダーが手探り実装だったから、変なBIOS実装多かったよなぁ。ここのACPIの実装が間違っているからスリープに落ちないとか、そんなの同僚が調べてた」 / Twitter

@akachochin

OS作れないマンさんのツイート: "自作OSもくもく会始まりました。最初は @akachochin さんによる「ビギナーのためのACPI」です。ACPIについて触りを勉強するプレゼンだそう。 #osdev_moku2"
OS作れないマンさんのツイート: "ACPI=Advanced Configuration and Power Interface。電源制御とデバイスの設定のための統一規格。 #osdev_moku2"
OS作れないマンさんのツイート: "「デバイスの設定」と言っても、電源管理のための設定という色が強く、ACPIは電源管理のものと思えば良い #osdev_moku2"
OS作れないマンさんのツイート: "ACPIはレジスタインターフェースとメモリ上のデータ構造により動作する。xHCIのインターフェースとかと似てる! #osdev_moku2"
OS作れないマンさんのツイート: "ACPI system description tableとACPI Namespaceがキモっぽい。ACPIテーブルにはいろんなデバイスの情報が羅列されている。すべてのACPIテーブルはシステムに1個存在するRoot System Description Pointerからたど… https://t.co/Xt6plcNZ8g"
OS作れないマンさんのツイート: "古いACPI規格だとRSDTの場合もあるが、今のバージョンはXSDTを使うようになっている。XSDTとは、他のテーブルのポインタを集めたテーブルで、ルートポインタから指されるデータ構造。 #osdev_moku2"
OS作れないマンさんのツイート: "主要なテーブルは3つある。FADT(XSDTの最初のエントリが指す)、DSDT(システムごとの差異を格納するテーブル。デバイス情報などが書いてある。)、FACS(ファームウェアとおしゃべりするための情報が書いてある。) #osdev_moku2"
OS作れないマンさんのツイート: "DSDTにはAMLフォーマットのバイナリデータが格納されている。 #osdev_moku2"
OS作れないマンさんのツイート: "ACPIの規格書を読んで独自で実装するのは辛いので、Intelの実装であるACPICAを使うと楽できる。 #osdev_moku2"

@liva_jy

Livaさんのツイート: "ACPICA使ってる場合の電源offは、AcpiEnterSleepStatePrep(5)から割り込み禁止して、AcpiEnterSleepState(5)でpoweroffするのだけど、そういう話ではないのかな"
Livaさんのツイート: "UEFI環境下(qemu with OVMF)でACPICAの初期化で落ちる気がするんだけど、ACPICAの問題なのか、それとも移植の問題なのか・・・(8割型移植の問題 #liva_notebook"
Livaさんのツイート: "やっぱACPICA初期化時にgrubがロードしたフォントファイルを破壊してるなぁ。これはメモリアロケータ側の問題か? #liva_notebook"
Livaさんのツイート: "とりあえずフォントファイルを退避させる事で、AcpiInitializeSubsystem()は通るけど、AcpiInitializeTables()は途中で落ちる #liva_notebook"
Livaさんのツイート: "フォントファイルコピーしたら破壊されなくなったとか呟いたけど、そもそもロード時にコピーしてるはずなんだよな。やっぱメモリアロケータがぶっ壊れてるのか #liva_notebook"
Livaさんのツイート: "なぜ僕はこれまでメモリ破壊系のバグ調査にqemuの-sオプションを使ってこなかったんだ #liva_notebook"
Livaさんのツイート: "ブレークポイント仕掛けたらRemote 'g' packet reply is too longとか言われた後にぶっ壊れる #liva_notebook"
Livaさんのツイート: "あー、UEFI環境ではRSDPはUEFIから与えられるのか、自分で探す(AcpiFindRootPointer())のでは見つからないのね #liva_notebook"
Livaさんのツイート: "参考:ACPI Spec 5.2.5.2 Finding the RSDP on UEFI Enabled Systems #liva_notebook"
Livaさんのツイート: "grub(というかmultiboot)でACPI RSDPを定義してるのはそういう意味だったのね、RSDPの探索を省略するためかと思った #liva_notebook"
Livaさんのツイート: "BIOS環境下でもmultibootがRSDPを返してくれるかどうかは要検証だなー #liva_notebook"
Livaさんのツイート: "とりあえずmultibootからもらったRSDPを渡したらACPICAの初期化は通った #liva_notebook"
Livaさんのツイート: "最近調べてた事。q35とhpetはOVMFのサポート対象外っぽいふいんき https://t.co/xBzr20fhZW #liva_notebook"
Livaさんのツイート: "biosベースでmultiboot kernelを起動すると、grubでgfxpayload=keepにしてもフレームバッファにならないの、multibootヘッダの設定が必須だったっぽい https://t.co/VUe2rLqzRP #liva_notebook"
boot - How do I force GRUB to keep video mode after switching to the OS? - Super User
Livaさんのツイート: "multiboot2 header tagは8バイトアラインというのを読み落として嵌った。ちゃんとgrubのソースを読めばもう少し早く見つけられたような #liva_notebook"
Livaさんのツイート: "新マシンで動作検証した結果、見つけた新しいバグ。PCIの初期化をACPICAの初期化後にやろうとすると、ACPICAがPCIを叩いて死ぬっていう。 #liva_notebook"
Livaさんのツイート: "でも、デバイスの初期化のためにはACPICAの関数叩いたりするからなぁ。上手く解決しないといけない。PCIバスだけ先に初期化するのもなぁ #liva_notebook"
Livaさんのツイート: "おかしいな。qemuをアップデートしてもさっきまではACPIのHPETエントリが出てこなかったのに、なぜか突然出てきた #liva_notebook"

The ACPI Component Architecture Project
FadisさんはTwitterを使っています 「Linux 5.4から追加されたkernel lockdownは有効にするとrootであってもユーザ空間からカーネルの振る舞いを変えるような操作が拒否されるようになる。kernel lockdownが有効な場合攻撃者がroot権限を手に入れた状況でも、カーネルが提供するセキュリティの為の仕組みが正常に機能する事が期待できる」 / Twitter
FadisさんはTwitterを使っています 「ところがこのlockdownをユーザ空間から無効化する方法が見つかった。ConfigFSはACPI tableを書き換える機能を提供しているが、ACPIのMethodは任意のメモリに書ける為、kernel lockdownを無効にできる。現在はlockdown中はACPI tableを変更できなくする修正が入っている https://t.co/PzwQx4R2eq」 / Twitter
Another Attack Vector Uncovered For Bypassing Linux Lockdown Via ACPI Tables - Phoronix
FadisさんはTwitterを使っています 「修正がわかりやすすぎてウケる https://t.co/rY04RW16et」 / Twitter
[PATCH] acpi: disallow loading configfs acpi tables when locked down - Jason A. Donenfeld

PCIe

LPC

Low Pin Count - Wikipedia
Low Pin Count - Wikipedia
Wayback Machine

Active State Power Management

Active State Power Management - Wikipedia
3.7. Active-State Power Management
AR# 36325: PCI Express のデザイン アシスタント - ASPM をオフにする方法
MXI Express を使用する際に Windows がフリーズします - National Instruments
最新Red Hat Enterprise Linux 6.0の全貌 - アイドル時の消費電力を20%削減:ITpro
【短期集中連載】大原雄介の最新インターフェイス動向

PC Watch

【イベントレポート】【PCI-SIG Developers Conference 2010レポート】 PCIe Specificationの詳細 - PC Watch
【短期集中連載】大原雄介の最新インターフェイス動向
【短期集中連載】大原雄介の最新インターフェイス動向
【短期集中連載】大原雄介の最新インターフェイス動向
【短期集中連載】大原雄介の最新インターフェイス動向
ストレージクラスメモリにも対応した次世代インターコネクトの業界標準化団体が発足 ~AMD、ARM、Dell EMC、HPE、IBM、Micron、Samsungなどが参加 - PC Watch

OSDev

PCI - OSDev Wiki
OSDev.org • View topic - ACPICA does not return PCI devices
OSDev.org • View topic - PCI enumeration - do you cache the device list?

スライド

Interrupt Affinityについて
Interrupts on xv6

割り込み

RSS対応NICなのに割り込み処理が複数コアに分散しない…のはirqbalanceが動いてなかったから - 酒日記 はてな支店
デュアルソケット・ザ・ワールド Dual Socket な PC の割り込みに付いて
Linux / x86_64の割り込み処理 第2回 | VA Linux Systems Japan株式会社
Linux / x86_64の割り込み処理 第4回| VA Linux Systems Japan株式会社
Interrupts
日記 (2015 年 2 月上旬)

@syuu1228

ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 付属資料 最近のPCアーキテクチャにおける割り込みルーティングの仕組み
howto_implement_hypervisor/part4.md at master · syuu1228/howto_implement_hypervisor
part4_5.pdf
ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第4回 I/O仮想化「割り込み編・その1」

Twitter

PCI

Livaさんのツイート: "今日のデバッグでdeassertされないPCI割り込みによって無限に割り込みが発生するバグが再発してしまったので、ついでにそれも修正してしまう #liva_notebook"
Livaさんのツイート: "今回はE1000ドライバがdeassertしてないような気がしている #liva_notebook"
Livaさんのツイート: "PCI割り込みの件は、FreeBSD互換レイヤでのithreadの実装ミス(ハンドラ内でEOIを発行しない)なのだけど、これどうやって修正すればよいんだ。。。 #liva_notebook"
Livaさんのツイート: "なるほど、これか https://t.co/5Dtdf36c6w #liva_notebook"
Livaさんのツイート: "pre_ithread等はintr_event_create()で登録されてて、x86だとここ https://t.co/NvTisY7eWs #liva_notebook"
Livaさんのツイート: "このコードから分かるのは、filter処理後にAPICにEOIを投げる。そしてithread処理前にAPICの該当エントリをdisableし、処理終了後に最有効化する。なるほど、たしかにこれなら上手く動くわ。 #liva_notebook"
Livaさんのツイート: "IDT登録周りの関数の設計変更が必要になったけど、とりあえずFreeBSD互換ドライバでもAPICへのacknowledgeができるようになり、interrupt stormはなくなった。めでたしめでたし #liva_notebook"

PDA

Fadisさんのツイート: ". @omasanori さんの「Portable Driver Architecture (PDA) でユーザ空間PCIデバイスドライバ」が始まります #kernelvm"
Fadisさんのツイート: "「ring0でデバイスドライバをやっても新規性がない」 #kernelvm"
Fadisさんのツイート: "ユーザ空間でドライバを動かすことには カーネルを小さく保つ、ドライバが死んだ時の影響を限定できる、ユーザ空間の方がAPI安定性が高くドライバの再利用性が高まる、etc etc #kernelvm"
Fadisさんのツイート: "ユーザ空間PCIデバイスドライバを作るためにカーネルがユーザ空間に提供しなければならないもの: 割り込みハンドリング、デバイスが増えた減ったの管理、デバイスに対する入出力を行う仕組み #kernelvm"
Fadisさんのツイート: "Portable Driver Architecture: 高速なPCIデバイス(Infinibandなど)のドライバをユーザ空間で書く為のC言語で書かれたAPIを提供する #kernelvm"
Fadisさんのツイート: "ペイロードが小さいとどうしてもユーザ空間とカーネル空間を行き来するオーバーヘッドによって性能が落ちるが、ペイロードが大きい場合カーネルドライバと比較して遜色ない性能が出る、と #kernelvm"
Fadisさんのツイート: "「カーネル/VMの中でもネットワーク系の方にはこのDPDKというのは衆知の物のようなのですが」 #kernelvm"
Fadisさんのツイート: "DPDKはネットワーク専用に実装されているためネットワーク処理のある程度のレベルまでをDPDKでやってくれるが、ネットワーク処理以外に応用ができない。PDAはそうした処理が用意されていないが汎用的に使うことができる #kernelvm"
Fadisさんのツイート: "PDAではもともとLinuxカーネルにあるuio_pci_genericとは別にuio_pci_dmaを実装している。uio_pci_dmaはgenericと比べて明らかにソースコードが大きい → メモリ管理のため #kernelvm"
Fadisさんのツイート: "PCIデバイスとのデータ転送にDMAを使いたい → ユーザ空間で確保したメモリはスワップアウトするし不連続なメモリが割り当てられる可能性もありデバイスからのDMAで上手く書けない。NUMA環境ではDMAするメモリとPICデバイスがソケットを跨いで別のプロセッサの配下に置かれてしま… https://t.co/xTjdlmYQFo"
Fadisさんのツイート: "uio_pci_dmaではカーネル側でDMAするのに都合が良いメモリの確保を行う #kernelvm"
凍ってない方のアカウントさんのツイート: "”uio_pci_generic only supports legacy interrupts so it is not usable with SR-IOV and virtual hosts which require MSI/MSI-X interrupts.”… https://t.co/1Uyk3w9r5g"
Fadisさんのツイート: "Wrap-mapping: 同じバッファを2連続でアドレス空間にマップする → バッファをリングバッファとして使う場合に境界チェックを減らせる #kernelvm"
凍ってない方のアカウントさんのツイート: "あ、はい、uio_pci_dmaもIOMMUやろうとしてるっぽいね、なんか被ってるね https://t.co/9A5CqhKdCH #kernelvm"
Fadisさんのツイート: "pdaのオリジナルは https://t.co/6kJ3QmpuBr だけど、最近のカーネルで動かなくて、CERNが公開しているfork https://t.co/CsfCEaujkQ が最新のカーネルで動く #kernelvm"

IOMMU

とみながたけひろさんはTwitterを使っています 「xboxについてのMSの発表みると、そんなことは百年前から対策済みだというのがわかる(IOMMU使う) https://t.co/ISiHcMYkFz」 / Twitter
本の虫: 検出不可能なゲームのチートが発表、今後のオンラインゲームのデザインはこのチートを前提に設計しなければならない
とみながたけひろさんはTwitterを使っています 「「普通のPC/サーバのユーザは善意だと考えてセキュリティを設計するが、俺たちは技術的に改造が無理なカスタムのメインSoC以外は全部改造されると思って作る」というのを話しているのだけど、これは国なりなんなりにスマフォ奪取されて解析される、みたいなケースの対策も同じ感じなのだろうなと思った」 / Twitter
とみながたけひろさんはTwitterを使っています 「ちゃんと確認したわけじゃないけど、聞く話では高級スマフォではFLASHメモリがNVMe接続だそうで、だとするとPCIeがSoCから出ていることになる。物理攻撃するならこのへんなんだろうな。あと最近のWiFi6とかも爆速だから、昔みたいにSDIOとかでは辛そうだし、ここも頑張ればいぢわるできそう」 / Twitter
FadisさんはTwitterを使っています 「XBOXもXBOX360もハードウェアに対するインジェクションでハックされてきた事を思うと重みがある」 / Twitter

5/1 自作OSもくもく会さんのツイート: "インテルのチップセットのデータシートに書いてあった。TOLUD (Top of Low Usable DRAM)というレジスタに設定されたアドレスから4GBまでがPCIバスへのアクセスとなるらしい。BIOSが物理メモリ量を調べて適切にセットしてくれるとのこと。"
5/1 自作OSもくもく会さんのツイート: "PCIホストブリッジだけはコンフィグレーションレジスタを実装しなくていいことになってるんだけど、その場合Vendor IDとかはどう見えるの?"
Livaさんのツイート: "PCIのlegacyな割り込みを実装するにはACPICAまで実装する必要があった"
Kentaro Ebisawaさんのツイート: "PCI Express はデバイス使う分には楽なのだが、Root Complex とか各種 Capability を深堀しようとすると突然情報が少なくて困る。プロはチップベンダーから情報もらうんだろうけど、自分みたいな素人は公開ドキュメントだよりだからツライ。"
ゆたかさん🐬さんのツイート: "CPUのコア数は多くあっても、実は遊んでいるコアがあり、すべてのコアを使いきるのは難しいです。 OSが古かったり、PCIeカードが割り込み負荷分散に未対応だったりすると、先頭のコアばかり使われることになり、宝の持ち腐れ。"
ごごてぃさんのツイート: "あれ?WS2016からPCI-Eパススルーできるようなブログの記事があったけど、マジであるのか・・・ https://t.co/WbMGbKsVAL"
Passing through devices to Hyper-V VMs by using discrete device assignment – Hey, Scripting Guy! Blog
Fadisさんのツイート: "linux-4.20でデバイスドライバ同士がP2P DMAを利用する為のインターフェースが追加される見通しらしい。P2P DMAはPCI-Expressのデバイス間でホストのメモリを介さずに直接データを受け渡す仕組みで、GPUや100GbE、NVMe等の滝のようにデータを流すデバイスでの活用が期待される https://t.co/5iB1LYBVbE"
PCI Peer-To-Peer Memory Support Queued Ahead Of Linux 4.20~5.0 - Phoronix
Fadisさんのツイート: "ネットワークから受け取ったデータを加工してデータベースに書くまでの間にCPUは全くデータを見ていない未来が少しづつ近づいている("
ryoさんはTwitterを使っています: 「queueの数とMSI-X vectorの数とCPUの数とlinkstatusをinterruptで見る/見ないの組み合わせをマジメに考え出すとめっちゃめんどくさいな。RX/TXを独立にするしないも考えだすとさらに倍率ドン」 / Twitter

The Linux Kernel PCI
https://www.kernel.org/doc/Documentation/acpi/enumeration.txt
The PCI ID Repository
PCI Vendor and Device Lists
Re: Missing ACPI PCI devices in acpi_pcidev_scan
Does PCIe hotplug actually work in practice? - Electrical Engineering Stack Exchange
PCI Express – Raphine Project<サイト製作中>
PCのメモリをいじったらPCIE Bus errorになってrebootできなくなった時 - yamaguchi.txt
PCI Confguration space access methods
PCI Memo · osdev-jp/osdev-jp.github.io Wiki
PCI Express DIY hacking toolkit | Firmware Security
まつうさんさんはTwitterを使っています 「PCI ExpressからDMAを使ってメモリ上のデータをぶっこ抜き。悪用しか思いつかないけど悪用したらあかんぞ! / “GitHub - ufrisk/pcileech: Direct Memory Access (DMA) Attack Software” https://t.co/nTj59Ev6tb」 / Twitter
ufrisk/pcileech: Direct Memory Access (DMA) Attack Software
日記 (2018 年 11 月中旬)
日記 (2018 年 11 月下旬)
PCIE スニファ windows - Google 検索
Specifications | PCI-SIG
Intel PCH I/Oポートフレキシビリティ機能について - DXR165の備忘録
Ricerca Security: "I'll ask your body": SMBGhost pre-auth RCE abusing Direct Memory Access structs
DMA Contiguous Memory Allocator の x86_64 アーキテクチャサポート - Fixstars Tech Blog /proc/cpuinfo
日記 (2020 年 6 月)

APIC

APIC Timer

Twitter

Nerry さんのツイート: "moeでHPETやめてLAPICタイマーにしようとしたら結局スケジューラーでHPETの機能が必要になって困った😩"
デダルス・ユメノさんのツイート: "HPETが必要な理由が気になります… "
Nerry さんのツイート: "moeもプリエンプションそのものは他のOSと同様に数msのタイマー割り込みを契機としているが、スレッドごとのCPU使用率はもっと精度の高い(MHz単位の)タイマーで計測しているため"
Nerry さんのツイート: "CPU使用率計算するのにタイマー割り込みだと遅すぎるんです… "
Nerry さんのツイート: "そもそもそこまで高精度にCPU使用率計算する必要あるのか?🤔"
Nerry さんのツイート: "LAPICタイマー全てのコアで実行したろ→カウンターがコア数分増えて時計めちゃくちゃ"
Nerry さんのツイート: "IDTもコアごとに分離する必要がある・・・?🤔"
デダルス・ユメノさんのツイート: "LAPICタイマーはポーリングでも時間計れますよね… "
Nerry さんのツイート: "その発想はなかった… "

APIC timer - OSDev Wiki
Advanced Programmable Interrupt Controller - Wikipedia
Page 378
ハードウェアタイマー ‐ 通信用語の基礎知識
hiboma/clocksource.md at master · hiboma/hiboma
Local APIC timer interrupt - Linux Process Manager
Local APICのタイマ割り込み周波数を表示するメッセージ - ZDNet Japan
Linux source code: arch/x86/kernel/apic/apic.c (v3.4) - Bootlin

OSDev.org

OSDev.org • View topic - Set IMCR to 0x1 to mask external interrupts?
OSDev.org • View topic - Question about virtual wire mode
Symmetric Multiprocessing - OSDev Wiki
APIC - OSDev Wiki
IOAPIC - OSDev Wiki

interruptの意味 - 英和辞典 Weblio辞書
Eiiti Wadaさんのツイート: "@iorivur 割り込みっていう日本語は... 1959年の夏, パラメトロン計算機の出力装置が直前の文字の処理を終えたことを走行中の計算機に知らせる方法はないかとの議論で割り込みのアイディアを得ました. そして最初の並列処理のプログラムを書きました. 難かしかったなぁ."
パラメトロン計算機: 世界一周プログラム
livaの雑記帳(2016/10) – Raphine Project<サイト製作中>
Kimihiro Nonakaさんのツイート: "AMDのCPUはx2APICじゃなくてLAPICにAMD独自拡張のレジスタを追加してあるのか…(´・ω・`)"
Kimihiro Nonakaさんのツイート: "Ryzenもx2APICじゃないのか。Naplesのことを考えるとこっちも一緒に対応させたほうが良いかなぁ "ExtAPIC" | https://t.co/PNXuGP3XBv https://t.co/PNXuGP3XBv"
I/O APICのEOIが動かない - livaの雑記帳
Kimihiro Nonakaさんのツイート: "つーか、MSR_APICBASEのPHYSADDRってなんで32bitなの?(´・ω・`) これ書いたときは32bitだったの?"
Kimihiro Nonakaさんのツイート: "AMDプラットフォームでioapic(4)が二つ見えるのってnorth bridgeとsouth bridgeにそれぞれあるからなんかなぁ…。north bridge側にあるのはAPIC IDが8bitに拡張されているっぽいけどsouth bridgeのはそうなっていない?"
Livaさんのツイート: "LAPICのレジスタ読んでAPIC ID取得するのと、RDTSCP使うのとで何倍くらいの差が出るのか、調べてみたくなった"
x2APICとinterrupt remapping - 睡分不足

HPET

HPET - OSDev Wiki
High Precision Event Timer - Wikipedia
www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/software-developers-hpet-spec-1-0a.pdf
本の虫: VistaでHPETが使われていることの確認
NOKUBI Takatsugu野首貴嗣さんのツイート: "タイマー ACPI tableからHPETアドレスを取得、論理=>物理アドレスに変換 #kernelvm"
Fadisさんのツイート: "HPETはLinuxだとデバイスファイルをmmapして読んでるけどACPIから直接読む #kernelvm"
HPET – Raphine Project<サイト製作中>
​RyzenMaster and HPET can make your Ryzen computer run slower - PC World Australia
社会人でもOSを作りたいさんのツイート: "Celeron Nシリーズ(2015年頃のCPU)のデータシートによれば,HPETはIntel Legacy Blockに含まれている.HPETでさえレガシーデバイス扱いなのか…"
社会人でもOSを作りたいさんのツイート: "仕方ないのでLAPIC Timerで時間計測するようにした"
The Linux Kernel Disabling HPET For Intel Coffee Lake - Phoronix

Video

https://www.kernel.org/doc/Documentation/acpi/video_extension.txt
JF: Linux Kernel 2.6 Documentation: video_extension.txt
Extended Display Identification Data - Wikipedia, the free encyclopedia
VESA DDC(EDID)ってなんだ? ( その他趣味 ) - 音響・映像・電気設備が好き - Yahoo!ブログ
VGA (VESA DDC) - HwB
用語解説
Intel Processor Graphics 調査メモ - DXR165の備忘録
acrn-hypervisor/hld-APL_GVT-g.rst at master · projectacrn/acrn-hypervisor
Igalia/intel-osrc-gfx-prm: Intel Open Source Graphics Programmer Reference Manual (PRM)
Intel graphics
マルチディスプレイのまとめスタイル修正: Intel IGP
メモリ セグメントへの仮想アドレスのマッピング - Windows drivers | Microsoft Docs
メモリーエラー | PhoenixKnight
とみながたけひろさんはTwitterを使っています 「VGAにあるI2Cという話題で思い出したけど、EDIDのチェックサム、ひどくない? I2Cがどっちかに張り付いて、全部0xFFとか0x00になっても、チェックサムは255byteごとに1byteなので、どっちもエラー検出できないっていう。まあ0張り付きはあきらめるにしても、1は検出できるようにしてほしかった…」 / Twitter
HDMI探検隊
FadisさんはTwitterを使っています 「DDC/CI: 音量や輝度の操作 EDID: ディスプレイが表示できる解像度などの情報をとる SCDC: ディスプレイの設定を読み取るなどなどいろんな通信がHDMI上で行われている #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「CECには割と自由にパケットを投げられるが投げまくると普通に溢れて他の機器からのパケットが落ちるw #kernelvm」 / Twitter
FadisさんはTwitterを使っています 「HDMI CECには認証がないためHDMIに繋がりさえすれば悪さができ、例えばリモコンからパスワード入力をしていたら読み取るとかハードウェアに負荷を変えるとか、輝度を高頻度で変える人間に対する攻撃が考えられる、と #kernelvm」 / Twitter
急性胃腸炎さんはTwitterを使っています 「本体では0から100までしかできない輝度設定にDDC/CIで255を書き込んでディスプレイを壊そうとするPoC 実際に壊れた(輝度が調節できなくなった) #BadHDMI ddcutil setvcp 0x10 0xff https://t.co/eKBJ4RQPMv」 / Twitter

Intel Sensor Hub

Linux 4.9、これまでで最も大きなリリースに | マイナビニュース
2016年12月12日 Linux 4.9が正式公開,2200万行を超える史上最大のビッグリリースに:Linux Daily Topics|gihyo.jp … 技術評論社
技術者見習いの独り言: VAIO Z(フリップモデル)に Arch Linux をいれる
Presentation Title
【後藤弘茂のWeekly海外ニュース】センサーハブによって変わるモバイルとそれを統合するウェアラブル - PC Watch
https://www.kernel.org/doc/Documentation/hid/intel-ish-hid.txt
4Gamer.net ― インテル,ソフトウェア開発者向に大規模イベントを開催。次世代Ultrabookは各種センサーを備え,Windows 8での利用が前提に
DCMI-HI DCMI Host Interface Specification

Intel Smart Sound Technology

Sound Open Firmware

The Linux FoundationがSound Open Firmwareプロジェクトを歓迎 - The Linux Foundation
Sound Open Firmware
thesofproject/sof: Sound Open Firmware
SOF Project documentation — SOF Project 0.1 documentation
Intel Architecture — SOF Project 0.1 documentation
Supported Platforms — SOF Project 0.1 documentation
Firmware - AlsaProject
Home - Sound Open Firmware
2019年7月10日 Linux 5.2がリリース ―Sound Open Firmware,PSI機能の改善など:Linux Daily Topics|gihyo.jp … 技術評論社
FadisさんはTwitterを使っています 「FedoraがSound Open Firmware(SOF)をデフォルトにするらしい。Intelは近年のSoCなCPUにSmart Sound Technologyと呼ばれるオーディオDSPを積んでいるが、従来このDSPで実行するファームウェアはclosedだった。SOFはこれを置き換える新しいオープンソースなファームウェア https://t.co/lFtMHeGQOx」 / Twitter
Fedora Preparing To Switch To Intel's Modern "Sound Open Firmware" Audio Driver - Phoronix
FadisさんはTwitterを使っています 「SOFの開発は主にIntelとGoogleによって勧められているが、Intel Smart Sound Technologyの実態はCadence Design Systems社のXtensaと呼ばれるDSPで、同様のDSPはNXPの一部のARM SoCでも採用されており、SOFはそれらのSoCもサポートしている」 / Twitter

インテル® スマート・サウンド・テクノロジー
【イベントレポート】Intel、3D XPointベースのSSDやCurieの実シリコンをデモ ~IoTやウェアラブルに対する本気度を見せたクルザニッチ氏の基調講演詳報 - PC Watch
Intel Smart Sound Technology Audio DSP Non-HD Audio ACPI High Level Design - PDF
Intel,「Broadwell-U」ことノートPC向け第5世代Coreプロセッサ14製品を発表 - 4Gamer.net
ノートPC向けなのにOCできるK付きもXeonも!第6世代Core(Skylake)が46種類増加 - 週刊アスキー

MIPI SoundWire

北森瓦版 - Intelチップセットのロードマップ―Z390は2018年下半期予定
MIPI SoundWire
ケイデンスが、業界初のMIPI SoundWire Controller IPソリューションを提供
ケイデンス、業界初のMIPI SoundWire v1.1高品質オーディオソリューション向け設計IP、検証IPを提供
Intel roadmap shows when to expect Coffee Lake-S (300 Series) - CPU - News - HEXUS.net
MIPI SoundWire v1.1のIPコアと検証IP、Cadenceが提供 | 日経 xTECH(クロステック)
【特集】今年後半の薄型ノートやタブレットは音質が大きく向上(するかもしれない) - PC Watch

ヒンジセンサー

FadisさんはTwitterを使っています 「IntelがLinuxカーネルにヒンジセンサーのドライバを追加している話。Intel曰く、ヒンジセンサーは「ラップトップで広く用いられている」センサーで、画面とキーボードのなす角、画面と水平面のなす角、キーボードと水平面のなす角を取得する事ができるらしい https://t.co/Qxtpgzq58X」 / Twitter
Intel Has A New Driver For Linux 5.12: Reporting Your Laptop's Hinge/Keyboard Angle - Phoronix
FadisさんはTwitterを使っています 「ヒンジセンサーはこの手の雑多なセンサーが押し込まれているLinuxのIndustrial I/Oデバイスの一種として扱われ、sysfsから簡単に3つの値を取得する事ができる」 / Twitter

タッチパッド

Synaptics タッチパッド - ArchWiki
libinput - ArchWiki
Linuxでタッチパッドのスクロール機能を使うには - @IT
タッチパッド - Wikipedia
Touchpad - Wikipedia
Synaptics TouchPad Interfacing Guide
2.1. ALPS Touchpad Protocol — The Linux Kernel documentation
paul_ps2emu.pdf
psm(4)
なかのん&マジックさんのツイート: "中クリックとAlt+Enterでタブに開くという共通動作を知らない人も何人か見かけた。"
なかのん&マジックさんのツイート: "@nyoro_712 macOSのtrackpadだとどうしようもないんですけど、大半のWindows PCについてるSynapticsのタッチパッドだと、3本指タップを中クリックに設定できるんですよね。ちなみに、後者の場合はブックマークの展開先は既に設定に存在しています(browser.tabs.l… https://t.co/40vmdQqRku"
なかのん&マジックさんのツイート: "@nyoro_712 無さそうなのと、特にバグとして報告もされていないので、需要が無いのかもですね。"
なかのん&マジックさんのツイート: "@nyoro_712 おそらく、historyはGUIで探すのが非効率的なので、URLバーからタイトルやURLで探してる人が多いんじゃないかという気がします。その場合、Alt+Enterで済みますから。"
なかのん&マジックさんのツイート: "@nyoro_712 一応、Firefox 3以降は、「URLバーでアクセスしたいページをbookmarkとhistoryの両方から検索すれば良い。そのために、180日分historyを残し、消したく無いものには☆を付けてもらってブックマークの未整理フォルダに突っ込んでおいて消えないようにしておこう」… https://t.co/h1kX1XHNwL"
なかのん&マジックさんのツイート: "@nyoro_712 Firefox 2開発時には新しい使い方を押しつけようとしたんですが、それは反発が大きかったので一旦取り下げられ、Firefox 3で、今までの使い方もできるけど、新しいURLバー中心の動作もできるようになりました。私もブックマークツールバーを多用しつつ、URLバーも使い、用途に… https://t.co/Wo5XYneFk9"

マウス

PS/2仕様
ardionoにPS/2マウスを接続する | ものづくりとプログラミング日記
Arduino Playground - Ps2mouse
moused(8) FreeBSDドキュメントJMan
PS/2 Mouse Interfacing
"8042" PS/2 Controller - OSDev Wiki

キーボード

キーボード コントローラ(KBC)
はりぼてOSをUEFIで起動する/4日目 - ねりりんと借り初めのものがたり
PORTABOOK - ねりりんと借り初めのものがたり
アラビア語キー配列 - Wikipedia
Keyboard layout - Wikipedia
IBM PC keyboard - Wikipedia
Scancode - Wikipedia
スキャンコード - Wikipedia
キー配列 - Wikipedia
Altキー - Wikipedia
AltGr key - Wikipedia
QWERTZ配列 - Wikipedia
The PS/2 Keyboard Interface
The PS/2 Mouse/Keyboard Protocol

リセット

ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
Nerry さんのツイート: "再起動と電源切断をUEFI RT ResetSystem API呼び出す方法から ACPI の提供するサービスに移行してる最中だけど、一部環境(qemu)でACPIリセット対応してない機種がある。 リセットレジスタはオプショナルのようだからこれでも正しい動作な気はするが・・・"
Nerry さんのツイート: "そもそもIOポートでリセットって一体何通りの方法があるんだ?🤔 ACPIのリセットポートはOADGに書いてるポートとかと全然違うんだが"
Nerry さんのツイート: "確か普通のPC/ATには比較的古い機種で使える遅いリセットと比較的新しい機種で使える速いリセットが何種類かあって、それの正しい呼び出し順番を昔どっかで見た気がする。 ACPIリセットレジスタはそれらとまた別のポート。"
Nerry さんのツイート: "ACPIリセットポートはCF9がよく使われてるようだがこのIOポートってPCIコンフィグレーションと被ってないか?"
市川 真一さんのツイート: "CF8 をダブルワード・アクセスする場合に PCI_ADDRESS レジスタに対する R/W になるので、CF9 にバイト・アクセスする場合には PCI コンフィグレーションとは関係なく使えると思います… "

TPM

TPM の推奨事項 (Windows 10) | Microsoft Docs
TPM 2.0 Library Specification | Trusted Computing Group
1
TCG Opal 2.0 - Technology - Apacer for Industrial - The most reliable storage and memory
TPM 1.2と2.0の機能の比較 | Dell 日本
TPM2.0は”なにもの”で、どこで(何で)対応するのか?: なんとなく綴ってみた
Trusted Platform Module - Wikipedia
今夏からWindows 10 PCはTPM 2.0搭載が必須に - PC Watch
松本 泰さんはTwitterを使っています 「MSのVirtual TPMが、FIPS140-2 取得 https://t.co/TDdMR96Xv7 これ、ゆりか先生の プラットフォームセキュリティin Windows ブートタイム保護 概要編 https://t.co/JqzQ7NgJPv 一緒に見ると、理解が深まると思うよ。」 / Twitter
140sp3690.pdf
プラットフォームセキュリティin Windows ブートタイム保護 概要編
suzakiさんはTwitterを使っています 「メモ。 TPM 1.2と2.0の機能の比較 https://t.co/U4BEehjS8N TPMで使う暗号アルゴリズムの一覧が便利。」 / Twitter
TPM 1.2と2.0の機能の比較 | Dell 日本

FIDO

WebAuthn(FIDO2)

パスワードに依存しない認証「WebAuthn」をChrome/Firefox/Edgeが実装開始、W3Cが標準化。Webはパスワードに依存しないより安全で便利なものへ - Publickey
Web Authentication: An API for accessing Public Key Credentials Level 1
FIDO Alliance and W3C Achieve Major Standards Milestone in Global Effort Towards Simpler, Stronger Authentication on the Web
パスワード依存脱却へ一歩前進、次世代Web認証「WebAuthn」が勧告候補に | マイナビニュース
Web Authentication API で FIDO U2F(YubiKey) 認証 | blog.jxck.io
FirefoxがWeb Authentication APIを導入
マイクロソフト、WebAuthnをEdgeに実装。パスワード不要、生体認証やPINでWebサイトへログイン可能に。2018年秋のWindows 10アップデートで - Publickey
WebAuthn demo
Chrome 70から、WebAuthnでMacのTouchIDとAndroidの指紋認証がデフォルトで利用可能に。Webサイトへのログインもタッチで - Publickey
Yahoo! Japanが近日中にFIDO認証に対応すると表明、パスワードを使わず生体認証などでWebブラウザからのログインを可能に - Publickey
IdM実験室: Windows 10 October 2018 UpdateのEdgeでWebAuthnを試す
Eiji Kitamura / えーじさんのツイート: "Chrome 70 の新機能 - Windows でのデスクトップ PWA に対応、WebAuthn での指紋認証、名前付き Worker など https://t.co/9tp9JGBaSj"
Web Authentication: An API for accessing Public Key Credentials Level 1
FIDO Alliance FIDO2 Project - FIDO Alliance
指紋認証でヤフーへログイン可能に、FIDO2方式での認証に各サービスが対応 - INTERNET Watch
「FIDO」で“パスワードレス時代”到来か? ヤフーと三菱UFJに続きLINEも導入 - INTERNET Watch
Client to Authenticator Protocol (CTAP)
WebAuthnに対応したSafari Technology Preview 71、アップルがリリース - Publickey
[WIP]WebAuthnのためのnavigator.credentials.create仕様読解 - murak.me
WebAuthn @ DroidKaigi 2019 - Speaker Deck
パスワードを不要にするFIDO2プロトコルに、Android 7以降の全デバイスが適合。FIDOアライアンスが「AndroidがFIDO2認定取得」と発表 - Publickey
W3C and FIDO Alliance Finalize Web Standard for Secure, Passwordless Logins - FIDO Alliance
パスワード不要のログイン方法「WebAuthn」がウェブ標準になる - GIGAZINE
W3C、パスワードを不要にする「Web Authentication」(WebAuthn)を勧告として発表。Chrome、Firefox、Androidなど主要ブラウザですでに実装済み - Publickey
dynamis (でゅなみす)さんのツイート: "Google AccountがいつまでもWeb Authnの標準仕様(Firefoxで実装済み)に対応しないから、非標準実装のWeb AuthnサポートもGoogleなど特定サイトだけを対象に入れようか議論してる。 なんともはや。。。何のための標準化なのかって気持ちになる。 https://t.co/tVIvU8Uw71"
Backward-Compatibility FIDO U2F support shipping soon in Firefox | Mozilla Security Blog
ASCII.jp:Windows 10+FIDO2デバイスでパスワード入力なしにMicrosoftアカウントにログイン (1/3)|Windows Info
第570回 セキュリティキーを使って,Ubuntuで多要素認証をしてみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
WebAuthnことはじめ - Mercari Engineering Blog
パスワードレス認証WebAuthnの勘所と対応状況:新春特別企画|gihyo.jp … 技術評論社
W3CとFIDO AllianceはセキュアでパスワードなしログインのWeb標準であるWebAuthnを最終化した
Androidスマホが指紋認証でウェブサービスへのログインが可能に - GIGAZINE
webauthn_study_ritou.pdf - Speaker Deck

Windows Hello

IdM実験室: [FIDO/Windows10]idcon vol.20(別名fidcon)が開催されました
【連載】MS ゆりか先生が教えるWindows 10 セキュリティのアレコレ [3] パスワードとさよなら!? Windows HelloとMicrosoft Passportで実現する世界|セキュリティ|IT製品の事例・解説記事
パスワードは時代遅れです:Windows 10時代の新認証 「Windows Hello/Microsoft Passport」と「FIDO」を理解する (1/5) - ITmedia エンタープライズ
Windows Hello を Web で使うための Web Authentication API (FIDO 2.0) について調べた - しばやん雑記
FIDO in Windows10
Windows Hello とは
Windows Hello | Windows 10 | Microsoft
Windows Hello の概要とセットアップ
Windows Hello for Business (Windows 10) | Microsoft Docs
Windows Hello for Business および Azure AD 経由でのパスワードを使用しない ID の認証 | Microsoft Docs
Webでの生体認証をヤフーさまとともに - Windows Blog for JapanWindows Blog for Japan
Windows 10 で FIDO 認証技術をサポート | Windows Blog for Japan
Windows Helloが生体認証機能つき指輪「Token」に対応 - PC Watch
Web Authentication API 紹介 (Windows Hello を使った Edge 開発) – Tsmatz
MicrosoftアカウントにWindows Helloでログイン可能に ~EdgeがWebAuthn/FIDO2に対応 - PC Watch
Windows Hello for Business (Windows 10) | Microsoft Docs
Passwordless Web Authentication Support via Windows Hello | Mozilla Security Blog
Windows 10搭載の生体認証「Windows Hello」がFIDO2認定を取得 ~Webブラウザでもパスワード不要でログイン可能に - PC Watch

News

Googleアカウントの2段階認証で使用可能なUSBセキュリティキー「FIDO U2F Security Key」を使ってみました - GIGAZINE
Googleアカウントのセキュリティを最大限に高めるUSBキー「FIDO U2F SECURITY KEY」 - ケータイ Watch
GitHub、大容量ファイルストレージやFIDO U2F対応などの新サービス発表 | マイナビニュース
Bluetooth Smartデバイスで二段階認証、FIDOの仕様に - ケータイ Watch
MS、Windows 10にパスワード不要の認証技術「FIDO」を採用 - ITmedia エンタープライズ
News & Trend - ポストパスワードの有力候補、ユーザー認証の新仕様「FIDO」が始動:ITpro
半径300メートルのIT:Googleの二段階認証を3400円のUSBキーで試す - ITmedia エンタープライズ
News & Trend - 認証標準化団体が「FIDO 2.0」のWeb API仕様をW3Cに提案、パスワードレス普及へ一歩:ITpro
パスワード管理ツールを一元化するオープンソースプロジェクト「Open YOLO」、DashlaneとGoogleが提携 -INTERNET Watch
FIDO Alliance、新仕様「FIDO 1.1」とJapan WG設置を発表 -INTERNET Watch
【清水理史の「イニシャルB」】 入手をきっかけに2段階認証有効化大会を開催 YubicoのUSBセキュリティキー「YubiKey 4」 - INTERNET Watch

blog

FIDO U2Fをサポートする十数個のサービス | YubiKey BLOG
煩雑なパスワード管理から解放してくれる「FIDO」とは? - THE ZERO/ONE
アイデンティティ管理とその動向 - Yahoo! JAPAN Tech Blog
FIDO認証の進化とさらなる応用展開 (第3回FIDOアライアンス東京セミナー講演) - Yahoo! JAPAN Tech Blog
次世代認証プロトコルFIDOの動向 - Yahoo! JAPAN Tech Blog

スライド

Tokbind-fido
Idcon gomi-052715-pub
slides_06.pdf

Qiita

yubikey - Googleの二段階認証にセキュリティキーを使う - Qiita

Twitter

Rockridgeさんのツイート: "Fx48:FIDO U2F v1.1 APIの初期実装が完了。security.webauth.u2fとsecurity.webauth.u2f_enable_softtokenの設定を有効化することで利用できる。参照:… https://t.co/EyDiiDX13q"
Rockridgeさんのツイート: "FIDO U2FをベースにW3Cで策定中のWeb Authentication APIについて、MozillaがFirefoxに実装する意向を表明した。 / “Intent to implement and ship: Web …” https://t.co/MIwCwKP6gT"
Rockridgeさんのツイート: "Fx57:FIDO U2F Security KeyとなるUSBヒューマンインターフェイスデバイス(HID)をサポート。2段階認証にUSBキーが使えるようになる。なお、ソフトウェアライブラリはRust言語製。参照:… https://t.co/ZJn007joFl"
Rockridgeさんのツイート: "Firefox 60において、Googleアカウントの2段階認証に既に利用しているU2Fデバイスについては、Web Authentication APIに対応していなくてもサポートする方針。ただし、数年間に限定した話のようだ。 https://t.co/umRmiLkSoA"
Rockridgeさんのツイート: "Fx59:FIDO U2Fデバイスによる認証が利用できるのは、HTTPS接続されたWebサイトのみ。 / “1247124 - Use [SecureContext] for FIDO U2F JS API” https://t.co/4Uhh9m66om"
nov matakeさんのツイート: "“For example, all YubiKey 4 devices would have the same attestation certificate; or all Samsung Galaxy S8’s would have the same attestation certificate.” えっ、デバイスごとにちがう鍵埋めてんじゃなかったのか... https://t.co/00sRMfVy7i"
FIDO Alliance FIDO TechNotes: The Truth about Attestation - FIDO Alliance
82さんのツイート: "デバイスごとに異なるキーペアに各社のCAやらがsignしてるはず→Attestation Certificate… "
Yoshikazu Nojimaさんのツイート: "このページのKey generation scheme used by Yubico U2F devicesという図に、 Device Secretという物が載っていますが、これが「Credential IDから秘密鍵求める用の鍵」で、 こちらはデバイスごとに異なる鍵が焼き込まれている認識です。 https://t.co/1nin7eyHyt… https://t.co/IHK76N9pwA"
Key generation
82さんのツイート: "仮に同じモデルで同じ Private Key つかっちゃうと、どのデバイスでも Credential ID から、Private Key 復元できちゃうからそれはないはず。Root Certificate が同じという意味では? それともキーペア生成時に、シリアルとか混ぜ込むのかな…。とりあえず記事読んでみます。… https://t.co/UEGGCSPaGw"
nov matakeさんのツイート: "FIDO2-readyなYubiKey、もうあるしいいやと思ってたけど、もいっこもらっとけばよかったw… "
Borisさんのツイート: "Today I learned that the way the Google FIDO u2f polyfill is written means the API defined at https://t.co/HqYHPOMwPo can't actually be shipped in non-Chrome browsers in that form because the polyfill will stomp on it with code that only works in Chrome."

Web Authentication Working Group
FIDO Alliance and W3C Achieve Major Standards Milestone in Global Effort Towards Simpler, Stronger Authentication on the Web
FIDO Alliance » Download Specifications
FIDO Alliance » Metadata Service
google/u2f-ref-code: U2F reference implementations
FIDO U2F 準拠した対応デバイス『ePass FIDO』販売開始
FIDO U2F対応認証オプション | CloudGate
u2fval
List of libraries
U2F - FIDO Universal 2nd Factor Authentication | Yubico
FIDO - マイクロソフト系技術情報 Wiki
Google、Androidスマホを2段階認証のセキュリティキーにできる機能 - PC Watch

日時管理

その他

日本標準時プロジェクト https/http を介してアクセスされる場合
てくろぐ: インターネット・トリビア: インターネットと時刻
関数の時間計測 - in neuro
システム障害なしにうるう秒を乗り切る技術の発達について|Rui Ueyama|note
melancholic afternoon
無理数時計の数理@tcfmミートアップ
「Firefox」でインストール済みアドオンが利用不能になる問題が発生中 - 窓の杜
クロックを用いた時間計測 - Qiita
Web標準になった高分解能な計時レベル2
ruby/zlibのテストが何もしていないのに失敗するようになった話 - @znz blog

基礎

CPU time - Wikipedia
System time - Wikipedia
Elapsed real time - Wikipedia
wall time
UNIXのwall-clock-time、user-cpu-time、およびsystem-cpu-timeとは何ですか?
wall clock timeとCPU timeの測定 - ange1の日記
real time/user CPU time/system CPU timeの違いをメモ – Siguniang's Blog

制度

国民の祝日

国民の祝日について - 内閣府
国民の祝日に関する法律 - Wikipedia
国民の祝日チェック

和暦

MS

Japan New Era Name Support Blog – 日本マイクロソフトの新元号 (和暦) 対応に関するサポート情報のブログです
新元号 改元の対応のプロセス – Japan New Era Name Support Blog
新元号への対応についてのアップデート – Japan New Era Name Support Blog
ZZOさんのツイート: "マイクロソフトの.netは、これまでは西暦が入ったDateTime渡すと例えば"平成1年"という文字列を返してきたのに、新元号対応後は"平成元年"という文字列を返してくるように仕様変更される。行政提出用データやOCR帳票等に"元"を出してはいけないため調査と変更を急遽行っているという現状。"
ASCII.jp:日本マイクロソフト平野社長、Windowsの「新元号」対応を説明
牟田口大介さんのツイート: "Windows Updateで元号一文字表記のフォーマットが変更されたのやばすぎ…。 レジストリで 平成_平_Heisei_H だったのが 平成_㍻_Heisei_H になったらしいよ。だれだこれにOKだしたの"
Japanese Era Ligature Abbreviations – I'm not a Klingon ( )
新元号への対応について - Microsoft mscorp
kumoha683さんのツイート: "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras] "2019 05 01"="令和_令_Reiwa_R" 追加した"
個人のお客様向け:マイクロソフト製品の新元号への対応に関する情報 - News Center Japan
日本マイクロソフト、新元号対応への同社の取り組みをまとめたページを新たに公開【やじうまWatch】 - INTERNET Watch
【令和】Microsoft の元号対応が迷走している件 - Qiita
おごちゃん / 軽率の謗りを免れないさんのツイート: "だから、改元の日まで新元号を使っちゃいけないだってば。 新元号が使えるためには、システム日付が5/1になってないとダメってのは、正しい法律の実装。 とは言え、テストがなぁ...… "
楠 正憲さんのツイート: "誰も間に合うなんて約束してなかったはずだし、ギリギリで配信されても情シス部門がテストする時間がない訳で、急がない方がいいのでは? / “Windowsの令和対応パッチ配信が始まらず、10連休に間に合わない懸念も | 日経 xTECH(クロステック)” https://t.co/xbbZBv8zMW"
Windowsの令和対応パッチ配信が始まらず、10連休に間に合わない懸念も | 日経 xTECH(クロステック)
なかのん&マジックさんのツイート: "間に合わん方がオジサン達に良い薬な気もするな。 https://t.co/JYzns9i23j"
島鉄雄さんのツイート: "Windows がちゃんと令和対応してるか、プログラマならコードで確認したくなるよね? 元年の表示は自分で対応しないと駄目っぽい。 あと、Emacs26.2 だけどなんかインデントがおかしい...orz L"" という書き方に対応してないような気がする…ぐぬぬ… https://t.co/XUhcaKr62V"
ASCII.jp:Windows 10の令和対応パッチによる変更点を詳しく見る (1/2)|Windows Info
ASCII.jp:.NET Frameworkにおける新元号「令和」への対応 (1/2)|Windows Info
ASCII.jp:改元絡みでWindows 10の電卓アプリがバグってました (1/2)|Windows Info

PC Watch

【Windows 7 ユーザーズ・ワークベンチ】Windowsの言語環境カスタマイズと国際対応 - PC Watch
2019年発の“新元号”はWindowsアップデートで対応 - PC Watch
改元されたあとの“平成31年”表記はどう扱うべき? ~日本マイクロソフトやAdobeが改元対応を説明 - PC Watch
Microsoft、「KB4487044」適用で元号に不具合 - PC Watch
新元号は“令和”に決定 - PC Watch
ATOK、4月18日より「令和」に対応。日付入力支援なども - PC Watch
日本マイクロソフト、Windows/Officeは自動更新で「令和」に対応 - PC Watch
日本マイクロソフト、「令和」に対応したWindows更新プログラムを提供開始 ~GW中は専用問い合わせ窓口で対応 - PC Watch

窓の杜

日本マイクロソフト、来年の改元に備えたサポート情報ブログを開設 - 窓の杜
新元号への対応に関するアナウンスは6月が目標 ~マイクロソフトが最新情報を公開 - 窓の杜
改元・新元号に備えた変更が「.NET Framework」に ~一部は7月の月例更新で自動配信 - 窓の杜
Microsoft、新元号の仮定義を削除するパッチをリリース ~「April 2018 Update」向け - 窓の杜
「Microsoft Silverlight」が新元号へ対応 - 窓の杜
2月のパッチでWindowsの元号処理や仮想マシンの復元に問題 ~Microsoftが修正版を公開 - 窓の杜
日本マイクロソフト、新元号対応に関連する情報を集約したWebページを公開 - 窓の杜

blog

山市良のえぬなんとかわーるど: Windows 10 ver 1803 の新元号仮定義(既に廃止)と e-Tax
新たな元号はJIS X 0213に入るのか | yasuokaの日記 | スラド
平成の次の新元号の文字列を取得するコード - にせねこメモ
新元号は「令和」に、施行は5月1日 | yasuokaの日記 | スラド
「令和」の典拠は日本古典なのか漢籍なのか | yasuokaの日記 | スラド
The Unicode Blog: Unicode Version 12.1 released in support of the Reiwa Era
The Unicode Blog: Unicode コンソーシアムは「令和」をサポートする Unicode 12.1 を正式リリースしました

Twitter

なかのん&マジックさんのツイート: "和が昭和とかぶったから、合成文字では読みにくそう。"
Taku Kudoさんのツイート: "NF(K)Cでは、U+F9A8 は U+4EE4 に正規化されるみたい。それとは別に、U+32FFの正規化が追加されるのかな。"
Kazuho Okuさんのツイート: "テストやってないのが問題なんじゃなくて、和暦対応に開発やコスト工数割かなきゃいけないのが問題なんですよ。ねんのため… "
しげっと(オルタ)さんのツイート: ""和暦の一の位が「1」だったら「元」に変換するロジックを組み込んでいた。しかし、十の位を考慮していなかったため、ミスが生じた" 世田谷区の通知書類に「平成3元年」と誤表示、改元前に早くもトラブル https://t.co/tuV69sH54p"
世田谷区の通知書類に「平成3元年」と誤表示、改元前に早くもトラブル | 日経 xTECH(クロステック)
Haruhiko Okumuraさんのツイート: "「令和」の「令」は U+F9A8 じゃなく U+4EE4 だと書かれている https://t.co/C3kx855Dk9"
小熊善之さんのツイート: "こんなん発出されてたんか……。: 新元号名で使用する文字コードについて(周知) https://t.co/ZPxfm3NkgU"
改元に伴う企業等の情報システム改修等への対応 (METI/経済産業省)
20190405_kaigen_code.pdf
はむ弁護士さんのツイート: "海外の取引先は、日本がGWで長期休暇であることを伝えても「Golden week?なにそれ?」という感じで、日本側の事情を無視して休暇中にも連絡がくるのですが、今年は「Crown Princeが5月1日にNew Emperorに即位してReiwa Eraが始まるから10連休なんだ」と伝えると、わりと理解を示してくれる印象です。"
島鉄雄さんのツイート: "WSL(Ubuntu 18.04) の令和対応を完了! なんとかギリギリ間に合ったw /usr/share/i18n/locales/ja_JP を https://t.co/BJswKP6sBY の ja_JP で上書きして $ sudo localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 した。 strftime() の使い方の勉強にもなった。 (もしやる場合は自己責任でお願いします)… https://t.co/88PYrxGlFK"
sourceware.org Git - glibc.git/commit
島鉄雄さんのツイート: "ちょっと捕捉 $ sudo apt install language-pack-ja $ sudo update-locale LANG=ja_JP.UTF-8 で、デフォルトロケールを ja_JP.UTF-8 に変更済み https://t.co/BJswKP6sBY ここから ja_JP を落とすには、localedata/locales/ja_JP の横の blob をクリック→上の方にある raw をクリックで落とせる"

The Unicode Blog: New Japanese Era
https://www.unicode.org/L2/L2018/18220-u121planning.txt
平成の次、新元号のUnicodeコードポイントは「U+32FF」 | マイナビニュース
NHK NEWS WEB|NHKのニュースサイト
新元号は「令和」 | NHKニュース
「令和」は「beautiful harmony」海外に説明へ | NHKニュース
振込予定日がなぜか「1989年」に、コンビニATMで不具合 | 日経 xTECH(クロステック)
「令和」対応の開発者向けiOS 12.3とmacOS Mojaveベータ版がリリース。しばらく一般公開版は「平成31年」 - Engadget 日本版
第567回 令和を言祝ぐ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

夏時間

Twitter

その他

なかのん&マジックさんのツイート: "サマータイム批判してるツイートでも触れられてないけど、サマータイム導入したら、世界中の機器のアップデートが必要じゃないか?"
Hiroyuki Nishimuraさんのツイート: "日本はサービス残業という違法労働が民間だけでなく、役所ですら起きているのに是正されないという点。 時計を切り替えても、人間の体内時計は、ずれたままなので、2時間の差は健康被害を生む可能性が高い点。 他国は1時間差です。 なので、夏時間導入は労働者に不利益な結果を生むとおいらは思います… https://t.co/tpWC1Z8NgK"
何者でもないおっさんさんのツイート: ""daylight saving time"でgoogle scholarで検索すると、 交通事故が増える、心筋梗塞が増える、睡眠時間が減る、仕事場での怪我が増える、エネルギー消費は意外に減らない(むしろ増える)等、ろくなのが出てこないw 前向きな論文は被引用数トップのほうではほとんどなし。 https://t.co/FVxC3ljl2Y"
Haruhiko Okumuraさんのツイート: "この前,過去の気象を調べていて,日本時間1948-05-02 00:00でエラーになるので悩んだ。当時日本は夏時間があって,この時刻は存在しないのだった(1948-05-01 23:59の1分後は1948-05-02 01:00)"
Shiro Kawaiさんのツイート: "(時計をいじるのではなく開始時刻を変える)夏時間冬時間、ってかすかに覚えがあるんだけどどこでだったかな。… "
Tanaka Akiraさんのツイート: "国会議事録を夏時刻法で検索して眺めていると、この法案が通る前は学校や会社で夏と冬の出勤時刻を変えるのがあたりまえだった感じなのだが、いつのまに同じ時刻にするようになったのだろうか。"
Kiichiro Yanashitaさんのツイート: "この記事、何がすごいってサマータイムをやろうと考える議員も、元号法のせいで平成31年と言わなければならない役人も、新元号を発表できない政府も、そのまま書く産経新聞もバカしかいない。日本の馬鹿を選り抜いた感。【東京五輪】酷暑対策でサマータイム導入へ https://t.co/WXOmjgo8pL"
水無月ばけらさんのツイート: "2年間だけの試験導入だとというなら「弊社のサービスはサマータイムに対応しません」が最良の選択肢であるように思えますし、実際そういうところが多数出てくるように思いますね。"
元茸さんのツイート: "サマータイムの件、「完全に同期された時計に従って動いている世界」を一切知らない人たちがその辺の時計をみんなが二時間ずらすだけぐらいの気持ちで思いつきをしゃべってるんだろうけど、そのレベルの視野しかない人達が重要な決定をする立場にいる怖さはもうちょっと認識しないとまずいかも"
及川卓也 / Takuya Oikawaさんのツイート: "サマータイムに関して、ITに詳しくない人たちが、そんなに対応が大変なものなのか。ITを多少知っている人たちであっても、ハードコードとかしているからでしょ。と言っているのを観測するにつれ、デプロイコストという認識がまだまだ薄いなと感じる。"
及川卓也 / Takuya Oikawaさんのツイート: "サマータイムをOSに適用するのも、NLS機能をちょっと直せば対応できるとしよう。だが、たとえそうだとしても、それをサマータイム対応が必要とされる機器すべてに適用するのがどれだけ大変か。もっと言うと果たして現実的なのか、ということへの認識が薄い。"
須藤玲司さんのツイート: "Time Change a ‘Mini-Y2K’ in Tech Terms https://t.co/JZ14ZvXPbk NYTのこちらの記事じゃ、2007年アメリカのサマータイム期間4週間延長に伴うシステム改修費用は、少なく見積もって3.5億ドルだったとしています。 法改正からたった2年での施行で、エンジニアは徹夜続きでふらふらだとか。"
須藤玲司さんのツイート: "繰り返しますが、アメリカのシステムは2007年時点ですでにサマータイムに完全対応してました。エンジニアも経営者も一般市民も、サマータイム対応のノウハウは世界最高です。 そのアメリカで、夏時間の開始日を早め終了日を遅らせる、たかがそれだけの微調整に、費用が3.5億ドル。ざっと400億円です。"
何があなたの都市ポップなさんのツイート: "サマータイム導入の影響を受けるコンピュータが省庁や一部の企業のものだけだと思ってないか? JST に触れてるコンピュータ全部やぞ、全部。お隣の国や地球の裏側の国にあるコンピュータにも影響あるんやぞ。なんならオリンピックに海外から来る選手や観客のスマートフォン一台一台も対象やぞ"
りおりおすとさんのツイート: "タイムスタンプ付きでイベント管理しているようなプログラムがうるう秒やサマータイムを考慮してない場合、想定したイベント発生までビジーループでwaitしちゃう、なんて場合にですね…。 9:00から9:01まで待つつもりが、7:00から9:01まで待っちゃうわけですよ。死ぬわ。"
りおりおすとさんのツイート: "実際、おかしくなったシステム、例えばCPUロードが100%になっちゃったJavaとか続出しただろ…。時計が遅れるのはまだ良いんだよ。時計が進むのはマジでやばい。"
Kazuho Okuさんのツイート: "JJYは「日本標準時」を送出している以上、法律が標準時に対してオフセットを定める一般的な夏時間になるという前提において、一部メーカーの「世界時計機能だけおかしくなる」という説明は誤りでは? / “サマータイム導入で「電波時計が狂…” https://t.co/sSQHFucrzF"
FUTATSUKI Yasuhitoさんのツイート: "FreeBSDの cron には -s ってのがあって、夏時間等でGMT offsetが変更になる場合の特別な取扱いをするかどうかをこれで決めるのだけれども、CentOS 7のcronでは -s は別のフラグに割り当てられていて特別な取り扱いが常に行われると。"
FUTATSUKI Yasuhitoさんのツイート: "軽くcronにおけるオフセット変更時の挙動について見てみたけど、Vixie CronなFreeBSDとCentOS 7でそれぞれdefaultの挙動が違うということだけはわかった。(ほんとに中身をまともには読んでない:))"
ymmtさんのツイート: "グループウェアのサマータイム対応はひとつ面白い問題があります。 会議で良く「毎週水曜日10時~11時」といった予定をいれることがあるのですが、この毎週10時というのが、サマータイム中か否かでタイムゾーンの異なる参加者間での調整が難しいことになるのです。"
ymmtさんのツイート: "これに会議室予約を合わせて、ダブルブッキングをできないようにすることを考えるとさらに面倒なことになります。参加者・会議室・予約それぞれがどのタイムゾーンで予定をいれるべきか。 ひとつの完璧な正解というのはない問題です。"
kinnekoさんのツイート: "サマータイム2年だけと思っているでしょうが、未来で過去のその月日を計算する時には必ず計算が必要になります。影響は未来永劫続くことになります。"
Takehiro OHYAさんのツイート: "①「損害保険のように時刻が指定された契約や、公訴時効の成立時点などをどう扱うか。サマータイムの導入は、「1日=24時間」を前提とした契約や法制度が無数に存在する、日本社会というシステムをどのように“改修”するかという大仕事」と書いてあり、条文を見たこともないのだな感。"
Takehiro OHYAさんのツイート: "②実のところ、期間計算について定めた民法139・140条、刑事訴訟法55条とも時間以下の計算と日以上の計算を分離している。具体的には、 ・時間単位の場合は即時起算(民139) ・日以上は初日不算入(0時スタートの場合を除く)(民140) なので、1日の時間数が変動しても期間計算に支障は生じない。"
高梨陣平さんのツイート: "豪でサマータイムが開始されたが、Apple Watchの第四世代にDST、Daylight Saving Timeの取扱にバグが存在、ブートを無限に繰り返す問題が発生中。 #自民党議員、見てる?… "

@tetsutalow

上原 哲太郎/Tetsu. Ueharaさんのツイート: "こんな認識なんですなあ世の中。ではあなたのスマホどうやって時間決めてるか。これサマータイム対応しようとするとOS更新がいるのですが、では来年までに皆さんスマホアップデートしてねといって、それできると思います?… "
上原 哲太郎/Tetsu. Ueharaさんのツイート: "「いまの時間」を表示するだけならそれでもいいのですがTZ表示関係は影響うけますし,スケジュール帳など「どこから夏時間になるか」情報を欲するアプリがスマホにはいっぱいあるんでTZ情報もつOS更新しないとまともに動かないです.… "
上原 哲太郎/Tetsu. Ueharaさんのツイート: "2時間ずらすなんてやってる国はないですよ.その上で,サマータイムをビットフラグで表してそれ見て1時間ずらすようにしてるシステムがいっぱいあるのですが.例えば電波時計の標準電波はサマータイムのフラグはありますが「何時間ずらすか」は未定義ですよ.… https://t.co/1SFFY4Z3NC"
上原 哲太郎/Tetsu. Ueharaさんのツイート: "うわー、本当に何も分かってない。今年決めて来年も無理だし、2年間だけとかまた戻す手間がかかる最悪の選択だ。大混乱だよ。今の情報機器の時間は竜頭をひねるようには変わらないんだぞ。 / “【東京五輪】酷暑対策でサマータイム導入へ 秋…” https://t.co/ssGVwequ65"

@mhiramat

まさみさんは語りたいさんのツイート: "サマータイム導入した結果、自動的に国内に時差が発生し、自国にいながらにして時差ボケで調節できず、悲惨な結果に終わる日本代表の姿が見えるぞよ。"
まさみさんは語りたいさんのツイート: "この仕組み自体が「全員馬鹿」と揶揄される現象なんだが・・・。… "
satさんのツイート: "サマータイムとか言ってるのを見て関係者全員馬鹿かと思ってる人が多いようだけどそうじゃないと思っている。関係者のうちの多くは意味不明な施策だと百も承知で上に訴えかけているのだけれども、伝言リレーを繰り返すうちに「ナイスアイデア、ぜひやりましょう!」になってるだけかと"
まさみさんは語りたいさんのツイート: "実際2時間の変更はめちゃくちゃ身体に来ますよ。多分平日眠くて仕事にならない人が続出して、その上で「睡眠不足になるのは自己管理が出来ていないからだ」って言い出す馬鹿が続出すると思う。いままで経験したことがない人が多いだろうし、過労死や老人の死亡割合も増加するだろう。"
まさみさんは語りたいさんのツイート: "日本ってただでさえ極東の非常に中途半端なタイムゾーンに位置していて、他の地域との電話会議の設定が大変なんで、さらに2時間も時差を付けられると、多分まともな時間帯に電話会議すること自体が不可能になる。本当にするって言い始めたら、個人的に午前中に打ち合わせを入れるのをやめる。"
lastline@オクトオバケさんのツイート: "酷暑対策にサマータイム導入って、午前中に限っては正解だが、それは午後に全てを押しつけることになるわけで。 気温のピークは1時から3時くらい。地面も温まるので、実質5時くらいまで暑い。それを2時間遅らせるってことは、帰宅時間とか夜はずっと暑いという。何が酷暑対策か。"
まさみさんは語りたいさんのツイート: "サマータイム導入すると夜も熱くなるわけか。そして老人がバタバタ倒れたら、やっとオリンピックという敗戦を通じて、日本は再生できるかもしれないな。"
まさみさんは語りたいさんのツイート: "うわー、よく考えるとこれは酷いぞ。サマータイムは通常初夏に切り替わるから、来年度からの導入を行う場合、5月の天皇退位=元号変更と大体あわさり、今からどうやったらいいかを検討してまとまるのが年末となると、影響を受けるシステム変更はもはや収集が付かないレベルに・・・。"
まさみさんは語りたいさんのツイート: "サマータイム導入が31年度からだとすれば、元号変更も合わさり、サイバーテロを起こしやすくなるのは来年5月あたりからだと思われますね。… "
まさみさんは語りたいさんのツイート: "サマータイムは感覚的には夜の時間も伸ばすことになるんだけど、何が起きるかと言うと、夜9時になっても空が明るい状態になる。そんな状態で小さい子供を寝かしつけられるか?生理現象として老人と子供はついていけないよ。"
まさみさんは語りたいさんのツイート: "ただでさえ子供の寝不足・夜ふかしが問題になっているのに、暗くなってから寝かせて、朝暗いうちから起こして学校に行かせるなんてことをしたら、子供の学力以前に成長に影響することも懸念される。"

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyはサマータイム対応済みだが、万一、サマータイム導入が決定したら、導入に賛成した議員には「投票しない」つもり(笑) ---- 「サマータイム導入へ 秋の臨時国会で議員立法 31、32年限定」 https://t.co/ud9TWdlQ6y… https://t.co/e00X8H0NZX"
Shirouzu Hiroaki(白水啓章)さんのツイート: "日本で知っている人は少ないと思うが、サマータイム適用中のWindowsでは、サマータイムでないタイムスタンプを表示すると、Explorerとコマンドプロンプトで、時間表示が1時間ずれる豪快仕様。 cmd.exeは(DOS時代の互換性のため?)このAPIを使っている様子。 https://t.co/hY1nVKzeBY (解説参照)… https://t.co/0LUGqI2hCg"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FileTimeToLocalFileTime API 「夏時間が適用される季節では、変換対象の時刻が冬時間を指している場合でも、この関数は夏時間による調整分を考慮に入れます」"

@kazuho

Kazuho Okuさんのツイート: "日本国内の一部だけ夏時間導入案について言うと、沖縄本島以東は夏時間導入、としない限り、UTC+zoneinfoで動いてるスマホとかパソコンとかも全滅するのかなw"
Kazuho Okuさんのツイート: "zoneinfo を分割するような時間帯導入が過去事例があるのか気になりますね… "
Kazuho Okuさんのツイート: "windowsもzoneinfoなのかしら"
Kazuho Okuさんのツイート: "夏時間への移行は、ある標準時から別の標準時への変更(例: 東部標準時-5から東部夏時間-4への変更)として表現するんだよ。標準時のUTCに対するオフセットが変化するんじゃないよ #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "時刻間の差の計算は、とにかく同一の標準時に変換してから計算する。実務的にはUTCに変換して計算すればいい #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "一番問題になるのは「毎日午前9時」とかローカル時刻にひもづいている繰り返しイベント。夏時間を含む複数時間帯前提のプログラムだと、値がローカル時刻かを表すフラグと、ローカル時刻の場合はどの地点か(例: Asia/Tokyo)を表す属性をもってる #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "実務的には、ローカル時刻依存のイベントを増やすのは夏時間移行の問題を増やすだけなので、できるだけ多くの繰り返しイベントをUTCベースで設計して、窓口対応など人に関係する部分だけをローカル時刻連動にする #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "これ、こうするのは、ある標準時を採用している地域のうち、一部のみに夏時間があるケースがあるから。例えばオーストラリア東部時間(AEST)を採用してる4州のうち3州は夏時間(AEDT)に移行し、1州は夏の間もAESTを使い続ける #夏時間プログラミングの基本… https://t.co/nFZaIWQWl6"
Kazuho Okuさんのツイート: "例えば東京時刻で2018/8/14 9:00AMから毎日10回繰り返すイベントはiCalendarでは "DTSTART;TZID=Asia/Tokyo:20180814T090000 RRULE:FREQ=DAILY;COUNT=10" のように表現されます。絶対値としてのタイムゾーンはでてこないことがわかるかと思います #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "#夏時間プログラミングの基本 を連ツイしたのは、第一に、OSやJVMなどが提供する夏時間サポートと異なる手法によるオレオレ手法によるサマータイム実装を考え、それを前提とした技術的妥当性を欠くサマータイムへの批判がいくつか見受けられたこと"
Kazuho Okuさんのツイート: "第二に、日本人がサマータイムや複数時間帯の存在に無頓着なコードを書いた結果、国際化が困難になることがある点を踏まえ、一般的な多時間帯サポートがどのようになされるかコメントする意義はあるのではないか、という点からです"
Kazuho Okuさんのツイート: "今後プログラムを設計する際、サマータイム機能を当初から入れることはしないとしても、後々OS等が提供する多時間帯及び夏時間サポートを使うことを想定しておくことは、多くの場合、損にはならないだろうと思います"
Kazuho Okuさんのツイート: "PIMむけのウェブブラウザを書いていたのでカレンダー情報の交換フォーマットに多少知見があった程度のクラスタです"
Shirouzu Hiroaki(白水啓章)さんのツイート: "#夏時間プログラミングの基本 を見て思い出したが、FATのようにローカル時間で記録するファイルシステムがあり、NTFSとの差分コピー時に更新ファイルと誤認識される問題もあったり。 (なので、robocopy等は1時間の誤差を無視するオプション(/DST)が存在)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "robocopyの/DSTの動作は「1時間の誤差を無視する」なので、夏時間を2時間進める、というパターンには対応できないはず。"
Kazuho Okuさんのツイート: "OS等の夏時間機能にのっかる最大のメリットは、いつ時間帯が切り替わるか(例:3月第2日曜日午前2時)を指定するデータベースを自分で設計管理更新しなくていい点。時間帯の導入廃止や切替時期が法律で変わるから、ハードコードするわけにはいかないんですよね #夏時間プログラミングの基本"
Kazuho Okuさんのツイート: "夏時間のある国でも、サーバは夏時間を適用せずに(あるいはUTCで)動かすのが一般的なのでは? 無理にサーバで夏時間使おうとするからおかしくなる / “CentOS7でJDTを試してみた – さくらインターネット研究所” https://t.co/wRw0pf1bHR"
CentOS7でJDTを試してみた – さくらインターネット研究所

夏時間 - Wikipedia
夏時間対応のタイムゾーンでJP1/AJS3を運用する
SAP ERPでの日本のサマータイム対応について - SAPのすみっこ
Ryosuke Enokiさんのツイート: "サマータイム導入の議論が再燃しているみたいだけど、以前元ボス(本間研一先生)が書いたこの文で、すでに結論は出ているように思う。 https://t.co/1JzeeUQ4Jv しかも2時間の位相前進はかなり無謀かと。得られる経済効果より、不眠による健康被害や事故などによる経済損失は甚大なものになるかと。"
summertime_20120315.pdf
第1回 サマータイム延長で悲鳴を上げるシステム担当者たち:アキラの海外“デッドストックニュース”掘り起こし|gihyo.jp … 技術評論社
日本の法令における「一日」と「二十四時間」 | yasuokaの日記 | スラド
サマータイム導入で「電波時計が狂う」? メーカーに聞いた - ITmedia NEWS
「サマータイム実施は不可能」スライドが話題 「経済被害が兆単位」「サイバーテロをお膳立て」立命大・上原教授が指摘 - ITmedia NEWS
Shirouzu Hiroaki(白水啓章)さんのツイート: "サマータイムに限らず、時間がジャンプした場合のcronの挙動を分かり易く説明してあった。 https://t.co/ty7xPUjJ0k"
cron の意外な落とし穴! - もろず blog
Web JJY が夏時間に対応しました
サマータイムの導入は簡単!なのか?可能なのか?メリットはあるのか? – yohgaki's blog
『Excelにタイムゾーンという概念がなく、サマータイムに対応しないということは』『これから未来永劫、時限サマータイムの2年間についての複雑な特別処理を仕込まないと、正しい集計ができなくなります』 - Togetter
この一文で、自民党内のサマータイム導入推進派の方々の息の根を止めることが出来るかしら | 早川忠孝の一念発起・日々新たなり  通称「早川学校」
出生届と死亡届における夏時刻の表示方法 | yasuokaの日記 | スラド
サマータイム導入には反対だが、サマータイム導入に必要なことを考えた - Qiita
欧州委員長、夏時間廃止の意向=460万件意見調査踏まえ-EU各国に提案へ:時事ドットコム
サマータイムにうんざり、米国で廃止の動き | ナショナルジオグラフィック日本版サイト
欧州で最後の「冬時間」に、2021年に「夏時間」廃止で 写真1枚 国際ニュース:AFPBB News

昼休憩

シエスタ - Wikipedia
Shiro Kawaiさんのツイート: "暑さ対策というならサマータイムよりはシエスタ導入ではなかろうか。"
第63回 シエスタとるなら昼寝は短めに | ナショナルジオグラフィック日本版サイト
シエスタ(昼寝)にも影響か。スペインがワーク・ライフ・バランス重視へ|クローズアップ海外ニュース
スペインのタイムゾーン変更はいつから?
スペイン時間がなくなる?日本との生活リズムや食事回数の違い | たびこふれ
スペインの時差と現在時刻 - Time-j.net
Current Local Time in Siesta Key, Florida, USA
シエスタって何?シエスタは法律で禁止化へ~スペイン - NAVER まとめ
スペインに根付く「シエスタ」のライフスタイルを変えようとする動きが活性化 - GIGAZINE

サウジアラビアがついにグレゴリオ暦を採用、時代は「21世紀」へ - GIGAZINE

タイムゾーン

Yusuke Endohさんのツイート: "Google カレンダーに ICFPc の予定を登録しようとしたら、タイムゾーンに UTC が指定できない。「はいはいイギリスにすればいいんだろ」とやってみたらサマータイム。。。イギリスは世界標準時の自覚を持ってくれ"
Yusuke Endohさんのツイート: "みんな UTC の予定どうしてるんだろうと思ったら、アイスランドのレイキャビーク(https://t.co/o7y7CV1UtC)とか、ガーナのアクラ(https://t.co/apgjoCzrII)で代用してるって出てくる。普通に Google カレンダー側で対応してほしい。。"
四九六々(縦書き用)さんのツイート: "WindowsのICU4CでTimeZoneにお悩みの方。wintz.cのSTD_REGKEYをwchar_tにし、getTZI関数を参考にgetStd関数を作り、uprv_detectWindowsTimeZoneで呼び、apiTZI.StandardNameと比較しましょう。"
IANA — Time Zone Database
Sources for time zone and daylight saving time data
eggert/tz: Time zone database and code
タイムゾーン呪いの書 - Qiita
タイムゾーンに関するあれこれ - Qiita
アメリカの時差と現在時刻 - Time-j.net
ヨーロッパの現在時刻と時差一覧 - Time-j.net
Shiro Kawaiさんのツイート: "クラウドでのログ時刻がローカル時刻で表示されるの、メンバーが異なるタイムゾーンに散ってる状況で話しながら作業するには極めて不向きだなあ。"
Shiro Kawaiさんのツイート: "まさしく、この打ち合わせ中にgithubのissueのコメントが書き込まれた正確な時刻を知る必要があったんだけどa day agoでぐぬぬとなった。そこクリックしても時刻表示に展開されないし。(マウスをhoverしたら時刻が表示される、というのにしばらくして気付いた)… https://t.co/bSDz5L4jjx"
9b96faac591ad05eddec760eed2da2d5 齊藤敦志さんのツイート: "ブログやチャットのサービスで「×日前」「×時間前」みたいな表示をするものがあるのはそういう面倒くささをカジュアルに回避してるのかなぁと思ったことがある。 業務で使うなら一意性が必要だろうからもっとちゃんと考える必要があるだろうけど。 https://t.co/t655t1XtjX"
18分59秒をめぐって日本標準時の歴史をひもとくことに - エムスリーテックブログ
Toru TakahashiさんはTwitterを使っています 「US/Pacific-Newっていうタイムゾーンがtzdata2020bから消えてるんだけどそれが入った理由が、1989年に議決されなかった太平洋大統領選挙時間( 'Pacific Presidential Election Time')の法案の先手を打ってタイムゾーンリストに追加したためって。。。https://t.co/0fQYP7Uqi7」 / Twitter
US/Pacific-New is not a valid timezone · Issue #498 · moment/moment-timezone
Dai MIKURUBEさんはTwitterを使っています 「@nora96o おおぉー…。基本「削除」はしない (エイリアスは残す) 方針と思ってましたが、こういう削除はあるんですね…」 / Twitter
Toru TakahashiさんはTwitterを使っています 「@dmikurube ですねー。tzdata2020bから削除されたみたいです。 https://t.co/HNPl2gfs0o」 / Twitter
[JDK-8254679] Release Note: US/Pacific-New Zone Name Removed as Part of tzdata2020b - Java Bug System
Dai MIKURUBEさんはTwitterを使っています 「@nora96o オリジナル tzdb の方だとこのへんですかね。まあもともとかなり前から BACKWARD 入りしてたやつかー https://t.co/KUgLPfTKfA」 / Twitter
Omit US/Pacific-New from default installation · eggert/tz@2edd825
タイムゾーンを含むタイムスタンプ文字列表現の標準化 - ASnoKaze blog

プロトコル

NTP

日本標準時プロジェクト 公開NTP FAQ
NTP Security Project、「NTPsec」ベータ版をリリース - ZDNet Japan
NTP leap indicatorを上書きするProxyを書いた - ASnoKaze blog
ntpdのLeap Smearingを有効にし、うるう秒を24時間かけて調整する - ASnoKaze blog
NTPクライアントへの攻撃などを防ぐため、要求パケットに含めるデータを最小限にすることが提案される | スラド セキュリティ
ENOG-20171027-公開資料.key
日記 (2015 年 7 月上旬)
Fadisさんのツイート: "閏秒は正確な時間を必要としないシステムなら1秒のずれをntpdでゆっくり解消すれば良いだけで、この場合60秒の存在をソフトウェアが意識する必要はない。正確な時間が必要なのに60秒を扱えないシステムはただの欠陥品だから直そう"
NTPを暗号化する Network Time Security for NTP の提案仕様 - ASnoKaze blog
Facebook、より精度が高くスケーラブルなNTPサービスのためntpdからchronyへ切り替える
NTPの次期バージョンv5の標準化が始まる - ASnoKaze blog
NTPサーバの奇妙な振る舞いとNTPv5の標準化 - ASnoKaze blog

PTP

WhitePaperPtpJP.pdf
スペシャルフォーカス: IEEE 1588 Precision Time Protocol - National Instruments

Roughtime

Rockridgeさんのツイート: "RoughtimeはGoogleが開発中のプロトコルで、サーバとの時刻の同期を安全に行うことができるというもの。ただし、正確な時刻に対し10秒程度の誤差が生じる可能性がある。 / “roughtime - Git at Goog…” https://t.co/ERdGDojsE3"
googleの新しい時刻同期プロトコル Roughtimeとは - ASnoKaze blog
時刻同期プロトコル Roughtime の標準化 - ASnoKaze blog

GPS

GNSS_Receiver_WeekNumberRollover_SE18-100-007-00_jp.pdf
19.6年周期の“GPS週数ロールオーバー”が4月7日にやって来る。古いGPS機器では不具合が発生する可能性も【地図と位置情報】- INTERNET Watch
魚田雅彦さんのツイート: "すでに404 Not Foundになっていますが、archiveサイトで見られました https://t.co/urTwt5Wahc… "
GPSリセットによる運航への影響発生について - JAL国際線
Hiroshi Matsumuraさんのツイート: "まさか、GPSロールオーバーでJALで問題が発生するとは!しかも最新のB787で。 https://t.co/EXHy9CpIBZ"

RTC

RTC - OSDev Wiki
CMOS - OSDev Wiki
【やじうまPC Watch】「Windows 10のPCが夜中、勝手にスリープから復帰する」原因と対策 - PC Watch
「PCの時計が1時間ずれている」の原因 - Tactful Answer
「PCの時計が1時間ずれている」の原因の解説 - Tactful Answer
pwrtest.efi – UEFI Shell developer tool to test Intel/AMD RTC wake function | Firmware Security
自作OSで時間を使いたい - HonokaNo’s blog

TSC

untagged - x86/x86-64 RDTSC命令とRDTSCP命令の動作の違い - スタック・オーバーフロー
rdtsc ‐ 通信用語の基礎知識
CPUクロックに基づく相対時刻の計測
NAKAMURA Minoru's Diary (2010年4月)
タイマーカウンタ その3
付録G KVM 仮想マシンのタイミング管理
Hyper-VのゲストOSの時間が遅れる場合がある原因を考察する | MCTの憂鬱
カーネルにおけるタイマー事情 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
[Win32] [x86 Assembler] Time Stamp Counter | すなのかたまり
社会人でもOSを作りたいさんのツイート: "「TSC(Time Stamp Counter)はCPUの周波数程度の細かさ,つまり1GHzであれば1ns単位で時間をカウントすることができる」というのを「1nsの精度がある」と誤った表現をしているウェブページが多いこと多いこと… 精度とは何%の誤差かを意味する言葉であって,先の話題では「分解能」が正しい."
社会人でもOSを作りたいさんのツイート: "分解能が1ns±0.5nsのタイマがあったとして,これは秒しか測れないタイマーより分解能はかなり高いと言えるが,精度はめっちゃ悪いよ."
周波数 hz 時間 - Google 検索
hz 時間 換算 - Google 検索
Timestamp-Counter Scaling for Virtualization White Paper - 教育は参考ブログ
Intel64 and IA-32 アーキテクチャ仕様書が改訂 - 教育は参考ブログ
Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
c++ - Calculate system time using rdtsc - Stack Overflow
msaitohさんはTwitterを使っています 「Intel の lfence;rdtsc の挙動がいまいち謎だったのだが、イカす会話を発見 https://t.co/mHXzkXWcZY」 / Twitter
Travis DownsさんはTwitterを使っています 「@InstLatX64 I wonder if the semantics of SERIALIZE differ from: mfence lfence ? Currently, even mfence alone has what appears to be at least as strong semantics (the equivalent an embedded lfence was added to it fix an erratum).」 / Twitter
msaitohさんはTwitterを使っています 「ここから先とか https://t.co/T2x0JKuZ1Q」 / Twitter
Ronak SinghalさんはTwitterを使っています 「@trav_downs @InstLatX64 Re: footnote 5 -- does not address speculation in the front-end. Yes, does serialize the instruction stream but still allows fetching/prediction of the code stream that is after the LFENCE. SERIALIZE/CPUID do not allow that.」 / Twitter
msaitohさんはTwitterを使っています 「Inte, AMD の cpuid, lfence, mfence, rdtscp の挙動の違いの調査など https://t.co/8KVxJ7OwcA」 / Twitter
Index of /~msaitoh/tsc
rdtscp を使う - Fixstars Tech Blog /proc/cpuinfo
CPU_CLK_UNHALTEDの値を取得する - Fixstars Tech Blog /proc/cpuinfo
命令単位の時間を計測する (準備) - Fixstars Tech Blog /proc/cpuinfo
その他の時間計測方法 - Fixstars Tech Blog /proc/cpuinfo
ogiwaraさんはTwitterを使っています 「時計へのアクセスにしたってシステムclockじゃなくてrdtscp使ってCPUのclock使ってる で、時間のズレが発生したら同期するようにしてる(Cicadaとか?)」 / Twitter
FadisさんはTwitterを使っています 「TSCとは: Time Stamp Counter。x86のCPUでRDTSCを呼ぶとCPUのクロックが何クロック進んだかを取ることができる。高精度に時間を測ることができるけど、アウトオブオーダー実行で容赦無く順序が変わるので注意が必要 #nekoi7yu_tech」 / Twitter

2038 年問題

Kazuho Okuさんのツイート: "off_tの64bit化は共有ライブラリの普及前だったからまだ簡単だったけど、time_tの64bit化は面倒だよな感しかない。しかもレガシーな32bit環境だけの問題だし"
Kazuho Okuさんのツイート: "今年はアセットファイルの expires を +20years に設定しているサーバの管理者が2038年問題に悩まされる(かもしれない)年です"
Kazuho Okuさんのツイート: "プロセス内部の値だけじゃなくシリアライズされた値も問題になるわけで、たとえば windows 8 の時刻型や MySQL の timestamp 型、 ext2/3 のファイル時刻は 32-bit… "
Dan Kogaiさんのツイート: "うん。だから「」でくくっといた。あとこういう問題も残ってる https://t.co/qvJgCdQpNs… "
404 Blog Not Found:人類よ、これが本当の人類滅亡だ

MS

.NET 6:日付と時刻の構造

時刻のみのオブジェクト

Miura HidekiさんはTwitterを使っています 「時刻だけのオブジェクトって可能なのだろうか?日本なら可能かもしれないけど、サマータイムもあるし細かく言うとうるう秒もあるし」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 その特定タイムゾーンでの任意の日の午前0時からのオフセット(夏時間切替えの日は面倒...)ってので概念としては定義できそうだけど...」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki なるほど。そのオフセットを正しく設定する処理が闇ですね」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 結局夏時間対応考えると日時情報から日の情報を落したもの、とするしかないような気はします。閏秒対応は今時なら通常秒の範囲を0-61と取っているでしょうから問題なし。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki 実際に実装があるとは思えませんが、日付情報があれば59秒+1秒をしたら、60秒と返す実装が可能ですよね。」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 unixitimeをそのまんま使ったらアウトですから言語でサポートするってのもなかなか辛いですね。」 / Twitter
Miura HidekiさんはTwitterを使っています 「@y_futatuki 確かに...」 / Twitter

Shirouzu Hiroaki(白水啓章)さんのツイート: "コマンドプロンプトでは、未だにこの挙動(夏時間では、夏時間以外のタイムスタンプも1時間ずれる)になる様子。 (ExplorerやPowerShellではそうならない) https://t.co/S0Ji6OrgQJ"
Why are file Explorer and CMD Dir displaying differnt timestamps ? - Microsoft Community
Shirouzu Hiroaki(白水啓章)さんのツイート: "SystemTimeToTzSpecificLocalTime / TzSpecificLocalTimeToSystemTime だとこの問題はない様子。 ただ日本語MSDNは明らかに誤記しているようにみえる。 ---- 「夏時間が適用されているときは、変換しようとしている時刻が標準時間でも、夏時間が考慮されます」 https://t.co/dlUNIMuO1i"
SystemTimeToTzSpecificLocalTime 関数
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Oct で(やっと?)うるう秒対応が入っていたらしい。 SYSTEMTIMEのwSecondが60に。事前にSetProcessInformationで仕込みした場合のみ(仕込みなしなら59が2秒掛かるらしい) https://t.co/xmku6aqXuM"
Shirouzu Hiroaki(白水啓章)さんのツイート: "「TAI開始時点の太陽秒が原子秒の基準」とタネンバウム先生の本に書いてあったのだが、間違いだったのね。 「閏秒挿入の理由についての間違った理解」Wikipediaから。 https://t.co/lzBqBbkFCe… "
閏秒 - Wikipedia
Shirouzu Hiroaki(白水啓章)さんのツイート: "最後のセンテンスに、グレゴリオ暦導入時の余談が入るのがタネンバウム先生らしさ(笑) 「地主は1ヶ月分の家賃を要求し…雇用者は労働者が働かなかった10日分の給料を支払うことを拒絶した」"
Shirouzu Hiroaki(白水啓章)さんのツイート: "念のため、写真部分の出典は「分散システム 原理とパラダイム」A.タネンバウム・M.スティーン、P.245"
Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSは64bit タイムスタンプで、西暦6万年まで指せるので、オーバーフローなどは気にしなくていい。 …と思ったら、何故か西暦6万年を差したファイルが実在して、FastCopyの時間誤差の許容計算でオーバーフロー発生した経験。 (2年前の話、現在はオーバーフロー対応済) https://t.co/guYWIGLbYf"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Oct以降、FILETIME にはうるう秒も加算されるらしい。 UNIX epochのように、うるう秒を無視(59秒と60秒が同じ値)してくれる方が楽なのだが。 https://t.co/xmku6aqXuM"
Shirouzu Hiroaki(白水啓章)さんのツイート: "つまり、FILETIME ⇔ time_t の単純変換ができなくなる、と。 うーん、私のソフトでも、いくつか対応が必要になりそうだ。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "具体的には、こういう計算が出来なくなる、という話。 https://t.co/ENhYQu6YAm"
Converting a time_t Value to a File Time - Windows applications | Microsoft Docs
Windowsで高精度タイマを使う - Qiita
高解像度タイマーカウンタ
ASCII.jp:Windows RS5で実装される、うるう秒対応や高精度ネットワーク時間|Windows Info
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NT系も含めてWindowsで起動から49.8日目にいろいろと問題を起こす話は有名だったけど(GetTickCount(ms単位)が一周り)、最近は概ねGetTickCount64に代替されて問題なくなった様子。 https://t.co/VGwbIf00Fc」 / Twitter
ultravioletさんはTwitterを使っています 「「248日で死ぬシステム」てのが昔はよくあってな、32bitの符号付き整数で秒を数えてるシステムがオーバーフローする話なんだが、昔のOracleで出たケースが有名で、私も巻き添えを食ったことがある」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とはいえ、これは単調増加クロックなのでとても便利。 逆に昔のUNIXには clock_gettime(CLOCK_MONOTONIC) がなく、gettimeofday(ジャンプ・最悪巻き戻り対応)か tims(2)の戻り値(粒度荒い&バラバラ)くらいで困った記憶。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「むしろ、とっくにローカル限定になっていたかと思っていた。 95時代に「小さくするとオーバーヘッド大きくなるからご注意」とよく語られていた。 (それよりSleep(1)が5-9msくらいに収まらなくなるなら、FastCopyの速度調整にも影響出てるかもしれない。確認しておこう)」 / Twitter
SimKさんはTwitterを使っています 「パフォーマンス低下問題の原因が完全に分かりました。Sleepとかタイマーの分解能を決めるtimeBeginPeriod関数の影響範囲がグローバルからローカルに変更されたようです。(つまり、以前はたまたま他で高分解能設定にされていたから動いていたって事ですね・・・) https://t.co/0enXgdLhvV」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「簡単に実験してみたが、Sleep や GetTickCount64 の粒度は15.5msくらい。 (そしてtimeBeginPeriod(1)でSleepは1ms前後まで精度上がる)」 / Twitter

Linux

本の虫: Linuxカーネルを2038年問題に対応させるには
本の虫: Linuxカーネル、Rockchip暦に対応
gettimeofdayからclocksourceまでの道のり - livaの雑記帳
Fadisさんのツイート: "2038年問題、この間LinuxのInput Subsystemが32bit x86環境で32bitで入力時刻をユーザ空間とやりとりしてるのなんとかしようって話が上がってたな https://t.co/ccw75LlY33"
Input Drivers Are Being Prepped For Year 2038 Safety - Phoronix
NOKUBI Takatsugu野首貴嗣さんのツイート: "kernel側の2038年問題対応 内部のインターフェースは全部64ビット化された 32bit kernelでは設定で時間関係のシステムコールを64ビットにできる glibcが32/64bit time_tを同時に使うことを想定していない。レビューと作業は遅いながらも進んでいる #debconf18"
Man page of VDSO
Implementing virtual system calls [LWN.net]
Kazuho OkuさんはTwitterを使っています 「そういえばだけど、linuxでコマンドのベンチマーク取るときに使うコマンドは time(1) ではなく multitime(1) がオススメ。指定回数試行してくれて、平均以外に標準偏差や中央値も教えてくれるよ! https://t.co/8X82Ag0opy https://t.co/z7H4fSiv4p」 / Twitter
multitime(1) — multitime — Debian testing — Debian Manpages
FadisさんはTwitterを使っています 「vDSO: Linuxではライブラリを使わないソフトウェアであっても実行するとvDSOというライブラリがロードされているように見える。これはカーネルが用意するライブラリで、カーネル側にコンテキストスイッチしなくても達成できるようなシステムコールをユーザ空間で片付ける方法を提供する #nekoi7yu_tech」 / Twitter
FadisさんはTwitterを使っています 「vDSOのgettimeofdayの実装、「x86の場合」って言ってたから他のアーキテクチャの場合見てみたんだけど、ARMもMIPSもRISC-Vも同じ関数呼んでて、その中身はx86みたいなプロセッサのクロックカウントを使った補正なんてしてないシンプルな実装だった https://t.co/iCPuHoPcqU #nekoi7yu_tech」 / Twitter
gettimeofday.c - lib/vdso/gettimeofday.c - Linux source code (v5.11.15) - Bootlin
Kazuho OkuさんはTwitterを使っています 「gettimeofdayとclock_gettimeの2種類のクロックがあって、両者を使い分けろ(前者はタイムスタンプ等に、後者はタイマ等に)という主張嫌い。実際はタイマの値をタイムスタンプから計算したりすることもあり、バグの温床になるから。 gettimeofdayが巻き戻らないような運用するなりラッパーを書くべき」 / Twitter

TAI64N形式

tai64n 形式。 | 技術系メモ
cr.yp.to/libtai/tai64.html#tai64
tai64nlocalコマンド:TAI64N形式の日付を読めるようにする|マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~
daemontools - TAI64N to TAI
TAI64N形式の文字列をTimeに変換する関数 - うなの日記
external TAI64N形式のデコード – knsm.net
qmailのTAI64N形式タイムスタンプの変換 - taka_moriのブログ
djbware-doc-ja/tai64n.8.xhtml at master · fumiyas/djbware-doc-ja
blog.asial.co.jp/iphone/225
daemontoolsによるロギングとプロセス監視 (3/3):実用qmailサーバ運用・管理術(9) - @IT
https://cr.yp.to/libtai/tai64.html
TAI64
Perl [script] TAI64 形式の変換・出力プログラム 00 TAI64 とは (0x255)|Perl Perl_5 Perl_my_program|blog20100901
Macでtai64、daemontools、そしてctrl+cについて - ugon105の日記
Fadisさんのツイート: "ある時刻が存在しなかったり、2度存在したり、60秒が挟まったりすると困るというプログラマさんには、TAI64という時刻表現の素晴らしさを伝えたい"

ISO・JIS

ISO 8601の日付形式
ISO 8601 の日時に関すること(間違いがあるかも) - モノトーンの伝説日記
ISO 8601 - Wikipedia
ISO 8601 - Wikipedia, the free encyclopedia
渋川よしきさんのツイート: "WikipediaのISO8601の日本語の方、durationの説明がまったく抜けているぞ・・・"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2021/02/01 とやれば、どの国でも「年/月/日」と察すると期待して、FastCopyの統一ログ表記はこの形。」 / Twitter
Takeshi HASEGAWAさんはTwitterを使っています 「たぶん多くの人がやっていると思うけど、米国でも英国でもとりあえず誤解されないように日付を伝えられるように、必ず月を Jan/Feb/Mar/... 表記にしている。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「こういう話があるらしい。 https://t.co/kShebNkAft」 / Twitter
Tsukasa #01さんはTwitterを使っています 「ISO 8601 に倣って私は YYYY-mm-dd を使うことにしている。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「私も T を使うの、視認性悪すぎると思う。 https://t.co/dzKxJuKXbm」 / Twitter
Tsukasa #01さんはTwitterを使っています 「ただ human readable なテキストで日付+時間を表現するときに 2021-03-29 に後続する "T" を付けるのは気に食わないので、全面的に ISO 8601 に従うわけでもない。」 / Twitter
市川 真一さんはTwitterを使っています 「@shirouzu 対応する JIS(日本産業規格)。追補は、令和の追加: JIS X 0301:2002 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記 https://t.co/MGp8Ezk1e2 JIS X 0301:2002/AMENDMENT 1:2019 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記(追補1) https://t.co/BUY0Mx0LGl」 / Twitter
Jun ISHIMATSU(石松純)@🇲🇾さんはTwitterを使っています 「日付表記の問題でいつも思い出すのが,当地で教員になったばかりの頃,11月22日に受け取ったレポートに「11/22」と書いたところ「どうしていきなり評価が半分なんですか?!」と食いつかれたこと.自分もできる限り月はアルファベット表記.」 / Twitter
Jun ISHIMATSU(石松純)@🇲🇾さんはTwitterを使っています 「補足:マレーシアは英領だった関係でdd/mm/yyyyシステムを使用.」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、この形式で海外から要望が来たことは無いので、皆さんちゃんと認識できている様子。 過去にあった要望はドイツ人で、数字の桁と小数点を表すピリオドとカンマを反転させてくれ、という要望。 彼らには 1,234.5GiB 等は分かり辛いらしい。 https://t.co/nldZxpiED6」 / Twitter
世界各国での数字の区切り方、カンマ・コンマのルール | コリス

POSTD

処理速度の遅いcurrentTimeMillis() – 前編 | プログラミング | POSTD
処理速度の遅いcurrentTimeMillis() – 後編 | プログラミング | POSTD

Wikipedia

システム時刻 - Wikipedia
Time Protocol - Wikipedia
世界時 - Wikipedia
国際地球回転・基準系事業 - Wikipedia

Twitter

時間管理

Dai MIKURUBEさんはTwitterを使っています 「理解してやってるんじゃない限り、ローカルタイム (+09:00のような固定オフセットではなくAsia/Tokyoとか) で保存するのはやめておけとしつこいくらい言っておく。 2017-11-05 01:30:00 America/San_Francisco は二度あるぞ。せめて +07:00 か +08:00 のどっちだったかは常にセットにするんだ。いいね?」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「過去の時間は基本的に UTC でいいと思う。未来の時間が問題で、その国や地域において法的に定められる時刻が問題なのか (イベントの開始時刻など) それとも、それと関係ない絶対的なある瞬間を扱いたいのかで変わる」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「前者である場合はそれでも気をつけ続ける必要があって、その時刻が2回訪れる可能性や、その時刻がスキップされて訪れない可能性を常に考慮に含めておく必要がある」 / Twitter
Dai MIKURUBEさんはTwitterを使っています 「念のため言っておくと、ある時刻 (1〜2時間程度) が消滅するだけではなく、ある日付がまるごと消滅したようなことすらここ数年の間に実際あったので、まあ日付時刻については自分の常識をまず疑っておくのがいい」 / Twitter
成瀬さんはTwitterを使っています 「未来の時刻、いきなりタイムゾーンがずれる可能性を考慮するといつもあいまいでこの世の地獄」 / Twitter

ゆたかさん🐬さんのツイート: "システムに負荷がかかるとOSの時刻がずれる、というのはある意味正しいけれど、負荷という表現が曖昧。 厳密には、 カーネル空間で割り込み禁止状態が継続して、タイマ割り込みの処理ができなくなることで、時刻の更新が遅れる。 が正解。CPU数や実装で異なる場合もあるけど。"
ゆたかさん🐬さんのツイート: "NOだと思います。1秒未満でポーリングして、時刻を更新すればよいです。ただ、一般的に割り込みよりポーリングのほうが重たいと言われているので、割り込みと比べて負荷がかからないほうを選択することになると考えます。 https://t.co/FIfATs8XwS"
市川 真一さんのツイート: "@yutakakn OS の無い環境で、割り込みを使わずに 3 秒毎にポーリングする方法があれば、知りたいです。方法がなければないでよいです"
ゆたかさん🐬さんのツイート: "u-bootではudelay関数で下記条件を満たすループが実装されています。単純にクロックを参照してループしているだけですね。 @ udelay() # lib/time.c ftp://ftp.denx.de/pub/u-boot/u-boot-2017.05.tar.bz2 https://t.co/vKpi3v45pt"
satさんのツイート: "かつてlinuxプロセスの実行時間utimeとstimeは、タイマ割り込み(ここでは一秒ごとに100回とする)を使って、割り込みが入った時点で実行してた処理を、直前1ミリ秒で実行した処理とみなしていた。厳密に測るのではなくサンプリングですね"
satさんのツイート: "わざとらしい例を出すと、ほぼ全ての時間プロセスが実行していたとしても、サンプリング時間にたまたまカーネルが動いてたり、スリープしたりしてれば、utimeにはカウントされない。なので精密な実行時間の計測には向かない。使うとしても十分な長さの実行時間をとらないとあまり意味がない"
satさんのツイート: "s390とia64だけはサンプリングではなく、かなり精密な方法で測定していた。 最新カーネルでこのへんのコードを見てないので、今は知らん"
satさんのツイート: "すいません10ミリ秒"
Masahiro Kasaharaさんのツイート: "ほとんど茶々だけど、閏年は if((year % 4 == 0) ^ (year % 100 == 0) ^ (year % 400 == 0)) って書きたい派です。… "
kamimuraさんのツイート: "かなり茶々だけど、閏年は、 if (isLeapYear(year)) // isLeapYearは任せた! って書きたい派です。w… "
渡久地 信之さんのツイート: "12時間表記,12時がどっちを指すのか国によって違うのでアレ."
ゆきさんのツイート: "ChromeのNET::ERR_CERT_DATE_INVALIDの仕組み https://t.co/evTEWm2QRw 書いた。chromeがどのようにシステムクロックのズレを検出してるか。"
ChromeのNET::ERR_CERT_DATE_INVALIDの仕組み - Qiita
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「今時の linux + ext4 は utimensat(2) の tv_sec に負の値を設定することで、A.D.100年なども表現できるのね。 (touch でなく、utimensat なら、B.C. も行けそう) https://t.co/1i84lSpPyt」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「UNIX epoch を 0 として、1969年12月31日23:59:59 が -1という調子。 (ただ、エラー値に(time_t)-1を返すmktime(3)などとの相性悪そうだな…)」 / Twitter
Kazuho OkuさんはTwitterを使っています: 「Un*x使うプログラマになって約20年たった私ですが、最近ようやくPC向けUn*xにCMOS時計をローカル時刻に設定するオプションがある理由を理解しました。いままでWindowsとのデュアルブート環境とか真面目に使ったことがなかった」 / Twitter
Hiroaki NakamuraさんはTwitterを使っています: 「@kazuho Windowsのレジストリを変更してUTCを使うという方法もありますよ。 https://t.co/szPiDl0R6I 私はデュアルブート環境の時はこの設定にしていました。」 / Twitter
System time - ArchWiki
Shinji KonoさんはTwitterを使っています 「ローカルタイムをDBに入れるのは初心者の間違いだよな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ローカルタイムの害悪はちょっと考えればわかる。Windowsは初期にはlocaltimeをOS内部の基準に使ってた。アホ過ぎるので最近やめた。」 / Twitter
yohさんはTwitterを使っています 「https://t.co/SWigVAAdmi C++20 Calendarって同月中最初の指定曜日を起点に 先月の最終指定曜日[0]とか 翌月以降の指定曜日[5~]を直接計算できるのね https://t.co/kbcOoAUCyG」 / Twitter
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
きしだൠ(K1S)さんはTwitterを使っています 「これ、amとpmがそのまま午前と午後に置き換えれると思ってるところから生じるバグなんだよなー 12pmは1pmの1時間前なんだけど、午後12時は午後1時の11時間後 https://t.co/1q1T1n7h65」 / Twitter

西暦1年は閏年か? - プログラマーの脳みそ
ISO 8601 - Wikipedia

GitHub

reactos/reactos: A free Windows-compatible Operating System
openbsd/src: Public git conversion mirror of OpenBSD's official cvs src repository.
IIJ-NetBSD/netbsd-src: automatically converted from www.netbsd.org
The NetBSD Foundation
freebsd/freebsd: FreeBSD src tree (read-only mirror)
dspinellis/unix-history-repo: Continuous Unix commit history from 1970 until today
古い記事を読んでいるmatsuuさんはTwitterを使っています 「CPU情報を取得していい感じのバナーをコンソール上に表示するツール。OS起動時やSSH接続時のmotdの代わりに表示したいところだ。 / “GitHub - Dr-Noob/cpufetch: Simple yet fancy CPU architecture fetching tool” https://t.co/YsIe1sf12W」 / Twitter
Dr-Noob/cpufetch: Simple yet fancy CPU architecture fetching tool

News

ASCII.jp:Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?|Windows Info
トーバルズ氏が語ったLinuxカーネル開発者や開発の未来 - (page 2) - ZDNet Japan
宇宙の極限状態で動作する「リアルタイムオペレーティングシステム」とは? - GIGAZINE

スライド

Falling - Google スライド
Rustでの自作OSをやってきて - Speaker Deck

blog

「UNIXをC++で分散OSに書き直せ」、幻に消えたBill Joyの野望とは: ITジャーナリスト星暁雄の"情報論"ノート
自作OSとマルチコア | PG_MANAの雑記
liumOS 2020年の進化を振り返る - /var/log/hikalium
dangomushi's Blog
yohei.codes
Microsoft Digital Defense Report でサイバーセキュリティの動向を知る - Microsoft Security Response Center

Twitter

その他

りおりおすとさんのツイート: "CPUが暇こいてる時に、自動的にマイニング、それもその時点で最も採掘効率の良い仮想通貨を、電力消費量も込みで選択してくれるOSがあった場合、それは「意図しないマイニング」なんだろうか…。 システム環境設定に「マイニング」がある世界"
Ryou Ezoeさんのツイート: "なんでDockerみたいなものが流行っているのかと問に対して、WindowsやMacしか使えない管理者権限を持たない環境でも動くからという説が提唱されていて、GNU Hurdは正しかったのかと呆然としている。"
Shiro Kawaiさんのツイート: "なるほど。chaos monkeyはNetflixが作ったツール https://t.co/DfFnuGdupV で運用中のサービスのVMをランダムに終了させるもの。耐障害性を上げるのに役立つ。同様に、休暇取得の制限をできるだけ少なくしておけば、いつ誰が突然休んでも止まらないチームを作るのに役立つ。… https://t.co/Ynp0PsWJ7q"
Takashi Kawasakiさんのツイート: "今やWindowsが凄いとかそういう話、誰も興味ないと思うんだけどさ、現存するどころか、かなりのシェアを持ってるUNIXじゃない思想で設計されたOSなんて凄くないですか!そして、互換性重視で来たので、かなり初期の謎の機能の痕跡とかが残ってるんですよ!"
渋川よしきさんのツイート: "50年くらい前は、一人で多くの領域の開発、改良に関われたのかもしれないけど、今どきは大人数で1つの領域に集中的に資源投下してなんとか数%改良、そして量産効果でなんとか費用配賦みたいな時代なんだよね。"
sogitani / baigie inc.さんのツイート: "専門家同士は100点満点で評価しがちだけど、市場が求めるのは50点くらいだったりする。それを上手に提供した60点の専門家は、70点以上の専門家たちからディスられがちだけど、事業継続して成長できるのはちゃんと市場とミートしてる60点の人。ディスってる70点以上の専門家たちはだいたい滅亡する。"
TAN-Y(たに)さんのツイート: "Macの最高なところは英語キーボードと日本語キーボードが正しく混在利用できるところだと思っているのですが、Windowsもこの点さっさと見習ってなんとかしてほしい・・・"
Ryou Ezoeさんのツイート: "Windowsカーネルにはしばらくの間、少電力モードから復帰するときにキャッシュを無効化してメモリにも書き出さないコードが入っていた。理由は宇宙線によるメモリエラーの回避のため https://t.co/x9fZakM5Gg"
For a brief period, the kernel tried to deal with gamma rays corrupting the processor cache – The Old New Thing
齊藤明紀さんのツイート: "×MULTICSはクソ。おれたちがいいOSを作ってやる ○MULTICS使えなくなって寂しいなぁ。懐かしいなぁ。しゃーない、自作するか。謙遜してMULTIをUNIに変えておこう。"
Nerry さんのツイート: "おれんじぺこのメモリマップは256TBのメモリ空間を512等分して、最初の512GBはアクティブなプロセスのローカルメモリ、前半の残り255個は予約領域、後半の約250個が各アプリのメモリ空間、次の1TBが物理メモリのダイレクトマップ、次の512GBがリカーシブマップ、最後の512GBがカーネル空間だった、はず"
ほうめい 不思議金物堂さんはTwitterを使っています: 「@miura1729 マルチプロセッサ構成でI/O初期化するときには他のプロセッサを足踏みさせといて共有資源を初期化し終わったら一斉にドンと走るとかたのしい」 / Twitter
Rui UeyamaさんはTwitterを使っています 「OSの授業で論文を読む授業があったけど、その中で一番印象に残ってる論文はこれ。発想の転換がすごいと思った。 https://t.co/x0Qe6sptIW」 / Twitter
atc proceedings - nightingale.pdf
SODA NoriyukiさんはTwitterを使っています 「ゴッタ煮のカオスになっていた /usr/lib を、意味によって /usr/lib (.so および .a のみを置く)、/usr/libdata、/usr/libexec、/usr/share、/var に分けたっていうのが歴史的経緯なわけで、 /var/lib っていわば /usr/lib/lib みたいなもんでチョー気持ち悪いんだよなあ」 / Twitter
Shinji KonoさんはTwitterを使っています 「ランサムウェアはバックトラックあれば防げるんだから、あんまり同情する気にはなれないが。GooleDrive ランサムウェアとか?」 / Twitter
katoさんはTwitterを使っています 「Infrastructure as Codeは、とってもいい流れだと思うんだけど。構成管理したいが故に、手作業で秒で終わることを、ず〜〜〜っと依存関係解決に費やしている時もあり。あとは、サーバでスクリプト回したらいいことなのに、サーバレスしたいからずっとRubyかPythonいじるだけの時とかもある、本末転倒感」 / Twitter
uint256_tさんはTwitterを使っています 「自動テストができないソフトウェアって何」 / Twitter
市川 真一さんはTwitterを使っています 「@uint256_t 実機で動作する UEFI のようなファームウェアや OS、仮想化ソフトウェアみたいなものって、自動テストやりにくい印象を持っています。仮想環境でテストしたところで、そのテスト結果は実機と等価じゃないですから」 / Twitter
Kazuho OkuさんはTwitterを使っています 「渡されたブートイメージのfsが微妙に壊れてるせいでTLSスタックのPRNGがコケるくらいが一番印象に残ってるやつなレベルです。まだまだだな」 / Twitter
🤫sat😪さんはTwitterを使っています 「いままで出会った中で一番強烈なバグってなんだろうなあ - CPUがたまに別の命令を実行 - カーネルの時計が(ソフト的に)止まる - 20個くらいのCPUが複雑に絡み合うデッドロック - カーネルがユーザ空間への戻りアドレスを間違える」 / Twitter
Kazuho OkuさんはTwitterを使っています 「原因がある問題は誰かが直せば済むんですよ! 本当に辛いのは、環境起因で直しようがない現象についてクレームが来たとき」 / Twitter
hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合はやはり GC がらみかなあ。シングルスレッドでもマーク漏れはつらかった。並行 GC のバグは最終的にコードからリバースモデリングしてモデル検査で問題点を見つけた。」 / Twitter

リファクタリングとメンテナンス

まさみさん⋈語りたいさんはTwitterを使っています 「Linuxのようにインクリメンタルなコードのレビューを基本にしてる場合のリファクタリング方法の解がよく分からないのが悩み。結局現在のコードを関係性で切り分けて部分ごとにアップデートしてるが、これはリファクタリングとはいえないよな…。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「大抵のリファクタリングは仕様を書き出してから丸ごと再設計したほうがうまく行くと思うのだが、みんな元のコードを残す境界をどの辺においてるんだろ。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@mhiramat Linuxの場合、大きな仕様変更以外大規模なコード変更への欲求ないし、それもリファクタリングとは言わないと思うので、リファクタリングが不要な形態のソフトウェアだとおもいます。」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@beepcap なんと、私は真のリファクタリングを知らなかったのか…。」 / Twitter
ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@mhiramat 真のリファクタリングをOS開発でやってるの、思いつく限りWindowsくらいなんじゃ無かろうかという疑問。(同じ外部仕様で、内部の動きがダイナミックに変わる奴)」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@beepcap ああー、それはLinuxではめっちゃ議論になるやつです…。」 / Twitter
不燃ゴミさんはTwitterを使っています 「@mhiramat 自分はその対応もリファクタリングと呼んでしまっているのですが、本来は何と呼べば良いのでしょうか? メンテナンス?」 / Twitter
まさみさん⋈語りたいさんはTwitterを使っています 「@memorydump2019 メンテナンスが正しそうですねえ。」 / Twitter
不燃ゴミさんはTwitterを使っています 「@mhiramat そうなのですねぇ 参考にさせていただきます、ありがとうございます!」 / Twitter

固定概念

隠れ肥満(体脂肪率22.7%)さんはTwitterを使っています 「何も見ないで書いてみる 1. OSのコアであるカーネルを操作するソフトウェアがシェル,シェルを画面に表示して人間が使えるようにするのがターミナル」 / Twitter
Miura HidekiさんはTwitterを使っています 「OS=UNIX系の物 であれば正しそうだけど、どうなんだろう?」 / Twitter
Miura HidekiさんはTwitterを使っています 「OSとはUNIXの派生の物であるという固定概念に固まってしまうと、30年前のレベルまで退化してしまう気がする。」 / Twitter

オフロード

Livaさんのツイート: "今日の発表のスライドをWeb公開できるように編集しました。 「創りたいOSを、創りたい時に、最小コストで作れる世界」 https://t.co/1rqXPorjAl"
18:03:24_web公開版.pdf - Google ドライブ
まさみさんは語りたいさんのツイート: "jailhouseの採用は検討済み?… "
siemens/jailhouse: Linux-based partitioning hypervisor
Linux向けハイパーバイザー「Jailhouse 0.6」リリース | OSDN Magazine
Jailhouseハイパーバイザ実践 - Qiita
Livaさんのツイート: "いえ、初耳でした。調べてみたのですが確かに近いところが多そうですね。もうちょい調べてみます。ありがとうございます!… "
ぬるぽへさんのツイート: "モチベーションはlibrary OS的なやつにあるので少し違いますが、並行して動くlinuxにlibrary OSから機能をオフローディングするやつにmultiverse kyle 2017があります、参考になるかもしれません… "
ぬるぽへさんのツイート: "同姓同名ですがどうも別プロダクトのようです こちらの論文のやつになります https://t.co/riiw0ZmHop… "
Multiverse: Easy Conversion of Runtime Systems into OS Kernels via Automatic Hybridization — Northwestern Scholars
ぬるぽへさんのツイート: "ちなみにめっちゃ被ってるというより、参考程度、つまりliva師が修論であれやるのなら関連研究の章にかけるかなーくらいの関連度です vmmを使って自作ライブラリOS上で動いているアプリのシステムコールを協調して動くlinuxカーネルに処理させてその結果をlibraryOSと同期するみたいなやつです… https://t.co/Dvvx1PrO2o"

NetBSD

Kimihiro Nonakaさんのツイート: "今のNetBSDだとカーネルはsrc/sys以下だけではなくsrc/commonも見てるはず"
SODA Noriyukiさんのツイート: "kernel と userland で共用するコードという意味で common なんですね https://t.co/L5DibO5j4x"
Kimihiro Nonakaさんのツイート: "NetBSDは不要な機能をディレクトリ毎消すとfiles.*が無くなるのでそれだけは残さないと駄目か。sys/conf/filesとsys/arch/XXX/conf/files.XXXを見れば何が必要なのかは判る"

プログラマ

まさみさんは語りたいさんのツイート: "ベアメタル→RTOS(MSDOS含む)→Linuxと進化してきた組み込み機器のプログラマと、サーバアプリなどから入ってきたプログラマの間で、OSを含むシステムモデルの理解に深い深い溝があることはよく知られている。"
まさみさんは語りたいさんのツイート: "大きい政府と小さい政府の違いみたいな、イデオロギー的な違いを感じるんだよね。アプリで全て頑張るからOSはローダーやライブラリみたいな働きだけしとけ、というのと、アプリはすべき事に集中して書きたいから、残り全てOSでやってね、という違い。"
Kazuo Moriwakaさんのツイート: "「O_DIRECTとかsched_yield使ったハックとか使いたい人」と「そういうの興味がない人」だ… "
まさみさんは語りたいさんのツイート: "イデオロギー論争なのでどちらが正しいとか間違ってるとかそういうのは余り意味がないんだけど、前者には車輪の再発明は避け、巨人の肩に乗る方法を模索することには意味があるんだよ、ということは伝えておきたい。後者はパフォーマンス追いかけ過ぎると前者になるから注意。"
星山 等(E-SW20改)さんのツイート: "組み込みもリッチクライアントもやるのでどちらの感覚も分かるんだけど、それだけにもやもや感もある。 組み込み専業の人はOSもコンパイラもあまり信用してない感じが強いし、リッチOSアプリの人は少し下位レイヤを信用しすぎ感がある。 どちらももうちょい融通をきかせた方が良さそうに思う。… https://t.co/8zz4ZYsScZ"
Kazuho Okuさんのツイート: "職業プログラマとしての成長したい人は、SIerとかウェブ系みたいな業種ではなく、メンテやリファクタ、再設計を通して「より良いソースコードを生み出す」環境が整っている会社を選ぶべきだと思ってる。仕様を満たすコードを短時間で生み出すことを繰り返しているだけでは、なかなか成長しないよ"
Kazuho Okuさんのツイート: "なお、期限のある契約に縛られない開発の場合でも、プロトタイピングや新サービス投入など、品質よりも納期を重要視すべき局面は存在します。ただ、そればかりやっているのはよくないという話"
Kazuho Okuさんのツイート: "なお、バグが再現しないからツイートに逃避しても、プログラマとしては成長しません(気分転換にはなる)"

組み込み業界

Ryou Ezoeさんのツイート: "組み込み業界の環境がひどいという話だが、テキストファイルでコードを書く以上gitで管理しない理由はないし、メモリ数KBだのクロック数十MHzだのという環境ならまずエミュレーター(clock accurateではないにしても)を書くだろうし実機のみで動かす必要もないだろうし、長期的に考えれば淘汰される。"
beepcap@HTTPSの強制には反対さんのツイート: "まぁ、組み込み「だから」バージョン管理していないというのは嘘であるが、 シミュレータをつくるというのは環境によるものの、ほとんど無い。 組み込み開発にとってはcoreのアーキテクチャより、ペリフェラルの方が多様で統一性がないためである。… "
deさんのツイート: "問題はだいだいペリフェラルで同意。 ハード屋さん(大抵顧客)がPMIC取り除いたり、メモリ変えたり、ドライバがないカメラ持ってきたり… ハード屋さんが顧客の場合、ハード選定から関われなくて、とても辛い場合がある。… "
リーズリングさんのツイート: "顧客といってもBtoB,BtoCでは多少違いはあるだろうけど。でも結局金を出すのが顧客ですからね。たとえ顧客が間違っていても事業的に儲かるなら応えるだけのことで、それよりも儲ける道があるならそっちを選ぶのが経営だという単純な話かと… "
まさみさんは語りたいさんのツイート: "みんな嫌ならやめればいいのにと思わなくもない。ラダーで動かさないといけないからPLCが高くついてる感じがする。(逆にそれがなくなったらラズパイだけで構成される世界が来るかもしれん・・・)… "
Kazunori Satoさんのツイート: "組み込み系プログラミングの不便さなめんなって記事にシーケンサーとラダー図なめんなってコメントが付いてて、不便さマウンティングに並行世界みある。 https://t.co/Tz01ZTAAZ5 https://t.co/Tz01ZTAAZ5"
PLCとは、シーケンサとは?初心者が速習でき83%分かる11項目 | ある電機屋のメモ帳
まさみさんは語りたいさんのツイート: "ちなみに大体のPLCは中身がLinuxかWindowsです。"
ほろころさんのツイート: "この問題はethernet/ipやethercat、cc-linkを利用しつつ、raspberry piで通信すればラダーは積極的に利用しなくても良いので… (I/Oで扱える電圧はPLCに分が有るので機器の削減は出来ませんが) 例:https://t.co/xFN3y6XTWT https://t.co/kzI1ZtMZk7"

ロバスト

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「ロバスト」というと、耐高負荷というより、仕様外/想定外に強いイメージあって、少しだけ違和感を持ってしまったの、B.メイヤー先生に影響されすぎかな(笑) https://t.co/8ChrBzGedK」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kaityo256 ご参考まで。「契約による設計」のB.メイヤー先生も、仕様定義外の動作は「気配りのグレードダウン」が理想で、それが頑丈さ(Robustness)という品質の指標、と書いてますね。 https://t.co/Oy5EvzxQma」 / Twitter
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@shirouzu セキュリティ屋としてはそちらであるべきなんですが 私は生来がシス管なのでロバスト=可用性維持の文脈で使っちゃいますねー」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tetsutalow なるほど(笑)」 / Twitter
Akira TakiguchiさんはTwitterを使っています 「@shirouzu @tetsutalow 私も長く「仕様外、想定外の状況に対して強い」「可用性維持」という意味だと思っていましたが、アメリカ毎月出張1年間の時に聞いた robust は、ほぼ full featured (だから適用範囲が広い)という意味でした。コミュニティの違い?」 / Twitter

@fadis_

Fadisさんのツイート: "Slackwareから学び取れるのはLinux環境の仕組みというより、何故パッケージにはファイルのアーカイブより多くの情報が必要なのか、何故ディストリはオリジナルのソースを変更しなければならないのか、な気がせんでもない"
Fadisさんのツイート: "資源の共有と分配を行うのがOSの役割なわけだけど、ホスト内である資源を唯一のプロセスしか使わない事が保証されている場合OSの仕事は無駄でしかなくて、無駄だから回避しようというのは真っ当な話だし、前述の条件が満たされない状況の為にカーネルによる資源の分配も依然として必要とされている"
yoh2さんのツイート: "カーネルとLILO更新して起動したら LI で止まって立ち上がってこない恐怖は今でも鮮明に覚えてる。"
Fadisさんのツイート: "GRUBと違ってLILOは指定した位置からカーネルをロード出来なかったら他の方法で起動して修正必須だもんな"
Fadisさんのツイート: "SwitchのOSはマイクロカーネル → 高速なIPCが欲しい → スレッドごとに独立した共有メモリを使って別のプロセスにデータを投げる #kernelvm"
Fadisさんのツイート: "「キャッシュに当たるようにコードを書く」種類の人たちだ…"
ゆかたゆさんのツイート: "一般人「HDDは遅すぎるからSSDに置こう」 友人たち「SSDは遅すぎるからメモリに置こう」 職場の人「メモリは遅すぎるからレジスタに置こう」 私「HDDは安いので好きなのです。」"
Fadisさんのツイート: "CPUは外からの観測結果が変わらない限り命令の実行順序を変えるし、ストレージは外からの観測結果が変わらない限り書き込み順序を変えるし、コンパイラは外からの観測結果が変わらない限りコードを読み換えるし、グラフィックランタイムは外からの観測結果が変わらない限りレンダリング順序を変える"

@makoto_kato

Makoto Kato ︎︎さんのツイート: "WindowsをOSSにしたところで、XPの頃でビルド1日以上かかる(40GB以上必要) 巨大すぎるOSのコードを直したいって人って多くない気がするんだよね。NTOSKRNLとWIN32Kだけでも十分な気がするんだが"
Makoto Kato ︎︎さんのツイート: "今更、第3のOSのウリが軽いとか使ってるのって、アプリが重いんだから意味ないと思うんだよな。Androidアプリが重厚たから、そのアプリが動くっていっても、スペックに似合わないもの動かしてもヘイトしか生まない。"
Makoto Kato ︎︎さんのツイート: "アプリをインストールさせないようなOSはまだ理解できるんだけどね、軽さをウリにするんだったら"
Makoto Kato ︎︎さんのツイート: "個人的に言えば、サポートエンジニアのロールモデルってのは難しくて、そこそこ出来るレベル人が一番長生きしやすいという状況だし、飛び抜けた人はそもそもサポートだと飽きちゃうんで。 https://t.co/FjZAgsqh5P"
サポートエンジニアをサポートするサポートエンジニアNight! - Secret Ninja Blog
Makoto Kato ︎︎さんのツイート: "窓作ってる会社のEscalation Managerって職も自分がいた頃とは毛色が変わってて、まぁ今なんてTeam Managerとそんなに変わんないんじゃないのって感じだし。。。"
Makoto Kato ︎︎さんのツイート: "サポートエンジニアとしてエンジニアリングが優秀すぎる人で残るのは、まぁ家庭を持っちゃっててとかが必要であって、若くて優秀な人って、軒並みあの組織からいなくなってるんだよな、特に品川のあそこ。"
Makoto Kato ︎︎さんのツイート: "大きい組織になったサポート部門は普通の人が入ってくるので、まぁ能力的には尖る必要がなくなって、普通の人がハンドリングできるレベルしかその組織として出来なくなる。その経過をいろいろ見ちゃってるから、尖った人は大きい会社のサポート部門へ就職することはオススめしない"
Makoto Kato ︎︎さんのツイート: "組織が小さいときはやりたい放題もできるし、いい意味で頭がおかしい人が入りがちなので、エンジニアリングとしても大変おもしろいんだけどね。大概起きてる現象って事例ないので想像力働かせるとかして説かないといけないし"

@d_toybox

なかのん&マジックさんのツイート: "2、3、8、9以外は普通のアプリ開発でも基本やるべきでしょ(5は物による)。 https://t.co/PINbS54Xyq"
命に関わるコードを書く時の10個のルール - GIGAZINE
みぞらぴさんのツイート: "モノリシックカーネル - Wikipedia https://t.co/VQ3V35Mv0S >日本国内においてはしばしばモノシリックカーネルと誤用・誤表記するユーザーやライター等が今なお見られる。日本語の「物知り」と語呂が似ているための勘違いであろう。 いらん考察すぎる"
なかのん&マジックさんのツイート: "シュミレーション("

@rockridge07

Rockridgeさんのツイート: "KaiOSはFirefox OSの遠い親戚のような存在であり、Firefox OSの開発チームの一部もMozillaを辞めた後で参加しているようだ。名称の由来は中国語の「开」(日本語の「開」)から。 / “A Short His…” https://t.co/7TiwDRDAZN"
A Short History of KaiOS - KaiOS
Rockridgeさんのツイート: "Windows版Firefox 61.0.2において、OSの強制再起動後(Windows 10 Fall Creators Update以降は全再起動後)にFirefoxが自動的に起動し、セッションを復元する機能が段階的に有効化さ… https://t.co/tW4OdUYDjo"
Rockridgeさんのツイート: "Windows再起動後にFirefoxの自動復元が行われる機能は、toolkit.winRegisterApplicationRestartの設定によって有効・無効を切り替えることができる。 / “Firefox 61.0.2 …” https://t.co/uNvvE159cg"
Rockridgeさんのツイート: "Firefox Realityのパーミッション機構はProgressive/Accountable/Comfortable/Expressive(PACE)の原則を採用するという。ユーザーにとってわかりやすい形で段階的にパーミッシ… https://t.co/TzJNK5bUR6"

@uchan_nos

OS作れないマン 技術書典3 あ11企さんのツイート: "Mobingiはクラウドへのデプロイ指示を1度定義しておくと、その定義ファイルを元にいろんなクラウド環境にデプロイができるサービスらしい。オンプレミス上のCloudFoundryとかも対応している。 #paasjp"
OS作れないマン 技術書典3 あ11企さんのツイート: "AnsibleとかChefはデプロイだけに集中しており、その後の監視とか更新などはスコープ外。Day2運用(監視、ログ、更新、バックアップなど)をするためのツールがBOSHである。 #paasjp"
OS作れないマン 技術書典3 あ11企さんのツイート: "Kuboはyamlファイルを読み取ってその通りにVMを構築し、ソフトウェア(etcdを動かすために必要なものとか)をデプロイする。 #paasjp"
x86-64-128さんのツイート: "集中コースの講師になったとしたら教えたいことまとめ: ・C++でのOSの作り方 ・川合さん謹製ツールからの脱却 ・Newlibのビルド ・UEFI起動のやり方 ・ELFバイナリのローダ ・PCIバス制御 ・SATA制御 ・USBキーボード制御 ・64ビットページング ・Linuxでのメモリ管理 ・mutexなどの同期機構"
x86-64-128さんのツイート: "全部詰め込んで教えるとは言ってなくて,学生が興味のあるところを聞いてくれたら詳しい話が聞けるリストだと思ってください.… "
OS自作 uchan_nosさんのツイート: "作者が「これはOSだ」と言い張って、周りの人も「まあそうかな」と思ったらそれがOSだ、という定義が僕は好きです。… "
OS自作 uchan_nosさんのツイート: "Operating Environmentという言葉が割と好き"
OS自作 uchan_nosさんのツイート: "OS自作について考えを巡らせていると,「OSを作る」=「カーネルを作る」となりがちでよくないな.こんな機能はカーネルに入れる必要ないよな,っていうの多すぎて「OS自作とは…」ってなりがち.だけど,ユーザ空間の諸々も含めて「OS」と考えれば,OS自作のスコープは広い."
OS自作 uchan_nosさんのツイート: "ユーザ空間でどの機能を実現し,カーネル空間(リング0)にどの機能を含めるか,っていうのもOSの重要な設計課題だと思って取り組むと,かなり楽しいチャレンジングな課題に思えてくる."
OS自作 uchan_nosさんのツイート: "ユーザ空間を含めてOSであるという立場にたてば,まだまだチャンレジすべきOSの分野は広そうだなあということに気づく.例えば,HadoopやKubernatesなどの分散処理基盤もOSだな,とかいう考えになって,未開の地が広がっていることに気づく.カーネルに閉じるとやることなさそうな感じになるけど."
OS自作 uchan_nosさんのツイート: "分散OSの教科書を読むと、壮大な夢が語られていて、意思を継いでみたさが発生する。"
OS自作 uchan_nosさんのツイート: "Kubernatesとかのオーケストレーションツールは,分散OSの機能の一部がユーザ空間プログラムとして実装された例だと思います.つまり現代の分散OS.(というのが最近分散OSを学んで感じたこと)… "

@utshina2

品川 高廣さんのツイート: "Linux の /dev/urandom は書き込み可能だけど、macOS の /dev/urandom は書き込めないらしい。"
品川 高廣さんのツイート: "Linux の /dev/urandom は poll() で POLLIN を指定すると読み出し可能として帰ってくるが、macOS ではエラーになる。"

@mhiramat

まさみさんは語りたいさんのツイート: "x86-opcode-map.txtを更新したらobjtoolが壊れたとかバグ報告が来たんだけど、意外と知らないところでこれ使われてるの?"
まさみさんは語りたいさんのツイート: "ありゃりゃー、先週末CELFで話をしていたことが(こちらはWindowsとはいえ)実際に起きた。OTAメンテ出来ないIT機器は販売してはならないっていう法律作るべきだ。 https://t.co/uRNCU3mMIP"
高梨陣平さんのツイート: "カナダで千台を超えるPOS端末がリモートからマルウェアにてwipe、削除された。Windows Xpを使用。機種はpanasonicの9300。攻撃はリモート保守に採用されたベンダー経由。SMB 1のパッチが適用されていなかった。再起動には全ての端末の物理アクセスが必要。… https://t.co/z5CLgXSBNq"
Hideyuki Tanakaさんのツイート: "Dockerいらなくね?というより、Dockerのコンセプトは成功したけど実装は気に入らないから積極的に代替に切り替えていきたいという流れじゃなかろうか(´・_・`)"
まさみさんは語りたいさんのツイート: "Dockerがいらないというより、Docker自体がモノリシックすぎて他のフレームワークと合わせて使いにくいから小さくしたcontainerdが使いたい、という話では。やっぱりUnix哲学は正しかったんだよ。"
まさみさんは語りたいさんのツイート: "ということをsystemdにも普及させていきたいのですがどうすればいいでしょうか。"
Kazuo Moriwakaさんのツイート: "systemdかなり機能ごとにバラバラになってると思うのですが…… ファミリーになってるとだめなかんじですか… "
まさみさんは語りたいさんのツイート: "機能毎にAPIって切れていて、任意のコンポネントを入れ替えるのは簡単なんでしたっけ?… "
Kazuo Moriwakaさんのツイート: "systemd-logindをつかわないとかはまあ普通にできる印象ですが置き換えの実装がないのでGNOMEつかいたいとかだと困りそう… "
まさみさんは語りたいさんのツイート: "なるほろ、systemd以外に依存ができてるわけですね。 なんかCNCFみたいな感じでいい感じにコンポネント毎の呼び出し規約の標準化とかが出来ると、コンポネント毎に代替手段やフォークして別になった実装が入って、またダイナミズムが復活するかなあ、という気持ちです。… https://t.co/1slSF5oDUU"
Kazuo Moriwakaさんのツイート: "udevdとsystemd本体は外すと前提が崩れていろいろ手当てがいりそうですが、基本的にはsystemd-*は相互にdbusでやりとりする疎結合なサービス群として構成されているので入れ替えたり使わなかったりは(程度問題ですが)やりやすいはず… "
Kazuo Moriwakaさんのツイート: "少なくとも*BSDはsystemd-udevつかわずにhald等でdbus喋って対応してるので、簡単な置き換えが典型的なlinux環境に無いというだけで極めて難しいとかではないはず。https://t.co/aDsmeJLDJ6標準のサポートはsystemdが強いところなのでデスクトップ環境を動かすのにsystemdが欲しいのは割と特徴的。… https://t.co/rDPmDL7C7g"
まさみさんは語りたいさんのツイート: "svcはservice callなんだろうな。レジスタの代わりにTLSにメッセージをおいてsvcするわけか。 #kernelvm"
まさみさんは語りたいさんのツイート: "NSの内部のgfxの処理は、処理するためのバッファキューをIPCで操作する。この仕組みはAndroidのbinderの仕組みを再利用している。 #kernelvm"
まさみさんは語りたいさんのツイート: "OSの仕組みを学ぼう、より、OSに入っている仕掛けを学ぼう、のほうが面白いかも。"

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "OS側ニーズで再起動する場合は、デスクトップ上のアプリケーションが完全復元する仕組みが出来ると良いのだが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "手元のデータだと、ようやくXPはほぼ消えた感じになってきた。 (だが、時折、XP(x64)で動かないんですけど…という問い合わせが来たりする)… "

@beepcap

Miura Hidekiさんのツイート: "セルフホストOSといえば、これだよな。何度見てもすごい https://t.co/pzj7DQu3yc"
ガラパゴスは此処に在った!自作OSの上で自作CADを動かす猛者 | Scene Research Station
beepcap@HTTPSの強制には反対さんのツイート: "これはちょっと違って、12年前だと時代遅れではあるものの、 30年前は「ソフトが書けなきゃPCはそもそも起動しても意味が無い」時代だった。 パソコンを使うとはソフトウェアを記述することだった。 その時代の感性であれば、自作するのは当たり前だろう。 CPUがDX4と言っているのでさもありなん"
beepcap@HTTPSの強制には反対さんのツイート: "僕もPC98で自作のワイヤーフレームモデラソフトを作って、ワイヤーフレーム表示や3D表示を研究していたぞ。 もう多分手元からなくなってしまったが、法線ベクトルを使うともっと簡単にポリゴンへの光線処理が出来ると分かったのは作ってからだいぶあとだったな・・・(減衰率と角度で表現していた)"
beepcap@HTTPSの強制には反対さんのツイート: "セルフホストOSといいつつ、まぁ自分専用のおもちゃだったんだろうと思うぜ。"

Advent Calendar

その他

Bluetooth Low Energy Advent Calendar 2014 - Qiita
Bluetooth Low Energy Advent Calendar 2015 - Qiita
Bluetooth Low Energy Advent Calendar 2016 - Qiita
一人トランザクション技術 Advent Calendar 2016 - Qiita
武蔵野 Advent Calendar 2017 - Qiita
カーネル/VM Advent Calendar 2012 : ATND
カーネル/VM Advent Calendar 2013 - Qiita
Kernel Advent Calendar 2017 - Adventar
オープンソースカンファレンス Advent Calendar 2018 - Adventar
Advent Calendar 2018 - panda's tech note
OS-CPU Advent Calendar 2019 - Adventar
東京大学 品川研究室 Advent Calendar 2020 - Qiita

BitVisor

BitVisor Advent Calendar 2015 - Qiita
BitVisor Advent Calendar 2016 - Qiita
BitVisor Advent Calendar 2017 - Qiita
BitVisor Advent Calendar 2018 - Qiita
BitVisor Advent Calendar 2019 - Qiita
BitVisor Advent Calendar 2020 - Qiita

Linux

Linux Advent Calendar 2013 - Qiita
Linux Advent Calendar 2014 - Qiita
Linux Advent Calendar 2015 - Qiita
Linux Advent Calendar 2016 - Qiita
Linux Advent Calendar 2017 - Qiita
Linux Advent Calendar 2018 - Qiita
Linux Advent Calendar 2019 - Qiita
Linux Advent Calendar 2020 - Qiita

本日12月1日より,2017年の技術系Advent Calendarが各所ではじまる:インフォメーション|gihyo.jp … 技術評論社
自作OS Advent Calendar 2014 - Adventar
自作OS Advent Calendar 2016 - Adventar
自作OS Advent Calendar 2017 - Adventar
自作OS Advent Calendar 2018 - Adventar
自作OS Advent Calendar 2019 - Adventar
自作OS Advent Calendar 2020 - Adventar

Shinpei Kato (加藤真平)さんはTwitterを使っています 「OSの仕事の1つは資源管理です。資源管理には大別して時間管理と空間管理があり、その大部分がScheduling問題とAllocation問題に帰着します。これらは最適手法と発見的手法のどちらかで解決できますが、いずれも整数問題や確率問題、微積分問題が基礎になっているので数学は大事ということです。」 / Twitter
Shinpei Kato (加藤真平)さんはTwitterを使っています 「OSのもう1つの仕事は抽象化≒仮想化です。不特定多数のユーザーに対して複雑なシステムをわかりやすく可視化して見せ、使いやすく機能性に優れたインターフェースを提供することですが、これはアーキテクチャデザインやエンジニアリングの知識が求められるので、図工も大事です。」 / Twitter

IME

Wolfram|Alpha 日本語版:計算知能
家庭・趣味向けのMathematicaの価格:個人ライセンスオプション
技術情報 – 株式会社科学計算総合研究所
ログイン
コグニカル
Interpretable Machine Learning
The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction • Software Engineer as Data Scientist
機械学習の研究者を目指す人へ | Hiroshi Takahashi
全ての機械学習の論文は新しいアルゴリズムを提案しているのですか? - Quora
はまさんはTwitterを使っています 「@shunji_umetani 嘘にならない範囲で限界までポジショントークするなら「確かに似てますよね!じつは機械学習も中身は最適化問題を解いてるんですよ!データから最適なアクションを見つけだす技術が機械学習。でも最適化にはデータなしで最適なアクションを見つけ出す技術もあります!」」 / Twitter
Hal TasakiさんはTwitterを使っています 「『数学:物理を学び楽しむために』田崎晴明 無償公開している大学生向けの教科書を久々に改訂。 主に行列の対角化の周辺を整備した。これでかなりスッキリと読みやすくなり内容も充実したと思う。スペクトル分解や正規行列の対角化可能性にも言及した。 https://t.co/ZAmRSjY7zZ」 / Twitter
Math book
えるエルさんはTwitterを使っています 「PRMLと並ぶ機械学習の入門書として名高いMurphy先生の本が,深層学習以降も含む進化版として出版されるようで,ドラフト版が公開 https://t.co/1h1J1ELvNc 1600pの大作の前編で,続編のAdvanced Topicsもあるそう Deep以前の最強のML本にDeepの話題も加わり,単体の網羅度では最強の教科書(鈍器)では https://t.co/5UeTagu6No」 / Twitter
https://probml.github.io/pml-book/book1.html
nianticlabs/monodepth2: [ICCV 2019] Monocular depth estimation from a single image

IME

その他

IME

日本語入力 / エスリル
フリック入力の基本 / iPhone5の使い方動画 - YouTube
Seamonkey インプットメソッド仕様書
🐟日本語入力の落とし穴 #burikaigi - みずぴー日記
“http”が“hっtp”になるイライラを解消する「ImeCaretColor」【レビュー】 - 窓の杜
SKKがブラウザ経由で使える「SKK Anywhere」を作ってみた - yunazuno.log
パッチを当ててuim-skkをUTF-8化する | κeenのHappy Hacκing Blog
im2018 · mamorlis/chaime Wiki
RFC: Add new enum value for private mode (not learn personal information for input method) to GtkInputHints (#2261) · Issues · GNOME / gtk · GitLab

エディタ

Big Sky :: Vim と日本語入力の話。
SSHを介してVimを使う人に感動的なESCキーを押すとESCキーが効きつつIMEがオフになる設定(Google日本語入力とVimの相性は最強!) - しふーのブログ
エディタのVimモードで、Escキーを押したときに日本語入力をオフにする設定(macOS, Windowsそれぞれの場合) - nosu blog

自然言語処理

分かち書きする言語しない言語のトークン化を統一的に扱う方法を妄想してみる - 言語と知能
GBDT - Google 検索
☔️⚡️さんはTwitterを使っています 「正直、文章のクラスタリングならばもうGBDTでいいと思う。 NN使うとやっぱ最大の課題はAPIにしたとき重いんですよね。 精度もAUCで3%ぐらいしか違わないので、高頻度で叩かれるAPIを想定するとGBDTに分があります」 / Twitter
言語処理100本ノック 2020 - NLP100 2020
ラフ集合 コーパス - Google 検索
Yo Ehara@9/3 教育システム情報学会でオンライン発表さんはTwitterを使っています 「ツイッターのような短文書分析用の新しいトピックモデル。ACL2020。文書に含まれる分野を教師なし推定するトピックモデルの代表格がLDAだが、各文書に含まれる単語数が少ない短文書では弱い。分散表現は併用せず、最後まで単語を離散的に扱う純粋なトピックモデルのようだ https://t.co/jl8JMPveFA」 / Twitter
An Online Semantic-enhanced Dirichlet Model for Short Text Stream Clustering - ACL Anthology
Yo Ehara@9/3 教育システム情報学会でオンライン発表さんはTwitterを使っています 「Semantic enhancedと書いてあるので、GLoVeみたいな単語の連続的な分散意味表現を別に持ってきて併用する方法かと思ったんですけど、どうやらそういう話ではなく、離散的な単語表現からトピックと各単語の間のsemantic weightという値を計算して、教師なし学習時に逐次更新するらしい。」 / Twitter
C3-3.pdf
論集49-2_白田.indd
Mamoru KomachiさんはTwitterを使っています 「何がギャップだったかというと、言語学での自然言語処理はルールベース万歳でひたすら辞書やルールといった知識を書く(プログラミングは正規表現的な)アプローチだったのに対し、工学の自然言語処理は統計的手法全盛で、コーパスにタグを付けて機械学習するというアプローチだったので、違いすぎた。」 / Twitter
『トピックモデル』の勉強ノート:記事一覧 - からっぽのしょこ
Googleが表形式データを使用して自然言語の質問に答えるためのAIをオープンソース化
Salesforceがデータベース用自然言語インターフェースPhotonをリリース
MicrosoftとGoogleが言語横断のAIタスクに対する新しいベンチマークをリリース
しょこβ📚さんはTwitterを使っています 「本にはないけどこれを変分ベイズでも解くという遊び方に気付いてしまった。 #OsakaR はてなブログに投稿しました #はてなブログ 5.3:ノイズあり対応トピックモデル【『トピックモデル』の勉強ノート】 - からっぽのしょこ https://t.co/o7dO1GJjdw」 / Twitter
5.3:ノイズあり対応トピックモデル【『トピックモデル』の勉強ノート】 - からっぽのしょこ
nerman: AllenNLP と Optuna で作る固有表現抽出システム - クックパッド開発者ブログ
系列ラベリングによる NPS コメントのポジティブ・ネガティブ部分の抽出 - クックパッド開発者ブログ
NPSアンケートを自動分類した話 - クックパッド開発者ブログ

辞書

Yuki YoshidaさんはTwitterを使っています 「国語辞典、循環参照するじゃんと思ってたが、あれは連立方程式だと思えばいいのか。巨大な連立方程式の解として全ての言葉を定義している。」 / Twitter
翻訳するポット🫖さんはTwitterを使っています 「@yos1up すこし違いますが、減衰係数をかけて代入を繰り返して計算解を出すという手法もあります。 鈴木敏『辞書に基づく単語の再帰的語義展開』 https://t.co/Fy1Hj67Bng」 / Twitter
情報学広場:情報処理学会電子図書館

スクレイピング

ウェブサイトからデータを自動で収集する「スクレイピング」を実行する方法と注意点 - GIGAZINE
ローカル環境で netlify lambda のエミュレータを動かす - mizdev
netlify-lambda で puppeteer を起動する - mizdev
ブラウザのさまざまな操作を自動化するためのガイドをまとめたサイト「theheadless.dev」 - GIGAZINE
theheadless.dev - Learn Puppeteer & Playwright
checkly/theheadless.dev: Learn Puppeteer and Playwright - Tips, tricks and in-depth guides from the trenches.
ブラウザ自動化ライブラリ Puppeteer が Firefox をサポート
Chromium、Firefox、WebKitベースのブラウザを自動化するPlaywright 1.0がリリース
ウェブサイトの情報を自動で取得する「ウェブスクレイピング」をJavaScriptで行う方法 - GIGAZINE

依存関係グラフ

特徴量重要度だけで解釈するのはやめよう~部分依存グラフのすすめ │ キヨシの命題
特徴量ごとの作用を使ってモデルの中身を解釈する l DataRobot
依存関係・因果関係の視覚化に使われるベイジアンネットワークとは?|NTTデータ数理システム
機械学習モデルの解釈の入門: Partial Dependence Plot(部分依存グラフ) - GRI Blog
故障位置決めのためのBayesネットワークに基づくプログラム依存グラフ【Powered by NICT】 | Semantic Scholar
P1-31.pdf

耳コピ

しゃをみんさんはTwitterを使っています 「ブログに書きました。先日のOngaACCELシンポジウムで発表されたAI自動採譜の研究について、自分が関わったパートを少し詳しく解説してみました。 「AI自動耳コピ」の研究者がいま考えていること - しゃをみんの自習部屋 https://t.co/DMvmLqcouH https://t.co/uPWmlwqNAq」 / Twitter
「AI自動耳コピ」の研究者がいま考えていること
【藤本健のDigital Audio Laboratory】音を楽譜にする“耳コピ”はここまで来た。AI自動採譜の最前線-AV Watch
[2005.07091] Semi-supervised Neural Chord Estimation Based on a Variational Autoencoder with Latent Chord Labels and Features

位相的データ解析(Topological Data Analysis)について | ALBERT Official Blog
情報学広場:情報処理学会電子図書館
情報学広場:情報処理学会電子図書館
整数計画法による定式化テクニックをまとめたい - 締め切り駆動開発
NumPyroによるベイズモデリング入門【線形回帰編】 | deepblue
松本徹三さんはTwitterを使っています 「@shirouzu 現在の延長線上ではシンギュラリティーは無理だと思っています。三つの点でブレークスルーが必要です。1)推論スピード(量子コンピューターが必要)2)データベース(大量の文書や講演・演説等のデジタル格納が必要)3)規範の認識と遵守、自由意志、自律的問題提起、閃き、等々の問題の解明。」 / Twitter
「相手のあらゆる行動の確率を計算する」ポーカーAIをFacebookが開発、将来的にはサイバーセキュリティへの応用も - GIGAZINE
誤情報に対抗するための判断材料を提供する「コンテキスト化エンジン」構想 - GIGAZINE

ローマ字

Twitter

毎日新聞さんのツイート: "ローマ字の「ち」は「ti」と「chi」。 教育現場からは「どちらかに一本化してほしい」との声が上がっています。 https://t.co/pJXfyqmaN5"
SASANO Takayoshiさんのツイート: "「ち」は「chi」表記じゃないかなあ。「ti」は「てぃ」という発音に見えるんだけど。(キー入力のことは考慮しないツイート"
SASANO Takayoshiさんのツイート: "入力は多分tiだと思います。 #ち"
SASANO Takayoshiさんのツイート: "むしろぁぃぅぇぉ入力がlaなのかxaなのかで戦争が起きるような"
SASANO Takayoshiさんのツイート: "ていうか何故統一したがるんだろう。どっちでも良いものは「どっちでもいい」を許容しなよ。"
Orumin de Izumoensisさんのツイート: "このまえ,ローマ字入力で ti か chi かで訓令式かヘボン式かみたいなアンケートが出回っていたのだけれども,昭和二十九年十二月九日のローマ字のつづり方(内閣告示第一号)における第二表に,"ち"を chi と綴る方法が乗ってる https://t.co/g3qvGc8ft8"
KIMATA RobertHisasiさんのツイート: "なんで選択肢が訓令式とヘボン式からの択一なのか。ISO 3602はなぜかこういう時に話題にすら上がらない。国際標準なのに。あと99式とか日本式とかもあるがこちらも話題に上らない。更に固有名詞の場合、ローマ字の書き方無視して全く別の綴りになる場合もあるが、そういう場合の対策も出ない https://t.co/kXpjfgJJhc"

ローマ字 - Wikipedia
99式ローマ字 - Wikipedia
ISO 3602 - Wikipedia
UT_Komaba_Nihongo_no_romaji_hyoki_v1a
ヘボン式ローマ字一覧表です。ローマ字のヘボン式と訓令式の違いを知っておこう!
正しく知っておきたい「ヘボン式ローマ字」の基礎知識 - NAVER まとめ
新田原駅の駅名標のローマ字が訂正される|鉄道ニュース|2019年1月18日掲載|鉄道ファン・railf.jp
新田原駅の駅名標のローマ字が訂正される|鉄道ニュース|2019年1月18日掲載|鉄道ファン・railf.jp

Mozc

Re: [opensuse-ja] 辞書の話
Wonderlands in Usagi's brain: mozcユーザー辞書エディターとか作ってデータ構造とアルゴリズムをがさごそっと勉強しようか
Mozcソースコード徹底解説 #TokyoTextMining
Mozc - ArchWiki
google/mozc
mozcをコンパイルしてインストールする(Linux) - Qiita
Google 日本語入力 - Wikipedia
2012年他にやったこと - Mozc 編 - NyaRuRuが地球にいたころ
2014 年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
2013年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
2012年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
エヌユルさんはTwitterを使っています 「@d_toybox ローマ字テーブルをカスタマイズできるのがmozc系だけなので逃れられなくなりました」 / Twitter

Google

もしかして

スペル修正プログラムはどう書くか
日本語「もしかして」検索について - 株式会社ロンウイット
日本語「もしかして」検索について - 株式会社ロンウイット
Apache Solr でサジェストを実現してみる、その2 - Qiita
「Google サジェスト」が正式サービス開始、「もしかして?」を検索窓に表示 | 日経 xTECH(クロステック)
Google、「もしかして」修正検索の新しい機能 | 海外SEO情報ブログ

グライド入力

渋川よしきさんのツイート: "グライド入力、めちゃ便利。英語入力めちゃくちゃ早くなった。欧米人がIMEを知らなくて云々というのは過去の話になりそう。グライド入力とか音声入力を実現するには必要だし、事例として理解してもらいやすくなりそう。"
渋川よしきさんのツイート: "AndroidのGoogle日本語入力内蔵英字キーボードにはグライド入力ないのね。Google中国語入力の方にはあるのに!まあ、システムキーボードのgboardの方を使えばよいのだけど。"
iOS版「Gboard」が日本語対応!賢いグライド入力も!
英文メール作成も楽ちんに。日本語対応した「Gboard」でキー入力を“同時翻訳” - ケータイ Watch
ASCII.jp:スマホの入力でも日本はガラパゴス、世界は《ひと筆書き》入力が主流だ|遠藤諭のプログラミング+日記
指をスライドして入力する - Nexus ヘルプ
Google日本語入力の後継アプリ「Gboard」のAndroid版が最新β版で日本語に対応 – ゼロから始めるスマートフォン
iPhoneのキーボード入力をカスタマイズしてちょいワザ覚えたら超快適になった - Engadget 日本版
Android★SQUARE:■Gboard - Google キーボード ~ 大幅な進化を遂げていた標準キーボード
Google日本語入力の後継キーボードアプリ「Gboard」のAndroid向けが最新β版で日本語に対応!導入方法や使い方を紹介 - ライブドアニュース
Gboard - Google キーボード - Google Play の Android アプリ
【Gboard】Google らしいスマホ向け文字入力ツールの初期設定、使い方を解説(iOS版)

Google

Google Japan Blog: Google 日本語入力の開発版をアップデートしました。(0.13.481.10x)
Google Japan Blog: Google 日本語入力チームからの新しいご提案
714668 - Duplicate normal character + Vietnamese character for Vietnamese input - chromium - Monorail
Backspace can not erase the last one character during Japanese IME conversion (macOS) · Issue #9173 · electron/electron
Google 日本語入力 - CGI API デベロッパーガイド
(99+)Google 日本語入力 ヘルプ フォーラム - Google プロダクト フォーラム
Google 日本語入力報告されている問題 - 日本語入力 ヘルプ
誤変換報告フォーム - 日本語入力 ヘルプ
[026460]通常使用する言語(日本語入力システム)を切り替える
「新しいキーボードをインストールします」と通知されますが何も変わっていない。これは何でしょうか&# - マイクロソフト コミュニティ

窓の杜

【レビュー】ここ100年間で公開されたアニメタイトルを網羅した「Google IME」向け辞書ファイル - 窓の杜
Google、スペルチェック機能を搭載した「Google 日本語入力」v0.13.521.0 - 窓の杜
Google製の日本語入力システム「Google 日本語入力」がついに正式版へ - 窓の杜
「Gboard」に漢字のよみがなを取得するAPI ~サードパーティーアプリに組み込み可能 - 窓の杜

本の虫

本の虫: Google日本語入力の技術講演会
本の虫: Google日本語入力の開発版が更新された

Twitter

なかのん&マジックさんのツイート: "Linux版ChromiumのIME周りのイベントの挙動が変なことになってるなーと思ったので、ソースコード確認してみたけど、やっぱりコメントから悲壮感漂ってくるな……ホンマに地獄。"
Desktop App Convater で変換した UWP アプリ対応の Google 日本語入力 2.23.3195.100 / 101 開発版リリース – What I Know ~ワッタイナ
まさみさんは語りたいさんのツイート: "なんかこれはgoogle日本語入力などでよく見られるような(笑)… "
高梨陣平さんのツイート: "NNのモデルは学習したデータを記憶してしまい、悪意あるユーザはデータを取り出すことが可能だとの研究結果。特にテキストデータの学習が危険でイメージやそれ以上のエントロピーが高いデータは難しいという。回避方法は重要データは学習させない、するなら差分プライバシアルゴリズムを使用すること… https://t.co/i2yOoswRt4"
Albert R. Antoscaさんのツイート: "Neural nets can "unintentionally memorize" private training data, leaving it vulnerable to hackers. "[We] don't really know why neural networks memorize these secrets right now" #neuralnets @TheRegister # https://t.co/JMSyq06F9P… https://t.co/2BxpcZlYCe"
Boffins baffled as AI training leaks secrets to canny thieves • The Register
[1802.08232] The Secret Sharer: Measuring Unintended Neural Network Memorization & Extracting Secrets
Makoto Kato ︎︎さんのツイート: "Google日本語入力に関しては、エイプリルフールやる前に、プロダクトのバグを直して欲しいよね。。。"
Google Developers Japan: Gboard 物理手書きバージョンの舞台裏
なかのん&マジックさんのツイート: "Google日本語入力って、スクリーンのDPIが変更になると、移行、候補ウインドウ位置とかバグる?"
なかのん&マジックさんのツイート: "プロセスを殺してみたら正常な位置に表示されるようになったけど、その後再起動されていないのにそのまま動いてるのが気持ち悪いな……どういうことなの。"
Makoto Kato ︎︎さんのツイート: "Microsoft Japanese IMEも2017の時にいろいろあったのをサム古川さんがばらしちゃうし (まだ日本にチームあるけど)。。。"
Makoto Kato ︎︎さんのツイート: "なので、JustSystemに納税するようにしてます"
Makoto Kato ︎︎さんのツイート: "Google Japanese Inputの功罪は、IMEで稼ぐビジネスが難しくなったのと、その結果焼け野原になった後に彼らが(会社の方針かどうかは知らないけど)アップデートをしなくなったことですね。Netscape Navigatorでみんなが学んだビジネスのつぶしかたではある"
Makoto Kato ︎︎さんのツイート: "OSSなんてパッチ書いて問題点指摘するだけでもいいわけだし、自分の場合はどういう形であれバグが直ればいいだけなんで。 他人のパッチを自分が取り込む場合は、パッチを全く変えたとしてもその人の名前でできる限りlandするけどさ。ただ会社によってはできないからね"
Makoto Kato ︎︎さんのツイート: "そもそもChromiumのIMEコードってもう日本人やってないはずだし、Google Japanese Inputも(そのチームではもうない) 某氏がギョーム外の休日にやるかどうかだから、自分とかでパッチ書けばいいじゃんといつも思うんだけど。なんのためにmozcがOSSにしてあるのかと https://t.co/DyYnqFkJ0J"
Makoto Kato ︎︎さんのツイート: "AI SoftのWXビジネスだって、Microsoftに駆逐されたし (というかもともとのMicrosoft IMEはWXのソースコードライセンス版からスタートしてるが)、商用のサードパーティ製IMEはデスクトップじゃ難しいよな"
Makoto Kato ︎︎さんのツイート: "Chrome 75 for Windowsで入力周りの変な話が出てきたのは、75でTSFに移行したからか。Geckoの場合はさんざんサイクル回したけど、Chromeは一気にいったんだ。Microsoft社内でテストされてるんだとは思うけど"
SODA NoriyukiさんはTwitterを使っています 「Google IMEの z+一文字 って、たぶん Emacs Egg あたりが起源だから https://t.co/4gFIyrEzL5 の「『zX』が :-) に変換される?!」に記載されている奴はだいたいあるんじゃないかなあ。 ちゃんと確認したことないけど。」 / Twitter
Wnn Yogo Ver.2.0 (2005.4.18)
ひさてるさんさんはTwitterを使っています 「Google IME zh ← zj ↓ zk ↑ zl → ここまでは知ってたけど z- 〜 z[『 z] 』 z. … こんなのもあったのか」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「OS作っているベンダーなら、なぜAndroid SにAPIを追加しなかったのかを問い詰めたいところですね https://t.co/cXxVx117KA」 / Twitter
Google Developers Japan: 日本語よみがなデータ取得を可能にする Gboard API のご紹介
Makoto Kato ︎︎さんはTwitterを使っています 「さて、イベントモデルどうするべ。inputType: insertFromDropは。。。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「たぶん新しいAPIがあるんだろうけど。。。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「https://t.co/90dAIyY4sU」 / Twitter
InputType to insert image from software keyboard · Issue #117 · w3c/input-events

ライティングが捗る!Google日本語入力の意外と知らない便利機能9選|ferret [フェレット]
Google日本語入力のショートカットを覚える - Milk+ea
Android用「Google日本語入力」がサポート終了。Gboardへの乗り換えで気になる点を解説 - PC Watch
Google検索では依然としてAIの分析よりも「メタデータ」が重視されている - GIGAZINE
won't fix: サードパーティ製IMEは、Web Browserのプライベート・シークレットウィンドウなんて考えてくれない

ATOK

blog

Macの日本語入力に「ATOK」を1年以上使い続けている理由 - Better Better Days
ATOK & やまぶきR による親指シフト - にせねこメモ
ATOK も統計的言語処理へ - NyaRuRuが地球にいたころ
Firefox Quantumが激重になる問題が発生中 - あれこれ備忘録@はてなブログ
3DMARK 11で透明な窓が出てきて起動しないのはATOKの設定が原因だった | Hinemosu
3DMarkが動作しない...原因はこれ?! | つれづれなるままにひぐらしすずりにむこて..
おりおんの戯言 - メインPC、ビデオカード換装。(2014/09)
ATOKの直前の入力を日本語にするをポップアップさせない方法 - プログラムdeタマゴ

PC Watch

ジャストシステム、新エンジンを搭載し誤変換が30%削減された「ATOK 2017」 ~10年ぶりの刷新でディープラーニングを駆使 - PC Watch
「まっくお」で「macOS High Sierra」に変換できるATOKの新IT辞書公開 - PC Watch
ジャストシステム、Windows 10プチフリ問題を解消したATOKアップデート - PC Watch
ジャストシステム、説明で漢字変換できる新機能を搭載した新「ATOK for Windows」 ~Android版も深層学習エンジンで予測変換性能が30%向上 - PC Watch

INTERNET Watch

「ATOK 2017」はディープラーニングで誤変換3割減、2月3日発売 -INTERNET Watch
「ATOK for Mac」の入力ミス修復率が35%向上、最新版をATOK Passportで公開 - INTERNET Watch

窓の杜

ディープラーニングを採用した新変換エンジン搭載の「ATOK 2017」が発表 - 窓の杜
ジャストシステム、次期「ATOK」を発表 ~ディープラーニング技術を活用して入力ミスを修正可能に - 窓の杜

Twitter

なかのん&マジックさんのツイート: "ちなみに、ATOK 2011以上はTSFのTIPになっているので、安定して動作します。ただし、Win10ではIME周りの変更がまた入ってるので、ATOK 2015以上にした方が良いです(2011も試した限りでは使えていますが)。"
なかのん&マジックさんのツイート: "@dalkyrie4g Win8以降でATOK 2010以前は64bit版アプリではまともに動作しないのを確認しました。Win7やx86版アプリでは問題無いのでWindows側の変更によるものだと思います。2011以降にアップグレードするか、Firefoxのx86版を再インストールするかですね。"
Rockridgeさんのツイート: "Fx57:アクセシビリティサービス(ATOKインサイトを含む)が有効の場合、一部のWebページでハング状態が発生する問題を修正。 / “1321960 - Browser becomes hangs up and Windows…” https://t.co/wLfSO2ubVT"
Piro/Linuxコマンド操作解説漫画連載中さんのツイート: "https://t.co/rGMU4O2FWW ATOKもAdobe製品もクラウド一本化、Google Homeを男声で喋らせるデモも後ろは当然クラウドで、スタンドアロンがあり得ない前提の「コンピュータは世界に5台だけで充分」な時代と感じるけど、ツールがオフラインで動かないっていうのは古い世代の自分には恐怖感や不快感がある"
ATOKの買い切り型とPassport版各種の違い - 俺の作業デスク
なかのん&マジックさんのツイート: "クラウドはこちらの都合よりもメーカー側の都合優先すぎて嫌だな。販売終了しても使える方法をちゃんと提供してくれるの?ってところが主に。"
一ノ瀬 いろはさんのツイート: "Adobe は用意してたりしますね。ライセンスサーバー止めるので認証不要版提供。… "
なつき@Webデザイン日曜開催さんのツイート: "ATOKは、クラウドに接続できないと変換一覧ポップアップの右端にアイコンが出ている候補が表示されなくなるはずです。 余談ですが、夕方からaiboのクラウドサーバが落ちたらしく、aiboが一歩も動かなくなってクラウドの重要性をかみしめています…… "
なかのん&マジックさんのツイート: "んんんんん? ATOK Passportって、古いATOK削除しないとインストールできない??? これはテストでむっちゃ困るんですけど。"
なかのん&マジックさんのツイート: "なんかよく分からんな。インストーラのメッセージがバグってるかも? 削除しますか的なメッセージで「はい」にしないと進まないんだけど、通常のインストーラが起動してから聞いてくるのに対しては単に拒否できて先へ進める。しかも最初に聞いてきたバージョンは再度聞かれなかった。"
なかのん&マジックさんのツイート: "いや、やっぱり、最初に聞かれて拒否できなかったATOK 2014だけ削除されてしまった。ATOKは後から古いバージョン入れられないから面倒だなぁってのと、そもそもPassportのインストーラが複数バージョンインストールしてる環境でテストしてなさそう?"
なかのん&マジックさんのツイート: "とりあえず、これ、Passportのインストーラに関しては嘘っぽいので、修正した方が良いのでは。Passportのインストーラの後に来る、ATOKそのものっぽい方のインストーラは、パッケージ版と同じく、共存の選択肢あるけど。 https://t.co/dQGTTqvwj1"
なかのん&マジックさんのツイート: "二つ以上のバージョンがインストールされていたら、最初に聞かれたバージョン以外は残せる模様。"
なかのん&マジックさんのツイート: "単純にPassportのインストーラのバグなんじゃないのかな。ちなみにmacOS版も全く同じUIから強制アンインストールさせられたけど、共存不可なのは https://t.co/dQGTTqvwj1 に明記されてるんで、macOS用のコードが、Windows版でもビルドされちゃってるとか?"
なかのん&マジックさんのツイート: "あれ? ATOK Passportだと、TIP名が"ATOK"になってて年号入って無いな。加えて、GUIDが{A38F2FD9-7199-45E1-841C-BE0313D8052F}だけど、これって今までのバージョンもこうだったんかな? もしそうなら、ATOK向けのGeckoのハックがまったく動いてなかったことになるけど。"
なかのん&マジックさんのツイート: "Win10のInsider Build入れてるノートPCの方にATOKをインストールしたら、インストール済みのバージョンのアンインストールを拒否できた。ただ、メインの環境で拒否できなかったのは複数バージョン入ってるうち、2014のみ。こちらの環境は2017のみが入ってたのと、インストーラ自体が別物かも?"
なかのん&マジックさんのツイート: "壊れて欲しく無いメイン環境の方から2014がアンインストールされてしまったのが本当に痛いなぁ。ATOKはより新しいバージョンが入っていると古いバージョンをインストールできないんで。"
Makoto Kato ︎︎さんのツイート: "Firefoxのa11yの問題はATOK使ってて痛いほどわかるんだけど、あれに首突っ込んだら身体が足りないのでやってない。。。でもデッドロックの問題はいろいろバグ報告したけど"
なかのん&マジックさんのツイート: "a11yが必要な理由がATOKのみだったら、a11y機能を無効化して欲しいぐらい。"
なかのん&マジックさんのツイート: "一太郎についてるATOKって"ATOK FOR 一太郎2018"とかになるのか。ということはこれ、毎年個別のGUIDが振られていく訳か。誰かに教えてもらうしかないかな。"
箱あんこうさんのツイート: "そういや、ATOK を入れた状態でネットが不安定なところで作業していると、サーバーと繋がらなかったよっていちいちダイアログ出してきて、しかも選択を間違えるとブラウザ開いてきたりするのが最高にウザったいのよね。 まぁ認証とか大切なのはわかるんだけど、正直つらい。"
なかのん&マジックさんのツイート: "おう……ATOK、PerMonitor DPIに対応してない?"
なかのん&マジックさんのツイート: "デバイス間での辞書の同期や、変換候補を広辞苑で確認したりできるの、ATOKしかないんで、値上がっても私的にはまだ全然OK。サービスが無くなった場合のデメリットがはるかに支出を上回るケース。 / 月額制「ATOK Passport」が14~24円値上げ 6月分から - ITmedia PC USER https://t.co/b3sifb793I"
月額制「ATOK Passport」が14~24円値上げ 6月分から - ITmedia PC USER

ATOKとMicrosoft IMEのショートカットキー比較
Bug-org 1409155 ATOK 2006, ATOK 2008, ATOK 2009 and ATOK 2010 crash 64-bit version of Firefox on Win 8.1 or later and ATOK 2007 doesn't work fine with same environment - WebStudio

Japanist

なかのん&マジックさんのツイート: "次の商品を購入しました:富士通ミドルウェア 『Japanist 10』 via @amazonJP https://t.co/xvgtMx0ae1"
なかのん&マジックさんのツイート: "来てみないと分からないけど、Japanist 10が出ると、親指シフトキーボードがある程度スマートに環境作れるようになるのでは?"
なかのん&マジックさんのツイート: "親指シフトは、キーの入力複数個をまとめて一文字の入力としてるけど、あれがレスポンスを悪くするし、OSネイティブで処理される必要が出てくるしで、技術的には筋が悪いよね……"
なかのん&マジックさんのツイート: "親指シフトキーボード(物理)を買ってあるけど、軽く1時間ほど練習して投げ出した。"
なかのん&マジックさんのツイート: "Japanist 10入れてみたけど、案の定なTS_E_NOLAYOUT対策入れてないなーという感じの動作だ。"
なかのん&マジックさんのツイート: "あと、アプリ上でJapanist 10の設定を開こうとすると、アプリがハングアップする(回復するパターンのほうが多いけど)。そして設定が開かない。スタートメニューから独立したアプリとして起動する分にはOK。"
なかのん&マジックさんのツイート: "Japanist 10のキーバインディングの変更で、他のIMEの基本的なバインディングがプリセットとして用意されていないのは、乗り換えさせる気ゼロって感じだなぁ。"
なかのん&マジックさんのツイート: "Japanist 10、一応確認したけど、TIP名は"Japanist 10"、GUIDは{E6D66705-1EDA-4373-8D01-1D0CB2D054C7}。縦書きにはちゃんと対応してる模様。"
なかのん&マジックさんのツイート: "とりあえず、Japanist 10がこのままではFirefoxで使い物にならないので、ハックを入れるバグは立てた。たぶん簡単に修正できる。 https://t.co/XvKWgzA1VD #もずでぶ"
なかのん&マジックさんのツイート: "よし、Japanist 10以外では目立ったTSFのバグはこれで一掃できたかな。"
なかのん&マジックさんのツイート: "Japanist 10のためにハック入れたパッチ、仕方なく、他のIMEでも通るパスを修正する必要があったので、少しリスクが高くなってて、BetaへのUpliftをリクエストすべきか悩んでる。"
なかのん&マジックさんのツイート: "まあ、Japanist 10ユーザからのバグ報告があったわけでもないんで、もういいかなって感じはしてるけど……"
なかのん&マジックさんのツイート: "実際のバグ報告が無いんで、GeckoのJapanist 10対応は、59にupliftせずに60 (次のESR)から。TSFのバグにJapanistが引っかかってるって話だし / https://t.co/XvKWgzA1VD - [TSF] Candidate window of Japanist 10 positioned incorrectly and flicked (not aware of TS_E_NOLAYOUT issue) #もずでぶ"

MS

MS

IME Share

IME Share (Windows)
続報: imeshare.dll —完結編— - イグトランスの頭の中
IMEのドキュメントURLメモ - イグトランスの頭の中
Mozilla for Windows x64 platform: How to get IME settings such as converted text color

知っておくと便利な機能

日本語入力(IME) の知っておくと便利な機能(1) – Windows & Devices 開発統括部
日本語入力(IME) の知っておくと便利な機能(2) – Windows & Devices 開発統括部
日本語入力(IME) の知っておくと便利な機能(3) | Windows Blog for Japan
日本語入力(IME) の知っておくと便利な機能(4) | Windows Blog for Japan
日本語入力(IME) の知っておくと便利な機能(5) | Windows Blog for Japan

Win10 AU, CU

Windows 10 Anniversary Update 日本語入力 (IME) 関連の改善 | Windows Blog for Japan
Windows 10 Creators Update 日本語入力 (IME) の改善 | Windows Blog for Japan

Win10 FCU

Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Fall Creators Update において、未確定文字列の確定タイミングが変更されました – JAPAN Platform SDK(Windows SDK) Support Team Blog

IME ショートカット - マイクロソフト コミュニティ
Microsoft IME Application Interface
Third-party input method editors - Compatibility Cookbook
Input Method Manager (Windows)
Masaru Iritaniさんのツイート: "@yutakakn 横から失礼します、IME の開発者です。実は日本にも Windows の開発チームが有り、IME も日本語については日本のチーム (@msimejp) が担当しています。ローカライズに関しては、是非フィードバック Hub にてご意見をお寄せください。"
日本語入力(IME) の「クラウド候補」について | Windows Blog for Japan
Windows 10 における日本語入力の変換精度向上への取り組み | Windows Blog for Japan
Windows 10 Insider Preview ビルド 14986でお試しいただける日本語入力の改善点について | Windows Blog for Japan
Windows 10 Insider Preview ビルド 15002 でお試しいただける日本語入力の改善点について | Windows Blog for Japan
Windows 10 Insider Preview ビルド 16226 でお試しいただける日本語入力の改善点 - Windows Blog for JapanWindows Blog for Japan
Windows_Japanさんのツイート: "最新 #WindowsInsiders ビルドの日本語入力では、入力そのままの予測候補とスペル修正された予測候補がすぐ区別できます。クエストをお試しいただき、フィードバックをお寄せください。 https://t.co/PC41BQBF0V https://t.co/WSkxL9fF4q"
Windows 10 Insider Preview ビルド 17035 でお試しいただける日本語入力の改善点。女子高生 AI「りんな」による予測候補を追加 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 17063 でお試しいただける日本語関連の改善点について - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルドでお試しいただける日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 18262 の日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 18277 でお試しいただける日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
Windows 10 Insider Preview ビルド 18875 でお試しいただける日本語入力に関する改善点 - Windows Blog for Japan
【Chrome+MS-IME】変換確定(Enter)で入力中だった文字が消える不具合について(BackSpace→Enterで消える現象)
Windows 10 における日本語入力の改善の取り組み  - Windows Blog for Japan
Windows 10 における日本語入力の改善の取り組み  - Windows Blog for Japan
キーボード日本-ImeOn/ImeOff の実装 | Microsoft Docs

TSF

MS

ITfInputScope interface (Windows)
Text Services Framework
Text Services Framework (Windows)
TSF Aware – Dictation, Windows Speech Recognition, and Text Services Framework.
IME (Input Method Editor) と Text Services Framework のアクセシビリティ
MSDN Magazine - July 2007 - Speak Up: Support Dictation with Text Services Framework
64-Bit Considerations (Windows)
Makoto Kato ︎︎さんはTwitterを使っています 「macOSのtext replacementの機能ってOS側から適当なタイミングで現在のテキスト情報をアプリにリクエストしてそれ使ってると思ってたのだけど、そうじゃなくて、いちいちアプリがspellchecker呼べってことなの?それって。。。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Windows/TSFのautocorrectってTSFが勝手にやってくれるので (現在のテキスト情報はアプリがTSFに渡しているので勝手にできる)、同じような仕組みでmacOSでもやってるかと思ってたよ。なんだそれ」 / Twitter

Mozilla

Firefoxのナイトリービルド、Text Service Framoeworkにデフォルト対応へ | スラド IT
Masaru Iritaniさんのツイート: "@d_toybox 詳細な情報をいただきありがとうございます!担当者にもお伝えしました。初期調査では TSF に原因が有りそうだという話ですが、いただいた情報も踏まえて引き続き調査を進めます。"
Bug-org 1204519 [TSF] Get rid of the hack for TS_E_NOLAYOUT issue with Google Japanese Input - WebStudio
Windows 版 Nightly が TSF ネイティブサポートへ | Mozilla Developer Street (modest)
Bug-org 848672 [TSF] Redesign focus and IME state handling of nsTextStore - WebStudio
なかのん&マジックさんのツイート: "台湾のIMEのバグ対応でTSFの泥沼にハマってる。TS_E_NOLAYOUTがらみのバグの根元を、いい加減にWindows側とMS製の各国語IMEで修正していただきたい。"
なかのん&マジックさんのツイート: "Google日本語入力がハマってるTSFのロック絡みのバグのために入れてるハックで、他の言語のMS-IMEの動作に合わせられなくなってるっぽくて(まだ完全に確信にいたった訳ではない)頭抱えてる。"
なかのん&マジックさんのツイート: "とりあえず、最近のTSF周りの修正で得られた知見は、なんでか、ネイティブの中国語環境と、日本語環境に中国語のTIPをインストールしたのとでは、動きが全く同じではないという嫌すぎる事だ。"
WindowsのIME API、TSFのTS_E_NOLAYOUT問題とは - WebStudio
Masaru Iritaniさんのツイート: "ご指摘いただきありがとうございます。#WindowsInsiders Skip Ahead (RS5) ビルド 17643 以降では、GetTextExt() が TS_E_NOLAYOUT と E_INVALIDPOS を正しく返すようになりました。ご確認いただけましたら幸いです。… https://t.co/lV94WtXpid"
なかのん&マジックさんのツイート: "おおおおおおおお。ありがとうございます。IMEのデバッグの仕方が分からないので直接テストすることはできませんが、こちらのハックを無効化して、各IMEの挙動がどのようになるのか、テストしてみます。… "
Masaru Iritaniさんのツイート: "ありがとうございます。お恥ずかしながら私個人もまだコード上でしか修正を確認できていないので、実際の挙動として正しい修正になっていない場合はお知らせいただけますと大変助かります。… "
なかのん&マジックさんのツイート: "むむむ。"Skip Ahead is now closed. If you select this option going forward, you will have your Windows Insider Program settings reverted." になっちゃってて、Skip Aheadを選択できなくなっていますね。そのままFastリングに来るのかもしれませんが。… https://t.co/Cbjf3f6iRK"
Masaru Iritaniさんのツイート: "Skip Ahead は人数限定の早い者勝ちですので、早期に設定を変更されていない場合には選べなくなっています。件の修正は Skip Ahead のみ提供(= RS4 には残念ながら入らない)ですので、大変恐れ入りますが Fast リング への RS5 提供開始までお待ちいただきますようお願いいたします。… https://t.co/n97cuIh4UL"
なかのん&マジックさんのツイート: "はい。VMの方をFastリングにして待機しています。また、結果の方をまとめたいと思いますのでお待ちください。… "
Masaru Iritaniさんのツイート: "ありがとうございます!ご面倒をお掛けしますが、宜しくお願いいたします。… "
なかのん&マジックさんのツイート: "大変遅くなりましたが、検証結果です。5時間ぐらいでテストからまとめまで行いましたので雑ではありますが、私の検証した範囲ではJapanist 10以外は非同期レイアウトに対応しているようです。 https://t.co/k9T5ylylTJ… "
Windows 10のビルド 17643で、TS_E_NOLAYOUT問題が解決されたとのことなので検証してみた - WebStudio
なかのん&マジックさんのツイート: "Japanist 10、なんで最後発で一番デキがアレなんだろうっていう謎な結果になってしまった。 / もずはっく日記: Windows 10のビルド 17643で、TS_E_NOLAYOUT問題が解決されたとのことなので検証してみた https://t.co/k9T5ylylTJ"
なかのん&マジックさんのツイート: "Windows自体がバグってる上に、Firefoxぐらいしか非同期レンダリングを行うTSF-awareアプリなんて無いと思うんだけど、なんで各IMEベンダ、非同期でのUIの表示にこうも安定感のある実装できてるんだ??"
なかのん&マジックさんのツイート: "正直、もっとボロボロな結果になると思ってた。"
Masaru Iritaniさんのツイート: "詳細な検証をしていただきありがとうございます!修正が Firefox でも問題無く動作しているようで嬉しいです。Microsoft IME の挙動については担当者に報告いたしました。… "
なかのん&マジックさんのツイート: "macOSのIME周りはundocumentedな事だらけだったり、バグ報告せざるを得ないものを見つけたりと、なかなかにアレでできるだけ関わりたくないな……"
なかのん&マジックさんのツイート: "同じAppleのIMEがWebKitとBlinkで別の挙動を見せてくれたりしてて、本当に嫌過ぎて。"
なかのん&マジックさんのツイート: "TSFとCocoaは、IMEからアプリに情報を問い合わせて、アプリからの結果でIME側が動作を決定するモデルになってるけど、このモデルってIME側にバグがあったり、IME側がアプリ毎に動作を変えてるとアプリ側でバグの修正に詰むんで、これから新しいプラットフォームでは絶対に採用していただきたくない。"
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ChromeのTSFの実装見てると、そのインタフェースならシンプルにやれるんかい、みたいなのを見つけて、うぐぐってなったわ。別にパフォーマンスとかに影響しないから、互換性のためにこのままいくけど(IME側でハックされてたりすると壊れる系)。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「日本でアプリ側のTSF対応に関わった人は何人居てるんだろうか。ふと、疑問に。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「絶対、三桁はいかない気がする。」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「GeckoのOSKのコードが最新のWindowsで全く意味のないコードになってたことをやっと理解した。OSK表示するかどうかはTSFで判断してるのか (無効にするフラグはドキュメントにないけど存在する)」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「従来のOSKをキックするコードは全く動かなくて、UWPのAPIを使わないといけないっぽい。実装してみないとわからないが」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「Windowsのinputmodeの実装、noneは後回しにして、ほかのを直そう」 / Twitter

Text Services Framework - Wikipedia
Text Services Framework - Wikipedia
Project Zero: Down the Rabbit-Hole...
上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「これ要するにMSCTFのプロトコルが腐ってる問題っぽいので問題の影響範囲が大きすぎてすぐには解決しないんじゃないかな… / “XP以降、20年存在していたWindowsの脆弱性をGoogleが発見 - PC Watch” https://t.co/d46WZ3LzqH」 / Twitter
XP以降、20年存在していたWindowsの脆弱性をGoogleが発見 - PC Watch
TSF を使う (2) - tsfapp - NyaRuRuが地球にいたころ
TSF を使う (3) - WPF での UILess Mode - NyaRuRuが地球にいたころ
IMEを使う(Windows: TSF編) - Qiita
TSFに挑戦 - イグトランスの頭の中
TSFに挑戦 (2) 表示属性 - イグトランスの頭の中
kaya: IME開発者向けリンク集
■とある言語の開発記録II / TSFで日本語変換
TSF を使う (1) - Windows Input Method の歴史 -... : Windows 8とWindows 8.1 互換性情報 リンクまとめ - NAVER まとめ
TSF を使う (1) - Windows Input Method の歴史 - NyaRuRuが地球にいたころ
はてなブックマーク - imeとtsfに関するkaorunのブックマーク
Q's Nicolatter 8 [BETA TESTING] | Netsphere Laboratories
藤枝和宏 - ぱんなこった@佐鎮(@kfujieda) - Twilog
C++ - TSFを利用して候補文字一覧を取得する | DIGI-CON 技術部
ui/base/ime/win/tsf_text_store.h - chromium/src - Git at Google
chromium/ime_input.h at master · adobe/chromium
Makoto Kato ︎︎さんのツイート: "MicrosoftがChromiumに移行したおかげで、まぁこのバグを直す方法が公開されたのは、いいこと (前だと上手く行かなかったけど、たぶんWindows側のコードの修正もいろいろ行われているんだろうなと) https://t.co/HbCWlWYSCH"
958054 - TSF1 on windows 10 should use private input scope if we are in "incognito" or "guest" mode - chromium - Monorail
Makoto Kato ︎︎さんはTwitterを使っています: 「ChromeのTSF周りのバグはGoogleのせいじゃなくて、Microsoftせいだしな。ChromeにTSF関連のパッチを投げたのがMicrosoftという意味で」 / Twitter

ショートカット

Windowsのショートカットキー: IMEのショートカット
言語バーのショートカットキー | IME2003 | 初心者のためのOffice講座
Microsoft IMEのショートカットをカスタマイズ | ものものモノローグ★ - 楽天ブログ
MS-IMEの入力モードをキーボードだけで操作したい - MS-IMEの入力モードをキー... - Yahoo!知恵袋
IMEショートカットメニューを表示するショートカットキー−Ctrl+変換キー:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
Microsoft IME スタンダートのキーボードショートカットキー設定 | WEBサービス創造記
Windows で IME をキーボードショートカットキーで切り替えられないとき | すぐに忘れる脳みそのためのメモ
日本語入力変更のショートカットキー−Ctrl+Shift:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
ショートカットキーの活用|情報システム課| 東京経済大学
日本語入力ソフトの切り替えをショートカット操作で行う - 日経トレンディネット
キーボードから操作するショートカットキー
[Windows 10] USキーボードで日本語IMの全角と半角を切り替えるショートカット一覧 - Qiita
日本語変換の効率アップ! ファンクションキーやショートカットキーの活用法 - いまさら聞けないWindows 10のTips - 窓の杜
なかのん&マジックさんのツイート: "Winキー + / で再変換とかわしゃ知らんかったぞ!"
なかのん&マジックさんのツイート: "Winキー + iで設定なのか。"
なかのん&マジックさんのツイート: "PrintScreen系の一覧を確認したかったけど、思わず色々と覚えた(そして、PrintScreen系のショートカットキー一覧が見つからない)"
Windows10で日本語入力の切り替えストレスが減る設定方法 | ライフハッカー[日本版]

窓の杜

次期Windows 10は日本語に関連する変更も盛りだくさん 〜「Insider Preview」Build 17063 - 窓の杜
IMEで変換できない漢字は単語登録を! [Ctrl]+[F7]のショートカットでも登録可能 - いまさら聞けないWindows 10のTips - 窓の杜
IMEで間違って登録された単語が毎回変換候補に表示される! どうやって修正すればいい? - いまさら聞けないWindows 10のTips - 窓の杜
IMEで( ´艸`)こんな顔文字を入力したい - いまさら聞けないWindows 10のTips - 窓の杜
IMEの変換モード切り替えで画面中央に“あ”とか“A”とか表示されるのが邪魔! - いまさら聞けないWindows 10のTips - 窓の杜
「Windows 10 Creators Update」では日本語入力も改善 ~Microsoftが強化点を案内 - 窓の杜
1文字目は早すぎる! IMEの予測候補は3文字目くらいからでOK - いまさら聞けないWindows 10のTips - 窓の杜
英語の会社名や製品名をIMEで自動的に半角英数へ変換したい! ~小文字から始まる英字をすばやく入力する方法 - いまさら聞けないWindows 10のTips - 窓の杜
文字入力のユーザー辞書をバックアップしておきたい! - いまさら聞けないWindows 10のTips - 窓の杜
辞書にない最新フレーズを入力したい! クラウド候補を活用する - いまさら聞けないWindows 10のTips - 窓の杜
日本語変換の効率アップ! ファンクションキーやショートカットキーの活用法 - 窓の杜
なかのん&マジックさんのツイート: "FirefoxやThunderbird共に一時期のトップクラッシュはこの辺だったし、なかなかに設計に問題抱えてる感じなんかな。 https://t.co/pg0iAQRrts"
Windows 10環境で日本語入力中に「Microsoft Office」がクラッシュする不具合 - 窓の杜
「Windows 10 RS5」に機械学習のタイピング支援、フォントのユーザーインストールも可能に - 窓の杜
「Windows 10 19H1」Build 18242がリリース ~日本語IMEに新しい要素を投入か - 窓の杜
「Windows 10 19H1」では日本語入力システムの改善も - 窓の杜
“(╯°□°)╯(┻┻”も簡単に入力 ~「Windows 10 19H1」の絵文字パネルは日本の“Kaomoji”をサポート - 窓の杜
新しいIMEがフィードバックを反映させて復活 ~「Windows 10 19H1」Build 18305 - 窓の杜
新設計の日本語IMEが利用可能に ~「Windows 10 20H1」Build 18875が“Fast”リングに - 窓の杜
「Windows 10 20H1」Build 18941が“Fast”リングに ~日中に続き韓国語IMEも近代化 - 窓の杜
新設計の日本語IMEをさらに改善 ~「Windows 10 20H1」Build 18950が“Fast”リングに - 窓の杜
Windows 10の日本語IMEに大きな改善が目白押し ~Macっぽい入力モードの切り替えも可能に - 窓の杜

PC Watch

Windows 10プレビュー版IMEが改良。Backspaceの使い方で予測変換がより賢く ~変換状態からのキーワードWeb検索もサポート - PC Watch
Windows 10プレビュー版は日本語フリック入力対応。さらにAIがネコを認識 - PC Watch
次期Windows 10に女子高生AI「りんな」がIMEとして実装 - PC Watch
Windows 10 RS5、ソフトウェアキーボードがAIで賢く。スペル修正や予測入力可能に - PC Watch
次期Windows 10で日本語IMEが刷新へ - PC Watch
Windows 10プレビュー版、タッチキーボードにキー幅の自動調整機能 ~次に押されるキーを推測して入力ミスを軽減 - PC Watch
【山田祥平のRe:config.sys】Ctrl+スペースで行こう - PC Watch
Windows 10プレビュー版に新しい日本語IME。安定性やゲーム互換性などが向上 - PC Watch
Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
Windows 10プレビュー版、日本語IMEのキー割り当てが「設定」画面で可能に - PC Watch
変換/無変換キーが消えた「Surface Laptop Go」。Mac仕様のIMEオン/オフで便利に ~日本マイクロソフトが13日発売のSurface Pro Xとともに特色を紹介 - PC Watch
Windows 10 October 2020 Updateでも日本語IME周りの不具合が継続? Microsoftが回避策を提示 - PC Watch

NyaRuRuが地球にいたころ

Windows の IME を変換エンジンとして使う - NyaRuRuが地球にいたころ
辞書が壊れない仮名漢字変換エンジンの作者を雇うのは案外に難しいのかもしれない,という話 - NyaRuRuが地球にいたころ
信頼できる書き込み・読み込み - NyaRuRuが地球にいたころ
HTML5 Forms の type 指定がデスクトップ IMEに影響するという話 - NyaRuRuが地球にいたころ
Windows 10 Insider Preview Build 14332 実験ノート: ブラウザと IME のプライベートモード連携 - NyaRuRuが地球にいたころ
Metro スタイルアプリケーションと IME - NyaRuRuが地球にいたころ
保護モードと IME - NyaRuRuが地球にいたころ
あなたが漢字変換候補を覗き込むとき,Google もまた選択された候補を覗いている - NyaRuRuが地球にいたころ
数式入力パネルとアプリケーションを連携させる 2 つの方法 - NyaRuRuが地球にいたころ
チューニングと過学習 - NyaRuRuが地球にいたころ
「開発の主体」って何だろう? - NyaRuRuが地球にいたころ
2012年やったこと - Chromium 編 - NyaRuRuが地球にいたころ
2013年やったこと - Chromium 編 - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (0) - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (1) - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (2) - NyaRuRuが地球にいたころ
Windows ゲーム環境と日本語入力 (3) - NyaRuRuが地球にいたころ
Windows Vista における IMM32 API / Message の変更と互換性に関する影響 - NyaRuRuが地球にいたころ
Windows Vista IMM32 関係まとめ - NyaRuRuが地球にいたころ

Twitter

Yutaka Hirataさんのツイート: "日本語入力をオンにした状態でスペースキーを打つと、空白が全角で入りますが、SHIFTキーを押しながらスペースキーを打つと、空白が半角になります。いちいち、日本語入力をオフにしなくてもよいのでおすすめです。ATOKとMicrosoft IMEのいずれでも使える技です。 https://t.co/F89tt5gtOC"
takimuraさんのツイート: "IMEが原因でVivaldi落ちたっぽい… "
なかのん&マジックさんのツイート: "WindowsではIMEはアプリ内部にロードされて動くんで、IMEがクラッシュした場合も苦情がアプリに行くの、結構不条理。"
なかのん&マジックさんのツイート: "昔、OS XでIMEの機能を呼び出して、そのリアクション中に同じ機能を呼び出すとIMEのプロセスがクラッシュするというバグを見つけたけど、そうするとOSを再起動するまでIMEがどのアプリでも使えなくなってた。そういう意味ではWindowsのやり方の方が正しいって気もする。"
なかのん&マジックさんのツイート: "@inasoft_ayacy バグの内容的にも、タイミング的にも、 https://t.co/4Po30xSJhp っぽいです。Creators UpdateのMS-IMEにはちょっとヤバいクラッシュバグがあったので、その可能性を減らせないか試すために、MS-IMEがアクティブな間はIMCを無効化していました"
なかのん&マジックさんのツイート: "むう。Win10 RS4に入る英語キーボードの単語のsuggest機能、Firefoxだと、候補の表示と操作まではうまくいくんだけど、最後の確定時にキャレット位置に挿入されるだけになっちゃうな。 #もずでぶ"
なかのん&マジックさんのツイート: "Windowsをタブレットモードで初めて使ってるけど、日本語入力ひどいな。何でローマ字入力なの。ローマ字入力とかかな入力とか気にしなくて良いはずのデバイスなのに。"
なかのん&マジックさんのツイート: "いやATOKじゃなくてMS-IMEなら多少ましか。でも、正直使えるレベルじゃないな。"
✨私がういにゃんだ✨さんのツイート: "DJやすんでる間にTraktorが日本語検索できるようになってた・・・・・・・・・・・・・! 2.6.7 -> 2.11.2をキメた… "
なかのん&マジックさんのツイート: "macOS版とWindows版とあるみたいだから、macOS版の話なのかな。Windowsって、基本的にはIMEに「わざわざ」対応しなくても、IMEが「とりあえず」使えるアプリが作れてしまうっていうのが未だに他のOSにも真似できていなくて凄い。というか、あんな互換性の鬼、そうはいない。"
なかのん&マジックさんのツイート: "Nightlyユーザでも結構、ATOK 2011とか、MS Office IME 2007とか相当古いサードパーティーのIMEを使ってるもんなんだなぁ。あと思ってたよりもMS-IMEユーザが多い。"
なかのん&マジックさんのツイート: "Windows 10 October 2018 Updateで修正されたTS_E_NOLAYOUT周りの最終確認と、Nightlyの現状への最適化もやらないといけなんだけど時間が……"
Masaru Iritaniさんのツイート: "これ、新しい #msimejp で一番お気に入りの機能です。これまでもキー設定を頑張れば実現可能ではありましたが、スイッチ一つで簡単に設定できるようになりました。 #WindowsInsiders… "
Masatoさんのツイート: "あれ、以前のIMEこんな設定項目あったっけ 使い心地を試してみよう (build 18277)… "
渋川よしきさんのツイート: "うおーーーー!IME周りの実践的なコードが読み放題だ!WinFormsのOSS最高!MSDNでもVista時代に作られたサンプルとか削除されて古い形式のAPIしかネットに詳しい情報がなかったりしたのでこれは良い。 https://t.co/Y0ByT6KH4n"
藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "WinFormsのソースなんてreference sourceで前から読み放題だったのだが… https://t.co/3xwjodWZLv"
Reference Source
2018年12月5日 Microsoft,「Windows Forms」などのUIフレームワークをオープンソースに,「.NET Core 3.0」プレビュー版も:Linux Daily Topics|gihyo.jp … 技術評論社
米Microsoft、WPFおよびWinForms、WinUIをオープンソース化 | OSDN Magazine
なかのん&マジックさんのツイート: "@msdmairitan お久しぶりです。検証のために今環境を整えている最中ですが、TSF and/or MS-IMEの動作が変わってしまっているようです (https://t.co/quWVy94EZa)。ITfKeystrokeMgr::KeyDown()がasync処理になったか、pfEatenがFALSEを返すようになったかのどちらかかなと睨んでます。とりいそぎ。"
なかのん&マジックさんのツイート: "分かりました。値がおかしくなるの自体はGeckoのバグなのですが、動作が変わってしまった原因はImmGetVirtualKey()の挙動が変わっているようです。1809ではTSF/TIPがRequestLock()を呼び出している間はVK_PROCESSを返しますが、19H1では生のVKを返してくるようです。意図的な変更でなければご注意を。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "現在のForegroundAppのIME on/offを知るには、GlobalHook + IMM系API発行しかないのかしらん?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIX系だとIM系のツールバーがカーソルそばにあるから、現在のIME status 把握のために、タスク通知領域を見る、みたいな視線移動が不要と。"
なかのん&マジックさんのツイート: "あー、MS-IMEのInputScopeのアレか。"
江永島子さんのツイート: "やっぱchromeで新しいタブ開いて検索窓に入力しようとすると 勝手に半角になってしまう。 前はこうじゃなかったような。"
yasu0796さんのツイート: "Chrome 75 において手元の環境でも再現することを確認しました。 私の方からも不具合を報告しました。 #gHelp… "
マイクロソフトサポートさんはTwitterを使っています: 「#Windows10 の MicrosoftIMEで誤った変換をしてしまい、予測候補に毎回出てくるようになってしまった...。 そんな時は変換候補画面で消したい候補を選びCtrl+Deleteキーを押せば削除できます。 #MSHelpsJP https://t.co/zil7INxmsH」 / Twitter
島鉄雄さんはTwitterを使っています: 「なんと!これは助かる! &gt; できたこと &gt; WM_IME_ 及びその他のウィンドウメッセージを収奪 これが出来るのか…後でソースを解析しよう。」 / Twitter
(1) 精廬 幹人さんはTwitterを使っています: 「WindowsのEmacsにIME patchを当てるのが超面倒臭くてdynamic moduleで作った後、26.1のcc-modeが激遅で27.0.50に上げて10ヶ月masterに追従させたセルフテストでノーSEGVでした事をご報告します。 https://t.co/e1UjycJEAB」 / Twitter
maildrop/w32-imeadv: IMM32 dynamic module for Emacs on Windows
精廬 幹人さんはTwitterを使っています: 「毎回パッチのコンフリクト解決するの嫌なの なお、dllの暗黙的依存関係の解決も超めんどくさかったのでスクリプトもございます。 https://t.co/j9YVaip1gH」 / Twitter
maildrop/emacs_dependency_resolver: emacs dependency resolver
Makoto Kato ︎︎さんはTwitterを使っています 「Windows 10 21H2のソフトウェアキーボード、Android 10以降と同じように画像ファイルを入力できる機能が付いてるんだけど、drag&amp;dropぽい動きで挿入されるからEdgeだとページ推移になって笑った」 / Twitter

文字入力で「イラっ」とする6つの問題とその解消法(1/2) - FMVサポート : 富士通
「ローマ字入力」と「かな入力」を切り替える|パソコン|サポート・お問い合わせ:シャープ
日本語入力のOn/Off切り替えキーを変更する:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
Microsoft Windows 7 - 入力言語の切り替えを行うキーを変更する方法 | HP®カスタマーサポート
日本語入力の切り替えはトグルじゃダメ、の件 - DTP Transit
ASCII.jp:Windows 10の日本語入力は使いにくい?|ズバッと解決! Windows 10探偵団
IMEを無効にすることとスクリーンキーボード - イグトランスの頭の中
MS-IMEとHTML5のinput[type=xxx] - Qiita
Gecko1.8相当製品において修正したバグ - WebStudio
IMEを制御する方法
IMEがおばかと諦めてませんか? - Windows 2000 Blog
Windows 10のIME、郵便番号辞書の更新はどうなっている?:山市良のうぃんどうず日記(142) - @IT
[半角/全角]キー不要に? WindowsのIME切り替えがMac方式に - ITmedia NEWS
なかのん&マジックさんのツイート: "トグル形式って頭の中で全ての状態を管理できていることが前提になるんで、ime-mode: active;とかで簡単に問題が出てくるんだよな。なので、どっちかのモードへの切り替えボタンが独立して存在するのがUI的にはすごく正しい。"
なかのん&マジックさんのツイート: "半角/全角キーとか、カタカナ/ひらがなキーとか、Windowsネイティブイベントのカオスっぷりを知っていると、この辺どうにか綺麗になっていただきたい(たぶん互換性維持のためにしないとは思うけど)。"
なかのん&マジックさんのツイート: "一応、各OSでのIME関連キーのKeyboardEvent.keyのマッピングはこんな感じ。ややこしいことこの上ない。 https://t.co/B3MWD5BBxx #もずでぶ"
NativeKeyToDOMKeyName.h - mozsearch
なかのん&マジックさんのツイート: "そもそも今のJISキーボードの日本語入力キーって、一体何にあわせて設計された結果なんだろう。どの現在のIMEもラベルの通りの機能をデフォルト設定にはしていないよね。"
1549394 - Potential privacy leak from Win10 keyboard autocomplete of data entered in Private Browsing
Makoto Kato ︎︎さんはTwitterを使っています: 「GtkInputHintsとか見てもIMEで履歴を学習しないモードのための値がなさげなので、とりあえずリクエストした https://t.co/owjFCZmFzY」 / Twitter
RFC: Add new enum value for privte mode (not learn personal information for input method) to GtkInputHints (#2261) · Issues · GNOME / gtk · GitLab
Windows 10のアラビア語のキー配列 - 七誌の開発日記
won't fix: IS_PRIVATE on Windows 10 20H1
Windows 10 20H2にアップデートしたら、Microsoft IMEが消せなくなったので解決してみた | しょぼんブログ

増井俊之

略歴 / CV - 増井俊之
masui (Toshiyuki Masui)
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「なんでみんなIMEを自作しないの?」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「MacのIMEだってChromeOSのIMEだって500行ぐらいで作れるのに。ソースも辞書も公開してるから真似してほしい...」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「キーボードは自作するのにIMEは自作しないというのはヘンだろう」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「私のGitHubにはソースがいろいろ置いてある。辞書はScrapboxで公開してる。 https://t.co/hiDUxbFd26」 / Twitter
Gictionary
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「私が使ってるアルゴリズムはこういう感じ。何年もこれで生活してるし、このテキストもこれで書いている。 https://t.co/JVvFg37zx3」 / Twitter
接続辞書と日本語入力 - 増井俊之
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「何度も言うけど、普通のMacアプリケーションのinfo.plistを書き換えてMacのIMEにすることができる。ChromeOSの場合はChrome拡張機能でIMEを作ることができる。いずれにしてもとても簡単なので試してみて損は無い。」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「昔はMacのIMEを作るのは超大変だったと思うのだけど、IMKitというライブラリが出てから簡単になって、それをRubyで使えるようになって超簡単になった。それをずっと使ってたのだけど、サポートが無くなったので困ってるのであった... RubyでなくてもIMKitが使えるスクリプト言語があればいいんだけど。」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「Catalina時代のらくらくIME作成法、みたいなのがわかればそれで満足かも」 / Twitter
𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「もう一度言っておくと、MacでもChromeOSでも私は自作の500行IMEでずっと暮らしており、それで全然問題はありません。連文節変換なんて要らなかったんや!」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「変な挙動のIME増えると死ねる……特にCocoaとTSF。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Android APIは知らないけど、CocoaとTSFでは、アプリとIMEが共に、同じアプリ内の別のコンポーネント同士かのように動くので、どちらかが他の製品と極端に違った動作をすると、ハックを入れないといけなくなり、その原因を修正すると、そのハックが今度は邪魔になってバグったり。」 / Twitter
なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「なのでAPIのドキュメントで非常に細かく「どうあるべきか」を定義しておいて欲しいんだけど、特にCocoaの方はその辺が全くドキュメント化されてないと良いレベルで。」 / Twitter
予測入力の弊害 - 増井俊之
曖昧検索asearch - 増井俊之

SKK

まちカドおるみんさんはTwitterを使っています 「形態素解析しないし辞書から愚直に単語を自分で選ぶだけだから変換精度などというものは SKK にないのでは。仮に悪かったとしたら辞書から適切な変換を選べなかった/あるいは適切な送り仮名挿入ができなかった入力者に帰結する問題ではなかろうか」 / Twitter
まちカドおるみんさんはTwitterを使っています 「私は「mozc で z と他のキーを複合させて記号を短縮入力できるのは SKK などに先にある機能だと知ってしまった?じゃあ SKK も使うしかないよね」という謎理論を真に受けて爾来 SKK ユーザーです。@tadsan って人のせいです。」 / Twitter
にゃんだーすわんさんはTwitterを使っています 「@atpons もともとはオムロンのWnnが由来でegg(tamago)経由でEmacsに入ってSKKに実装されてWindowsに持ち込まれたあとSKKIMEの作者がGoogle日本語入力に実装してmozcになったのではないかと臆測しています。」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@atpons @tadsan Canna とかで .canna に Lisp 書いて同等機能を実現する例なども当時あったようなので、わりと当時良く知られていた key combo っぽそう」 / Twitter
スマートコンさんはTwitterを使っています 「z で記号変換できるのめっちゃ便利だし、変換しないひらがなはそのまんまダーっと入力できるので思考に近い速さで日本語が打てるので SKK 以外無理(漢字直接入力は帰って」 / Twitter
まちカドおるみんさんはTwitterを使っています 「あと再帰的かつ on-the-fly の辞書登録、/ 入力での abbrev 変換モードが楽すぎて好き。abbrev 変換で abbrev や英単語をカタカナ音写に変換する本来の用法より、アクセント記号やキリル文字、ギリシャ文字とかをラテン文字から変換するのに使うほうが多いけれど。」 / Twitter
Kazuo MoriwakaさんはTwitterを使っています 「@kotatsu_mi 現状のSKKからUIをおおきく変えない範囲でできそうな工夫を考えてみると「訪問先からの"きしゃ"」みたいなときに手前の文脈から"きしゃ"の変換候補の並び順を変えるとかはできるかもしれない」 / Twitter
まちカドおるみんさんはTwitterを使っています 「@moriwaka 最近の SKK 実装だと豫測変換機能を入れ込んでたりもします」 / Twitter
Kazuo MoriwakaさんはTwitterを使っています 「@kotatsu_mi おお、そうなんですね!」 / Twitter
まちカドおるみんさんはTwitterを使っています 「original や DDSKK はほぼ使ったことがないのだけれど、skk.vim には何度か救われた」 / Twitter
高精度に漢字変換できるSKK辞書を作った(四角号碼、正假名) | κeenのHappy Hacκing Blog

GIGAZINE

Googleの新たな自然言語処理モデル「ALBERT」はどのように進化したのか? - GIGAZINE
「AI関連ソフトウェアの輸出に制限をかける」とアメリカ政府が発表 - GIGAZINE
無料で機械学習やデータ処理の流れを簡単に可視化してくれるワークフローツール「Flyte」を触ってみた - GIGAZINE
実際のところ「AIが表情から感情を読み取る」ことは可能なのか? - GIGAZINE
AIが人間の表情から感情を読み取る「感情検出技術」はなぜ危険視されているのか? - GIGAZINE
Googleの新たな自然言語処理AI「T5」の特徴とは?実際にAIとクイズで対決も可能 - GIGAZINE
ローマ教皇がMicrosoftやIBMと共同で発表した「AIの倫理に関する呼びかけ」とは? - GIGAZINE
「差別をAIに植え付ける」としてMIT研究者らが大規模なデータセットをネットから完全削除 - GIGAZINE
Googleが「知らない言語」も翻訳処理ができてしまう言語モデル「LaBSE」を発表 - GIGAZINE
ゲームパッドからのテキスト入力を最適化する手順をエンジニアが公開 - GIGAZINE
Microsoftの量子コンピューター構築のカギだった「マヨラナ粒子」を観測したという論文が撤回される - GIGAZINE
量子コンピューターに関する論文が続々と撤回されている理由を「マヨラナ粒子」の研究者が解説 - GIGAZINE
2000種類以上ものアフリカの諸言語を機械翻訳可能にするオープンソースプロジェクト「Masakhane」 - GIGAZINE
AIがリスクとコストを事前に考慮して強化学習を行うためのツール群「Safety Gym」をOpenAIが発表 - GIGAZINE

infoQ

Agile Igniteを使用した継続的ディープラーニング - Denis Magda氏の講演より
説明可能なAIに関する調査結果を研究者チームが発表

GitHub

hiroshi-manabe/ngram-converter-cpp: Kana-Kanji (and vice versa) converter using N-gram data (C++ version, dictionary data included)
tmu-nlp/simple-jppdb: A paraphrase database for Japanese text simplification
日本声優統計学会
libhangulに韓国の人名用漢字をほぼ全面追加 | yasuokaの日記 | スラド
choehwanjin/libhangul: libhangul
WorksApplications/Sudachi
zhezhaoa/ngram2vec
deton/tsf-tutcode: Kanji Direct IME for Windows
uim-tutcodeで後置型かな漢字変換(連続するひらがなを対象に最長一致)
Shiki Okasakaさんのツイート: "tsf-tutcodeをローマ字入力やかな入力用につかってみると、 ・ひらがなを直接入力できるというは能率がよい、 ・後置型変換で最長一致のときは、まぜがきではなくて、直前のひらがなの部分に限定したい、 ・従来のIMEから後置型変換への移行は別にむずかしくない、 といった感想。"
Shiki Okasakaさんのツイート: "tsf-tutcodeがおもしろいのは、 『しろうとむけワープロの登場を期待したいですね。』 と、梅棹さんのようにかきたいときに、ふつうのIMEだと、 『素人向けワープロの登場を期待したいですね。』 になりがち。それが、 https://t.co/nqprBgjY22"
不一致シーケンスが後置型変換開始キーで確定された時に変換対象外になるバグ修正 · deton/tsf-tutcode@32301e8
esrille/ibus-replace-with-kanji: Replace with Kanji Japanese input method for IBus
Shiki Okasakaさんのツイート: "EDICT2ファイルからibus-replace-with-kanji用のカタカナ辞書を生成して、ひらがなからカタカナ語に置換変換できるようにしました。 https://t.co/TB0Y23oQ5U"
Shiki Okasakaさんのツイート: "ibus-replace-with-kanjiでは、辞書ツールもSKK辞書からrestrained.dicを生成するように書きなおしました。 https://t.co/PBA3Y1etnq"
Shiki Okasakaさんのツイート: "ibus-replace-with-kanjiで和語の用言も必要であれば漢字で入力できるようにしました。※ 和語は「かな書き」を好む傾向とのことで、常用漢字表内でも弄ぶ・遡る等は「ひらがな優先」いうのが『NHK漢字表記辞典』流。 https://t.co/rmpclFO57r"
yoriyukiさんのツイート: "Pythonで書かれたオープンソースかな漢字変換エンジン「中山道」をリリースしました。普通に統計的言語モデルを使っています。ソースは辞書がついてこないので、バイナリをダウンロードしてください。 https://t.co/lAP330vJe2"
Release Version 0.1.0 (鴻巣) · yoriyuki/nksnd
Shiki OkasakaさんはTwitterを使っています: 「「ひらがなIME」のウェブページをつくりました。総ルビ。原稿は、「ひらがなIME」と「ふりがなパッド」をつかって、総ルビのマークダウンでかいています。それをPythonでHTMLにかきかえています。リポジトリには、原稿やスクリプトごとおいてあります。 https://t.co/Wbq8IlwloO」 / Twitter
はじめに ― ひらがなIME
Shiki OkasakaさんはTwitterを使っています: 「「ふりがなパッド」v0.1.0 をリリースしました。  Fedora、Ubuntu、Raspbian用のソフトウェア パッケージを用意しました。「日本語 漢字置換インプット メソッド for IBus」v0.6.0とくみあわせて利用してください。 https://t.co/NmPoD1HSY6 https://t.co/zeJFxBpbiA」 / Twitter
Release furiganapad-0.1.0 · esrille/furiganapad
Shiki OkasakaさんはTwitterを使っています: 「ふりがなをふった漢字のおわりまでカーソルを移動して、CTRL-Tをおすと、ひらがなにもどせます。そこで変換キーをおせば、またいつでも漢字に変換できます。」 / Twitter

Wikipedia

形態素解析 - Wikipedia
POBox - Wikipedia
日本語入力システム - Wikipedia
修飾キー - Wikipedia
フリック入力 - Wikipedia
トライ木 - Wikipedia
オンライン整数列大辞典 - Wikipedia
ロジバン - Wikipedia
Lojban - Wikipedia
湯桶読み - Wikipedia
重箱読み - Wikipedia
Control key - Wikipedia
コントロールキー - Wikipedia

Qiita

glfwマルチプラットフォームでのIME対応の困りごとまとめ - Qiita
マルチプラットフォームでIME対応させたいメモ - Qiita
ニューラルかな漢字変換 - Qiita
未踏の応募資料を公開します 【統計的かな漢字変換】 - Qiita
理工系俗語辞典 - Qiita
Windowsのvimで挿入モードのIMEをデフォルトオフにする - Qiita

Twitter

@d_toybox

金具 as a 産廃さんのツイート: "IME周りはどうやら闇が深すぎて、普通に対応するだけでアプリ側が細工しまくりなイメージがすっかり刷り込まれてしまったので、ユーザが別の細工を入れたらうまく動作する方がおかしいくらいかもしれないな。"
道化師さんのツイート: "Chrome だけ、 IME 絡みの細工がうまく動作しないからその対策してたら Chrome 本体の挙動がおかしくなった。 Chrome さん、 IME 周りのハンドリングがアホっぽい。"
一ノ瀬 いろはさんのツイート: "IME 周りってかなりの闇という印象。 IME 側もアプリ側も。"
なかのん&マジックさんのツイート: "だって、GeckoのIME周りの実装の面倒見て、10年以上給料貰えるぐらいですから。"
なかのん&マジックさんのツイート: "いぐざくとりぃ…… https://t.co/kkghv2DgrK"
金具 as a 産廃さんのツイート: "なんとなくTL眺めてる限りでは、それぞれの"失敗"に対してIME側がそれぞれ異なるアプローチで修正をしかけていて、それらに対して更に対応を強いられるようなことがあるらしいようなイメージがある。"
道化師さんのツイート: "IME周りって別にそんな闇々してないと思うんだけどなぁ。単に IME ?なにそれ?極東の連中はそんな面倒臭いモノ使ってテキスト入力してんの?って感じのIMEに対する理解が薄い連中が絡んで失敗やらかしてるだけなんじゃないの?"
なかのん&マジックさんのツイート: "それ、日本人がメンテしてても日本以外のIMEユーザにそう思われてると思うよ。"
⚓そうだな㌠⚓さんのツイート: "MS-IMEとATOK、GoogleIMEの各バージョン毎の動きの違いとか全然違ったりするからIMEは大変だと思う。(古いIMEだとTSFではなくIMMで実装されててWindows8.1以降Firefoxでクラッシュするとか)"
なかのん&マジックさんのツイート: "TSFになってから、一回、エラーを返すとヘソを曲げてTIP (IME)が動かなくなるとか多々あってですね。色々とやってるんですわ、色々と。"
なかのん&マジックさんのツイート: "読むとタノシイヨ? / TSFTextStore.cpp - mozsearch https://t.co/EEGhlUyv29"
なかのん&マジックさんのツイート: "この上にまだ、e10sでcontent process側での非同期更新をTSFTextStoreから隠蔽してるクラスが居たりするからね?"
なかのん&マジックさんのツイート: "ちなみに、こんだけ実装が大きくなってても、WinXPでは全然まともに動かなかったからね……"
なかのん&マジックさんのツイート: "特に、Natural Input、てめぇだ。"
なかのん&マジックさんのツイート: "@cobodo あ、そういえばここの、"However, this is fixed on Win 10."っての、当時のプレリリース版では修正されていたっぽいものの、現存しているはず。"

histric-1

なかのん DAYS''さんはTwitterを使っています: "ちなみに、GeckoはIMEからたとえ意図的にASCIIのコントロール文字が未確定文字列に混入してても、これを無視して(無いものとして)処理するようになっています。"
なかのん DAYS''さんはTwitterを使っています: "そもそもWindowsだとCtrl+AltはAltGrなのでショートカットキーとして使っちゃいけないんだけど……"
なかのん DAYS''さんはTwitterを使っています: "ハングルのキーボードだけは、さらにBackspaceの隣のキーを押させないと分からないけど、OS Xがハングルのキーボードをサポートしてるかは怪しい。Mac用のハングルキーボード探したけど、少なくとも当時は存在していないっぽかった。"
なかのん DAYS''さんはTwitterを使っています: "Mac OS XのApple純正キーボード以外を接続した時にShiftキーの横のキーを押せっていうダイアログ、上手いよね。KeyboardEvent.codeの仕様書見ると分かる。 https://t.co/kqtd8O8M4w"
なかのん DAYS''さんのツイート: "入力した文字数でしかサジェストしてこない予測変換はその価値を見いだせない……"
なかのん DAYS''さんのツイート: "OS Xの欧米のキーボードレイアウトでキー長押しにした時に出るアクセント記号付き文字の候補の入力、内部のイベントの生成が実にひどくて涙出る……こういうデザインがAppleは相変わらず下手だよなぁ……"
なかのん DAYS''さんのツイート: "他のOSならIME非対応アプリならIMEをそもそもオンにできなかったり、未確定文字が表示されなかったり、確定しても何も入力されなかったりするのが当たり前だけど、WindowsはIME側で未確定文字列表示したり、確定文字列をキーによる入力にまでフォールバックしてくれる。"
なかのん DAYS''さんのツイート: "Windowsのキー入力とIMMのイベントモデル考えた人、本当に凄いと思う。後からIMEに対応したんだと思うけど、キー入力イベントとの整合性や、それへのフォールバック、さらにIMEイベントの処理のしやすさと、これらのバランスが最高。"
なかのん DAYS''さんのツイート: "積極的に使ってなくても恩恵受けてる可能性はあるよ。ブラウザとか未確定文字列を自前描画するアプリはフォーカス移動で確定が普通だけど、これはIMEでテストでちゃんとテストされていないアプリで意図しない確定の原因担ってる。 https://t.co/oSbDYx3ZyK"
なかのん DAYS''さんのツイート: "ちなみに、3の時点でBackspaceキー使ってもOKで、コツをつかむと、かなり効率よく辞書登録できて、同じ単語の入力で何度も面倒な入力しなくて済む。"
なかのん DAYS''さんのツイート: "ATOKに、変換しようとしたけど辞書に無かったって事実を分からせる、最後の文字の確定をうまく知らせる、ここがポイント。難しそうに聞こえるけど、慣れると簡単にできたりする。よく使う当て字の登録とかに便利。"
なかのん DAYS''さんのツイート: "くそっ。右Altキーが無いからハングルのTIPでオン・オフ切り替えできないことに今頃気付いた。本当に右Altを削除するという判断した日本人は他言語の入力に対して無知すぎないか? キーボードという言語入力のためのハードの設計者なのに。"
なかのん DAYS''さんのツイート: "ちなみにTSF実装で、Korean TIPはMS謹製のものでも、かなり変な挙動してくれるので鬱陶しい。サードパーティー製のものはやはり、互換性のためにこれに合わせてるっぽくで地獄絵図。"
なかのん DAYS''さんのツイート: "ATOKさんには有名なヨーロッパ、南米のサッカー選手の名前ぐらいは辞書に入れてもらいたく……あまりにカタカナで書く外国人名に弱いのが難点。"
なかのん DAYS''さんはTwitterを使っています: "ちなみに、Geckoはかなり前から、キー操作にしろホイール操作にしろ、ページ単位でスクロールする場合には1ページ分より少しだけ少ない量しかスクロールしない。そうしないと特にリストボックスのようなUIでは分かり難いから。"
なかのん DAYS''さんのツイート: "未確定文字列を見られる可能性をどうしようってのがやっぱあって……あと、自動学習しちゃわないといけないんだけど、その辺も色々と…… https://t.co/NuACAoEAR5"
なかのん DAYS''さんのツイート: "テキスト入力の抽象化にはこの方が良いのは分かるんだけど、キーイベントの後に文字入力イベントが保証されてる訳じゃないんでこの辺がバグの温床になってるなぁ、昔から。"
なかのん DAYS''さんのツイート: "ChromeのKeyboardEvent.key、printableキーはそこそこ正しいんだけど、non-printableキーに関しては、ただのKeyboardEvent.codeと値が違うだけの挙動なんだよな。仮想キーコードからじゃなくて、scancodeからマッピングしてる"

histric-2

Rockridgeさんのツイート: "Fx52:Android版のIME処理をJava側と非同期化し、パフォーマンスを向上させつつマルチプロセス機能(e10s)との互換性も確保した。 / “1307816 – Make IME asynchronous on the…” https://t.co/Cua1Zwgp4b"
なかのんクエストさんのツイート: "Firefoxは2.0まで、IMEやキーボードレイアウトの状態制御が出来なかったんで、3.0から各プラットフォームのネイティブのパスワードフィールドの挙動に合わせる際に、入力不能なパスワード使ってたユーザへの配慮として、CSSのime-modeで挙動を戻せるようにしておいた。"
なかのんクエストさんのツイート: "macOSはASCII-Capableなキーボードレイアウトに絞るように開発者向けの資料で指示があるけど、逆に言うなら、ASCII-Capableなレイアウトで入力できる非ASCII文字は使える。ユーロ記号とか。"
なかのんクエストさんのツイート: "Windowsは確か、デッドキーは利用不能だけど、非IMEなキーボードレイアウトは利用可能。LinuxはテーブルベースのIMEは利用可能なので、デッドキーは利用可能。非IMEなレイアウトは何でもOKだけど、そもそも、アプリがそれを判断出来ない、指定出来ないぐらいのAPIだったり。"
Rockridgeさんのツイート: "Windows版Firefoxにおける、保護モードで動作するFlash PlayerのプロセスとIMEとの関係について。2013年7月の記事だが、その後Firefoxに加えられた修正を理解するための基礎知識を提供してくれる。 https://t.co/DEx4sWJG8a"
Flash PlayerのIME問題のおさらい - WebStudio
なかのんクエストさんのツイート: "最近、IMEにいい加減にどうにかしてって思うのは、(特に単漢変換の時に)候補を追加入力で絞り込めないことだな。例えば部首とかで絞り込めたら膨大な候補の大半を捨てられるのに。"
なかのんクエストさんのツイート: "自動学習がおかしな事にならないように、できるだけ本来の読みから文節区切って確定していきたい。"
なかのんクエストさんのツイート: "基本的にはどのIMEフレームワークもマルチプロセスなりマルチスレッドなりで、エディタに遅延書き込みが発生することが想定されていなかったりとかしたりするぐらいです(Androidは、 @NyaRuRu さんががんばって非同期なアプリでも大丈夫な形とか聞いたけどまだ見ていない)。"
なかのんクエストさんのツイート: "そろそろ標準仕様側で決着ついてる、IME利用時のKeybordEventの発火処理の標準仕様準拠化作業もやりたいな。あれは結局、Firefoxの挙動にメリットも多いけど、他のブラウザ間が互換あるんで影響のでかさからFirefox側の動作を変えてという話にorz"
なかのんクエストさんのツイート: "Firefoxの動作が、というより、Netscape時代からの動作なんだけどね。"
なかのんクエストさんのツイート: "内部処理は一年以上前から設計変更時に、あわせて準備してたんだけど、TSFモードが完全に非対応なんでその辺をガッツリ書かないといけない。"
なかのんクエストさんのツイート: "IMEの未確定文字列がある時にkeydownイベントやkeyupイベントを発火する最大のデメリットって、これらのイベントの本当の意味を理解していない開発者にアクセシブルじゃないサイトを作ることを許してしまうってところなんだよね。"
なかのんクエストさんのツイート: "keydownとkeyupイベントは仕様でも定義してるけど、物理的にキーが押された、もしくはそれがエミュレートされたというイベント。つまり、文字が入力されたというイベントじゃ*無い*。"
なかのんクエストさんのツイート: "なので、inputイベントの代わりにkeydownやkeyupイベントをハンドリングされていると、音声入力や手書き入力のようにキー入力と関係ない文字入力時に正しくハンドリングできず、マイナーな環境が切り捨てられる可能性が高くなる。こういうのを仕様レベルで回避したかったんだけどね。"
なかのんクエストさんのツイート: "もうひとつ、Firefoxだけ、文字入力しないキーでもkeypressが発火するという動作があるんだけど、こっちは発火しない方がmakes senseだと思うんで変更に賛成なんだけど、内部処理を先に書き換えないといけないところが多過ぎて踏み出せずにいる。"
なかのんクエストさんのツイート: "まあ、なんにしろ、互換問題がこの辺は昔から報告多いし、仕様も決着ついてるんでそのうちにどうにかする。"

histric-3

なかのん&マジックさんのツイート: "無事、57へのupliftが承認された。Google日本語入力とMS-IMEでURLバーにフォーカスあてるとIMEがオフになる(IMEが自動的にやってる)余計な機能、無効化されます。 https://t.co/Pi9ZGb3G89 #もずでぶ"
なかのん&マジックさんのツイート: "ただし、副作用として、これらのIMEが選択されている間、URLバーにフォーカスを与えても、タッチキーボードはURL用ではなく、通常用になります。他のIMEやキーボードレイアウトならURL用になります。 #もずでぶ"
なかのん&マジックさんのツイート: "MS-IMEの公式のフォーラムでもこの機能に不満持ってる人居たし、なんでGoogle日本語入力もそれを真似たのかまったくもって謎。ATOKは自動で余計なことをしてくれないので助かってる。 #もずでぶ"
なかのん&マジックさんのツイート: "ちなみに、前々からの問題だったなのに、なんでこのタイミングで強引に修正したのかというと、デフォルトのレイアウトでは、検索バーが消えて、URLバーから検索するようになったから。流石にこれでIMEをいちいちオフにされるのは迷惑なので説得しやすくなった。 #もずでぶ"
なかのん&マジックさんのツイート: "本当はIS_URLだけじゃなくIS_SEARCHもInputScopeに指定すればTSFのデザイン的には正しい。でもそうすると期待通りに動かないし、タッチキーボードも同様だったので、IS_DEFAULTを渡すようにした。なのでIMEからは特殊なものには見えなくなってる #もずでぶ"
なかのん&マジックさんのツイート: "@robert_KIMATA 全ブラウザ、検索兼URL入力の欄になってるので、そういうのをTSFが用意するか、MS-IMEとGoogle日本語入力が独自にやってることなんで、IS_URLとIS_SEARCHの同時指定でよろしくやるかのどっちかであるべきなんですよね。こちらとしては不本意な変更。 #もずでぶ"
なかのん&マジックさんのツイート: "IME内部でのクラッシュ(もっといえば、DLL内部でのクラッシュ)が、アプリのクラッシュに見えてしまうの、Windows上でアプリで商売やってる側としては迷惑なのでどうにかしてほしい……"
なかのん&マジックさんのツイート: "AltGr使うヨーロッパ言語ではAltGrキー押したときに発生するGDKのイベントがUnityの時だけバグってるんではよ消えて…… / Unityデスクトップの存続に向けて開発者やメンテナ募集が行われる | スラド Linux https://t.co/bex7I4R0Ce"
なかのん&マジックさんのツイート: "UWP関連の色々で、ここ最近のWindowsはIME周りのコードを書き換えている様なので、できるだけ最新のバージョンを使い続ける方が良いという、今までには無かったような状況に思えます。"
なかのん&マジックさんのツイート: "@inasoft_ayacy Firefoxは、UWPではありませんが、TSF-awareアプリです。about:configでintl.tsf.enableをfalseにして再起動すると、通常のアプリと同様のIMM APIを利用したハンドリングを強制できますが、その場合はどうなるでしょうか?"
なかのん&マジックさんのツイート: "そーいや、たまにパスワードに日本語も、みたいな話を見かけるんだけど、あれもいろいろと有るから、未だにASCII文字だけなんだと思うよ。まず、第一に、マルチデバイスな昨今、全ての環境でパスワード入力欄の仕様を同時に変更するのは難しい。"
なかのん&マジックさんのツイート: "第二に、未確定文字列等をショルダーハック(だっけ?)される心配をどうするのか。第三に、コンピュータに詳しくないユーザがうまく入力できるのかという、サポートのコストに対する懸念がある。最後に、IMEがパスワードを学習してしまう問題がある。"
なかのん&マジックさんのツイート: "実際に、最後の問題は深刻で、Androidでたまに、パスワード入力欄を独自実装してるのか、IMEが使えるアプリがある。この時、パスワードがIMEに学習されてしまい、変換候補に表示されるという糞な体験をしてる。"
なかのん&マジックさんのツイート: "USB HIDで定義されてる全キー入りのキーボード欲しい。"
なかのん&マジックさんのツイート: "世界のキーボードを知ってから、MacにApple純正じゃないキーボードを刺したときに、左右のShiftキーの横のキーを押さされる意味が分かった。あそこにある特殊キーだけでレイアウトが分かっちゃうのね。"
なかのん&マジックさんのツイート: "まあでも、物理レイアウトを意識するmacOSはクソだと思いますけどね。"
なかのん&マジックさんのツイート: "OSは論理レイアウトだけ意識すれば良いと思うんだけど、macOSは物理キーボードタイプを文字とのマッピングに使うせいで、JISキーボードでUSレイアウト(Dvorak含む)を使えない。そのくせ、APIというか、ネイティブイベントでは仮想キーコードしか取得出来ないというのが意味不明… https://t.co/A2bfORKmc3"
なかのん&マジックさんのツイート: "TSFについてググると、自分の出した情報か、NyaRuRuさんの情報に行き着くだけというオチ……"

histric-4

なかのん&マジックさんのツイート: "MSのIME、軒並み、TS_E_NOLAYOUT問題を一杯抱えてるみたいなので、本当にTIP側でどうにかして欲しいんですが……"
なかのん&マジックさんのツイート: "Firefoxでkeydown/keyupが発火されないのは現在のUI Events上はバグなんだけど、"input"イベントを捕まえずにどうにかしようとしている時点で入力イベントを理解できていない(UI Eventsの仕様案を読んでいない)な、この人。 https://t.co/F41MKDw4X2"
inputの入力値の制御でIME入力とかいろいろ辛かった話 - Qiita
なかのん&マジックさんのツイート: "修正を後回しにしてるのは、本来"input"イベントを使うべきだからなんだよなぁ。音声入力とかにどうやって対応するつもりだ?"
なかのん&マジックさんのツイート: "TSFのTS_E_NOLAYOUT問題、個人的に知ってるMSの人に直接コンタクトとるべきかなぁ、もはや。"
紙魚丸(しみまるさんのツイート: "ウィンドウズ 登録されてない文字を辞書登録して今後は変換できるぜ ってのあるけど 逆に そんな変換はもうしなくていい って登録はできんのかな ゲームって入力して変換押したらGAMEって出て いいからそういうの やめて"
なかのん&マジックさんのツイート: "ブラウザのオートコンプリートだと、矢印キーで選択してDeleteで消せるけど、IMEでは考えたこともなかったな。"
なかのん&マジックさんのツイート: "アプリ開発者としては、macOSのCocoaみたいな、「アプリの実装がIMEやフレームワークと一体となって動かなければいけない」という設計は本当にキツい。TSFも基本的にはそれに近いけど、アプリからもAPIを使ってIMEにリクエストできるのは大きい。"
なかのん&マジックさんのツイート: "NSTextInputContext.invalidateCharacterCoordinates()を呼び出してもアプリから当然のごとく期待される動き、つまり、候補ウインドウの位置の再計算とか無いからね。何のためにあるのか本当に謎。"
なかのん&マジックさんのツイート: "access keyとshortcut keyがコンフリクトしてたらどっちが優先順位高いの問題……(Geckoはaccess key)"
てるろーさんのツイート: "IMEほど闇は深くないんだけど、海外製テキスト入力コンポーネント(典型例がDataGrid)でIMEを想定してないキーイベント実装になってるやつ、よくありますね / 🐟日本語入力の落とし穴 #burikaigi - みずぴー日記 https://t.co/EZbyWlBdYu"
なかのん&マジックさんのツイート: "そういうのがあって、音声入力や手書き入力に非対応なWebアプリが増えちゃうから、未確定文字列がある時にkeydownとkeyupは発火すべきじゃないって、UI EventsのWGで昔、抵抗したんだけど、Gecko以外は発火してるからっていう理由で負けた。"
なかのん&マジックさんのツイート: "これは本当に今でも悔しくて、Webアプリはテキストの入力を検出する場合、beforeinput (Geckoはまだ未実装)、input、composition(start|update|end)イベントのみで実装しないと全然アクセシブルじゃない。"
なかのん&マジックさんのツイート: "beforeinputはどうすればスマートな実装になるのか、未だに分からないんだよなぁ。keypressイベントの発火方法自体を見直さないと、EventStateManagerからフォーカスのあるEditorに問い合わせて、みたいな汚いやり方しか思いつかない。 #もずでぶ"
なかのん&マジックさんのツイート: "長年の修正で、keydownイベントがkeypressイベントのほぼ全ての情報を持つようになったのでなんとかなるのかもしれないけど、一部のプラットフォームはIMEが処理する前にkeydownイベントを発火してから、keypressにするか、compositionイベントにするかを判断してるんでキツい。 #もずでぶ"
なかのん&マジックさんのツイート: "keydownの発火をIMEが処理したかどうかを判定できるようになるまで遅らせるべきなんだけど、そうすると、今度は、keydownイベントのpreventDefault()でcompositionstartを抑制するということがプラットフォームによっては不可能になるので、なんというか、仕様が悪い気する。 #もずでぶ"
小野塚裕也 (よP)さんのツイート: "ところで Windows 版 LINE は IME のキーバインドより前に出てくるから単語区切り指定中にウィンドウが開かれたりして使いにくいのなんとかして。ライン社内には Microsoft IME でキーボードショートカット使う人いないのかね。"
小野塚裕也 (よP)さんのツイート: "IME の文字入力・変換作業中にホストのアプリケーションがキーボード入力受け付けちゃダメでしょ。"
小野塚裕也 (よP)さんのツイート: "極端なこと言うとスマートフォン中心に使っている人なら LINE のキーボードショートカットなんか使わない (というかあっても実用的でない) んだからなくてもいいのに。"
なかのん&マジックさんのツイート: "IME全く使わない人たちが開発するとこの手のバグを入れがちなのに、LINEがやらかしてるのか。"
なかのん&マジックさんのツイート: "あー、でも、ハングルのIMEだと、何かショートカットキーを押したくなる時には、もう、ユーザの中では入力が終わってる状態だから、か。"

histric-5

なかのん&マジックさんのツイート: "ぼんやりとソース見てるけど、devtoolsは全部、keypressからkeydownにそのまま移行させた方が良いのかな。"
なかのん&マジックさんのツイート: "e-Taxはime-modeを多用してくれてて、かなり入力しやすかった。あれを実装するなとまで書いたW3Cは本当にアレ(抵抗はした)。"
なかのん&マジックさんのツイート: "とりあえず、確定申告ページで今でも使われてるってのは書いておいた。ime-mode: active;とime-mode: inactive;は設定で無効化できた方が良さそうではある。ただ、無効化をデフォルトとするかどうかは悩ましい / https://t.co/ASPFx4ZeN8 - Remove ime-mode propery https://t.co/CmHiTpqk5s #もずでぶ"
なかのん&マジックさんのツイート: "Android、タッチ入力の仮想キーボードからIME使うのと、ハードウェアキーボードから使うのとでは動作が違うのかよ……"
なかのん&マジックさんのツイート: "実装後回しになったとしても、ハードウェアキーボードのパスを作っておいて、そこに仮想キーボードから疑似イベントを流す、みたいな形になってないのかな?"
なかのん&マジックさんのツイート: "今日もパッチ書いてて戸惑ったんだけど、この例、本当に正しいんだろうか。WM_SYSKEYDOWN(UP)は無視して良いの? TIP/TSFがAlt+somethingを処理できないけど。 / ITfKeystrokeMgr::TestKeyDown method (Windows) https://t.co/RX6nWMiJ9B"
ITfKeystrokeMgr::TestKeyDown method (Windows)
なかのん&マジックさんのツイート: "@msdmairitan さん、ご意見あれば。"
Masaru Iritaniさんのツイート: "ありがとうございます。ちょっとこの辺り詳しい人に聞いてみます。… "
なかのん&マジックさんのツイート: "はい、お願いします。最初の実装時にもうーん、と思いながらも、例に従って、WM_KEYDOWNとWM_KEYUPのみTSFに渡すようにしました。もしアレならWM_SYSKEYDOWNとWM_SYSKEYUPも渡すようにします。… "
なかのん&マジックさんのツイート: "macOSでIMEから飛んでくる未確定文字列をそのままテキスト内で使うの、もういい加減にダメって広まってないの?"
なかのん&マジックさんのツイート: "Firefoxは現存する有名なIMEの全機能を子プロセス上でもサポートするために、かなり色々と値をキャッシュしたりしてて、シンプルに文字入力してるだけのときからすると「無駄な」処理をいっぱいやってる。入力から発生する処理の別プロセス・別スレッドへの追い出しは本当にキツい。"
なかのん&マジックさんのツイート: "OSからの入力に対するイベントと、それへの応答が非同期処理をサポートする形になってくれて、さらに、各IME等のミドルウェアがそれをバグ無く処理できるようになれば、メニーコア時代のデスクトップアプリはもーちょい進化するのかもしれない。書いてて無理に思えるけど。"
なかのん&マジックさんのツイート: "シングルプロセス、シングルスレッドなアプリはどんどん相対的にパフォーマンスの悪いアプリとなっていくわけだけど、ユーザからの入力に対するリアクションってほんどスレッドの分けようが無いアプリも多いので、やはりスレッドあたりの性能向上も大切だなぁと。"
なかのん&マジックさんのツイート: "Firefox/Chromeのような、メインプロセスが重要なタイプのマルチプロセスアプリの設計は今後どう変化していくんだろう。今でもメインプロセスにかかる負担ってそれなりにあるけど、統括すべき子プロセスが増えていくと……"
なかのん&マジックさんのツイート: "今頃気付いたけど、macOSの日本語入力、今でも内部的にはKotoeriって名乗ってるんだ。"
なかのん&マジックさんのツイート: "Win10に古いIME入れてるとこんな感じで警告が毎度毎度、大きめのアップデートで出る。… "
なかのん&マジックさんのツイート: "Win10の大型アップデートのときに出なくても良いんではって思ったけど、いつまでも古いサードパーティーのIME使いながら、すぐにその自覚無く文句言う人出てきそうだから出すしかないか。"
なかのん&マジックさんのツイート: "「ぽんよう」はATOKでもMS-IMEでも変換できないか。"
なかのん&マジックさんのツイート: "ATOKは訂正候補出してきて、MS-IMEは単純にカタカナに変換できないように文節切ってくるのか。ガチで間違ってる人にはATOKの方が良さげ。"
なかのん&マジックさんのツイート: "ものっすごいlong standingなテストAPIのバグを見つけてしまった。よく動いてたな、IME周りのテスト。"
なかのん&マジックさんのツイート: "Linux版Nightlyで、一部のデスクトップテーマのバグのせいでfcitxの未確定文字列が正しい色で表示できないバグを修正したけど、その方法がfcitxの参照してる選択色を上書きするというちょっとリスキーな方法なので、regression出てたらできるだけお早めに報告を(bugzillaでも私に直でも) #もずでぶ"
なかのん&マジックさんのツイート: "このバグが起きてる環境だと、未確定文字列が背景も文字もおおむね同じ色なのでほとんど読むことができないので可能な限りupliftを行いたい(betaとESR60)。"
なかのん&マジックさんのツイート: "Debianでこんな感じに表示されてしまってる。… "
なかのん&マジックさんのツイート: "IMEの未確定文字列の表示自体は、把握している限りはfcitxユーザにしか影響無い上に、かなり新しいバージョン使ってる場合は、このバグ回避のためにfcitxが別の色をFirefoxの場合に使ってるので問題は起きてないです。ただ、IME以外の部分でのregressionが無いのかというのが怖いところ。"

なかのん&マジックさんのツイート: "先月、Nightlyで一番使われたIMEがハングルのIMEというのは予想外だった。日本語・中国語と違って選択肢無いとそうなるか……"
なかのん&マジックさんのツイート: "MS Office IMEを使ってる人が、ちょっと無視するには忍びない数で居てるな。安全方向にふった修正にしておくか……"
なかのん&マジックさんのツイート: "んー、先週末に突っ込んだTS_E_NOLAYOUTの修正に従ってTIPを信頼するパッチ、Nightly + 色々なTIPで試してみると、いくつか状況限定でバグるな……やはり、実装が無かったらTIP側にもバグがあるか。"
なかのん&マジックさんのツイート: "Site Isolation、IMEの観点からするとどうなんだろってのは無くも無い。今どきのIMEは周囲のテキストを読んでるし。IEの形式なら安全だろうけど。Edgeはどういう設計になってるのか未だに知らない。"
Taku Kudoさんのツイート: "ネットワークのflow、initializer、shape をまとめて同じところに書けるのが地味に静的グラフの利点だと思っているのですが (kerasなんてまさしくそう)、どうなんだろう。逐次実行の解釈がどうしても優先されるので慣れが必要ですが、これは定義なんだというスタンスに立てば可読性が良い。"
kyo agoさんのツイート: "reactでtextareaちゃんと管理するの、辛い。。。"
kyo agoさんのツイート: "react + textarea、真面目にやろうとすると「現在の入力値」、「現在のカーソル位置」、「現在のIMEの状態(変換状態)」の管理が必要な感じがする。 (宣言的にUI構築するんだからUIの状態に関わるものを管理するのは当然なんだけど。。。)"
なかのん&マジックさんのツイート: "ネイティブアプリレベルでもIMEのバグや挙動の違いの吸収はかなりキツいのでAPIのほとんどないWebは相当につらくないかなぁ。ある程度はブラウザが吸収してるけど。"
なかのん&マジックさんのツイート: "IMEのAPIって2種類のデザイン方法があって、IMM/GTK vs. TSF/Cocoa/Androidみたいな感じなので、WebへのAPIの公開とか出来る気しない(Qtってどうだったか忘れた)。"
なかのん&マジックさんのツイート: "Firefox for AndroidのパスワードフィールドでIMEで入力したら文字がダブる件、IMEのSelectionがマスク文字の上に復元されてないのをとりあえず修正してみたら、もっと動作が意味不明になった……"
なかのん&マジックさんのツイート: "最近、Firefox 64にセキュリティのテスト用のアドオンからキーボード入力をエミュレーションするAPIを新規に設計して投入したんだけど、その内部の処理はFirefoxOSのIMEをまともに作れるように設計したクラス群なので、XULアドオンの頃よりも真っ当なテストが可能になったという皮肉。"
なかのん&マジックさんのツイート: "ちなみにそのAPIは普通のアドオンからはセキュリティ的に危険すぎるので相変わらず使えません。専用のビルドオプション付けてビルドしないと存在すらしないので。"
なかのん&マジックさんのツイート: "今どき、KeyboardEvent.keyCodeだけを無条件に参照してkeypressイベントリスナを実装するWeb開発者、引退してくれない?"
なかのん&マジックさんのツイート: "よくあるのが入力のフィルタリング目的でそういうコードを書いてるんだけど、"input"で見てないから、IMEからの入力、貼り付け、D&Dあたりは素通りで入力できてるし。知識が雑すぎる、というか自分で特定のブラウザでだけ実験した結果を知ってるだけなんだろうな。"
なかのん&マジックさんのツイート: "未確定文字列が空のIMEって今どきあるんかな。Win7ではなさげなので、あるとしたらLinuxか?"
なかのん&マジックさんのツイート: "Input Events Level 2にIMEのイベント定義が入ってるけど、今までの定義とコンフリクトしてたり、TSFでそれたぶん無理、みたいな内容で、「お、おぅ」ってなってる。"
なかのん&マジックさんのツイート: "とりあえずこれだけで数ヶ月かかりそうだから、最初はInput Events Level 1の実装で決まりだな。"
なかのん&マジックさんのツイート: "おお、Ubuntu 18.04からUbuntu 18.10にアップグレードすると、デッドキーがmacOSと同様に未確定文字列を出すIMEとして実装し直されてる。"
なかのん&マジックさんのツイート: "実装面で一番苦しめられたのはLinuxのIME事情のクソッぷりだったな、結局(というか今でも環境限定バグがちょいちょい来てる)。"
なかのん&マジックさんのツイート: "(特に)プラットフォーム側がやっつけな実装すると、こうやってエコシステムがボロボロになってってダメになるんだってのを実感させられた。"
なかのん&マジックさんのツイート: "IMEの変換処理を非同期で他のプロセスで処理するために、APIの拡張を全く行わずに、イベントモデルを汚くハックしてて、アプリ側から見ると、来るかどうか分からない複製されたイベントを待たなくてはいけないという、実装した人本当にどうかしてる状況が今のLinuxのIMEのデファクトスタンダード。"
なかのん&マジックさんのツイート: "せめて必ず複製したイベントを再送してくるんだったら単純だったものを……"
なかのん&マジックさんのツイート: "今後、compositionstartをcancelableにしようとしたときに、また、Linuxでの実装が物事を複雑にしてくれるな……"
なかのん&マジックさんのツイート: "ちなみに、どのIMが非同期で処理しようとするのかっていうのを取得するAPIも当然無いので、アクティブなIMがiBusかFcitxじゃないかを確認し、それらだったら、さらにそれらが非同期処理を行うかどうか決定してる環境変数も確認して、というクッソ汚いコードをアプリが書かないといけない。"
なかのん&マジックさんのツイート: "ちなみに、Waylandになると、iBusかFcitxかっていうのを見分けるためのAPIが"wayland"と返してくるらしく……"
Makoto Kato ︎︎さんのツイート: "その経緯もChrなんとかOSが最初ibusを使ってた関係で非同期APIがあるらしいんだけど、その後そのOSがibus使うの止めちゃったんで、まぁ中途半端になりがちですよね… "
なかのん&マジックさんのツイート: "IMEも既に独自拡張のフラグをmodifiersに突っ込んできてるんで、あそこに見分けが付くフラグを入れて欲しかったです(これから非同期で処理するよ、っていうのを)。… "
なかのん&マジックさんのツイート: "愚痴ってたら、またLinuxのIMEが変な事してくれてるのが原因のバグ来てる……"
なかのん&マジックさんのツイート: "今のmozilla-centralで動いてるIME周りの自動テストは、JS製のIMEから複雑な未確定文字列を送信でき、コンテンツ上でのイベントも受け取れるという本格的なものなんだけど、Firefox OS向けに作ってたAPIなんだよね。なので、テスト用にはかなりのオーバースペック。本当に真面目に作り込んである(w"
なかのん&マジックさんのツイート: "しかもこのリッチなAPIが完成したの、確かFirefox OS終了に間に合わなかったというオチだった気がする……"
なかのん&マジックさんのツイート: "Windowsキー + : (コロン)で絵文字を入力できるとか初めて知ったんですけど……ただこれ、アクティブなキーボードレイアウトを英語にしておくと英単語の入力で絞り込めるけど、日本語だとIME問わず絞り込みができない?"
なかのん&マジックさんのツイート: "しかもTSF-awareアプリケーションとIMMのエミュレーションにちょっと齟齬があるんだよな、どうしよう。"
なかのん&マジックさんのツイート: "macOSのIME周りを知ってる開発者とのパイプが欲しい今日この頃。アプリによって動作を変えられるの、本当に意味が分からない。"
なかのん&マジックさんのツイート: "IMEからアプリに任意のタイミングで問い合わせを出せる、TSFやCocoaの設計は、IMEの開発者から見て便利なんでしょうか? アプリ側が用意できてなくてエラーが返ってきたりするんで、数多くあるアプリとの連携部分がかえって大変そうなイメージなんですが……"
なかのん&マジックさんのツイート: "ちなみにアプリ側から見ると結構しんどい形になる上に、意図通りにIME側が動いてくれなかった時に、何が気に入らなかったのか分かり難くて対応しづらいってのがあります。まさにmacOS上のシンプルな変換だけが必要な言語のIMEみたいに。"
なかのん&マジックさんのツイート: "とりあえず、MS-IMEも含めて、TSFは非同期レンダリングサポートしてるのにIME側が対応してくれてないのはキッツいですな……IMMみたいにアプリ側から通知出す方がこういうあたり、確実。"
なかのん&マジックさんのツイート: "ハングルのIMEの挙動が特殊過ぎるんで、ハングルの勉強したら?と言われるものの、そもそも日本語のIMEも全部は面倒見れていないという……"
なかのん&マジックさんのツイート: "日本語のIME、特に人名を変換してる時に思うんだけど、一文字目での候補リスト内の絞り込みがマウスを使ってでのUIでも良いんで、存在すべき。"
なかのん&マジックさんのツイート: "FirefoxユーザのLinux版のIMEのシェアを久しぶりに確認してみたらibus強いなぁ。"
なかのん&マジックさんのツイート: "IME経由で文字を実際に入力したユーザだけでの統計なので、欧米でキーボードからの直接入力だけのユーザはカウントされてませんので、たぶんibusの実際のユーザはもっと多い。"
なかのん&マジックさんのツイート: "IMのコンテキストの名前に"WAYLAND"が増えてるな……"
Makoto Kato ︎︎さんのツイート: "https://t.co/iiLfFYZkND このlandedをみて、reviewerでちょっと笑った。未だにreviewerになってる。。。"
657623 - Using TSF instead of IMM32 in the IMF on Windows - chromium - Monorail
Makoto Kato ︎︎さんのツイート: "幣社も4プラットフォームをほぼ2人のみでやってるから、人のこと言えないんだが、IMEとか入力周り。"
なかのん&マジックさんのツイート: "自動テストの方法をいい加減に作らないと、ですね……… "
Makoto Kato ︎︎さんのツイート: "確かにgtestでmock作れるようにしないとね… "
なかのん&マジックさんのツイート: "うーん。複雑なHTMLのケースでのテストが書きやすいようにmochitestで考えてたんですが……どちらにしろ、OSとTSFTextStore間に一枚かませて抽象化しないといけないですね。… "

ともい(Tomoi,S.)さんのツイート: "テキストフィールドにIMEModeみたいなプロパティがある以上、それに開発者マター以外のアプローチが存在しないのはなぜだ…と思い続けているけど、まあ日本人の使い勝手なんて理解できないだろうなあ…(・ω・"
ともい(Tomoi,S.)さんのツイート: "おそらく一生実装されないかもですが、Winの日本語入力可能フィールドはIMEの最後の変換モードを常時永続的に記憶しててほしいし、中途半端に覚えて継承されるかと思うと逆側になっててイラッとくるものもあるので、ユーザー側で英数・日本語の初期モード固定を指示できるようになっていてほしかった。"
Makoto Kato ︎︎さんのツイート: "IME依存のhack、GeckoのTSFの実装もGTKの実装もいろいろ多いけど、Androidも大概多いんだけど、OSの抽象化とは。。。 https://t.co/E3fwfzby8Y"
InputMethods.java - mozsearch
こたさんのツイート: "なんか気になったのでアンケート「ぁ」や「っ」など小書きを入力するとき、Xを使うか、Lを使うか、変換を使うか教えてください。"
京橋 ひよわ@労進さんのツイート: "んなもん、左Shift+「や」、右Shift+「つ」に決まってるやん?"
島鉄雄さんはTwitterを使っています: 「やっぱり、どんな IME パッチをあてても確率の問題でいつかは必ず落ちる事が分かったんで…これを試してみようかな。(多分明日から) これがちゃんと動けば、もう Emacs 本体から IMM32 のコードはバッサリ消し去りたい… https://t.co/bDP9dhOITK」 / Twitter
島鉄雄さんはTwitterを使っています: 「お!予想外に(失礼w)すんなり動いた! https://t.co/XcigCEpcRN ↑ここの 27 pretest 版を使って(つうかインストーラがある!) load-path に w32-imeadv.dll と lisp-w32-imeadv.el を置いて、(load "lisp-w32-imeadv.el") をした。 w32-imeadv.dll は自前でビルドしたけど、これも一発だった。続く https://t.co/CAKyv5QReI」 / Twitter
Index of /gnu/emacs/pretest/windows/emacs-27
島鉄雄さんはTwitterを使っています: 「lisp の方は色々カスタマイズ(や修正)が必要そうだ。 あと、起動直後に IME 効かない問題を対処するのに別のモジュールが必要みたいだけど、出来れば統合してもらえるとうれしいです!> @m_toguro さん これで長年の IME 問題は解決するんじゃないかと期待したい。」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo w32-imm32-on-start-enablerの方は、メッセージフックの中から直接DispatchMessage() を呼び出すという非常にaggressiveな事をしていて、本当に動くかどうか?動いたとして副作用は無いか等の確信が持てなかったんです。」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo .dllをload-pathからのければすぐ外せるのもダイナミックモジュールの利点なので、不具合ぽい時やだめそーだったらはずそーと思いまして。 僕チキン(´・ω・`)」 / Twitter
島鉄雄さんはTwitterを使っています: 「@m_toguro 今までの IME パッチだと w32fns.c の w32_createwindow() 内で、画像のようなアドホックなコードで回避してるようです。 多分安全だとは思いますが、若干気持ち悪いと言うかw 参考までに。 https://t.co/nPfLNOVTOq」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo 最小化すると動き出すのは、MS-IMEがWM_TIMERを送ってきてて、最小化・最大化の時に、ShowWindow()の向こう側で、システムのメッセージポンプがちゃんとDispatchMessage()してるからなのですが、同じ問題に起因するのがATOKの確定アンドゥでこっちはフリーズしちゃいまして…。」 / Twitter
精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo 本体にパッチを当てれば治るのも確認してて、多分これが正攻法であるとは思います。 自分でつくっておいてなんですが、w32-imm32-on-start-enablerは、穴の開いた燃料タンクをぐるぐるまくガムテなのです… https://t.co/uED5j89odN」 / Twitter
精廬 幹人さんはTwitterを使っています: 「なんで、 w32fns.c のw32_msg_pump のお尻のあたりを ちょっと弄るといいと思うんだ。 https://t.co/w44eo2Y58B」 / Twitter
精廬 幹人さんはTwitterを使っています: 「ちな、ATOK の Ctrl-Backspace の確定アンドゥがプチフリーズするのも同じ原因の模様」 / Twitter
精廬 幹人さんはTwitterを使っています: 「MS-IME は起動時に 0x0113 = WM_TIMER を送信 ATOK は、 確定アンドゥ時にうちの環境では0xC046 これはRegisterWindowMessage() で登録されたメッセージ hwnd が NULL の状態で GetMessage() が返す。 ところまで確認したんだけど、どうしよっか。」 / Twitter
品川@学生募集中さんはTwitterを使っています 「ディープラーニングを使ったシンプル・ロバスト・高精度な日本語IMEが欲しい。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ウォール街を、ウォーター街と書くミス。 スマートフォン入力は、妙な自動補完に気づかないこと多い。 入力の達人は、視線は文章を見ながらのタッチタイプなのかな?」 / Twitter

Choosing the right estimator — scikit-learn 0.23.1 documentation
機械学習アルゴリズム チート シート - デザイナー - Azure Machine Learning | Microsoft Docs
専門用語和訳プロジェクト「みんなのわやく」(機械学習・メディア処理) - Google スプレッドシート
機械学習*と公平性に関する声明 | 人工知能学会 倫理委員会
研究開発成果 - サイバーフィジカルセキュリティ研究センター - 産総研
2-2_データを説明する - 2-2_literacy_level_note.pdf
Shiki’s weblog
仲原文也@籠城中(筋トレ3年)さんはTwitterを使っています 「新しいMicrosoft IMEで送りがなの基準はどこで設定するのだろう。本則にしたいのだけど、、」 / Twitter
Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
Taku KudoさんはTwitterを使っています 「ホストIMFの動作をブリッジする疑似IMEをfcitx上に作ればいけるかな。Mozc限定なら、fcitx-mozc のプロセス間通信の接続先をホストOS上のソレにつなげれば動きそう。いずれにせよ UIは fcitx になるので、見た目的には現状と変わらない。 https://t.co/DWVs1rio7x」 / Twitter
Taku KudoさんはTwitterを使っています 「windows の商用 xserver は ximp とか kinput2 経由でブリッジしてた記憶がある。それでいけるのかな。あまりにも古い知識なのでよくわからん。」 / Twitter
機械学習品質マネジメントガイドライン 第2版 | デジタルアーキテクチャ推進センター | 産総研

形態素解析→依存文法解析→直接構成鎖解析→談話構造解析

コーパス

国立国語研究所

nwc-toolkit

Web クローラー

Heritrix - Heritrix - IA Webteam Confluence
Heritrix - Home Page
internetarchive/heritrix3: Heritrix is the Internet Archive's open-source, extensible, web-scale, archival-quality web crawler project.
Heritrix - Wikipedia
Webクローラ「Heritrix」を使ってみる - Qiita
国立国会図書館-デジタルアーカイブシステム
Heritrix - masayua

HTML テキスト抽出(CETR)
HTML テキスト抽出(簡易)
Google Code Archive - Long-term storage for Google Code Project Hosting.
xen/nwc-toolkit: Automatically exported from code.google.com/p/nwc-toolkit
ウェブサービス - s-yata.jp
コーパス - s-yata.jp
日本語ウェブコーパス 2010
N-gram コーパス - 日本語ウェブコーパス 2010

UniDic

MeCab

MeCab: オリジナル辞書/コーパスからのパラメータ推定
MeCab: Yet Another Part-of-Speech and Morphological Analyzer
taku910/mecab: Yet another Japanese morphological analyzer
mecab-ipadic-neologdがすごいという話 - kivantium活動日記
Pythonからmecab-ipadic-neologdを使う - Qiita
MaCabのユーザー辞書にmecab-ipadic-NEologdを手動で追加する - Qiita
形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
[O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
MeCab - 日本語形態素解析システム
MeCab - Wikipedia
NMeCab でも mecab-ipadic-neologd を使ってみた - しばやん雑記
MeCabのライセンス変更事例 | オープンソース・ライセンスの談話室
きまぐれ日記: MeCabがiPhone,OSXに載っていると言うのは止めようと思う
新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた « LINE Engineers' Blog
NEologdさんのツイート: "mecab-ipadic-NEologd に"色々な不具合の修正をしたIPA辞書のみ"をインストールする機能をつけました📕 長い間、個人的に便利に使っていた機能です🔧 インストール時に-cオプションを付けるだけで利用可能です😄 #neologd"
neologd (NEologd)
ねこ先輩さんのツイート: "Mecabの動作確認するとき、私はいつも「吾輩は猫である」という文を入力するんですが、neologd入れたら文まるごと固有名詞になってしまって無事に動作確認できたようです。"
【Python】MeCabと極性辞書を使ったツイートの感情分析入門 - StatsBeginner: 初学者の統計学習ノート
Mecabに人名辞書を追加 - Qiita
mecab-skkserv MeCab を使ってかな漢字変換
日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ
MeCab: 単語の追加方法
Odashiさんのツイート: "みんな一度は作って最終的に実用的な理由でMeCabに回帰する形態素解析器"
Taku Kudoさんのツイート: "MeCabはたいてい爆速ですねというフィードバックをいただくのだが、某所の某グループから遅すぎじゃボケと言われて、草。 世界は広い。"
【Python】テキストマイニングしてみた〜形態素解析〜 | 開発アプリブログ

Twitter

全角

UniDic広報担当さんのツイート: "web茶まめの、「解析前処理」の項目の「半角文字を全角に変換」のチェックボックスをONにして実行してみてください。 UniDicには、全角文字しか入ってないので、 半角文字はすべて未知語処理されてしまいます。 https://t.co/7eFH8AgK4K"
UniDic広報担当さんのツイート: "解析用UniDicに登録されている短単位はすべて全角です。 また、文字コードはUTF-8です。"
Taku Kudoさんのツイート: "@unidic NFKCにしませんか?"
UniDic広報担当さんのツイート: "@taku910 web茶まめを作っているのは私ではないのですが、今、開発者に依頼しておきました。"
UniDic広報担当さんのツイート: "あとは、解析用UniDicの表層形が全部NFKC化した文字列でも登録してあるかDBちゃんと見とかないと。"
UniDic広報担当さんのツイート: "こっちは、デフォルトでチェック入れて外せないようにしてあります。 https://t.co/6Hy2A40gui また、UniDicが全角を採用しているのは、BCCWJの文字列がすべて全角に統一されているからです。 https://t.co/ZZrCpMye4M"
UniDic広報担当さんのツイート: "そうか、国語研のコーパス、基本全角だからDBに半角エントリは作ってないのか。 これは、解析用の辞書のほうでの対応案件か。 半角カンマのcsvへの表層形登録は","でいいのかな。きっと。 #unidic3への課題 https://t.co/glgmg2ZBb3"

histric-1

UniDic広報担当さんのツイート: "OSDNのリポジトリはunidic2系の公式配布サイトでしたが、 内部の人から見ても怪しかったので、これまでの解析用UniDic配布サイトを統合した新サイトを作りました。 https://t.co/DZKztyaX7j https://t.co/tbd7D7ArUL"
高岡一馬さんのツイート: "「短単位は、漏れの少ない 用例検索を重視した設計(単位の長さ、可能性に基づく品詞体系、細かい語義までは考慮しない字面主義) となっているため、自然言語処理分野の統語解析や意味解析に向いていません。」 https://t.co/vw96DTbO3N"
UniDic広報担当さんのツイート: "皆さんご存知でしょうが、UniDicはすでにChaSenへの対応をやめています。 MeCabの解析用辞書のみ配布を行なっています。"
UniDic広報担当さんのツイート: "今からでも組み込もうかしらん。 https://t.co/w1w1Nvmb6q"
UniDic広報担当さんのツイート: "個人的に、UniDicは 「あ、UniDicって、いいな」 と思ってもらえる方がいて、 そういう人に使ってもらえたら、それだけでうれしいです。 https://t.co/lS1WYOaJLs"
UniDic広報担当さんのツイート: "※表3.2に掲げた語を選定した際の観点は、以下のとおりである。 (1)元の語形が一般にあまり使われることがない 【例】 テレビ(テレビジョン) ジム(ジムナジウム) https://t.co/GjpSEz7dhf"
UniDic広報担当さんのツイート: "BCCWJ短単位情報規定集第4版 p.34より。 これに従うなら、たしかに、デフレも表に載せていい気がする。 https://t.co/6hgYH507rJ"
UniDic広報担当さんのツイート: "ちょっと今度のUniDic会議で議題にしてみます。 https://t.co/7DdwcQUnUh"
藻(入院中:第6日)さんのツイート: "「コン」,「コミ」でコンディショナーやコミュニケーションということにはならないけど、「デフレ」,「スパイラル」は独立して通じるからなあ。"
UniDic広報担当さんのツイート: "単に、規定が古いだけの気がするんですけど。 https://t.co/MGVVffSMG8"
UniDic広報担当さんのツイート: "もともと、計算機のための規定ではなく、人間のための規定で、 国語研は、ほっとくと皆さん、マンパワーですべて解決する驚異の集団です。 https://t.co/n1ijXquTBR"
UniDic広報担当さんのツイート: "基本的に、コアデータを人手で作ってるときにDBに載っていない短単位を随時追加するという方針です。 コーパス作るのが、一番のお仕事なので。 そこらへんは、UniDicの公式ページの「UniDicとは」という項目を参照してください。 https://t.co/L2IpvspaSl"
Taku Kudoさんのツイート: "UniDic短単位の目的や意図は分かっているつもりだが、新しいという理由だけで盲目的に採用し、その目的におおよそ合致しない構文解析に使おうとしているところに違和感がある。UniDicの中の人もずっと言い続けていることだが。"
UniDic広報担当さんのツイート: "WEB+DB PRESSの100号読んでたら「国立国語研究所が公開している表記統合辞書」という文言があって、ナニソレ? と思って調べたら、ほんとにあった。 https://t.co/JTjNB1OpSg 国語研のトップページからこのページにはどうやってたどり着いたらいいのだろう?"
UniDic広報担当さんのツイート: "あれ? BCCWJ作るときに使ってたNum Trans と ChaOne 、いま何処? マニュアルしか見つからない……"
UniDic広報担当さんのツイート: "「ユニディック」です。 小さい「ッ」入ります。 https://t.co/8EHeitda0A"
UniDic広報担当さんのツイート: "UniDicの音韻論情報、あの謎記号の説明、どっかのマニュアルに書いてあったなあと思ったら、まさかこんなところに…… https://t.co/9s99tIFBF5 UniDic2のマニュアルにはもう載ってない…… しかし、なぜこの場所に?"
UNIDIC_manual.pdf

histric-2

UniDic広報担当さんのツイート: "UniDicあるある 解析用UniDic使ったMeCabの出力1行を、 まずタブでspliって、 次にタブの右側を半角カンマでsplit。 時々行数がおかしい。 タブの右側はちゃんとしたCSVなので。 ただのカンマ区切りではないことに注意。 アクセントとか。そこらへん。 https://t.co/BwAFivi4qE"
UniDic広報担当さんのツイート: "「行数」じゃない。「列数」だ。 (さすがに、あたまがぼーっとしてきたなあ) https://t.co/ReWrFg1mVb"
Toshinori Satoさんのツイート: "mecab-unidic-NEologd、ユーザーさん居たのか。。IPADIC版と比べて相対的に滅多にcloneされない状態なんですよね。実用的なサービスで使われててるなら今より改善できるけど、使用事例が伝わって来ないので現状維持以上はなかなかできない状態です😅"
UniDic広報担当さんのツイート: "UniDic2の論文で出てくるXMLから作るSQLiteのDB、 https://t.co/TyJ27uQk3P 立ち消えになってたかと思ったら、 Comainuのとこにそれっぽいものがあった。 https://t.co/0nXr2GCmjz"
UniDic広報担当さんのツイート: "「コーパスは、」がコーパスですらないとは…… 学生の皆さんへ どちらも「検索用のインターフェース」です。 少納言はBCCWJの文字列検索しかできませんが(ほとんどお試し用) 中納言(要アカウント申請)には、BCCWJ以外のコーパスも含まれており、形態論情報レベルでの検索が行えます https://t.co/rXo7fY3Zcl"
UniDic広報担当さんのツイート: "形態素解析(Chasenレベル)の説明で「東京都」の例あげて、「東/京都」と切るよりも「東京都」のほうが頻度高いから~ というのを見かけると、 「それ、内部では名詞-名詞の連接VS名詞になってて、表層の連接は見てないから、名詞単発のほうが強いだけ」と思って、読むのをやめる。 https://t.co/S9hTevggYe"
UniDic広報担当さんのツイート: "まさに、コンテキストの話なのに、そこにまったく触れずに、品詞連接のラティスで解決できるんです。みたいに書いてあるから。 「東/京都」が実在したら、どうするんだよって、前から思っていたので。 ほんとにあったの、すごくうれしい。 https://t.co/LrQlrn0Skw"
UniDic広報担当さんのツイート: "ちがった。「頻度高いから~」は問題ない。Unigramの頻度だから。 ただ、これを「連接を見てラティス作れば解決できます」というのが、許せないんだ。 https://t.co/LrQlrn0Skw"
UniDic広報担当さんのツイート: "あたかも表層形の連接まで考慮してあるように説明されているので。 https://t.co/NbLORCjwGD"
UniDic広報担当さんのツイート: "時間があれば、フルアノテーションして、学習に使いたい。 https://t.co/IMoHqPGCMS 時間が、あれば…… #unidic3への課題"
FairyMaCorpus/corpus/wikipedia/confusing-unidic at master · FairyDevicesRD/FairyMaCorpus
UniDic広報担当さんのツイート: "ちなみに、短単位は、「語」という主観的なものではありません。 コーパス内の単語ライクなものの数を測るための、ものさしの目盛りです。ものさしには主観が入ってはいけないので、誰が認定しても揺れないルールで設計されています。"
UniDic広報担当さんのツイート: "主観といい方は確かに言いすぎですね。 作業者1人1人の恣意性がなるべく入り込む余地を入れないように統制する というのが適切でしょうか。 まあ、何かしら、統制をとるルールと基準がないと、何を1個にするかが作業者間で揺れて、その個数を数えるための資源ができないので。 https://t.co/Eymb3jkw1K"
UniDic広報担当さんのツイート: "ちなみに、国語研はいまはコーパス作ってますが、もともとは数を数える方が主なお仕事でした。"
Taku Kudoさんのツイート: "UniDic が最小単位の結合規則を漢語と和語で変えているのは、何かの理由があってからなのだろうか。本当は最小単位にしたいけど、漢語の多くが1文字=1単語になるを嫌ったのだと推測できる。辞書に漢語か和語か書いてあって、それを素性に使うからそりゃ精度高くなるだろう。"

UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "現代書き言葉解析用UniDic:unidic-cwj-2.3.0と 現代話し言葉解析用UniDic:unidic-csj-2.3.0 を公開しました。 https://t.co/be456fHjQO"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "2.3.0では、 入力として、従来の全角正規化ONLYから、全角正規化とNFKC正規化両方に対応しています。 また、Windows用GUIツールChaMameをパッケージングしています。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "ChaMameを使えば、黒い画面を使わずにMeCabの解析が行えます。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "また、解析用UniDicの解析結果末尾に付与されている語彙素IDと分類語彙表番号との対応表が公開されています。 https://t.co/EWkOHTN5xN"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "この対応表はChaMameにもパッケージングされているので、ChaMameを使うと、解析結果に分類語彙表番号を自動付与することも可能です。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "ChaMame単体はここからでもダウンロード可能です。 https://t.co/dzeCpdRfpr"
パッケージ ChaMame - ChaKi - OSDN
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "unidic-xxx-2.3.0は、日常会話コーパス開発促進に向け、発音形の精度を上げるために、新たにアクセントを素性に追加しています。 そのため、matrix.defが2.2.0よりも巨大になっていますので、ダウンロードの際はご注意ください。2Gほどあります。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "不要ならば、ダウンロード→解凍の後、matrix.defを消していただくことで、サイズを小さくできます。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "2.3.0、matrixは大きくなりましたが、mecab-dict-genする前のmodelファイルはさらに小さくなりました。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "1603系の解析用UniDicの学習時に使用された設定ファイルが発掘されたので、1603系のzipに追加でパッケージングしました。"
UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "UniDic-分類語彙表番号対応表の最新版はこちらからもダウンロード可能です。 https://t.co/Ls2QxZQZi1"
masayu-a/wlsp2unidic: Alignment table between `Word List by Semantic Principles (WLSP)' and UniDic Lemma ID.
akirakuboさんのツイート: "unidic-cwj-2.3.0をげっとしてfeature.defの変更点を確認 書字形出現形(orth)と読み(pron)の両方が登場するテンプレートは軒並み削除されてるっぽい アクセント関係のテンプレートが追加されているのは既報通り どの程度精度に変化があったのか気になる所"

「UniDic」国語研短単位自動解析用辞書
「UniDic」国語研短単位自動解析用辞書|UniDicとは
「UniDic」国語研短単位自動解析用辞書|用語集
「UniDic」国語研短単位自動解析用辞書|最新版ダウンロード
「UniDic」国語研短単位自動解析用辞書|商用利用について
UniDic プロジェクト日本語トップページ - OSDN
コーパス検索アプリケーション『中納言』
Web茶まめ
UniDic広報担当さんのツイート: "ちなみに、UniDicの短単位規定集を含め、BCCWJに関連する詳細な報告書はここにそろってます。 BCCWJを使う上で意外と重要な情報も意外とさらっと載っています。 https://t.co/yEkicS7UcD"
関連ドキュメント 現代日本語書き言葉均衡コーパス(BCCWJ)
概要 現代日本語書き言葉均衡コーパス(BCCWJ)
UniDic広報担当さんのツイート: "ここ1年くらい前から解析用UniDicの評価は、mecab-system-evalではなく、こっち↓を使ってます。 https://t.co/RGw73I02Ky"
形態素解析器性能評価システムMevAL
teru-oka-1933/meval: 形態素解析器性能評価システム MevAL
corpus.indd
MeCab で UniDic 辞書を使ってみる / 桃缶食べたい。
「UniDic」国語研短単位自動解析用辞書|FAQ
Microsoft Word - 2017031X_NLP2017_予稿集原稿_kondo.docx
A6-3.pdf

CaboCha

CaoboCha: Yet Another Japanese Dependency Structure Analyzer
taku910/cabocha: Yet Another Japanese Dependency Structure Analyzer
CaboChaで始める係り受け解析 - Qiita
CaboChaで係り受け解析をやってみる - Aqutras Members' Blog
MeCabとCaboChaとRMeCabでテキストマイニングの準備をする - DISTRICT 37
Python CaboChaを用いて係り受け構造を抽出する方法 | トライフィールズ
CaboCha(python)で辞書指定 - studylog/北の雲
UniDic広報担当さんのツイート: "ちなみに、CaboChaのUniDicモデルで付けられる「文節」は短単位ベースなので、国語研の規定する「文節」とはまた違ったものです。 (精度が低いのもそこが関係しています) 詳しくは、BCCWJ形態論規定集(上)を参照ください。 https://t.co/Ehqb2DvdES https://t.co/bDytdEgrGR"
corpus.indd
UniDic広報担当さんのツイート: "本当なら、短単位でなく、長単位を出発点として、係り受けのモデルを作ってもらいたいので。 https://t.co/Rxhm1LSC9R"

コーパス開発センター -Center for corpus development-
KOTONOHA: 国語研究所のコーパス開発計画 コーパス開発センター -Center for corpus development-
KOTONOHA: プロジェクト コーパス開発センター -Center for corpus development-
258億語の日本語コーパスをウェブで公開~国立国語研究所 -INTERNET Watch
国語研日本語ウェブコーパス (NWJC)
概要 国語研日本語ウェブコーパス(NWJC)

NEologd

neologd/mecab-ipadic-neologd: Neologism dictionary based on the language resources on the Web for mecab-ipadic
neologd (NEologd)
新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた : LINE Engineering Blog
MeCabとNEologdのインストール方法(CentOS6) - Qiita
neologd使って形態素解析したい。できれば依存関係とかは丸投げで。 - Qiita
CentOS 7にmecab-ipadic-NEologdを入れて動かすまで - Qiita
B6-1.pdf
kagomeでNeologdを無理矢理つかう - 押してダメならふて寝しろ
[O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
「mecab-ipadic-NEologd」なら「ピコ」「太郎」もバッチリ「ピコ太郎」 - 一馬力のメモ帳
kuromoji.jsで形態素解析した結果とテキストの関係をビジュアライズする | Web Scratch

形態素解析

KyTea

KyTea (京都テキスト解析ツールキット)
Graham Neubig - ソフトウェア
KyTea - the Kyoto Text Analysis Toolkit
neubig/kytea: The Kyoto Text Analysis Toolkit for word segmentation and pronunciation estimation, etc.
Zelchさんのツイート: "「辞書」のメンテナンスという意味で言うと、 KyTea デフォルトモデルは最もメンテナンスされているものの1つでしょう。 共同研究などを通じて、「辞書」ではなく文脈ありの「コーパス」が増え続けてる。 医科学、特許、Twitter、レシピ、将棋解説、ガーデニングと多岐にわたる。"

bigram

bigramとは バイグラム: - IT用語辞典バイナリ
統計的テキスト解析(4)~統計モデルとツール~
第5回 N-gramのしくみ:検索エンジンを作る|gihyo.jp … 技術評論社
束 (束論) - Wikipedia
日本語形態素解析エンジン・言語郎 | 形態素解析とは?

Darts-clone

プロジェクト - s-yata.jp
darts-clone/Introduction.md at master · s-yata/darts-clone

Twitter

Yuya UnnoさんはTwitterを使っています: 「これみて思ったが、効率的なFSTの実装ってどうするんだろう。double arrayの拡張で出来るんだろか。今時、辞書引き速度なんて気にしないのかな https://t.co/dJrBXdRhCs」 / Twitter
たけっぱさんはTwitterを使っています: 「形態素解析機では、入力テキストに対して最初にラティスを生成するのですが、そのために効率的に辞書データの持つ必要があります。 その実装としてFST, ダブル配列などがあるって感じですね。 janomeはpyconjp2015で発表があり資料がありました。 https://t.co/kUJSZxO5XY #rettypy」 / Twitter
Pyconjp2015 - Python で作って学ぶ形態素解析
たけっぱさんはTwitterを使っています: 「違うな、辞書に該当するエントリを見つける操作は有限オートマトンがありますが、その実装方法としていくつかバリエーションがあり Minimal Acyclic Finite-State Automata, trie木、ダブル配列などがある感じですね。」 / Twitter
たけっぱさんはTwitterを使っています: 「指摘がありましたので修正です: MeCabやjanome、kuromojiの形態素解析器では、入力テキストに対して最初にラティスを生成するのですが、そのためにいかに効率的に辞書データを保持するかが課題になります。 その実装として代表的な構造にFSTやTrie木があります。」 / Twitter
たけっぱさんはTwitterを使っています: 「指摘がありましたので修正です: (MeCabやjanome、kuromojiの)形態素解析器では、入力テキストに対して最初にラティスを生成するのですが、そのためにいかに効率的に辞書データを保持するかが課題になります。 その実装として代表的な構造にFSTやTrie木があります。 #rettypy」 / Twitter
ODA, YusukeさんはTwitterを使っています: 「@takegue KyTeaのような境界が確定するまで辞書を使わない方式もあるので「形態素解析器では」は主語が大きすぎ」 / Twitter
たけっぱさんはTwitterを使っています: 「@odashi_t 主語大きすぎました...」 / Twitter
takuya-aさんはTwitterを使っています: 「FSTによる辞書引きの実装のなかで、僕が知る限り最先端を行ってるのはLucene FST https://t.co/w4OItebepj だと思うけど、他にもいい実装があるかもしれない」 / Twitter
lucene-solr/lucene/core/src/java/org/apache/lucene/util/fst at master · apache/lucene-solr
takuya-aさんはTwitterを使っています: 「Lucene FSTについてはこの会で @moco_beta さんからいろいろ教えてもらえそう https://t.co/xYF898b6jp」 / Twitter
Lucene 版 #Kuromoji のコードを読む会(辞書ビルダー編) - connpass

@taku910

#nlp2018

Taku Kudoさんのツイート: "#nlp2018 形態素解析WSお疲れ様でした。解析器・辞書開発者の指針や想定ユーザを明らかにし、ユーザとのマッチングを取るという当初の目的は十分果たせたと思います。"
Taku Kudoさんのツイート: "#nlp2018 E2Eの出口が形態素解析になるというUniDic/BCCWJの見解が明らかになっただけでも収穫が大きい。人文系の研究を目的としているため。工学的な応用であれば、長単位を使ってほしいとのこと。"
Taku Kudoさんのツイート: "#nlp2018 ニューラルE2Eと基礎解析の関係について言いそびれたけど、結果を人が直接見たり、簡単なルールで出力を加工して結果とするのであれば、その解析は必要であろう。解析結果が別の機械学習手法の入力になってれば、jointすればいいので、「要らない」という方向性になってもおかしくない。"
Taku Kudoさんのツイート: "#nlp2018 全体的に、短単位→長単位の方向性が感じ取れた。招待講演にもあったけど、短単位は辞書構築が楽な反面リッチな情報を付与できない。例えば、読みが「吉田山(やま)」「筑波山(さん)」になるかは長単位として記述するしかなく、アノテーション→学習→まとめあげは無駄が多い。"
Taku Kudoさんのツイート: "#nlp2018 国語研長単位は、文節から内容語と機能語を取り出したものだが、定義的にはトップダウンに決まり短単位のまとめあげではないとのこと。実際、短単位品詞列から決定的に文節が決められないので(要機械学習)、本来別物と思ったほうがいい。"
Taku Kudoさんのツイート: "#nlp2018 招待講演にもあったが適切な長単位の定義は応用によって変わり、その応用での曖昧性が解消ができる最小単位が語の単位となる。NEologd は、読みを取ることが主目的であるため、有名人の名と姓はつなげて1語となる。この原則で作られていれば、解析結果が直接ゴールとなりえる。"
Taku Kudoさんのツイート: "#nlp2018 形態素解析で論文が書けるのは、精度や速度に関することで、こういう機能が付いたとか、新しい情報が出力できるといった内容では難しい。0.95が0.96になるのは評価されて 0が1になるのは評価されにくい現状はなんとかしたいが、WSでは後者にスポットライトが当たったのは良かった。"
Taku Kudoさんのツイート: "#nlp2018 「サブワード正則化: 複数のサブワード分割候補を用いたニューラル機械翻訳」という発表で優秀賞をいただきました。ありがとうございます。アイデアは驚異的に単純で、適用範囲が広いです。"
Taku Kudoさんのツイート: "#nlp2018 今回の話はニューラル言語処理のテキスト前処理+ID化を学習時にon-the-flyで行っています。静的処理に比べ、サンプリング、ノイズ付与、データ拡張等の柔軟性が上がります。今回の話は一般化できて、前処理がある確率分布としてモデル化できていれば、そこからサンプリングするだけです。"
Taku Kudoさんのツイート: "形態素解析ワークショップの発表資料へのリンクを掲載しました (公開承諾が得られたもののみ) 。よろしくお願いします。 https://t.co/WThWaNJDDt"
Taku Kudoさんのツイート: "形態素解析WSの UniDic の資料を掲載しました。UniDicを応用として使おうとしたときの疑問点がまとめられています。UniDic は、形態素解析をゴールとする人文系研究のための辞書ということが明確になったのは良かったです。https://t.co/WThWaNJDDt"
形態素解析の今とこれから

Wikipedia

Taku Kudoさんのツイート: "形態素解析のLatticeは、よくグラフとかDAGとして紹介されるけど、ある位置で開始する・終了するノード集合は完全二部グラフになるという便利な性質があるので、エッジをわざわざ管理する必要なく、ノードの出現位置だけ管理すれば大丈夫。グラフだからといって汎用データ構造使う必要ない。"
完全2部グラフ - Wikipedia
2部グラフ - Wikipedia
独立集合 - Wikipedia
グラフ彩色 - Wikipedia
マッチング (グラフ理論) - Wikipedia

histric

histric-1

Taku Kudoさんのツイート: "#nlp2017nmt subwordで出てきたBPEとwordpieceは基本的に同じです。sentencepieceはBPEに加え、言語モデルによる学習も実装しているのと、単語リストからではなく生文から学習することで単語分割がいりません。多言語処理がやりやすいです。"
Taku Kudoさんのツイート: "多言語処理をするときは、言語ごとに異なる前処理が必要だったのですが、多言語の生コーパスを混ぜて単一のSentencePieceモデルを学習するのが手っ取り早いです。言語ごとに処理を切り替える必要がなくなります。"
Taku Kudoさんのツイート: "自然言語処理の要素技術(単語分割・構文・意味解析)の応用先として機械翻訳があったけど、いまや立場が逆になっているような気がしている。すなわち、大量のパラレルデータとE2E学習が可能なNMTを使えば(例えば転移学習)、要素技術の精度が上がるのではないかと。"
Taku Kudoさんのツイート: "もともと生成(decode)向けにつくったSentencePieceですが、意外と Encode側でも高性能になるので、いよいよ解析タスク全般で通常の単語分割はいらないのではないかと思う。サブワードじゃなくても文字CNNでもよい。neologdは壊滅的にNNと相性良くない。"
Taku Kudoさんのツイート: "KyTeaをTrgで使った結果を見たらやたら「1508年〜15 18年」のような出力がやたらあって、よく調べたら、数値の分割の一貫性がないことに起因している(年がつくかで分割変わる)。"15 18" をdetokenizeするのは厄介で、現実的には空白入れるしかない。"
Taku Kudoさんのツイート: "NLPでの緻密な単語分割を人間がやっているとは思えないし、その道の専門家しか学習データ作れない実情を考えると、もっと大雑把で直感的な(教師なし)分割で良くて、緻密な分割はそこからの差分を「無理やり鍛えて適応する」と考えたほうが、実情を反映できそうな気がする。"
Taku Kudoさんのツイート: "BPEは分割手法が全く異なるので、kuromoji/mecabのモデルに変換できません。unigram だと、語彙テーブルの対数尤度に -1 かけて整数コストにし、未知語処理を切れば原理的には一緒になります。 https://t.co/lG0ZwGX8XY"
SentencePieceを形態素解析のように使えるAPIを公開した - Qiita
Taku Kudoさんのツイート: "DiscoGAN と CycleGAN アイデアは同じだと思うのだが、けっこうそう思っている人が多くて安心した。言語処理で使えるかは謎。可変長なので、元に戻したときの類似度の定義が難しい。"
Taku Kudoさんのツイート: "さもすべての自然言語処理に使えるような記述になってて注意が必要。特定言語の特定処理にしか使えない。言語・タスク非依存なのはNFKCぐらい… https://t.co/uNcIvduprw"
自然言語処理における前処理の種類とその威力 - Qiita
Taku Kudoさんのツイート: "実応用を考えるとすべての前処理は可逆変換であってほしい。情報を落としたり正規化するのは構わないが、元のテキストとの対応が復元できれば複数のNLPシステム間で結果統合がやりやすくなる。"
Taku Kudoさんのツイート: "SentencePiece の実験結果を足しました。(Src/Trg どちらかだけ等) KyTeaとSPが似た傾向を示していますが、SPは語彙サイズが 1/10で済みます。neologdとの組みあせが強いというのも面白いです。 https://t.co/v3glMTTOul"
google/sentencepiece

histric-2

Taku Kudoさんのツイート: "neologdと組み合わせると良いことは、長い単位で確実に分割できるところは分割しておいて、あとはデータ駆動でサブワード化するというお互いの長所が補完できるからだと思います。"
Taku Kudoさんのツイート: "sentencepieceは NFKC のサブセット(CCC並び替え以外)を実装しています。ICUを使って静的な正規化規則を作ります。実行時にはICUは必要ないです。 https://t.co/Q5EA1Uqweo"
Taku Kudoさんのツイート: "ICU経由で作ったNFKCルールはここにあります。独自正規化をしたいときは適当にいじって学習時に --normalization_rule_tsv で指定すると、モデルに正規化規則が埋め込まれます。 https://t.co/EnhDBkgbft"
Taku Kudoさんのツイート: "数年前に議論になったけど、短単位係り受けは形態論と統語論をごちゃまぜにしてて気持ち悪い。さらにUDは意味も扱おうとしてるので混乱。表層的な単語が文節相当になる言語は結構あるし、文節は特異な単位ではない。好きな形態素解析使えばいいし。 https://t.co/Lvk35I0lE9"
「語」とはなにか・再考 - murawaki の雑記 - rekkenグループ
Taku Kudoさんのツイート: "分散表現とは、単語がN次元で表現されるのではなく、N次元の実数ベクトル意味空間のランダムウォークから「単語相当」のシンボルがサンプリングされていると解釈するのが議論のとっかかり"
Taku Kudoさんのツイート: "実践的な内容という話なので、mmap の話とか入れてるけど、細かすぎてほんとうにいいのか謎。辞書等の大きいリソースをOS上でどう管理するかは、10年前は結構重要だったけど、今どきはどうなんだろう..."
Taku Kudoさんのツイート: "SentencePieceの語彙数が16384なのが気になる。 被覆率が99.95%になるよう語彙数を決めて(これが16000)、残りは unk になる。分割結果には<unk>シンボルが出てこないのが誤解の元か... https://t.co/Sh08fXSeze"
Small-NMT Task
Taku Kudoさんのツイート: "ちなみに、--character_coverage=1.0 とすれば、学習データの全ての文字が1語彙になります。ただし、CJKはゴミみたいな低頻度語が使われるのであまり現実的ではありません。99.95%の被覆率は、単語ベースにくらべれば圧倒的に高いですし。"
Taku Kudoさんのツイート: "重複あり(通常のカバレッジ)で98.59%は大きいです。spmの学習に使ったデータでのカバレッジですか? そうであれば、99.9%以上になるように最小語彙セットを作るので、何かがおかしいです。再現できるようなデータをいただければ調査します。 https://t.co/qw1Vk7QKzz"
Taku Kudoさんのツイート: "長男君の塾の国語の宿題に、品詞毎に単語を分類する問題があって、MeCabを使って解いたったら驚かれ、さらにこれを作ったのワシじゃといったら更に驚いてた。正確には辞書は作っていないけど…"
Taku Kudoさんのツイート: "sentencepiece の Python wrapper を足しました。pkg-config に依存しているので、sentencepiece の再インストールが必要です。あとは pip install でいけるはず。 https://t.co/muImH9AZhk"
sentencepiece/README.md at master · google/sentencepiece
Taku Kudoさんのツイート: "最大単語長さが極端に短い(4とか)設定の単語分割は、問題が極端に単純になるので軽くチートだと思う。完全に単語ラティス作れるし。"
帰国した情報系センター教員さんのツイート: "NLTKのword_tokenizeを使っていた箇所を、sentencepieceに置き換えたら2%精度が上がった(エラー率が50%下がった)。単語区切りって何なのかなあ‥‥"

histric-3

Taku Kudoさんのツイート: "JESC字幕コーパスでモデル作ってみたが、文脈を無視した文単位の評価なので、リファレンスより良い結果になっている。つまり、問題設定として成立していない。文脈にはみなさん興味ないのかな?"
Taku Kudoさんのツイート: "字幕みたいにノイズが多いコーパスは、学習がノロノロとしか進まず、イテレーション回せばまだ上がるかもしれない… みたいな事案が続いてる。 いまさらの気づきかもしれないが、綺麗なデータはすぐに収束する。"
Taku Kudoさんのツイート: "WMTの評価は、人手評価があるのでdetokenizeした結果を提出して、NIST tokenizerで分割・評価するのが通常だけど、最近は評価データを moses tokenizerで分割した結果をオラクルとして評価している事例が多い気がする。分割結果がオラクルだとするのは、C… https://t.co/vNMKlPltop"
Taku Kudoさんのツイート: "「コーパスと自然言語処理」のA氏担当(形態素解析)章を見たが、ザ・アカデミアという感じで私の本と方向性が違うし凄みを感じる。読者が違うからしょうがないにしても、私のは論文に書かれない実応用上役立つ知識集みたいな色合い。"
Taku Kudoさんのツイート: "例えば、形態素解析のラベル・長さバイアス問題は、それ以前の逐次実行手法が抱える問題であって、OSS含め利用可能な逐次実行形態素解析器がないことから普通の技術者が感じることはない。という判断で、私の本には書いていない。"
Taku Kudoさんのツイート: "MeCabの右文脈IDと左文脈IDがあって、実質同じIDなのに分ける必要があるのか? というのは、日本語の振る舞いとそれにどう工学的にアプローチしてきたか歴史的背景を説明する必要がある。"
Taku Kudoさんのツイート: "end-to-end のNLPやれるほどの十分な学習データがあるのは翻訳ぐらいしかないので,翻訳も少量のコーパスでうまくいくような方法論のほうが他分野へ応用がしやすいかも (単に少量のほうが実験が楽だという言いわけ)"
Taku Kudoさんのツイート: "未探索のハイパーパラメータがすごくいい結果を出すことが判明。 慌てて再実験。話の整合性もよくなるからいいとは思うが、結構センシティブな設定になるのが難。"
Taku Kudoさんのツイート: "本日発表したサブワード正則化のためのサンプリングAPIは、sentencepiece に組み込まれています。C++: https://t.co/Sjkn5Mf9id   Pythonのサンプル: https://t.co/wvVkUVS2uE"
Taku Kudoさんのツイート: "形態素解析WSで、工学的アカデミアと産業界の温度差を見た。工学は良くも悪くも精度が上がればいい立場。が、〇〇という語句が取り出せたとしても、後段処理が認識できなければ無意味。後段の知識と単語分割の知識と統一的に扱うようなやり方に産業界は向かっている (例 NeLogd)"
Taku Kudoさんのツイート: "後段の処理が機械学習ベースになってるのであれば、前にも言ったように分割を周辺化したりジョイントすればいいので、形態素解析はいらなくなる。"
Taku Kudoさんのツイート: "Adversarial Logit Pairing どうしてこんなんでうまくいくのか感が拭えない。"
Taku Kudoさんのツイート: "使う人少ないと思いますが、SentencePiece の unk/bos/eos/pad の ID を変更できるようになりました。https://t.co/qkIFgSqdgQ"
Taku Kudoさんのツイート: "mecab.h が酷い言われ方w Cインターフェイスと完全に対応とれる作りなんでそこんとこ忖度してほしい。 STLすら外に出ていないし、そもそも C++03 がターゲットなので unique_ptrない。どこでも動く最大公約数のライブラリだったら、Cだけでいいと思う。C++はおまけ。 https://t.co/MTZR4Ptu3w"
C++ラッパーを書く ~ C++の複雑怪奇な言語仕様を理解することによるメリット - Qiita
Taku Kudoさんのツイート: "RAII は分かるけど、イテレーターは糖衣でしかないので使う側がラップしてくれとしか言えない。むしろ ABI互換性が保証されない C++ で、複数のコンパイラ、DLLやシェアドライブラリまで考慮したヘッダを書くことにどれだけ神経をすり減らされることやら。で、結局Cに落ち着く。"
Taku Kudoさんのツイート: "SentencePiece 更新しました。ライブラリ内でのエラーは外に放出されるようになりました。Python は例外が飛んできます。 https://t.co/iMQl3eZLwJ"
Taku Kudoさんのツイート: "BLEUの評価時に 本体の前処理(単語分割)を使うなという話。以前は守られていたけど、NMTになってめちゃくちゃになった。 私も言い続けてきたけど、こうやってリファレンスがあるとありがたい。 https://t.co/KjQFbqr8vQ"
[1804.08771] A Call for Clarity in Reporting BLEU Scores

histric-4

Taku Kudoさんのツイート: "SentencePiece の Travis-CI ルールを更新。Linux は docker化、Macのテスト追加、python wrapperのテスト、wheel パッケージの作成 (アップロードはしない) などなど。https://t.co/6b25gqz57t"
Taku Kudoさんのツイート: "形態素解析の本を書いて、形態素と語をいっしょくたんに解析している現状をやめて、語の下位構造として形態素がある本来の形に、日本語もすべきだと強く思うようになった。"
Taku Kudoさんのツイート: "なんのリテラシーもないまま macOSをUnix代わりに使うのはプチ勘弁。 そもそも Linux 向けに作ってるものを、さも macOS で動いて当然みたいな態度を取られるとやる気なくす。Macサポートには、それなりの時間と金がかかるし、個人的に関わりたくない。我慢してるんです。"
Taku Kudoさんのツイート: "https://t.co/sX6nMqPzgv Universal Sentence Encode Lite で SentencePiece が使われています。SentencePiece のモデルファイルは、分割だけでなく、コンパイル済みのテキスト正規化ルールも内包する完全自己完結パッケージなので、再配布しても再現性が保証されます。"
Module google/universal-sentence-encoder-lite/1  |  TensorFlow
Taku Kudoさんのツイート: "spmのメモリアロケーション問題、伝家の宝刀 thread_local で誤魔化すか。負けた気分。tcmalloc にするだけで、最大40%ぐらい速くなる。"
Taku Kudoさんのツイート: "リソースの爆発を防ぐために、ある程度の上限を決めとくことはよくあるけど、そこを平気で超えるエクストリームユーザが少なからずいる。SentencePiece の語彙サイズを単語異なり数より大きくしたいとか。--split_by_whitespace=false で単語nグラムまで考慮できるけど、やりすぎな気が"
Taku Kudoさんのツイート: "subword-nmtのBPE分割がPythonでも比較的高速なのは、事前単語分割結果を前提として、単語単位で結果をキャッシュしているからのようだ。その前提が効かない日本語だとSentencePieceに比べて400倍ぐらい遅くなる。にしても、キャッシュの寿命を考えてないのはいかにも実験コードっぽい。"
Taku Kudoさんのツイート: "周りでもMBP離れが加速している。"
Taku Kudoさんのツイート: "サブワード=BPEという認識を無くしたい。要望があったので、語彙を制限する機能(subword-nmtにはある)を実装したけど、貪欲アルゴリズムであるがゆえ、ちょっとした拡張でも実装がめんどい。 https://t.co/HMTVCLPvRG"
Taku Kudoさんのツイート: "言語モデルで語彙を制限したければ、結局全探索するので該当するノードをラティスから取るだけでよい。BPEの場合は、将来どうなるかわからないので、処理の途中で止めるわけには行かず、いったん完全解を作って、マージした逆順に再分割する。"
Taku Kudoさんのツイート: "というか、この逆順の方法が正しいかどうかも謎。考えるのも無駄なので、深追いしない。"
Taku Kudoさんのツイート: "ちなみに、CJKの(教師なし)単語分割で、学習時にはがんばって語彙獲得をするけど、分割は最長一致という話をちらほら見る。これがうまくいくのは、アルファベット数が多くて解空間がスパースであるからだけど議論されることはあまりない。英語やDNAシーケンスでやると終わる。"
Taku Kudoさんのツイート: "さらに、BPEがうまくいくのは目的関数が劣モジュラだからで、劣モジュラではない尤度を目的関数にすると動かなくなる。が、CJKだと解空間がスパースなので尤度+貪欲法でもなんとなく動く。オリジナルのwordpiceモデルがCJKのみで尤度+貪欲法を使ってたのはこういう背景がある。"
Taku Kudoさんのツイート: "アルファベットの異なり数とか平均単語数の事前情報を無意識に仮定していることがあるので、言語非依存というときには注意が必要。"
Taku Kudoさんのツイート: "競プロ、Kaggle、トップカンファレンス、人材を評価する基準としては素晴らしいと思うけど、採用で本当に重要なのはどれかに偏らないように多様性を確保することだと思う。様々なバックグラウンドを持ったその道のプロが集まったチームのほうが経験的に楽しいし強い。NLPは性質上多様性は高いと思う。"
Taku Kudoさんのツイート: "社内で同様のリクエストがきたから想定内とは言え、エクストリームユーザが増えてきている。 https://t.co/hkFhjRZ8jH"
Does not recognize \n · Issue #101 · google/sentencepiece
Taku Kudoさんのツイート: "SPMは、デフォルトで<s>, </s> を特別視せず通常の文字列として扱います。内部トークンをリクエストに入れることで動作が変えられたり、これらがデコード時に外に漏れるというのは、(S|N)MTあるあるのバグです。SPMは、実験にも使えるようworkaroundがあります。詳細は以下。 https://t.co/WzQZ4mcSTC"
Understanding BOS/EOS symbols · Issue #102 · google/sentencepiece
Taku Kudoさんのツイート: "ユーザが入力できるコンテキストはXSSといった危険があるので、あらゆる状況で神経使わないといけないというのは普通のエンジニアの発想だが、どうも研究者にはピンとこないらしく、 <s> の話も適当なワークアラウンドで回避されることしばしば。住む世界が違うのか。"

histric-5

Taku Kudoさんのツイート: "TFとChainerのコードを並べると、たしかに前者の辛みは理解できるけど、機械学習プラットフォームとして目指す世界観を俯瞰すると、よくできてると思う。機会あったらどっかにまとめたい。"
Taku Kudoさんのツイート: "string_view (absl) にして入力はゼロコピーに (といっても、今までも独自StringPieceなのでパフォーマンスは変わらず)。 最上位のAPIに関しては極小 string_view もどきを作り、ここでもコピー発生しない。 https://t.co/87ifD4cs4Q"
Taku Kudoさんのツイート: "こっそり公開していたのですが、見つかったので... sentencepiece の tf ops を実装しています。生文を placeholder 経由で feed できるようになりますspm のモデルがグラフに埋め込まれるので、デプロイが楽になるかもです。https://t.co/2Ss9yIr7gV"
how to use sentecepiece tensorflow Op · Issue #125 · google/sentencepiece
Taku Kudoさんのツイート: "例の op を tf.contrib にもってくには、まず Windows 対応しないといけないし、そうなると cmake のほうが楽だし.. めんどい"
Taku Kudoさんのツイート: "発表あるのに現実逃避に cmake に移行中"
Taku Kudoさんのツイート: "メルボルン中にちまちまやっていた cmake 移行をマージしました。ついでに tcmalloc が利用可能のときはリンクするようにしました。言語やコーパスに依存しますが、10-40%ぐらい速くなります。 https://t.co/iMQl3eZLwJ"
Taku Kudoさんのツイート: "ACL終わったので…しばらく前に機械翻訳チームを離れ、別チームに移りました。ここ最近研究をやることになって運良くACL通ったのですが、やはり製品コードを触ってたいかなと。あと、研究として機械翻訳をやることは自分の興味とズレる。ACLもニッチな話で翻訳に応用したが正しいですし。"
Taku Kudoさんのツイート: "夜な夜な spm の windows 対応してたが、 dll の作成はほぼ諦め。手抜きして全 export を試みたが、protobuf 周りで未解決シンボル出まくり。やはり export するclass/関数を陽に定義せねば。そうなると設計も含めて結構変更が必要。改めて C++とdllは鬼門すぎる。"
Taku Kudoさんのツイート: "そもそも protobuf もデフォルトで静的リンクで、dll は「やりたきゃやれば」という立場。あと、dll 経由で protobuf をexposeするなと書いてある。つまり、dll 中にある protobuf message を main から使えない。 https://t.co/Flc7EBfaSt"
Taku Kudoさんのツイート: "ACL short paper は単に long の短い版じゃないよとちゃんと書いています。negative result もOKというのがわりと重要。ある意味多様性を担保してるのだと思っています。 https://t.co/Huxrk0QVGM"
Taku Kudoさんのツイート: "データの入手が容易だからしょうがないにしても、全体的に英語を前提としたNLPが増えている印象。怖いのは、英語の言語的特徴を陰にかつ無意識に仮定したモデルが増えると、なかなか辛いものがある。"
Taku Kudoさんのツイート: "TF hub 経由で elmo が使えるもよう。https://t.co/ZKeSVOxKhT"
Module google/elmo/2  |  TensorFlow Hub  |  TensorFlow
Taku Kudoさんのツイート: "多様性がないがしろにされる環境にいるとストレスで、さらにそれが無意識に起こっていることが残念だ、ってなことを某先生に言ったら、ことさら日本は多様性に対してコストがかかるから、意識しないと自然とそうなるよってことを言われ、妙に納得した。"
Taku Kudoさんのツイート: "現環境への破壊的操作満載のスクリプトでmac版 wheel を作っているのですが、手元で簡単に仮想環境が動かせない macOS でみなさんどうやってやりくりしているのでしょうか。実機なしで travis だけで開発している私は変かもしれないけど、それが普通であってほしい。 https://t.co/qdm1QWIhdi"
Taku Kudoさんのツイート: "自戒を込めて日本は、何かライブラリを書いた時に、コードの書きやすさ、気持ちよさ、見通しの良さといった主観的なことを前に出しすぎな気がする。さっさと仕事がしたい人にはどうでもよくて、何ができるか、何が違うのかという具体例を示さないと評価されにくい。"
Taku Kudoさんのツイート: "git tag 一発で、 travis/appveyor 上での linux, win, osx pip パッケージのビルド、テスト、デプロイが完結できるようになりました。組み合わせでもかなりある。数ヶ月前は、pip って何?って状態でしたが、一通り経験すると次が楽になりそうです。 https://t.co/jCxTkIUHvG"

histric-6

Taku Kudoさんのツイート: "文字が持つ密度が異なるので、漢字を入れて評価しないと言語ユニバーサルとは言いづらいかも。サブワードだと漢字圏の言語と英語の対訳をまぜて学習した場合、1文あたりのトークン数がだいたい同じになって、情報量的には同じなんだなということが実感できる。 https://t.co/7s6VrKUTdN"
[1808.09943] Revisiting Character-Based Neural Machine Translation with Capacity and Compression
Taku Kudoさんのツイート: "件の本の目次があります。その道のプロにはアタリマエのことしか書いていません。事前計算等の高速化の話は少し役に立つかも。 https://t.co/Y0UFcypcco"
Taku Kudoさんのツイート: "sentencepiece 遅すぎじゃという指摘を受けて、いろいろ修正中。LSTMに比べればダンチで速いのでそんなに頑張っていなかったけど、改めて世の中は広い。virtual call を止めたり、断片化が起きにくいようにまとめてメモリアロケーションするなど、普通の最適化で速くなりそげ。"
Taku Kudoさんのツイート: "本や論文の執筆のために Linux laptop を持ち歩いていたのですが、それから開放され、chromebook に戻ってきた。楽でよい。普段の仕事はこれだけでできるし。"
Taku Kudoさんのツイート: "conda 対応しろというリクエストが… むむむ"
Taku Kudoさんのツイート: "sentencepiece の normalizer に moses の再実装を追加したほうがよいのだろうか? 個人的/思想的には不本意ですが、ほぼほぼでファクトになってるのと、今の前世紀設計・実装は扱いにくいのではないかと。"
Taku Kudoさんのツイート: "長男くんに Python の fractions モジュールで有理数・分数計算を見せたら感動してた。次は sympy か"
Taku Kudoさんのツイート: "SentencePiece(unigram) が中国語評判分析でうまくいった話。事前分割が不必要等の意図通りの内容で嬉しい。これに限らず中国語でうまくいく話はよく聞く。中国語教師あり単語分割の進展をよそに、単純教師なしが良いというのは複雑。分割を目的にしてはいけないことの戒め https://t.co/S72B2grmlG"
Taku Kudoさんのツイート: "拙著の発売日です。これで夢の?印税生活"
Taku Kudoさんのツイート: "IBMモデル1的な教師なしで対応を取る手法は、汎用すぎてどこにいっても役に立っている。"
Taku Kudoさんのツイート: "件の本にも書きましたが、memory mapped file がサポートされてる言語だと、辞書中の様々な文字列情報をゼロコピーで扱えるので高速になります。JavaやPythonだとそのへんの苦労が想像できます。 https://t.co/5qPmSaLiAi"
Javaでつくる本格形態素解析器
Taku Kudoさんのツイート: "sentencepiece のissue がたまり気味。チーム離れてから完全副業状態なのでどうにもこうにも。"
Taku Kudoさんのツイート: "そもそも入力が単語列という話は、単語とは何かを考える人にとっては興味が薄いのです。これも英語至上主義の弊害かな..."
Taku Kudoさんのツイート: "単語とは何かを言うなら、文とは何かを考えずに文埋め込みを計算するのもよく分からない。話し言葉や古語には文がなく、書き言葉に導入された概念。主語省略は文を前提にした議論であって、英語と日本語の文相当のチャンクの定義のズレに注目したほうが面白いと思うが、私だけだろうな。"
Taku Kudoさんのツイート: "std::string 使えばC++で文字列処理楽だぜーといってたのはもはや過去の話に。NLPは内部で大量の文字列を扱うので、std::string_view にするかしないかでパフォーマンスに影響が。古き良きポインタ演算の世界へようこそ。コードの見た目も結構変わってきた。"
Taku Kudoさんのツイート: "mecab-unidic の中の人は、私以上に mecab を使いこなしているのは間違いないですが、開発当時の想定を遥かに超えて、現状では無駄が多いので、作り直したい気分ではある。"
Taku Kudoさんのツイート: "連接表が 715MByte というのはなんといいますか..."

histric-7

Taku Kudoさんのツイート: "absl::flat_hash_map が使えるようになってる。結構高速なのでおすすめ。https://t.co/d7EZPD0Hff"
abseil-cpp/flat_hash_map.h at master · abseil/abseil-cpp
Taku Kudoさんのツイート: "今書いてるコード flat_hash_map のルックアップが全体の70%ぐらいで、どこをどうやって高速化するか頭をかかえる。最適化を意識せずに書いたコードが普通に速かったのは嬉しい反面。"
Taku Kudoさんのツイート: "放置気味だったので、出発前に更新。tf 本体のバージョンをパッケージのバージョンに埋め込むようにした。ビルドもオフィシャル docker image 上で作るようにしたので、同じバージョンのオフィシャル tf pip パッケージであれば、ABI互換性は保たれるはず。 https://t.co/kEXgX05HCP"
tf-sentencepiece · PyPI
Taku Kudoさんのツイート: "ポスターデモ終了。BPEとどう違うのというのがFAQ。そうだよね。システム vs アルゴリズムの名前の違いなので紛らわしい。"
Taku Kudoさんのツイート: "ベンチマークに一喜一憂する弊害。SQuAD に限れば、機械は賢いパターンマッチャー/人間は範囲選択ミスばかりという分析もある。研究者はより純粋に「理解する」ことの本質をベンチマークを通じて知りたいのであって、人間を超える・超えないといった話ではない。 https://t.co/c65JvSZ2nr"
on-squad.key
Taku Kudoさんのツイート: "自然言語の encoder は、BERT 関連で急激に発展したけど、本丸は、decoder つまり、言語生成だと思っている。評価が難しいのが難点ですが。"
Taku Kudoさんのツイート: "#misreading sentencepieceについて補足。BPEは最長一致ではなく、学習時の文字結合ルールを同順番で再生することで行います。言語モデルの分割は、分割そのもののNLPっぽさや直接的な翻訳精度の向上が目的ではなく、スコアがある→複数分割/サンプリングできる→データ拡張して精度向上という流れです"
Taku Kudoさんのツイート: "#misreading BPEや言語モデルはデータ圧縮と関連があって、前者はテキスト全体のトークン数の最小化、後者はエントロピーの最小化をしています。LZとハフマン符号の違い。BPEは貪欲法ですが、目的関数が劣モジュラなので、あの方法でも理論的に厳密解との差が保証できます。"
Taku Kudoさんのツイート: "某MNLPで marian NMT の方に sentencepiece と sacreblue オシなので頑張ってねと告げられた。ただ protobuf の依存は嫌だから何とかせいとも言われた。いよいよ nanopb に移行か?"
Taku Kudoさんのツイート: "N→G に移った経験から言うと、Nのほうが研究テーマの裁量を含め圧倒的に自由だった。MeCabやれたし。純に自分の研究・開発したのなら、アカデミアだと助言された(そう思う)。つまり報酬低いからダメといった単純な話ではなく、仕事内容、裁量、自由度を含めて考える必要あり。"
Taku Kudoさんのツイート: "もちろん究極の自由は起業なんでしょうね。私はその能力がないので無理です。"
Taku Kudoさんのツイート: "メモリ4Gがバズってるみたいですが、手元の自宅普段使いマシンは、メモリ4G ARMv8 の chromebook 。特に困っていない。"
Taku Kudoさんのツイート: "marian nmt がサポートするようになって、実践的で有益なフィードバックをいただけるようになったのは幸いだが、それなりの作業量が必要だと思われる。"
Taku Kudoさんのツイート: "https://t.co/ik4PyD4Ay1 仕事増えた"
Information about protobuf · Issue #254 · google/sentencepiece
Taku Kudoさんのツイート: "BCCWJ/Unidic のこの手の話題は枚挙に暇がない。「仕事部屋」や「空き部屋」「山仕事」が1短単位というのは、原則を知っていればちゃんと理解できる。"
Taku Kudoさんのツイート: "BCCWJ/Unidic で、「かけそば」は1語、「かけうどん」は2語というもの、短単位認定基準を適用するとそうであるとしか言えない。「うどん」の語源は諸説あるみたいだが、Unidicでは漢語にしてる。"
Taku Kudoさんのツイート: "メジャーNMTに取り入れられてお星様増えたし、周辺がなんだか騒がしい。家も本業もいろいろ忙しく何もできてない。"
Taku Kudoさんのツイート: "PyPI のダウンロード統計が見れる。git clone (C++) よりも圧倒的に多い。https://t.co/o6AjvKfyk1"
PyPI Download Stats
Taku Kudoさんのツイート: "mecabのCRF学習は、2000年前半のメモリー4Gぐらいの環境でなんとか動くようキャッシュ等の工夫をめちゃくちゃしてたけど、今日日数十〜百Gのメモリーが使えるので、そもそも必要ないかもしれない。"
Taku Kudoさんのツイート: "https://t.co/ik4PyD4Ay1 protobuf への依存を無理やり解決した。当初のやり方とは違いますが。"
中川裕志さんのツイート: "@taku910 @mamoruk ダブル配列日本発は存じております。NLP解析系アルゴリズムに興味を持っている学生は見たことないですが、言語あるいは言語学そのものに興味を持っている学生は少しはいて、そういう人がアルゴリズムに入っていくという感じでしょう。"

histric-8

Taku Kudoさんのツイート: "NLPが他のML応用と少し異質なのは、データでなんとか学習可能な問題とは別に、知識がないとどうにも解けない問題がいっぱいあること。固有名詞の翻訳・読み推定が例。知識を学習データとして与えても学習される保証ないし、直接知識から出力させたいジレンマに陥る。"
Taku Kudoさんのツイート: "今やってること、あるNLPタスクの疑似学習データ作成に使えるのではないかと思えてきた。多分誰もやっていないはず。"
Taku Kudoさんのツイート: "sentencepiece (python) の使い方の網羅的な colab page を書いた。今回の出張の半分ぐらいはこれ関係。どうなるか謎なプロジェクトだったし、メインの仕事でもないけど、ここに来てユーザが増えている印象。 https://t.co/kYpTSAJkuR"
sentencepiece/sentencepiece_python_module_example.ipynb at master · google/sentencepiece
Taku Kudoさんのツイート: "mecab(単語分割)をsentencepieceの語彙獲得の制約のみに使うというやり方があります (OSS版では未実装だが検証済み) サブワードが形態素をそれなりに尊重するようになり、かつ実際の分割時にはmecabが必要ないメリットがあります。"
Taku Kudoさんのツイート: "sentencepieceはモデルの再現性と自己完結性にかなり気を使っていて、 --self_test_sample_size=1000とすると、学習データの一部とその時の分割結果をモデルファイルに埋め込み、モデルの読み込み時に整合性を自己診断する。学習データのリークを防ぐためにデフォルトはオフ。 https://t.co/LY9vxRi81m"
sentencepiece/sentencepiece_model.proto at master · google/sentencepiece
Taku Kudoさんのツイート: "tf ファミリーとの親和性強化のため、sentencepiece のビルド周りが不安定になっています。同僚さんが頑張ってくれていますが、そのうち落ち着くはずです。pip でダウンロードできるものは今のところ影響なしです。"
Taku Kudoさんのツイート: "SentencePieceに関する2つの論文も、BPEより良いという結論は出していないし、それが意図通り。… "
Yusuke Odaさんのツイート: "Wordpiece (BPE) と SentencePieceに性能上の差異はほとんどないという認識"
Taku Kudoさんのツイート: "未知語対策に、漢字をそれっぽい英語に1:1で可逆変換する方法ってないかな。意味と頻度を適度に保持すれば、そのままサブワードが動かしやすくなる。… "
Kosuke Tsujinoさんのツイート: "多言語sentencepieceモデルを学習したいとして、言語間で量を揃えて混合コーパスを作るだけでは十分でないということだ"
Taku Kudoさんのツイート: "またIBMモデルみたいなものを書いてしまった"
Taku Kudoさんのツイート: "少し認識が違います。CJKと英語を混ぜてサブワードを作っても、データ圧縮が基礎なってるので一文あたりのトークン数はあまり変わりません。つまり1サブワードあたりの情報量は均質です。問題は漢字の種類数の多さで、未知語完全になくすには全文字を入れることになり文字分割と変わらなくなります… https://t.co/jkrBuy8gyt"
Kosuke Tsujinoさんのツイート: "言語ごと等量にコーパスを混ぜるとロマンス系言語(実質的に英語含む)に共有されているラテン語系の語幹が勝ちがち、プラス、文字数の差を考えると西欧言語とCJKでものすごくサブワード粒度が不均等になるのだ…"
Taku KudoさんはTwitterを使っています: 「デフォルトを全角スペースにして半角スペースをopt-in するのが定石。逆にするから混乱する。こういうしょーもないところは頑張るところではない。」 / Twitter
Taku KudoさんはTwitterを使っています: 「BPE で subword regularization する話。自分の仕事が再現・継続されていることが何よりうれしい。」 / Twitter
Lena VoitaさんはTwitterを使っています: 「[1/3] BPE-dropout: our new paper by Ivan Provilkov and Dmitrii Emelianenko! https://t.co/9pnuK8qlss In training, we corrupt segmentation procedure of BPE to produce different segmentations of the same word. In inference, we use standard BPE and outperform BPE and sentencepiece. https://t.co/fA3pfHODzL」 / Twitter
[1910.13267] BPE-Dropout: Simple and Effective Subword Regularization
Taku KudoさんはTwitterを使っています: 「できません。任意の連結を認めると、語彙数がコントール不能になり、語彙数を固定するというサブワードの考え方に反します。強制的に分割することは可能です。」 / Twitter
vochicongさんはTwitterを使っています: 「@taku910 MeCabで分かち書きしてから、SentencePieceを適用しています。SPでトークンを更に分割することなく、連結だけ行うような動きをさせることはできますか。」 / Twitter
Taku KudoさんはTwitterを使っています: 「不自然と言われても、サブワードはそういうものとしか言えません。語彙数が固定されているので、限られたパイを取り合ってるだけです。」 / Twitter
vochicongさんはTwitterを使っています: 「現状、SPで「ソニー」が「ソ/ニー」に分割されてしまうのは不自然です。」 / Twitter

Taku KudoさんはTwitterを使っています: 「Subword regularization の追試論文その2? うまくいかないという声を時々聞きますが、元論文にもこの論文にもあるように、十分データがある+同一ドメインで評価しているとほとんど変わりません。小規模データor 別ドメインで有効です。 https://t.co/ZZ7lxz9QGY」 / Twitter
[1911.03109] Domain Robustness in Neural Machine Translation
Taku KudoさんはTwitterを使っています: 「「外国人参政権」を形態素解析の問題の難しさの例として使うのはいいけど、システム間の優劣に使うのはミスリード。学習データが足りないだけで、既存モデルでも扱える。形態素解析に限らず、モデルがだめなのかデータ不足なのか区別して議論してほしい。」 / Twitter
Taku KudoさんはTwitterを使っています 「mecabが速いと言われてますが、初期の形態素解析はどれもそれほど遅くなく、chasen も juman もせいぜい2-5倍遅い程度だったんです。突如として速い実装が出たんではなく、周りがどんどん遅くなっていった。」 / Twitter
Taku KudoさんはTwitterを使っています 「高速な形態素解析解析といえば「すもも」がありました。なんかのパッチ書いて送った気が... この時代は学部生だったので中身もよく分かってなく単なるユーザでした。ちなみに juman2.0 時代はTRIE使っていないので、フェアな比較にはならないです。 https://t.co/GYQ2n76ILR」 / Twitter
情報学広場:情報処理学会電子図書館
Taku KudoさんはTwitterを使っています 「性能には直接影響はないが、実際それが起きるとユーザが嫌がる事例ってのがIMEにはあって、評価を難しくしている。そういうのを潰すと性能が低下することもありジレンマ。」 / Twitter
Taku KudoさんはTwitterを使っています 「たとえばIMEで次の単語を予測する場合、予測が全部外れても無視すればいい話。でも予測した単語が完全に的外れだと印象がすこぶる悪い。正解データとの比較だけではこの悪さ具合が評価できない。」 / Twitter
Taku KudoさんはTwitterを使っています 「旧長尾研卒の私ですが、研究室で寝ていると「黒はし君いる〜」とふら〜っと長尾先生が入ってこられ、若かりし自分は不躾な対応しかできなかっとこは苦い思い出です。データで殴るNLPの先駆けで、ツールやリソースの整備に尽力され、実世界で動くNLPに多大なる影響を与えたことは疑いの余地がありません」 / Twitter
Taku KudoさんはTwitterを使っています 「日本語TTSをやってたがこの辺はまだ未解決。結局、エラーがあったら機動的に再学習できるモデル化がまず重要。さらに、単語分割、読み→文字のアライメント、読み表記の多様性は気にせず、レイジーに記述できるようにすることで、日本語話者ならだれでも修正できるようになると良いサイクルが生まれる」 / Twitter
山本 和英(言語商会)さんはTwitterを使っています 「今自然言語処理を勉強されている方は、例題として「表」を「ひょう/おもて」に正しく読み分ける手法を考えてみてください。機械学習でやるなら、そのための学習データを如何に低コストで(=楽をして)集めるかが課題です。結構難しいですよ。ちなみに答えはありません。」 / Twitter
Taku KudoさんはTwitterを使っています 「レイジーの中には、部分アノテーションも当然含まれます。」 / Twitter
Taku KudoさんはTwitterを使っています 「日本語読み推定 kytea でええやんという話もありますが、アノテーションに単語境界の意識がいるので不十分です。文中の任意の部分文字列に読み・発音をルーズに書けるのが理想です。単位の異なる読み情報等を柔軟に取り入れることができます。ただ、ノイズに弱いので、工夫は必要です。」 / Twitter
Taku KudoさんはTwitterを使っています 「neologd は長い複合語を一語にするアプローチを採っています。副作用がない利点がありますが、その情報が別の文脈に再利用されないもったいなさがあります。」 / Twitter
Taku KudoさんはTwitterを使っています 「様々な単位・粒度で読みが部分的に・ルーズに付与された辞書やコーパスがあって、そこから読みモデルを作る。私は結構泥臭くやったけど、今どきの方法で綺麗に作れたら素晴らしい成果になると思います。」 / Twitter

Sentencepiece : ニューラル言語処理向けトークナイザ - Qiita
google/sentencepiece
Taku Kudo
タスクに合わせたトークナイザ、単語分割に関連したポエム - yasuhisa's blog
形態素解析をして単語を取り出せているつもり・・・か? - Qiita
Elasticsearchのための新しい形態素解析器 「Sudachi」 - Qiita
Sentencepiece : ニューラル言語処理向けトークナイザ - Qiita
形態素解析
形態素解析器 Sudachi の辞書が手に入ったので Go で遊んでみた - 押してダメならふて寝しろ
Subword segmentaion と SentencePiece について - Qiita
高岡一馬さんのツイート: "SudachiとNWJCをつかった日本語単語分散表現を公開しました。Apacheライセンスなので商用利用も可能です。 https://t.co/lRkJvRt79V"
大規模コーパスと複数粒度分割による日本語単語分散表現
32ビットCygwin向けmecab-cygwin32 | yasuokaの日記 | スラド
日本語形態素解析エンジンnagisaは古典中国語(漢文)を学習できるのか | yasuokaの日記 | スラド
kagome v1.11.1 をリリースしました。あるいは sync.Pool にまつわるバグの修正 - 押してダメならふて寝しろ
ゼロから作った形態素解析器Taiyakiで学ぶ形態素解析 - The jonki
形態素解析器Sudachiの「辞書」はどのように作られているか: 複数の分割単位を例として

スクレイピング

匿名加工情報

高木浩光@自宅の日記 - 匿名加工情報は何でないか・前編(保護法改正はどうなった その2)
高木浩光@自宅の日記 - 匿名加工情報は何でないか・前編の2(保護法改正はどうなった その4)
高木浩光@自宅の日記 - 匿名加工情報は何でないか・中編(保護法改正はどうなった その3)
高木浩光@自宅の日記 - 匿名加工情報は何でないか・後編(保護法改正はどうなった その7)

クローリング除外

まとめのまとめ - Google 検索
NAVER まとめ[情報をデザインする。キュレーションプラットフォーム]
Twitter

ZMap

The ZMap Project
zmap/zmap: ZMap Internet Scanner
【論文メモ】ZMap: Fast Internet-Wide Scanning and its Security Applications (2013)

Anaconda

Python

Python

python/cpython: The Python programming language
Welcome to Python.org
概要 — Python 3.5.1 ドキュメント
12.6. sqlite3 — SQLite データベースに対する DB-API 2.0 インタフェース — Python 3.5.1 ドキュメント
10. 完全な文法仕様 — Python 3.5.1 ドキュメント
Python 言語リファレンス — Python 3.5.1 ドキュメント
3.6.2 Documentation
pip 9.0.1 : Python Package Index
wheel 0.30.0a0 : Python Package Index
PyCharm
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
パッケージのインストール — Python Packaging User Guide ドキュメント
Installation — virtualenv 15.2.0.dev0 documentation
Pythonパッケージのドキュメントホスティングサービス「pydoc.io」が公開される | OSDN Magazine
Pydoc
「The Next Platform」で読むグローバルITトレンド(11):PythonはFPGAアクセラレーションの裾野を広げるか (1/3) - @IT
pipenv: 人間のためのPython開発ワークフロー — pipenv 8.1.9 ドキュメント
DebuggingWithGdb - Python Wiki
Python debugging configurations in Visual Studio Code

IDLE

25.5. IDLE — Python 3.6.1 ドキュメント
25.5. IDLE — Python 3.6.2 documentation
IDLE (Python) - Wikipedia
IDLE - Wikipedia
Python入門(1) IDLEを使う
Python入門(1) Python世界に入る
Pythonで学ぶ 基礎からのプログラミング入門 (2) プログラミングの環境を整えよう | マイナビニュース
【初心者向け】IDLEを使ってPythonプログラムを作成して実行する一連の流れ
【初心者向け】IDLEを使ってはじめてのPythonプログラムを対話モードで実行する
PythonのIDLEでデバッグを行う方法 | ガンマソフト株式会社
Python入門 - IDLEとPythonの基本的な使い方 - Python Works

pdb

27.3. pdb — Python デバッガ — Python 3.6.1 ドキュメント
27.3. pdb — The Python Debugger — Python 3.6.2 documentation
PythonデバッグTips - Qiita
【Python】いつまでprintデバッグで消耗してるの? - らっちゃいブログ
Pythonで学ぶ 基礎からのプログラミング入門 (35) デバッグの手法について知ろう | マイナビニュース
Pythonにおける効率的なデバック方法入門 - MyEnigma
Pythonデバッガ(pdb)とテスト(pytest)についてのメモ - c-bata web

Lint

flake8

Python の Lint (文法チェッカ) まとめ - flake8 + hacking を使う - - Qiita
dreadatour/Flake8Lint: Sublime Text plugin for lint Python files
flake8 3.3.0 : Python Package Index
Flake8: Your Tool For Style Guide Enforcement — flake8 3.3.0 documentation
Sublime Text3でPython開発環境を整えるためにインストールしたパッケージと設定 | まめりうむ
よみさんのツイート: "flake8はmapとかfilter使っても怒られないからすき"
Vimメモ : flake8でPythonのコードをチェックする - もた日記
VimからFlake8を使うプラグイン - Qiita
Vim - Pythonのflake8やsyntasticで特定のエラーを無視する - ぼっち勉強会

pep8

はじめに — pep8-ja 1.0 ドキュメント
Python のコーディング規約 PEP8 に準拠する - Qiita
PEP 8 -- Style Guide for Python Code | Python.org
[Python] コーディング規約(PEP8)を学んで、Pythonらしいコードを書く - YoheiM .NET
mumumu/pep8-ja: PEP8 日本語版
pep8 - Python入門
Python で pep-8 の「E501 line too long」にしないためのコーディングテクニック | 技術的生存報告記
Pythonで学ぶ 基礎からのプログラミング入門 (36) Pythonのコーディング規約「PEP8」 | マイナビニュース
PEP8を読んでみよう
Vimメモ : vim-python-pep8-indentでインデントをPEP8に準拠させる - もた日記
vimでpythonのコーディングスタイルを自動でチェック&自動修正する - ton-tech-ton

pylint

Pylint - code analysis for Python | www.pylint.org
Pylintの使い方メモ - Qiita
Pythonの主要なLint(pep8, pylint, flake8)の設定方法まとめ - Qiita
Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ! - SideCI Blog
PyLint で Python コードの質をチェックする | CUBE SUGAR STORAGE
Python: pylint でバージョン 3.x 非互換のシンタックスを見つけ出す - CUBE SUGAR CONTAINER
[Python]pep8とpylintの設定ファイルを作成して一部の警告を非表示にする - dackdive's blog
pylint 1.6.5 : Python Package Index
【python】コードの品質管理について その2 pylint - simudaru's blog
[vim]Syntasticでpython用の設定をする - dackdive's blog

コード補完

Python用のvimの設定 - memorandum

ライブラリ

csvkit

csvkit 1.0.1 — csvkit 1.0.1 documentation
wireservice/csvkit: A suite of utilities for converting to and working with CSV, the king of tabular file formats.

Grumpy

本の虫: GoogleがGoによるPython実装、Grumpyを発表
Google Open Source Blog: Grumpy: Go running Python!
渋川よしきさんのツイート: "1スレッドだと性能で負けちゃうのか。ウェブサービスぐらいしか美味しい用途なさそう。 : Google Open Source Blog:Grumpy: Go running Python! https://t.co/2N5V88QLWb via @google"

Numba

Numba — Numba
Python高速化 Numba入門 その1 - ゆとりデータサイエンティストの諸々所感

ByteWeight

るくすさんのツイート: "byteweightとかいう謎のpythonモジュール出てきたので調べたら、David Brumley先生が作ったバイナリから関数を抽出するモジュールらしい。 https://t.co/1mnWNjoGTF"
るくすさんのツイート: "ああ USENIX Sec'14にちゃんと論文があるんだ BYTEWEIGHT: Learning to Recognize Functions in Binary Code https://t.co/oMD3wcuvW8"
るくすさんのツイート: "実際に作ったのはDavid Brumley先生じゃないかもしれない CMUの誰かだ"
ByteWeight
BYTEWEIGHT: Learning to Recognize Functions in Binary Code | USENIX

pandas

Python Data Analysis Library — pandas: Python Data Analysis Library
pandas.DataFrame — pandas 0.20.1 documentation
pandas-dev/pandas: Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
Pandas - Wikipedia
pandas (software) - Wikipedia
Python Pandasでのデータ操作の初歩まとめ − 前半:データ作成&操作編 - Qiita
10分でPandasを学ぶ - Qiita
Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments
Python pandas データのイテレーションと関数適用、pipe - StatsFragments

3.2. Sympy : Python での代数計算 — Scipy lecture notes
christiangoltz/shaape: Shaape is an ascii art to image converter designed to be used with asciidoc.
PyPIに悪意のあるパッケージがアップロードされていた | スラド
Pythonの非同期通信(asyncioモジュール)入門を書きました - ゆくゆくは有へと

WSGI

Web Server Gateway Interface - Wikipedia
meinheld 0.6.1 : Python Package Index
Meinheld
mopemope/meinheld: meinheld is a high performance asynchronous WSGI Web Server (based on picoev)
meinheld + WebSocket + mongodb しようとした時エラーが出る - Qiita

Selenium

Pythonでスクレイピング(Selenium) - 自分基準
Pythonでスクレイピング2(Selenium):UFJの残高取得 - 自分基準
Selenium でサポートされているプラットフォーム

MicroPython

MicroPython - Python for microcontrollers
micropython/micropython: MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
Micro Python で組み込み Python
micropythonを始めよう(ESP8266編) - かいしゃぐらし!
Overview — MicroPython 1.8.7 documentation
micropython/micropython-unicorn: MicroPython on Unicorn

Python AST

32.2. ast — 抽象構文木 — Python 3.5.2 ドキュメント
Python の ast モジュール入門 (抽象構文木を辿る) - Qiita
Python: ast (Abstract Syntax Tree: 抽象構文木) モジュールについて - CUBE SUGAR CONTAINER
Python とマクロ、インポートフックと抽象構文木 - forest book
Python の ast モジュール入門 (NodeVisitor を使う) - Qiita
Python: ast (Abstract Syntax Tree: 抽象構文木)... | CUBE SUGAR STORAGE
31.3 Python 抽象構文
Python/AST作成を読む - Code Reading Wiki
[Python] ast.literal_evalを使って文字列を評価する | aoshiman.org

最近の Python-dev

DSAS開発者の部屋:最近の Python-dev (2017-01)
DSAS開発者の部屋:最近の Python-dev (2017-02)
DSAS開発者の部屋:最近のPython-dev (2017-05)
DSAS開発者の部屋:最近のPython-dev(2017-06)
DSAS開発者の部屋:最近のPython-dev(2017-09)
DSAS開発者の部屋:最近のPython-dev(2018-01)

YAMAGUCHI::weblog

Pythonの環境設定でむかついてる人はとりあえずこれをコピペで実行してください 2017.01 - YAMAGUCHI::weblog
Pythonの仮想環境構築 2017.01版 - YAMAGUCHI::weblog
wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog

methaneのブログ

Python を速くする取り組み - methaneのブログ
Python と Ruby と typing - methaneのブログ
Python 3.6 の(個人的に)注目の変更点 - methaneのブログ
Windows では2020年を待たずに Python 2.7 が使い物にならなくなっていく - methaneのブログ

blog

本の虫: Pythonのpymothoaが興味深い
python3.3からparseまわりでなんか変わったのかな - Gentoo metalog
pip 9.1 から msgpack が使われるようです - methaneのブログ
Python の正規表現で IGNORECASE するときは気をつけよう - methaneのブログ
Pythonのマルチスレッドで気を付けるべきこと | 凡人のブログ
pandas DataFrameを省メモリにpickleする - ABEJA Tech Blog
The History of Python.jp
AWS LambdaがPython3.6に対応したのでpyenvとpyenv-virtualenvで環境構築してみた | Developers.IO
PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
Pythonの環境構築を自分なりに整理してみる – Aki Ariga – Medium
Virtualenv vs. Pyenv - Sho Shimauchi | Tableau Public
Flask を使ったプロジェクトひな形
DSAS開発者の部屋:Pythonアプリの起動を高速化する
リスト内包のひみつ - atsuoishimoto's diary
PythonのコードをPython ASTベースでRubyに変換を行う py2rb.py 0.1.0 をリリースしました。 - @naitohの日記
Python 3でpopcountを計算する - にせねこメモ
はじめてのにき(2017-11-08)
はじめてのにき(2018-06-26)
【Google Colab】Python環境の使い方(無料でGPU付き) | アルゴリズム雑記
Pythonの順序付き辞書OrderedDictの使い方 | note.nkmk.me
JVM上で動くPython 3処理系「cafebabepy」の仕組みと実装 Pythonの深くて美しい言語仕様 - ログミーTech(テック)
cafebabepy PyCon JP 2018 - Speaker Deck
Pythonを経由してC++のオブジェクトを扱う方法 - FPGA開発日記

OSDN

「Python 3.6」がリリース | OSDN Magazine
「Python 3.5」リリース、非同期プログラミング機能の強化や型ヒントの記述機能を導入 | OSDN Magazine
Python向けのグラフィカルなシェル「IPython 5.3」リリース | OSDN Magazine
Google、Pythonコードからコマンドラインインターフェイスを自動生成するツール「Python Fire」を発表 | OSDN Magazine
「PyPy 5.9」リリース、NumPyとPandasをPython 2.7向けでサポート | OSDN Magazine
Pythonパッケージ管理ツール「Pip 10」リリース | OSDN Magazine
QtのPythonバインディング「Qt for Python」、初の公式リリース | OSDN Magazine
「Python 3.7」リリース、型アノーテーションの強化などさまざまな機能が追加される | OSDN Magazine
Python考案者のGuido van Rossum氏がPythonに関する意思決定から引退することを表明 | OSDN Magazine
「Python 3.8」リリース、新たに代入式を導入 | OSDN Magazine
Pythonがリリーススケジュールを変更、「Python 3.9」より毎年10月にメジャーリリース公開 | OSDN Magazine

GitHub

SigThief

SigThief: PE signature tool | Firmware Security
secretsquirrel/SigThief: Stealing Signatures and Making One Invalid Signature at a Time

NumPy — NumPy
numpy/numpy: Numpy main repository
riolet/pol: Python one-liners: Awk-like one-liners for python
Taku Kudoさんのツイート: "長いことpypy上に名前だけが予約されていた CLIFが公開されていた。 https://t.co/FmVt0fGYwq C++のPythonラッパをお気楽に作るやつです。SWIGとちがって公開したい関数をoptinするところが良い。 #ifdef SWIG しなくてよい。"
google/clif: Wrapper generator foundation to wrap C++ for Python and other languages using LLVM.
google/skylark: Skylark in Go: the Skylark configuration language, implemented in Go
Overview — skylark 0.9.0 documentation
hit9/skylark: No longer maintained. A micro python orm for mysql and sqlite3.
mjpost/sacreBLEU: Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons

Wikipedia

IDLE (Python) - Wikipedia
オフサイドルール - Wikipedia

Qiita

Rubyist が pyenv を使うときに知っておいてほしいこと - Qiita
Anaconda は Environment Isolation Tool (環境分離ツール) ではない - Qiita
闇Pythonista入門(Pythonワンライナーのテクニック集) - Qiita
Pythonの可視化ツールはHoloViewsが標準になるかもしれない - Qiita
Anaconda で Python 環境をインストールする - Qiita
リスト内包表記の活用と悪用 - Qiita
Pythonのリスト内包表記はチューリング完全だから純LISPだって実装できる - Qiita
pythonでローカルwebサーバを立ち上げる - Qiita
Pipenvでnpm-scriptsみたいにPipfileへコマンドを書く - Qiita

Twitter

その他

Hajime Moritaさんのツイート: "コンパイラやIDEががんばってくれない言語はライブラリ作る人が苦労するしかない気がする。しかしPythonはtype hintingいれてPyCharmをつかうとあら不思議、すっかりJavaみたいになります。JetBrainsやばい。彼らのIDEはぜんぶJava界の陰謀。"
Tsuyoshi Mishinaさんのツイート: "C++で実装したライブラリからCリンケージ関数をエクスポート→ctypesでラップに初挑戦。ネイティブコードの高速さとPythonの豊富なデータ解析機能の良いとこ取り。os.getpid()でカーネルのプロセスIDを取得すれば、VSのデバッガにアタッチも可能。これは強力です。 https://t.co/UW3AZyQlRn"
Manabu Terada@CMScomさんのツイート: "Pyenvはやめよう。Python標準の venv を使ったほうが良いよ。 #PyNyumon 参考はこちら https://t.co/Z9kKadEPNE"
INADA Naokiさんのツイート: "念のため言っておくと、pipenvはpipfileとvenvを組み合わせて便利にするツールで、pipfile(requirementsやlockの新フォーマット)はpypaが開発してます。 https://t.co/0w0yTr4tkm"
Kengo Sawatsuさんのツイート: "@shirouzu 僕も最初「えー結局win32をctypesシなくちゃいけないの?学習メンドクサ!」ってなりましたが、pywin32で殆ど呼び出せるので、そちらを検討したらどうでしょうか? https://t.co/m0rQg1v2rH win32file.GetDriveType("e:\")… https://t.co/W0p2WMX7jd"
win32com - PyWin32(Python for Windows extensions) - 愚鈍人
tomo🐧さんのツイート: "__matmul__ が Python 3.5 で導入されたのってあんまり有名じゃないのな https://t.co/I2qm7MlGcX"
What’s New In Python 3.5 — Python 3.6.4 ドキュメント
Atsuo Ishimotoさんのツイート: "よく勘違いしてる人がいるが、range()が返すのはイテレータでもジェネレータでもないから注意するんだ。… "
Kazuho Okuさんのツイート: "AST変わらなくても変数名変えたら動作変わる「可能性」はあるでしょ。例外のメッセージだって変わるわけだし。テストがめんどくさい場合の線引きとしては妥当だと思う / “20 万行超のコードベースをテストせずにリファクタリングリリー…” https://t.co/G6YswLHPFv"
Takeshi ITOHさんのツイート: "式を組み立ててevalするのも影響ありますね。… "

@fadis_

Fadisさんのツイート: "Python-3.7.0からdata classes(PEP 557)がサポートされる。dataclass指定付きで作成されたクラスは含まれているメンバとその初期値を列挙するだけで__init__と__repr__と各種比較演算と__hash__が暗黙に定義される。https://t.co/PNNYmOv8bd"
Fadisさんのツイート: "A-Zで分けて分散しない案件といえばこれを思い出すんだけど、今のpypiは、パッケージ名じゃなくて何かのハッシュでディレクトリ分けるようになってる https://t.co/4gv6Uu54z9"
Fadisさんのツイート: "Pythonに、式の中で右辺値に名前をつける文法が提案されていて、でも「その名前を=の左辺にもって来たら何が起こるんだ!!」ってなってPythonガチ勢達が溢れ出るカオスを抑え込むのに奔走してるっぽい"
Fadisさんのツイート: "PEP 572 -- Syntax for Statement-Local Name Bindings https://t.co/3ADdHHX4pT"
Fadisさんのツイート: "Python 3.7がリリースされた。Python 3.7ではpdbのimport無しでデバッガに落とせる組み込み関数breakpoint()、Cの構造体のように使われるクラスをより簡単に作れるようにするdataclass、コルーチンローカルな変数を作るContextVar等の機能が追加される https://t.co/eLOQq9dSRb"
Python Insider

@shirouzu

SHIROUZU(白水啓章)さんのツイート: "Python3でsymlinkかどうかの判定関数(is_symlink)は存在するが、Junctionかどうかの判定関数はない様子。 (さらにリパースポイント全般の種別を知る方法が知りたいところ) ctypes等でAPI呼び出しするしかないのかな?"
SHIROUZU(白水啓章)さんのツイート: "Windowsのstat_resultにはst_file_attributesメンバがあり、os.stat().st_file_attributes & stat.FILE_ATTRIBUTE_REPARSE_POINT などとすれば、リパースポイントかどうかの判定が可能。 https://t.co/JeE4pE4N0k"
SHIROUZU(白水啓章)さんのツイート: "この方法だとJunction判定は可能だが、symlinkファイルは解決後のstat値となるため(Junctionではそうならない不思議)、そちらも判定したい場合、is_symlinkは別途使うか、os.lstat()を別途発行する必要あり。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、Python1.5xは共通鍵周りが無いのも困ったが、それ以上にunicodeどころかSJIS/EUCですら変換ライブラリが無かった。 で、kconvライブラリの利用が殆ど唯一の選択肢だったが、GPL縛りありという状態と。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "こんなPython1.xの歴史を経ていると、Python2.2-2.4辺りで入った、unicodeおよびcjkcodecs周りは非常な福音だった…が、Python3.xの文字列=UCS-4統一はそれやりすぎだろ感(笑) 寄せるなら、utf-8統一の方がうれしかったな…どうせIVSとかあって1つの器に1文字情報が入り切るわけでもないし。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "CythonとPyPy比較をしているページをいくつか見てみたが、素のPythonのままだとPyPy優勢が多く、cdefや引数型指定を多用するとCythonが圧勝する例が多い印象。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "くだんのブログでは、「取り下げた修正(AST が変化する修正)」に「変数名の typo 修正」を入れているような。 Pythonだと、ローカル変数も変数名がバイトコードに残るわけで。… "
鯉江さんのツイート: "lexical scopeならローカル変数名の変更はほかの名前を隠してしまわないならテスト不要になるべきところASTダンプ単純比較だと擬陽性になるが、そもそもpythonはバイトコードが違ってしまうから影響がないとは言えないということでしょうか? ところでローカル変数名って例外に影響あるんでしょうか?… https://t.co/2QrdIjgX8I"
Shirouzu Hiroaki(白水啓章)さんのツイート: "Pythonの場合、変数は変数名をキーとして、関数辞書→モジュール辞書→グローバル辞書、と実行時にフォールバックして探索しますよね。 従い名前が変わると挙動が変わるのは普通にありうる話で、ASTも(トポロジは変化せずとも)変数名を記述したリーフ内容が変わって当然かなと。… https://t.co/lNoUIwocwd"
Shirouzu Hiroaki(白水啓章)さんのツイート: "んなこたない。 ---- 「入出力のみを行うスレッド(ネットワークI/OやディスクI/Oなど)であれば、GILの競合を招く」 https://t.co/El8xAy3Xir"
なぜPythonはこんなにも遅いのか? | POSTD
Shirouzu Hiroaki(白水啓章)さんのツイート: "ネットワーク等の入出力がないなら、GILの競合を招く、が正解。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "syscall中はGILは外れていたはず。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名付きexeが SmartScreen にブロックされなくなったことを確認。 次回のリリースから、exeリリースに変更する予定。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「任意の整数列をn次方程式に変換する、というお題をnumpyで解いて、numpyの使い方を少し訓練…というか、ほぼ polyfit を呼ぶだけだった。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「内部でフーリエ級数使って解いているのかな?(ぜんぜん知らない)」 / Twitter
404 Blog Not Found:宴会ネタ - 揚げ足取り数列
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「普通に最小二乗法だった。 https://t.co/8JDhKYNc4k」 / Twitter
非線形最小二乗法 - Wikipedia

@shibu_jp

渋川よしきさんのツイート: "macユーザーがpyenvを使いたがるの、どうもHomebrewが複数バージョンのPythonをインストールできなくなって、それの回避でpyenvを使う流れっぽい。ダメなパッケージマネージャのしわ寄せをこっちに投げてくるな、という話っぽい。MacPorts使ってたから知らんかった"
渋川よしきさんのツイート: "Pythonは動的型付け言語だって言われるけど、引数の数とかのチェックとか厳しいし、JavaScriptと比べると硬い言語だなって思う。プログラミング言語の動的、静的ってデジタルじゃなくて、アナログ値だよね。"
渋川よしきさんのツイート: "例えば、Pythonでウェブサービス作っているとして、Djangoの使い方だけじゃなくて、HTTPの仕組みを知る(1つ下のレイヤー)と、メンテしやすいソフトウェア構造(1つ上のレイヤー)を知るのは大事だと思う。そうやって1つずつ広げるのは大事。"
渋川よしきさんのツイート: "Pythonの特殊メソッドの方式。ライブラリからすると、後方互換性が崩れないというのはすごい。… "
渋川よしきさんのツイート: "mypyで型をばっちりつけるPythonプログラミングをやってみているけど、pep8の文字数制限が3倍ぐらい厳しく感じる。"
渋川よしきさんのツイート: "Goのテスト哲学は「うん、なるほど」と思うのだけど、PythonやるとassertEqual便利って思ってしまう。"

@taku910

Taku Kudoさんのツイート: "python の sdist と wheel のパッケージングの挙動が違ってて死ねる。"
Taku Kudoさんのツイート: "Pythonの闇を見た。C++11/Windows/Python2.7という組み合わせは無理っぽい。 https://t.co/hZRXGXqmVX"
Taku Kudoさんのツイート: "manylinux にはホント苦労させられたけど (cmake のインストール、腐った pthread_once の自作など)、目的のためなら多少汚くてもゴリ押しするスタンスは評価しないと。互換性が壊れまくる物をリリースしたり、そもそもバイナリパッケージがない状況にくらべれば、ユーザに対するメリットは大きい。"
pypa/manylinux: Python wheels that work on any linux (almost)
Taku Kudoさんのツイート: "FYIですが、manylinux は docker 上で作るのが正解です。実際に使っているスクリプトがあるので参考になれば。travis 上でも動きます。 https://t.co/K7cCtyUtAT"
Taku Kudoさんのツイート: "CIしてんのというツッコミは置いといて、「ソースコードを変更する」にC拡張が含まれるとNGなような。普通にASTがいっしょで出力が異なるコード作れる。 https://t.co/HEASwoZf1C"
20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog

@ncaq

エヌユルさんのツイート: "リフレクションがあるから動作変わる可能性はあるのでは / “「変数名変えたらテスト必要では」とか言ってるブコメはASTが何か理解してないだろ。変数名が何であろうが最終的なASTが一致すれば動作は変わらん。そういう思考停止駄目だよ…” https://t.co/Z57ERS2o6b"
「変数名変えたらテスト必要では」とか言ってるブコメはASTが何か理解してないだろ。変数名が何であろうが最終的なASTが一致すれば動作は変わらん。そういう思考停止駄目だよねって記事なのに伝わってなくて笑った - bkiosのコメント / はてなブックマーク
エヌユルさんのツイート: "ASTのdiffがGitHubのpull requestにCI的に出てきたら有用っぽい / “20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog” https://t.co/8Cc76FS8uF"

The Python Graph Gallery – Visualizing data – with Python
Python で波動方程式の数値計算と動画 gif の書き出しをやらせてみよう - わかばめにっき
Python.jp SlackからDiscordへ - atsuoishimoto's diary
Python.jp Discordサーバ - python.jp
Python 言語リファレンス — Python 3.6.5 ドキュメント
Python - pythonのvar++とvar=var+1で挙動が異なるのはなぜ(151179)|teratail
セイウチ演算子を導入した「Python 3.8.0」がリリース ~“Microsoft Store”からも入手可能 - 窓の杜

Jupyter

Project Jupyter | Home
Project Jupyter | Install
Installing Jupyter Notebook — Jupyter Documentation 4.1.1 alpha documentation

Qiita

データサイエンティストに向けたコーディング環境Jupyter Notebookの勧め - Qiita
Jupyterインストール - Qiita
Jupyter Notebookでブログ書きたい - Qiita
Jupyter事始め - Qiita

Twitter

七誌さんのツイート: "プラットフォーム依存GUIを書きたくない→Web化?→ローカルだけで動かしたい→Electron?→配布物が大きくなるのでブラウザは既存のものを流用したい→Webサーバーとして動くローカルアプリ と考えて、Jupyter Notebookがこの形態だと気付いた。現実味はある。"
酔漢@ニャー将棋さんのツイート: "昼休みの間、Jupyterで遊んでいた。理系世界の勉強方法は確実に変わるぞ。 https://t.co/7psy5eAQ5s"
七誌さんのツイート: "以前、電卓アプリではなくPythonを電卓代わりにすれば、ログも記録できるというような説明をしていた。しかしIDLEだとちょっと説得力がなくて、ほとんど定着しなかった。Jupyter Notebookだったらもっと説得力があったのだろうけど、当時は存在を知らなかった…"
S.Asa♥さんのツイート: "データ可視化できるploty使うとJupyter上でオシャレグラフがすぐできる。チュートリアルを一通りやったけど、すごく直感的でわかりやすい。ラベルにLaTexも使えるようなので、物理計算の可視化とかにすごくよさげ! https://t.co/56vdUsgPRw https://t.co/R0RJ9wBgVx"
Plotly
CodeXP/新・どう書く.org管理人さんのツイート: "Jupyterの内部実装を追うのって結構勉強になるのでお勧め。traitletsを用いることによる柔軟性の高い起動方法や、1プロセスで同時に高負荷なセッションを捌けるTornadoのnon blocking I/Oの有難み、Zero MQによる軽量なキュー処理など。自前アプリへの組み込み方法も含めて、いつか発表したいなー。"
piqcyさんのツイート: "Jupyter Notebookからスクリプトを抽出してPython/R/Juliaファイルにする、さらにファイルを修正してJupyterに戻す、ということを可能にするツール。これで、Jupyter上のスクリプトを好きなエディタで編集して反映させることができる。 https://t.co/wWdtDkAkx6"
mwouts/jupytext: Jupyter notebooks as Markdown documents, Julia, Python or R scripts

私たちはいかにして環状線で”悪さをする列車”を捕まえたか | プログラミング | POSTD
Anaconda の Jupyter Notebook で ModuleNotFoundError が発生した場合のトラブルシュート | WEB ARCH LABO
ゼロからはじめるPython(2) Jupyterノートブックで気軽にPythonをこね回そう | マイナビニュース
AnacondaとJupyter NotebookでPythonの練習が捗った話 | フクロウのブログ|株式会社フクロウ|株式会社フクロウ
Windowsに「Jupyter Notebook」をインストールして手軽にPythonを使い始める方法
データ分析の必需品「Jupyter Notebook」の魅力とは - DeepAge
Jupyter Notebook を使ってみよう – Python でデータサイエンス
Jupyter Notebookを利用してお手軽分析環境構築 | DATUM STUDIO 株式会社
Jupyter (iPython) Notebookを使って技術ノート環境を構築する方法 - MyEnigma
現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ
Jupyter Notebook(IPython)のインストールと始め方 - TASK NOTES
Jupyter Notebookの拡張機能を使ってみる - はしくれエンジニアもどきのメモ
danielfrg/pelican-ipynb: Pelican plugin for blogging with Jupyter/IPython Notebooks
Jupyter (IPython Notebook) で書いたものをブログで共有したくて - ニートに片足突っ込んでいるブログ
オレオレJupyter運用法 ~常にJupyter Notebookを開きつつ任意のディレクトリをターミナルから開く · Wolftail Bounds
Colaboratory - Google 検索

Downloads | Anaconda
Windwos10 バージョン1703 Creators Update にPythonとSphinxをインストール (Anaconda編)
wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog
Anaconda は Environment Isolation Tool (環境分離ツール) ではない - Qiita
「Python」ディストリビューション「Anaconda」に「Visual Studio Code」が追加 - 窓の杜
データ分析や機械学習にバリバリ使える上にブラウザで使用できて環境構築不要のPython実行環境「Google Colaboratory」 - GIGAZINE
Hello, Colaboratory - Colaboratory

pythonとseleniumを使ってウェブスクレイピングをしてみた - Qiita
Pythonでかんたんスクレイピング (JavaScript・Proxy・Cookie対応版) - Qiita
Pythonでsqlite - Qiita
Pythonスクレイピングメモ - Qiita
PythonとBeautiful Soupでスクレイピング - Qiita
PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
Pythonでスクレイピング(Selenium) - 自分基準
Pythonでスクレイピング2(Selenium):UFJの残高取得 - 自分基準
Selenium でサポートされているプラットフォーム
スクレイピングは違法?3つの法律問題と対応策を弁護士が5分で解説 | トップコート国際法律事務所
takuya-aさんのツイート: "なるほどー、アルゴリズム的にも面白いし、Wikipedia使ったデータ処理するときに役立ちそう / 1件のコメント https://t.co/H0NqHvoMBY “トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.” https://t.co/tAasAbblqA"
トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.
katsugeneration/ja-wiki-category: Japanese Wikipedia Category Data Mining Repository
Python統合開発環境「PyCharm 2019.2.1」リリース | OSDN Magazine

Wikipedia

コーパス - Wikipedia
コーパス言語学 - Wikipedia
言語資源 - Wikipedia
計算言語学 - Wikipedia
ツリーバンク - Wikipedia
自然言語処理 - Wikipedia
国立国語研究所 - Wikipedia

Qiita

さだまさしを kuromoji を用いて簡単に品詞分解してみる - Qiita
さだまさし N-gram コーパスを用いてサジェスト機能を作ってみる - Qiita

Twitter

SentencePiece

takuya-aさんはTwitterを使っています: 「いまさらだけどSentencePieceの論文読んだ。ユニグラム言語モデルでエントロピー的に最適なサブワード集合を獲得するアルゴリズムがおもしろい。」 / Twitter
takuya-aさんはTwitterを使っています: 「1. 十分に大きい語彙集合を用意し、サブワードの最初の候補とする。コーパスに現れるすべての文字集合に加え、頻度の高い部分文字列をコーパスから計算する。後者はコーパスからSuffix Arrayを構築することで線形時間で計算できる。 2. EMアルゴリズムでサブワード分割を最適化(続く)」 / Twitter
takuya-aさんはTwitterを使っています: 「3. 各サブワードに対して、それを抜いたときに下がる尤度の量を計算 4. それらをソートして、下位n%の語彙をサブワードから削除(ただし1字のものは残す) 5. 2-4を与えられた語彙数になるまで繰り返す」 / Twitter
takuya-aさんはTwitterを使っています: 「論文へのリンクはこちら https://t.co/C0fTDqGcXa」 / Twitter
[1804.10959] Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates
Taku KudoさんはTwitterを使っています 「tensorflow-text が sentencepiece を公式にとりこんでくれたので、tensorflow 2.2.0を最後に tf_sentencepiece を廃止できそう😀 https://t.co/s5fvnUbwWs」 / Twitter
Taku KudoさんはTwitterを使っています 「tf.text sentencepiece のAPIは eager 動作に特化して、こういっちゃ見も蓋もないが sentencepiece の Python wrapper だけで再実装できる? TF1時代の計算グラフのノードの一部としてのAPIであれば TF ops の意味があったけど、そもそもTF1古いからいらないのだろう。」 / Twitter
Taku KudoさんはTwitterを使っています 「結局一日仕事。tf.2.2.0 対応させて、新しいリリース出してて、issue数を半減。https://t.co/YoKd2xwFh0」 / Twitter
Issues · google/sentencepiece
Taku KudoさんはTwitterを使っています 「sentencepiece の byte_fallback は、未知文字を UTF-8 byte sequence にバラす大技で、未知語が完全になくなります。意外とうまくいくようで、NMTで使うとレアな文字(絵文字など)はコピーするといった動作が学習されるようです。」 / Twitter
Taku KudoさんはTwitterを使っています 「sentencepiece が iterable object から直接学習できるようになったので、https://t.co/NQ2XO5LQ7v との親和性が格段に上がったはず。適当なサンプルコードをそのうち書きます」 / Twitter
Taku KudoさんはTwitterを使っています 「sentencepieceに機能追加要求がぼちぼちくるけど、その機能がなぜ必要なのかを書いてほしいし、聞くことにしている。大抵の場合、既存機能+αで workaround できるし、ディスカッションを通じて万人に有益かどうか判断してからでも遅くない。mecabもそんな感じであまり機能過多にはなってない。」 / Twitter

Taku Kudoさんのツイート: "https://t.co/C38UPC5Kz1 大規模な字幕翻訳コーパス (おそらく OpenSubttile?) せっかくなので、文脈情報がほしい。対話と翻訳をからめた研究が進むかも。"
JESC
asciianさんのツイート: "青空文庫全体のデータがGitHubからダウンロード可能になっている!これはテキストマイニングとかで最高なのではないだろうか。https://t.co/mtXrY4WKwL"
aozorabunko/aozorabunko
UniDic広報担当さんのツイート: "実は、この世には、https://t.co/v7HHtrgm3A というツールがございまして…… https://t.co/09Jl2PZvsK https://t.co/XjJBLaEgpU"
ChaKi プロジェクト日本語トップページ - OSDN
Taku Kudoさんのツイート: "日本語日常会話コーパス届いた (個人契約)  ちょろっと見たがこれは凄い。ボキャ貧ですまぬ。"
hiroshiさんはTwitterを使っています: 「Sudachi辞書に同期した同義語辞書がリリースされています。17,051グループ・46,000語が収められています。 https://t.co/RWOApQHKFp https://t.co/sx5WJk7ziC」 / Twitter
SudachiDict/synonyms.md at develop · WorksApplications/SudachiDict
SudachiDict/synonyms.txt at develop · WorksApplications/SudachiDict
hiroshiさんはTwitterを使っています: 「リリースおめでとうございます㊗️ 自然言語処理はもちろん検索用同義語辞書としても利用価値の高い、商用利用可能な貴重な言語資源ですね。形態素辞書と同期して同義語辞書が今後も拡張整備されていくならば、SudachiはElasticsearchをはじめ多くの検索エンジンの標準日本語NLPになっていくでしょう🎊🇯🇵」 / Twitter
Sorami HisamotoさんはTwitterを使っています: 「ワークス徳島NLPから、 同義語辞書をリリースしました 🎉 https://t.co/RS1Mt7WPWe 専門家による高品質な言語資源です。Sudachi辞書と同様にApache 2.0。 現在1.7万グループ、4.6万語収録。語彙辞書と同様、継続的に拡充していく予定です!Elasticsearchへの接続も開発中。 https://t.co/btG8mmgyuZ」 / Twitter
hiroshiさんはTwitterを使っています: 「まずは文化庁公式見解を読んでおくのが良いと思います。 https://t.co/IrlSgDp64P 文化庁「著作権法の一部を改正する法律(平成30年改正)について(解説)」 著作物に表現された思想又は感情の享受を目的としない利用(新法第30条の4関係) https://t.co/0tzkN96zER」 / Twitter
r1406693_11.pdf
Yuta Nakamura 🌧️🐠🐠🐠さんはTwitterを使っています: 「著作物からのコーパスや訓練済み△△の作成・公開をするにあたって,NLPerの皆さんは法的な問題をどこで相談しているんだろう」 / Twitter
hiroshiさんはTwitterを使っています: 「著作物に表現された思想又は感情を自ら享受し又は他人に享受させることを目的としない場合(以下「非享受目的」という。)には,その必要と認められる限度において,利用することができることとした。」 / Twitter
hiroshiさんはTwitterを使っています: 「同条は,上に述べたように実質的に通常権利者の対価回収機会を損なわないものの,形式的には権利侵害となってしまう一定の行為を広く権利制限の対象とする趣旨で新たに規定を整備するものである。」 / Twitter
hiroshiさんはTwitterを使っています: 「こちらの法律事務所の記事に具体的な解説があります。 https://t.co/zSTAx7ckn5 「著作物の本来的利用には該当せず、権利者の利益を通常害さないと評価できる行為類型」「モデル生成を行う他人のために学習用データセットを作成して不特定多数の第三者に販売したりWEB上で公開する行為」等々記載あり〼」 / Twitter
進化する機械学習パラダイス ~改正著作権法が日本のAI開発をさらに加速する~ | STORIA法律事務所
じょじょんきさんはTwitterを使っています: 「Webクロールベースの870万の日英ペア文のコーパスを公開|[1911.10668] JParaCrawl: A Large Scale Web-Based English-Japanese Parallel Corpus https://t.co/7icfPmN0YV」 / Twitter
[1911.10668] JParaCrawl: A Large Scale Web-Based English-Japanese Parallel Corpus
hiroshiさんはTwitterを使っています 「日本語の学習済みWord Embeddingの比較評価をしている記事があるけど、複合辞と文節の区別がないのもしかり、評価方法も客観的でなくて残念。ワークス徳島研の論文に学ぶことは多くあるはず。」 / Twitter

テキスト解析:ルビ振り - Yahoo!デベロッパーネットワーク
新辞林 - 言語と知能
Googleが自然言語処理の弱点「言い換え」を克服するデータセットを公開 - GIGAZINE

Universal Dependencies

Universal Dependencies

Universal Dependencies
日本語係り受け解析エンジンとしてのGiNZA・StanfordNLP・UDPipe | yasuokaの日記 | スラド
Universal Dependenciesにおける「二重主語」の問題 | yasuokaの日記 | スラド
Universal Dependencies 2.4がリリース | yasuokaの日記 | スラド
Universal Dependencies と類型論 - murawaki の雑記
「語」とはなにか・再考 - murawaki の雑記
研究紹介
松田寛 - 短単位品詞の用法曖昧性解決と依存関係ラベリングの同時学習
CiNii 論文 -  日本語Universal Dependenciesに基づく構文解析の検証 (言語理解とコミュニケーション)
CiNii 論文 -  日本語Universal Dependenciesに基づく構文解析の検証 (思考と言語)
Universal Dependencies 日本語コーパス
P5-8.pdf
E3-4.pdf
im2017.pdf
「毎日、友だちといっしょに校庭を走る。」の「毎日、」は、どこに係っているのか | yasuokaの日記 | スラド
「象は鼻が長い」の「象は」は、どこに係っているのか | yasuokaの日記 | スラド
UDPipe Visualizer with ICTree by Koichi Yasuoka, June 22, 2019.
Universal Dependencies 2.5がリリース | yasuokaの日記 | スラド
Universal DependenciesとStanford Typed Dependenciesと矢印の向き | yasuokaの日記 | スラド
日本語Universal Dependenciesにおける名詞句の並列はconjの夢を見るか | yasuokaの日記 | スラド
Universal Dependencies 日本語コーパス
形態素解析モジュールfugashiが「軽量版UniDic」を伴ってリリース | yasuokaの日記 | スラド
『言語処理100本ノック 2020』「48. 名詞から根へのパスの抽出」をCamphr-KNPで解いてみる | yasuokaの日記 | スラド
日本語Universal Dependenciesで二文節間の「係り受け」をエミュレートするには | yasuokaの日記 | スラド
UD_Japanese-GSD (v2.6向けdev)プレリリースに関して | yasuokaの日記 | スラド
Universal Dependencies 2.6がリリース | yasuokaの日記 | スラド
「申し訳ないが私は興味ない」の「ない」は同じなのか違うのか | yasuokaの日記 | スラド
「近いとしても」と「親としても」では単語間の係り受け構造は異なるのか | yasuokaの日記 | スラド

spaCy と GiNZA

hiroshiさんはTwitterを使っています: 「本日のUniversal Dependencies Symposium@国立国語研究所での発表資料です。 「GiNZAで始める日本語依存構造解析〜CaboCha, UDPipe, Stanford NLPとの比較」 https://t.co/T3mwQN6Lep」 / Twitter
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
リクルートのAI研究機関、国立国語研究所との共同研究成果を用いた日本語の自然言語処理ライブラリ「GiNZA」を公開 | Recruit - リクルートグループ
NLP2019 松田寛 - GiNZA
[“GiNZA - Japanese NLP Library”] | [“Universal Dependenciesに基づくオープンソース日本語NLPライブラリ”]
megagonlabs/ginza: A Japanese NLP Library using spaCy as framework based on Universal Dependencies
hiroshiさんはTwitterを使っています: 「日本語NLPライブラリGiNZAとそのベースとなるspaCyについての秀逸な解説です。Text Classificationまで詳細に説明されています。spaCyの内部構造を知る上でとても貴重な情報源だと思います。 オージス総研 はじめての自然言語処理 - 第4回 spaCy/GiNZA を用いた自然言語処理 https://t.co/uY4Yq9bnib」 / Twitter
はじめての自然言語処理 spaCy/GiNZA を用いた自然言語処理 | オブジェクトの広場
spaCyと現代書き言葉UniDicで読む『吾輩は猫である』 | yasuokaの日記 | スラド
GiNZAで読む『吾輩は猫である』 | yasuokaの日記 | スラド
GiNZA v2.0.0で読む『吾輩は猫である』 | yasuokaの日記 | スラド
GiNZA v2.2.0で読む『吾輩は猫である』 | yasuokaの日記 | スラド
hiroshiさんはTwitterを使っています: 「今後ginzaコマンドに並列実行オプションを追加するときには、形態素解析レイヤだけの高速動作モードも追加しようかと。使う側はとにかくシンプルな記述で最大速度が得られれば満足だと思うので。」 / Twitter
hiroshiさんはTwitterを使っています: 「GiNZAは依存構造(or係り受け)解析器ですが、形態素解析器と勘違いされがちなので、GiNZAと同時にインストールされる高速な形態素解析器を、 $ sudachipy で実行するようREADMEで案内しようと思います。」 / Twitter
多言語解析ツールspaCy 2.2.2がリリース | yasuokaの日記 | スラド
GiNZA+Elasticsearchで係り受け検索の第一歩 - Taste of Tech Topics
hiroshiさんはTwitterを使っています: 「日本語NLPライブラリGiNZA v3.0.0 (Benitoite)をリリースしました。https://t.co/CDumSLJb6o pip install ginza でインストールが完了。 形態素解析専用のginzameコマンドを追加。 UD_Japanese-BCCWJ+GSK2014-Aでparser+nerをマルチタスク学習することで精度もかなり改善しています。 ぜひお試しを!」 / Twitter
hiroshiさんはTwitterを使っています: 「pipenvを含む一部の環境で形態素辞書が読み込めない問題に対処したGiNZA v3.1.0をリリースしました。 pip install -U ginza で最新版に更新し、ginzaコマンドを実行した際に ValueError: cannot mmap an empty file のエラー表示で異常終了する場合は、 ginza -i で形態素辞書を初期化してください。 https://t.co/lDzSoEASgb」 / Twitter
GiNZA v3.1.0で読む「ライトの兄弟オスカーはコミックブック作家だ。」 | yasuokaの日記 | スラド
ginzaとnetworkxを使って係り受けパスで文をインデクシング - ナード戦隊データマン
係り受けパスによるインデクシングを日英に一般化 - ナード戦隊データマン
何もない所から一瞬で、自然言語処理と係り受け解析をライブコーディングする手品を、LTでやってみた話 - Qiita
hiroshiさんはTwitterを使っています 「GiNZA v3で強化された固有表現抽出をマスキングに応用した記事です。独自コーパスでしっかり定性評価されています。spaCyのCNNモデルは追加学習も可能です。一度コーパスをGiNZAで解析してENEタグを付与し、それらと競合しない新たな抽出対象をタグ付けしたコーパスでNERを追加学習するのがよいかと。 https://t.co/S5UQs3FDAQ」 / Twitter
株式会社AI ShiftさんはTwitterを使っています 「*TECH BLOG更新* 固有表現抽出を用いて個人情報のマスキングができるかを検証した記事の続編です。今回はGiNZAを用いた検証を行いました。 https://t.co/nqvMDXeOnx」 / Twitter
GiNZAによるテキストデータからの個人情報の抽出 | 株式会社AI Shift
hiroshiさんはTwitterを使っています 「GiNZA v3の固有表現抽出はENE(関根の拡張固有表現階層)体系で学習しています。 https://t.co/H9HuzZHCBH https://t.co/Fk1DhaWAOa そしてpipelineの後段でENEからspaCy標準のOntoNoted5固有表現ラベルを独自に拡張した体系に変換しています。 追加学習時はENE体系を考慮したタグ付けを行ってください。」 / Twitter
関根の拡張固有表現階層 -7.1.1-
liat-aip.sakura.ne.jp/ene/ene8/definition_jp/html/enetree.html
spaCy上の係り受け可視化ツールdeplacy | yasuokaの日記 | スラド
CamphrがKNPの係り受け解析をサポート | yasuokaの日記 | スラド
「吾輩はここで始めて人間というものを見た」の文節係り受けはどうなっているか | yasuokaの日記 | スラド
『言語処理100本ノック 2020』「48. 名詞から根へのパスの抽出」をGiNZAで解いてみる | yasuokaの日記 | スラド

Stanza(StanfordNLP)

Masato Hagiwara (萩原正人)さんのツイート: "スタンフォード大のNLPグループから、ニューラルで分かち書き、品詞タグ付け、係り受け解析ができる Python ネイティブのライブラリが登場。Universal Dependencies 準拠、53言語に対応。前処理の新たなスタンダードになりそう。https://t.co/Qu9fzztkNH"
StanfordNLP | StanfordNLP
「令和」の係り受け解析エンジン(仮)としてのStanfordNLP | yasuokaの日記 | スラド
StanfordNLPで読む『吾輩は猫である』 | yasuokaの日記 | スラド
CoNLL-U Format
64ビットCygwinにStanfordNLPをインストール | yasuokaの日記 | スラド
piqcyさんはTwitterを使っています 「stanfordnlpが進化したStanzaが公開。spaCyのように自然言語の各種処理(単語分割・依存構造解析・固有表現認識etc)をパイプラインで実行可能。PyTorchで構築されたニューラルベースのモデルで解析を行う。多言語対応がうれしい(日本語含む66言語)。ライセンスはApache2だが内包するCoreNLPはGPLで注意 https://t.co/OAawRDkhpE」 / Twitter
piqcyさんはTwitterを使っています 「なおspaCyからStanzaを利用することも可能 https://t.co/3OHYIIJKym」 / Twitter
多言語文法解析ツールStanzaリリース | yasuokaの日記 | スラド
Google ColaboratoryでStanzaの結果を可視化するには | yasuokaの日記 | スラド
Re: Google ColaboratoryでStanzaの結果を可視化するには | yasuokaの日記 | スラド
UD-Kanbun・spacy-stanza・spacy-udpipeの自動文切り機能をOFFにするには | yasuokaの日記 | スラド
「New York」と「Hà Nội」と「新大阪」は1語なのか2語なのか | yasuokaの日記 | スラド

UDPipe

「令和」の係り受け解析エンジン(仮)としてのUDPipe | yasuokaの日記 | スラド
UDPipe APIのpython3ラッパー | yasuokaの日記 | スラド
Web茶まめとUDPipe APIの両方にアクセスできるpythonラッパー | yasuokaの日記 | スラド
Web茶まめとUDPipeの組み合わせによる旧字旧かな係り受け解析 | yasuokaの日記 | スラド
Web茶まめとUDPipeの組み合わせによる旧字旧かな係り受け解析の改良 | yasuokaの日記 | スラド
多言語文法解析ツールとしてのspacy-udpipe | yasuokaの日記 | スラド

unidic2ud

現代・古典日本語の形態素解析・係り受け解析のためのunidic2ud | yasuokaの日記 | スラド
unidic2udと現代書き言葉UniDicで読む『吾輩は猫である』 | yasuokaの日記 | スラド
UniDic2UDによるCaboChaエミュレータ | yasuokaの日記 | スラド
UniDic2UDによるCaboChaエミュレータと本物のCaboChaとの違い | yasuokaの日記 | スラド
UniDic2UDによるCaboChaエミュレータをWindowsで動かすには | yasuokaの日記 | スラド
UniDic2UDによる単語間の係り受けと二文節間の係り受け | yasuokaの日記 | スラド
日本語における単語間の係り受け解析 | yasuokaの日記 | スラド
多言語係り受け解析ツールとしてのUniDic2UD | yasuokaの日記 | スラド
UniDic2UDにおける品詞間の対応 | yasuokaの日記 | スラド
UniDic2UDとGiNZAで読む「難儀な難儀は難儀する」 | yasuokaの日記 | スラド
「港の見える丘」の「港」は「見える」の主語なのか | yasuokaの日記 | スラド
日本語の言語処理における「単語」長の問題 | yasuokaの日記 | スラド
動詞の連用形による体言修飾は名詞として扱うべきか否か | yasuokaの日記 | スラド
接続助詞による体言修飾は名詞として扱うべきか否か | yasuokaの日記 | スラド

NLP-Cube

「令和」の係り受け解析エンジン(仮)としてのNLP-Cube | yasuokaの日記 | スラド
日本語係り受け解析エンジンとしてのNLP-Cube | yasuokaの日記 | スラド
NLP-Cubeで読む『吾輩は猫である』 | yasuokaの日記 | スラド
64ビットCygwinにNLP-Cubeをインストール | yasuokaの日記 | スラド

COTOHA API

COTOHA APIのUniversal Dependencies向けpythonラッパー | yasuokaの日記 | スラド
COTOHA APIのUniversal Dependencies向けpython3ラッパー | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の係り受けをCOTOHA APIで解析する | yasuokaの日記 | スラド
COTOHA API

Google ColaboratoryでCamphr-Udifyを使うには | yasuokaの日記 | スラド
Google ColaboratoryでCamphr-Udifyの結果を可視化するには | yasuokaの日記 | スラド
CygwinにSciPyをインストール | yasuokaの日記 | スラド

Graphviz

望遠鏡は「望遠」「鏡」なのか「望」「遠鏡」なのか | yasuokaの日記 | スラド
「望遠鏡で泳いでいる彼女を見た」の係り受け関係 | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の係り受け構造をGraphvizで可視化する | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の係り受け構造をGraphviz 2.38で可視化する | yasuokaの日記 | スラド
「望遠鏡で泳ぐ彼女を見た」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
Re: 「望遠鏡で泳ぐ彼女を見た」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
「これが僕は正しいと思う」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
Re:「これが僕は正しいと思う」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド

照応解析

リーディングスキルテストは、何の「係り受け」をテストしているのか | yasuokaの日記 | スラド
D5-2.pdf
照応解析 - Wikipedia
_pdf
ono_bthesis.pdf
照応・照応解析まとめ|直接照応・間接照応・外界照応・ゼロ照応 - アズメディア|広告とメディアを考える(@_danboooo_ )
照応解析
省略・照応解析
ゼロ照応解析について - あしたからがんばる ―椀屋本舗
CiNii 論文 -  外界照応および著者・読者表現を考慮した日本語ゼロ照応解析
https://ipsj.ixsq.nii.ac.jp

談話構造解析

談話構造解析 DIA
奥村研究室ホームページ
P3-15.pdf
F6-2.pdf
談話構造 | Nishida Lab
自然言語処理18_31
_pdf
談話構造理解(だんわこうぞうりかい)とは - コトバンク
#3211. 統語と談話構造
Open Resources - 東北大学 乾・鈴木研究室 / Communication Science Lab, Tohoku University
コロナ社「文脈解析」本のレビュー - Qiita
公開ツール - NAIST Computational Linguistics
太田 博三 - 「コロナ社」「文脈解析- 述語項構造・照応・談話構造の解析 - (自然言語処理シリーズ 10)... | Facebook

述語項構造解析

英語形態論
述語項構造シソーラス (岡山大学竹内研)
自然言語処理21_333
B4-5.pdf
E1-1.pdf
日本語文章に対する 述語項構造アノテーション仕様の考察
述語項構造解析 | Yuta Hayashibe
nlp13.pdf
10-6-B3-4.pdf
述語項構造シソーラス | Takeuchi Lab
述語項構造のシソーラス分類と意味役割の設計について
D4-3.pdf
JCLWorkshop_No.7_18.pdf
JCLWorkshop_No6_06.pdf
述語項構造解析のための格フレーム辞書構築の検討 - 長岡技術科学大学 自然言語処理研究室
研究会 - BCCWJへの述語項構造シソーラスの付与による意味役割の検討
CiNii 論文 -  述語項構造シソーラスによる述語と名詞の構造化
takeuchivthai.dvi

スラド

Montague形式意味論とМельчук依存文法は、どちらが漢文の自動解析に向いているか | yasuokaの日記 | スラド
Kyoto University Research Information Repository: 漢文の依存文法解析と返り点の関係について
AIを用いた漢文の文法解析 | yasuokaの日記 | スラド
Kyoto University Research Information Repository: 古典中国語(漢文)の形態素解析とその応用
Kyoto University Research Information Repository: 四書を学んだMeCab+UDPipeはセンター試験の漢文を読めるのか
Kyoto University Research Information Repository: Universal Dependenciesの拡張にもとづく古典中国語(漢文)の直接構成鎖解析の試み
udkanbun · PyPI
UDPipe Visualizer with ICTree by Koichi Yasuoka, June 22, 2019.
直接構成素解析と直接構成鎖解析 | yasuokaの日記 | スラド
「駆け抜ける」と「走り切る」は複合動詞なのか動詞連続なのか | yasuokaの日記 | スラド
「着たくない服は着ない」の「ない」はcliticかaffixか | yasuokaの日記 | スラド
「知を致すは物に格るに在り」の「に」はcliticかaffixか | yasuokaの日記 | スラド
「うなぎを浜松に食べに行く」は係り受け解析できるのか | yasuokaの日記 | スラド
東ロボは何を係り受け解析していたのか | yasuokaの日記 | スラド
多言語係り受け解析ツールとしてのCamphr-Udify | yasuokaの日記 | スラド
64ビットCygwin向けAllenNLPインストーラ仮公開 | yasuokaの日記 | スラド
WSL上のLinuxにKNPをインストールする | yasuokaの日記 | スラド

Wikipedia

構成素 - Wikipedia
カテナ (言語学) - Wikipedia
依存文法 - Wikipedia
ルシアン・テニエール - Wikipedia
統語論 - Wikipedia
補語 - Wikipedia

Twitter

Sorami HisamotoさんはTwitterを使っています 「ワークス徳島NLPでは日本語単語ベクトル「chiVe(チャイブ)」も公開しています! 本日 v1.1 をリリース。 国立国語研との共同研究、100億語規模コーパス「NWJC」、形態素解析器「Sudachi」の複数分割単位を併用、word2vec (Skip-gram) で学習。 https://t.co/Uf1Y0OgIZW #NLP2020sponsor #NLP2020」 / Twitter
WorksApplications/chiVe: Japanese word embedding with Sudachi and NWJC
Taishi IkedaさんはTwitterを使っています 「形態素解析器を比較するためのライブラリを公開しました! https://t.co/rvpebKewMw 日本語コーパスのダウンローダーと前処理機能を搭載しており、数行のコードで処理速度の比較、単語分割の比較、後段タスクでの精度比較が行えます。 またDockerでは、環境構築なしに9種類の解析器を比較できます! https://t.co/DhmbflEVqe」 / Twitter
taishi-i/toiro: A comparison tool of Japanese tokenizers
takuya-aさんはTwitterを使っています 「PMI を正規化する Normalized PMI (NPMI) を使ったフレーズ認識。そこそこうまくいくみたい / 他4件のコメント https://t.co/kA1iGpIdJU “mots quotidiens.” https://t.co/PBGw4wQIm6」 / Twitter
[B! nlp] mots quotidiens.
mots quotidiens.

形態素解析を行うだけのバッチをつくる - クックパッド開発者ブログ
Haruhiko OkumuraさんはTwitterを使っています 「ということでオープンデータの定義についてまとめておいた→ https://t.co/NL8AkyLETy」 / Twitter
オープンデータとは

情報幾何学

最小二乗法

1916-07.pdf

Twitter

解答略さんはTwitterを使っています 「情報幾何におけるAffine座標系は、関数の空間における良い座標系を上手く定義してるなぁと思ってる。例えば正規分布の場合 「なんでパラメタをμとσに取るの?2^μ+σ^3とμ/σではダメなの?」 という疑問に対し 「正規分布全体の空間における、確率構造に由来する接続と整合しないからダメ」 と論破できる」 / Twitter
てらモス♋️さんはTwitterを使っています 「ここで確率測度の空間の構造と整合する正規分布のパラメータの組のとり方が実は二つ存在することが分かり...」 / Twitter
てらモス♋️さんはTwitterを使っています 「それぞれ二つの積 p(x)q(x)/\int p(x)q(x) dx, \int p(x-y) q(y) dy に対応する事が分かる...」 / Twitter
てらモス♋️さんはTwitterを使っています 「そしてカルマンフィルターはこの二つの積を交互にとる操作そのものだという導入を...」 / Twitter
てらモス♋️さんはTwitterを使っています 「確率測度の空間、アフィンにしかならなくてしかも積が二つ入るので環にならないし結構不思議な形してるよね」 / Twitter
てらモス♋️さんはTwitterを使っています 「一次元正規分布を指数型関数族として見ようと思うと、パラメータ二つあるので x -&gt; (x, x^2) で無理やり二次元に持ち上げるけど、これのせいで二次元空間上で δ(y=x^2) 的な特異な測度になるので、測度論を軽く触っておかないと厳しい(ルベーグ測度とボレル測度の違いとか難しいやつは勿論要らない)」 / Twitter
てらモス♋️さんはTwitterを使っています 「と言う話を云々してるから chaos-da が全く進まないんだよ!」 / Twitter
てらモス♋️さんはTwitterを使っています 「カルマンフィルターが遠い...」 / Twitter
てらモス♋️さんはTwitterを使っています 「確か LETKF の誤差解析をやろうと思ってたはずなのになんでこんなところからやっているのか...」 / Twitter

2020年抱負 | κeenのHappy Hacκing Blog
幾何を使った統計のはなし
情報幾何学1: 確率分布とリーマン多様体 - 初級Mathマニアの寝言
情報幾何入門
_pdf
DVIOUT
matsuzoe_201710hokudai-handout.pdf
takano.pdf
toukei12.dvi
情報幾何の勉強。機械学習の数理的研究。 - 日記マン
infogeo.dvi - infogeo-sice.pdf
11_KJ00005768851.pdf
book_0403.pdf
「情報幾何」に入門するための資料PDF。解説論文と機械学習への応用の紹介 - 主に言語とシステム開発に関して
「情報幾何」で深層学習の謎を解く新しい機械学習手法を創り出す - NII SEEDs / 国立情報学研究所
情報幾何への入門と応用
FEM と幾何学の機械学習 – 株式会社科学計算総合研究所
情報幾何勉強会(第一回 情報量) – 株式会社科学計算総合研究所

ニューラルネットワーク

その他

世界初!教師データなしで高次元データの特徴を正確に獲得できるAI技術を開発 : 富士通
20190529_xSiG_public
リザーバコンピューティング - Google 検索
masa-su/pixyz: A library for developing deep generative models in a more concise, intuitive and extendable way
Machine Learning Systems are Stuck in a Rut | Proceedings of the Workshop on Hot Topics in Operating Systems
C4ML
富岳CPU A64FX用ディープラーニングライブラリの深層 -研究者が語る開発の軌跡- - fltech - 富士通研究所の技術ブログ
MIT Tech Review: グーグルが発見した、機械学習が現実世界で使い物にならない理由
ReLU - Google 検索
数学セミナー2018年12月号|日本評論社
2020年度講義情報ページ
AI研究の第一人者・松尾豊氏が語る「日本でDXやAIの活用が進まない理由」|@DIME アットダイム
AIりんな、コンシェルジュなどの顧客対応へ - 阿久津良和のWindows Weekly Report | マイナビニュース
[2009.05673] Applications of Deep Neural Networks
AI in Software Engineering at Facebook
「悪いやつをAIで予測する」のがなぜいけないか - yhara.jp
「この人、家賃を滞納しそう?」AIが予測 入居審査を45分→16分に - ITmedia NEWS
mediapipe - Google 検索
AlphaFold2 - Google 検索
「6年解けなかった構造があっさり」──タンパク質の“形”を予測する「AlphaFold2」の衝撃 GitHubで公開、誰でも利用可能に - ITmedia NEWS

パーセプトロン

その他

第17回 パーセプトロンを実装してみよう:機械学習 はじめよう|gihyo.jp … 技術評論社
第15回 分類問題ことはじめ:機械学習 はじめよう|gihyo.jp … 技術評論社
ニューラルネットワークとパーセプトロン - Sideswipe
ニューラルネットワークの動物園 : ニューラルネットワーク・アーキテクチャのチートシート(前編) | コンピュータサイエンス | POSTD
ニューラルネットワークの動物園 : ニューラルネットワーク・アーキテクチャのチートシート(後編) | コンピュータサイエンス | POSTD
はてな社内の勉強会で構造学習について発表しました - yasuhisa's blog
七誌さんのツイート: "パーセプトロンでXORが実装できない理由を、真理値表を2次元にマッピングして一次関数の直線で区切れないためと説明された。区切るためには曲線が必要で、その曲線がフェルマー曲線や楕円曲線に似ていると思っていた。あ、だからフェルマー予想の証明に楕円関数論が絡むのか!と今頃気付いた…"
七誌さんのツイート: "楕円関数論の重要性がじわじわ来ている。改めて竹内先生の緒言が身に染みる! https://t.co/99YRij5404"
パーセプトロンの概観とディープラーニングへ - HELLO CYBERNETICS
パーセプトロン - Pythonと機械学習
コベクトルで考えるパーセプトロン - Qiita
実は難しい自然言語処理。画像認識の活用も始まる

コンパイル

入門 Keras (2) パーセプトロンとロジスティック回帰 | 株式会社インフィニットループ技術ブログ
Kerasでディープラーニングに入門する(MNISTの手書き数字問題を単層パーセプトロンで解く) - Qiita
OCamlとSLAPで作る型安全ニューラルネット(と深層学習) - Qiita
パーセプトロンってなんだろう? - きしだのはてな
パーセプトロンとサポートベクターマシン - きしだのはてな
ニューラルネットワーク - プログラムに組込み可能なライブラリ
第16回 最適化のための勾配法:機械学習 はじめよう|gihyo.jp … 技術評論社
keras_tutorial
MXNet チュートリアル : 手書き数字認識 – MNIST – PyTorch
Caffe2によるディープラーニングの基礎と実践 rev 1.1
多層パーセプトロン (Multilayer perceptron, MLP)をExcelで理解する - Qiita

ネットワーク

パーセプトロンとニューラルネットワークの違い - kakts-log
パーセプトロンとは? - Qiita
ニューラルネットワークと深層学習
多層パーセプトロン - Wikipedia
パーセプトロン - Wikipedia
機械学習 - パーセプトロンはニューラルネットワークなのか?|teratail
パーセプトロン ニューラル ネットワーク - MATLAB & Simulink - MathWorks 日本
パーセプトロンとニューラルネットワーク(1) - 人工知能・ロボティクス・and so on 工学系ブログ
ニューラルネットワークとは?人工知能の基本を初心…|Udemy メディア
ニューラルネットワークが持つ欠陥「破滅的忘却」を回避するアルゴリズムをDeepMindが開発した論文を読んだ - Qiita
Deep Forest :Deep Neural Networkの代替へ向けて - Qiita
C++ヘッダだけでDeep Learning、tiny-dnnの紹介 - Qiita
Fadisさんのツイート: "最近、ディープラーニングを扱う記事のニューラルネットワークのイメージ図が謎の3層全結合だったら、記事が古いのではないかと疑う事を覚えた"

可視化

多層パーセプトロンの動きを可視化する - StatsFragments
Python: 単純パーセプトロンを実装してみる | CUBE SUGAR STORAGE
D3.jsでパーセプトロンを可視化した - くじらにっき++
多層パーセプトロンの動きを可視化する - StatsFragments : GoogleやFacebookが注目するディープラーニング(深層学習)についてまとめてみた - NAVER まとめ
perceptronの可視化 - Qiita
プログラマーが効果的な可視化を作成する (前編) - Qiita
プログラマーが効果的な可視化を作成する (中編) - Qiita
プログラマーが効果的な可視化を作成する(後編 Part 1): 基本原則 - Qiita
プログラマーが効果的な可視化を作成する(後編 Part 2): 学習ガイド - Qiita
高次元データの次元削減および2次元プロット手法 - Qiita
探索的データ解析における正しい可視化手法の選び方と描き方 - Qiita
情報理論を視覚的に理解する (1/4) : | コンピュータサイエンス | POSTD
情報理論を視覚的に理解する (2/4) | コンピュータサイエンス | POSTD
情報理論を視覚的に理解する (3/4) | コンピュータサイエンス | POSTD
情報理論を視覚的に理解する (4/4) | コンピュータサイエンス | POSTD

時系列

パーセプトロン
Journal of Chemical Software Vol.4 No.2, p.57 (1997)
階層型のネットワーク
ニューラルネットワークの考え方 | Logics of Blue
18-1-10.dvi
売買判定システム修正版2

ONNX

AWS、Facebook、Microsoftの3社、AIモデルのオープンフォーマット「ONNX」を正式リリース:異なるディープラーニングフレームワーク間でAIモデルを移行できる - @IT
ディープラーニングフレームワーク間で共通のモデル表現が可能に:MicrosoftとFacebook、AIモデルの相互運用性を実現する共同プロジェクト「ONNX」を発表 - @IT
AWS、MicrosoftやFacebookなどが推すAIフォーマット「ONNX」をサポート:ディープラーニングモデルのオープンフォーマットのエコシステムが拡大 - @IT
AIモデルの相互運用性プロジェクト「ONNX 1.0」 | OSDN Magazine
ONNX のモデル出力と、ONNX を使った推論をやってみた - Fixstars Tech Blog /proc/cpuinfo
ONNX
Open Neural Network Exchange
shinichiro hamajiさんのツイート: "ONNX、ループとかないと思ってたけどいつのまにか生えてるやん https://t.co/LTSE4GsztY"
Yuta Kashinoさんのツイート: "How Facebook scales AI https://t.co/pJJIRPqRYC FaceBook社内の機械学習インフラ.PyTorchで学習した後にONNX経由でCaffe2によるプロダクション環境での推論実行が実現できているそうです.… https://t.co/zAz0yUkmh3"
PreferredNetworksJPさんのツイート: "【発表】学習済みDNNモデルを #ONNX 形式から読み込んで動作させる推論専用ライブラリMenoh(メノウ)を公開! #Chainer で学習したモデルを #Python 以外の言語で実装したアプリケーションに瞬時にデプロイすることができます。 https://t.co/xXjPh0JViE"
pfnet-research/menoh
Taku Kudoさんのツイート: "ONNX ということは、Define-by-Run が標榜する真の動的モデルの実行は難しいのではないのかな... TFのようにインファレンスを Python から切り離してヘテロ環境で実行したいのなら、どのみち静的なグラフが必要で、そのへんのトレードオフはなかなか解けないですね。"
Taku Kudoさんのツイート: "Define-by-Run, Define-and-Run より、Model as code, Model as data といったほうが、インファレンスの立場からの違いがはっきりすると思う。"
はじめてのにき(2018-07-01)
米Microsoft、機械学習向け推論エンジン「ONNX Runtime」をオープンソースで公開 | OSDN Magazine
ONNX はチューリング完全だよ、という話 - 兼雑記
Noriyuki OHKAWAさんのツイート: "onnx関係者 "All names MUST adhere to C identifier syntax rules." て文を誰も読めないんじゃないかと疑ってる."
Microsoft/onnxjs: ONNX.js: run ONNX models using JavaScript
shinichiro hamajiさんのツイート: "OpenVINO サポート、実装やり直して今の2つ目で、何がうざいって ONNX => dldtモデル部分が Python で書かれてることで、僕は system(3) でやるのが結局一番と判断したけど https://t.co/lEsjvPu4r0 onnxruntime は Python.h 使って頑張ったぽい https://t.co/AtHXMwHQN1"
shinichiro hamajiさんのツイート: "Intel みずから onnxruntime に関わってくれたおかげで、それなりに ONNX サポートキープしてくれそう……?という期待ができるのかな。。まあ TF/Caffe 優先ではあるのだろうけど"
shinichiro hamajiさんのツイート: "また三日坊主になってる。GSoCのやたら優秀な方に、 continue/break/return を実装していただいた https://t.co/TaBIzzVK5l ONNXに落とす(キツい)、グラフに変換する時に頑張る(キツい)、などを検討した後に、AST-to-ASTで消しさればいいんじゃない?という話になって、綺麗にまとまって良かった"
Canonicalizer Unittests, and Break Canonicalization. by Rishav1 · Pull Request #352 · pfnet-research/chainer-compiler
shinichiro hamajiさんのツイート: "つまり任意の Python AST を continue/break/return の無い Python AST に等価変換する感じ"
shinichiro hamajiさんはTwitterを使っています: 「Practical developers 読んでて、むしろ value_info が必須でないことが ONNX で良いと判断した理由の一つだったなあと。 shape 必須な時は static shape なグラフなので、単に onnx.shape_inference.infer_shapes すれば(バグってなければ) value_info は全て判明するはずだし」 / Twitter
Noriyuki OHKAWAさんはTwitterを使っています: 「@shinh exchange formatなのに利用側に(shape inferのための)runtimeを要求するのが嫌だと思ったんですよね.python同士でしかやりとりしないなら別にいいんですけど」 / Twitter
shinichiro hamajiさんはTwitterを使っています: 「@notogawa たしかに、C++/Python以外から使いにくくなってprotoの利点ちょっと殺しちゃってると言われればそうかもですね」 / Twitter
shinichiro hamajiさんはTwitterを使っています: 「また三日坊主になってる。最近だとONNX workshop行って、Python listをSequenceで扱うopを足して、というのが進んでたので、それは一年前通った道……と偉そうにこういうの多分いるよ、て共有したり https://t.co/IY5s5qLISa PR にコメント書いたり、提案通り実装したりした https://t.co/RXbPUDByyO」 / Twitter
ONNX with Python list/loop in chainer-compiler - Google スライド
Add standard ONNX sequence ops by shinh · Pull Request #665 · pfnet-research/chainer-compiler
uint256_tさんはTwitterを使っています 「ONNXの中身ってprotocol bufferなのか」 / Twitter
Optimizing BERT model for Intel CPU Cores using ONNX runtime default execution provider - Microsoft Open Source Blog

NNEF

青子守歌さんのツイート: "ニューラルネットワークのデータ表現形式の標準規格が策定された https://t.co/Q1QgLb3lgL この間のミーティングで言われてたやつこれか"
Neural Network Exchange Format (NNEF) - Neural Network Exchange Format (NNEF)
Fadisさんのツイート: "OpenGL等の標準化で知られるクロノスグループ、異なるニューラルネットワークフレームワーク間でニューラルネットワークの学習済みモデルをやり取りするためのフォーマットNNEF 1.0を公開 https://t.co/jYTWfdtz4u"
Khronos Announces NNEF 1.0 Standard For Neural Networks - Phoronix
ニューラルネットワークツールと推論エンジンの相互運用のためのプロジェクト「NNEF」が仕様を公開 | OSDN Magazine
ニューラルネットの共通フォーマット対決! NNEF vs ONNX - Fixstars Tech Blog /proc/cpuinfo

MLIR

FadisさんはTwitterを使っています 「LLVMがMLIRをSPIR-Vにコンパイル出来るようになったらしい。MLIRは計算グラフを表現する中間言語で、TensorFlowが最適化の為のターゲット非依存の表現として生み出した。既にCUDAに落とす実装があったが、これでNVIDIA以外のGPUでもVulkanが動けばMLIRを実行できるようになる https://t.co/Wd195YHV2R」 / Twitter
LLVM Adds MLIR-Vulkan-Runner To Run MLIR On Vulkan-Enabled GPUs - Phoronix
FadisさんはTwitterを使っています 「ただし時々実行できないCUDA PTXを吐き出す…(白目」 / Twitter
Fadisさんのツイート: "MLIR: LLVM IRにすると失われる情報を利用した最適化の為に言語固有の中間言語で最適化を行う言語が増えていて、機械学習フレームワークもそうしたいけど沢山のフレームワークが個別にこの実装をするの無駄だから共通の実装を作ろうぜ、とTensor Flowの人が作った中間言語 https://t.co/BZEXUi6HhI"
MLIR Is A New IR For Machine Learning That Might Become Part Of LLVM - Phoronix
Makoto Kato ︎︎さんのツイート: "いや、Tensorflowじゃなくて、LLVM作った人だから、彼。"
ドッグさんはTwitterを使っています 「MLIR 中間言語の設計の紹介論文が Chris 筆頭著者で出てる | 'MLIR: A Compiler Infrastructure for the End of Moore's Law' https://t.co/F7DGu2NeU9」 / Twitter
[2002.11054] MLIR: A Compiler Infrastructure for the End of Moore's Law
てらモス♋️さんはTwitterを使っています 「LLVM を実行時に必要とするのは辛いのでコンパイル時に MLIR まで使えるようにしておいて、rustc 内で ptx-kernel 見つけたらそれは MLIR 経由で PTX にコンパイルして最終的な ELF のどっかに埋め込むような事がしたい...」 / Twitter
てらモス♋️さんはTwitterを使っています 「SPIR-V でも PTX でもそうだけど、ホストコード用の ELF にアクセラレータ向けのバイナリを埋め込む為の標準化を RedHat の人か誰かが提案してなかったっけ...」 / Twitter

MN-Core

shinichiro hamajiさんはTwitterを使っています 「いやーがんばったなあ、という感じ。個人的には逆アセ書くところから、みたいなむっちゃ基本的なとこから始めて、今はこんだけ動いてるってのに感慨がある。図にあるように抽象化の過程で謎の概念が色々(再)発明されて、まあまあ新奇性がちらほらあるDLコンパイラスタックになってるんじゃないかなぁ」 / Twitter
Preferred NetworksさんはTwitterを使っています 「【発表】深層学習用プロセッサーMN-Coreのコンパイラを開発し、MN-Coreを搭載したスパコンMN-3で深層学習ワークロードを最大6倍以上高速化!(MN-2と比較) MN-CoreはPyTorchとシームレスに連携し、PFNの深層学習基盤技術としてさらに進化しました。 https://t.co/bIj9Yh6aeL」 / Twitter
深層学習用プロセッサーMN-Coreの専用ソフトウェア(コンパイラ)を 開発、深層学習の実用的なワークロードの計算速度を最大6倍以上高速化 | 株式会社Preferred Networks
Takuya AkibaさんはTwitterを使っています 「https://t.co/WTN0s6420P 我々インフラ領域で取り組んできた MN-Core コンパイラスタックの記事です!MN-Core は「そこはソフトで頑張ってよ」という思想のかなり極端な HW (参考 https://t.co/rgSLV0ORAS)ですが、ソフト側の様々な難問も乗り越え PyTorch から性能が出せる感じになってきてます!」 / Twitter
MN-Coreコンパイラを用いた深層学習ワークロードの高速化 | Preferred Networks Research & Development
「そこはソフトで頑張ってよ」、世界最高を目指す国産AIチップの開発秘話 | 日経クロステック(xTECH)
Takuya AkibaさんはTwitterを使っています 「ソフト面の難問は様々ですが、競プロ的なものも結構多く、○○したり△△したり☓☓したりしてます(競プロ単語を最初普通に書いてたんですが、一応伏せとこ……)。「競プロっぽい課題がいかにも出てきそうだなぁ」という雰囲気は shinh さんのこのスライドとか是非。https://t.co/zRIwEejcBN」 / Twitter
競プロ忘年会のやつ - Google スライド
PFN で開発している深層学習 コンパイラスタックについて - Google スライド
Miura HidekiさんはTwitterを使っています 「後半のPEの割り当て問題、もう少し粒度が高いと計算場モデルがよさそうだけど、せいぜいベクトルではオーバーヘッドが大きすぎるわな。意外と、実行時間を評価値とした遺伝アルゴリズムなんていいような気がする。」 / Twitter

chainer-compiler

転職してからやってること - 兼雑記
はじめてのにき(2018-07-01)
はじめてのにき(2019-03-22)
Chainer-compiler - Google スライド
shinichiro hamajiさんのツイート: "自分が適当に書いたコードにコメントもらうのは、こわくもあり、とても面白くもあって良かった。当たり前だけど、自分が苦労したからといって人にとって面白いとは限らず、自分が忘れてるからといって人の目に止まらないとは限らないもんだなあと思った #chainer_compiler_reading"
shinichiro hamajiさんのツイート: "前者はループまわりは本当に色々苦労したけど終わってみると割と普通、というのと、後者は方針途中でかえた残骸が残ってたshape inferenceが妙に注目されて @kuenishi さんが最近おっしゃってた「まともなソフトウェアはデッドコードは消す」という教えをね…ちゃんと実践しないと。。"
shinichiro hamajiさんのツイート: "せっかく open なので chainer-compiler についてなんかかいていこうかなと。 https://t.co/Zy0eHiXjfM は Chainer のバージョンを上げてて、 ChainerX の新しい op を使うためなので重要。でもこれすると python から使った時の ABI 大混乱を避けづらくて、このへんポリシー決めてなかいとなあ"
Bump up chainer version by shinh · Pull Request #272 · pfnet-research/chainer-compiler
shinichiro hamajiさんのツイート: "歴史的事情のある XCVM はわかりにくいので、 ChainerX VM を略して、リポジトリの中では ChxVM と呼ばれることとなりました https://t.co/YJEUU4kjxk"
Rename XCVM to ChainerX VM by shinh · Pull Request #277 · pfnet-research/chainer-compiler
shinichiro hamajiさんのツイート: "自分のじゃないのを書くと、 Shape を ChxVM の型にするやつ https://t.co/ivh69nYj8T Shape を Array で動的に持ってたので、 ch2o/elichika で出力した ONNX とか Shape だらけで、なんというか結構大変なオーバヘッドになってるので、いろいろとなんとかなると嬉しい"
Specialize GeItem from shape variable by take-cheeze · Pull Request #305 · pfnet-research/chainer-compiler
chainer-compilerのその後 - Google スライド
動的な計算グラフの型とshapeの“半”静的推論 | Preferred Networks Research & Development

GPT

小猫遊りょう(たかにゃし・りょう)さんはTwitterを使っています 「AI分野でめちゃくちゃ盛り上がってる「GPT-3」を使った事例が15個まとまってる。 GPT-3の衝撃 https://t.co/oR4P1mjq0D 「GPT-3の方法はこれまでのDeep Learning研究の観点からみるとかなり特殊です.むしろ新しいプログラミングパラダイムと見るべきかもしれません.」」 / Twitter
GPT-3の衝撃 - ディープラーニングブログ
超巨大高性能モデルGPT-3の到達点とその限界. この記事では、超巨大言語モデルGPT-3の技術的な解説、GPT-3達成したことと… | by akira | Jul, 2020 | Medium
超高精度な言語モデル「GPT-3」は本当に「人間そのもの」な会話ができるのか実験した結果は? - GIGAZINE
自然なブログを書いてしまうほど超高精度な言語モデル「GPT-3」はどのように言葉を紡いでいるのか? - GIGAZINE
OpenAIが超高精度な言語モデル「GPT-3」用いたAIモデルをAPIとして利用可能に、Wikipediaの内容を「質問」で検索するデモムービーも - GIGAZINE
AIによる自動文章作成ツールがあまりにも高精度のテキストを簡単に作り出してしまうため開発陣から「危険過ぎる」と問題視される - GIGAZINE
「あまりにも危険過ぎる」と危険視された文章生成ツール「GPT-2」の技術で画像を自動で生成することに成功 - GIGAZINE
OpenAIが1,750億のパラメーターを持つGPT-3 AI言語モデルを発表
須山敦志 Suyama AtsushiさんはTwitterを使っています 「理解に基づいて文書を生成するのではなく,大量の学習データから「コピペ」しているかのよう. GPT-3, Bloviator: OpenAI’s language generator has no idea what it’s talking about https://t.co/SxSG54nl2Z」 / Twitter
GPT-3, Bloviator: OpenAI’s language generator has no idea what it’s talking about | MIT Technology Review
須山敦志 Suyama AtsushiさんはTwitterを使っています 「何はともあれ,適当にウェブの記事を切り貼りしてレポート課題を出す学生たちの「仕事」は,事実上AIによって奪われたわけですね.」 / Twitter
20200926
文章生成AI「GPT-3」がRedditで1週間誰にも気付かれず人間と会話していたことが判明 - GIGAZINE
Text Synth
超高精度の文章を自動生成できる「GPT-3」は1日当たり45億以上の単語を出力していることが明らかに - GIGAZINE
超高精度な文章生成AI「GPT-3」には反イスラム教的なバイアスが存在すると判明 - GIGAZINE
「GPT-3」に近い性能の言語モデルをオープンソースで目指す「GPT-Neo」 - GIGAZINE
OpenAIが画像生成用のGPT-3モデルを発表
MicrosoftがGPT-3 AIモデルの独占ライセンスを取得
99.9%少ないパラメータでGPT-3パフォーマンスを上回るAIのトレーニング方法

blog

AIブーム終焉の意味するところ|Ryota Kanai|note
20200418
高校数学を使って誤差逆伝播を”再発見”できるAutoML-zero - akira - Medium
日本ディープラーニング協会におけるRNN (Recurrent Neural Network) | yasuokaの日記 | スラド
ClPyが製品候補版になり、ほぼ全ての主要機能が動作するようになりました - Fixstars Tech Blog /proc/cpuinfo
ClPyの論文が公開されました - Fixstars Tech Blog /proc/cpuinfo
ClPy meets libTooling (1): Ultima - Fixstars Tech Blog /proc/cpuinfo
LINE、NAVERと共同で、世界初、日本語に特化した超巨大言語モデルを開発 新規開発不要で、対話や翻訳などさまざまな日本語AIの生成を可能に | ニュース | LINE株式会社
[AAAI2021採択論文] 深層学習による株価予測 | Preferred Networks Research & Development
[2012.07245] Deep Portfolio Optimization via Distributional Prediction of Residual Factors
[AAMAS2021採択]株価予測のためのアンサンブル・進化計算手法 : Trader-Company法 | Preferred Networks Research & Development
[2012.10215] Trader-Company Method: A Metaheuristic for Interpretable Stock Price Prediction
ニューラルネットワークで「開いた量子系」を学習する – 機械学習と量子物理学の融合 | academist Journal
Ethics Processing Unit - マルシテイア
強化学習の環境紹介! | AI-SCHOLAR | AI:(人工知能)論文・技術情報メディア
AWS、SQL文で機械学習のモデル作成、トレーニング、推測まで実行できる「Amazon Redshift ML」正式リリース - Publickey
Facebook、どんな話題にも対応できるAIチャットボット「BlenderBot 2.0」オープンソースで公開。会話しつつ裏でネット検索し最新情報を取得 - Publickey

PC Watch

【後藤弘茂のWeekly海外ニュース】NVIDIAのAmpereで対応した新技術「プルーニング」 - PC Watch
【後藤弘茂のWeekly海外ニュース】第3世代のディープラーニングプロセッサはモデル圧縮技術が鍵 - PC Watch
【後藤弘茂のWeekly海外ニュース】NVIDIA Ampereにおけるプルーニング対応の特徴 - PC Watch
【後藤弘茂のWeekly海外ニュース】人間の脳から産まれたディープラーニングのプルーニング - PC Watch
NTT、分散配置されたデータから安定したディープラーニングが可能な技術 - PC Watch
【やじうまPC Watch】AIがクロスワードでも人間を超える - PC Watch

日経クロステック

AIにおける「次元の呪い」解決へ、富士通研が機械学習の最有力学会で発表 | 日経クロステック(xTECH)
Apple注目の1ビット深層学習、超省電力で「スマホに常時AI」 | 日経クロステック(xTECH)

GIGAZINE

画像

ディープラーニングの手法「CNN」の画像識別処理がアニメーションで理解できる「CNN Explainer」 - GIGAZINE
最先端のAI画像認識モデルでも正しく認識できない画像まとめ - GIGAZINE
コンピューターは「人間の目線」をどのように認識するのか? - GIGAZINE
OpenAIが開発した画像認識AI「CLIP」の思考の特徴とは? - GIGAZINE
高度な画像認識AIは手書きの文字やステッカーなどの「敵対的な画像」で簡単にだまされてしまう危険性 - GIGAZINE

Google

Googleのエンジニアが人間がコーディングを行うよりも高速で自己進化するAI「AutoML-Zero」を発表 - GIGAZINE
Google傘下のDeepMindがゲームのルールを教えられなくても勝ち方を勝手に学習していくAI「MuZero」を発表 - GIGAZINE
GoogleがAI倫理に関する議論を受けて新たなAI責任チームを編成、社内外からは非難の声も - GIGAZINE
Googleがスパース推論でニューラルネットワークの高速化を達成したと報告 - GIGAZINE
Googleが自然な会話を実現する対話特化型AI「LaMDA」を発表、LaMDAが冥王星や紙飛行機になりきって会話するデモも公開 - GIGAZINE
GoogleがAIを用いてAI専用プロセッサの開発を爆速化したことを発表 - GIGAZINE

NVIDIA

NVIDIAが対話型AIのフレームワーク「Jarvis」の提供を開始 - GIGAZINE
NVIDIAがセキュリティ上の脅威を検出・防止するためのAIフレームワーク「Morpheus」を発表 - GIGAZINE

Facebookが英語を経由せずに100個の言語を直接翻訳できる新しい機械翻訳システムを開発 - GIGAZINE
初めてニューラルネットワークによる量子化学計算を実現したシステムがオープンソース化 - GIGAZINE
機械学習の「Q学習」にベイズ推定を取り入れると一体何が起こるのか? - GIGAZINE
Appleの「M1」搭載Macに最適化されたAI向けライブラリ「TensorFlow」の最新バージョンがリリースされる - GIGAZINE
高度に発達したAIを人間が制御することは可能なのか? - GIGAZINE
通常のチェスAIよりも人間らしい指し回しを実現するニューラルネットワークチェスエンジン「Maia」 - GIGAZINE
AIが文章を書けるようになったことで政治がゆがめられる危険性がでてきた - GIGAZINE
GPUに比べて最大15倍高速な市販CPU向けのディープラーニングアルゴリズムが開発される - GIGAZINE
MLSys-2021-accelerating-slide-deep-learning-on-modern-cpus-vectorization-quantizations-memory-optimizations-and-more-Paper.pdf
CPU algorithm trains deep neural nets up to 15 times faster than top GPU trainers
L.starさんはTwitterを使っています 「論文の方をざらっと眺めてみたが、極めてざっくり言って疎行列を上手に扱うためにハッシュテーブルを使うということのようで、たしかにそれはメモリが潤沢なCPUの得意そうな分野。もうちょっと読み込んでみたい。 https://t.co/rMigDHNuqC」 / Twitter
片桐 孝洋さんはTwitterを使っています 「ざっとみた感じ  行列構造を疎行列データ構造のように持ち(この管理をハッシュテーブルでする) あとはSIMD化して高速化のようだ」 / Twitter
片桐 孝洋さんはTwitterを使っています 「対象の疎行列構造の制約を見る必要があるが、HPC分野の得意技で高速化しているといえる。 どのぐらい汎用か見極める必要があるが、この方法は、IntelのCPUだけでなく、「富岳」のARM64FXでも、有効そうな方法に思える。」 / Twitter
言語の壁を超えて複雑な文章や画像も理解できる新検索アルゴリズム「MUM」をGoogleが発表 - GIGAZINE
「文章生成AIによって作られたフェイクニュース」は本当に民主主義にとって危険なのか? - GIGAZINE
中国の研究チームが新たなAI「悟道2.0」を発表、パラメーター数は1兆7500億でGoogleとOpenAIのモデルを上回る - GIGAZINE
AI規制が逆に「新たな生体認証監視時代を到来させてしまう」という主張 - GIGAZINE
ロボットに仮想空間で「現実世界とは何か」を学ばせることで学習を高速化する「Habitat 2.0」をFacebookが発表 - GIGAZINE

infoQ

Google

Googleが新しい高性能TensorFlowランタイムをオープンソース化
Google、Facebook、Microsoftの大規模多言語AIモデル
Googleが高速アテンションモジュールのPerformerをオープンソース化
GoogleとMicrosoftのAIモデル、言語理解ベンチマークにおいて人間の能力を凌駕
Googleは兆パラメータのAI言語モデルSwitch Transformerをオープンソース化
GoogleがAutoMLアルゴリズムのModel Searchのソースを公開
Google DeepMindのNFNetがディープラーニングを効率化
自然言語処理とゲノミクス処理を進化させるGoogleのBigBirdモデル
Perceiver:複数の入力データ型向けの単一のニューラルネットワークモデル
Google Cloudがマネージド機械学習プラットフォームの Vertex AIを発表

Facebook

Facebookは機械学習プライバシーライブラリのOpacusをオープンソース化
Facebookが多言語音声認識ディープラーニングモデルをオープンソース化
Facebookがタンパク質配列を処理するAIモデルをリリース
FacebookがZionEXプラットフォームを発表、12兆パラメータのAIモデルのトレーニングを可能に
FacebookがTransformer AIをスケールアップするExpire-Spanをオープンソース公開

MS

OpenAIがニューラルネットワークを理解するためのビジュアライゼーションツールであるMicroscopeを紹介
OpenAIはニューラル言語モデルのスケーリング法則を近似する
Microsoft Researchが新しいビジョン言語システムを開発:VinVL
Microsoftがニューラルテキスト読み上げAIへの限定アクセスを発表
MicrosoftがAIトレーニングライブラリのZeRO-3オフロードをリリース
MicrosoftのZeRO-Infinity Libraryで32兆個のパラメーターのAIモデルをトレーニング

スタンフォードNLPグループがStanzaをリリース:Python NLPツールキット
TensorFlow 2.3ではパイプラインのボトルネックを削減し、前処理を改善
ExBERT、NLPモデルで学習された表現を探索するためのツール
AppleのML ComputeフレームワークがTensorFlowトレーニングを加速
Caltechが偏微分方程式を解くAIをオープンソースとして公開
NLPライブラリのspaCy 3.0にTransformerベースのモデルと分散トレーニングが追加
マシンラーニングをテストとメンテナンス作業で使用する
Alibaba Announces 10 Billion Parameter Multi-Modal AI M6
MITがAIベンチマークとなるThreeDWorld Transport Challengeを発表
研究者が生物学的に妥当なAIトレーニング方法を公開
NVIDIAがAIをトレーニングするデータセットジェネレータDatasetGANを発表
CMUがAIモデルの一般化を保証するアルゴリズムを開発

スライド

tvm_intro.pdf - Speaker Deck
Intel Nervana Graph Compilerとは?
TensorFlow XLAは、 中で何をやっているのか?
DLHacksさんはTwitterを使っています 「質問応答タスクでモデルが何を学習しているのかを調べるために複数のデータセットに対して各種ablationを行った結果,モデルはショートカットを学習しているだけで文章や質問の理解をしていないことを示唆する結果が得られた. https://t.co/mS1RYMIIMG」 / Twitter
[DL輪読会]What do Models Learn from Question Answering Datasets?
確率的推論と行動選択
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
統計的機械学習 - yasuda.pdf
画像生成・生成モデル メタサーベイ
最近のディープラーニングのトレンド紹介_20200925
東京大学2021年度深層学習(Deep learning基礎講座2021) 第8回「深層学習と自然言語処理」
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法

Qiita

ニューラルネットワーク、多様体、トポロジー - Qiita
出きたてホヤホヤ!最新オプティマイザー「AdaBelief」を解説! - Qiita
(あんちべ! 俺がS式だ)さんはTwitterを使っています 「https://t.co/fl8svJgzuW 古めのディープラーニング(RNNやLSTM)で止まってる人が「Transformerって何?」を把握するのにとても良い資料、流れがわかる。 ただ、全くディープ知りませんって人が読む資料ではないのと、処理の流れを説明してくれてるんであってなんでこれが強いのかとかの解説ではない」 / Twitter
図で理解するTransformer - Qiita
(あんちべ! 俺がS式だ)さんはTwitterを使っています 「もうちょい説明が欲しいって方にはこっちもおすすめ https://t.co/iVKkm2xz35」 / Twitter
End-to-End Object Detection with Transformers - Speaker Deck
製造業における機械学習 - Qiita
強化学習 - 2020論文までの道のり(Q学習中心~R2D3, Agent57) - Qiita

Twitter

論理との組み合わせ

Miura HidekiさんはTwitterを使っています 「昔話題になってもっと広まるべきだった用語  ソリトン  ウェーブレット  フラクタル圧縮 思い出したら追加します」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 ファジー推論」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 ファジーは思いついたのですが、今知っておくべきかと言うとちょっと悩みます。その手の曖昧な話は深層学習ベースで処理した方がよさそうな気がします」 / Twitter
市川 真一さんはTwitterを使っています 「@miura1729 そうですね。日本だと深層学習一本やりな感じですが、論理と組み合わせてシステムを組む方法論もあるらしいです。ファジーは論理の一種なので、あいまいな論理と深層学習の組み合わせも可能性としてはあるかもしれません」 / Twitter
Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど。深層学習一本やりな感じのニュアンスでツイートしたのですけど、論理としてのファジーと深層学習の組み合わせも面白そうですね。ファジー理論って論理としてどれほどの枠組みがあるのか(健全性・完全性は?(無理な気がする...))わかりませんが。」 / Twitter

二重降下

いんそうさんさんはTwitterを使っています 「論文を公開しました。二重降下(パラメタ数が極端に多いと過学習しなくなる現象)が深層学習でも起こることを理論的に示しました。既存の理論解析は、扱えるモデルは線形回帰や二層NNなどの浅いモデル限定でしたが、本理論は深層モデルを含む最尤推定を扱えます。米ラトガース大の中田さんが主著です。」 / Twitter
Stat.ML PapersさんはTwitterを使っています 「Asymptotic Risk of Overparameterized Likelihood Models: Double Descent Theory for Deep Neural Networks. (arXiv:2103.00500v1 [https://t.co/zjV5HgYw5a]) https://t.co/s82Iv8LKht」 / Twitter
[2103.00500] Asymptotic Risk of Overparameterized Likelihood Models: Double Descent Theory for Deep Neural Networks
いんそうさんさんはTwitterを使っています 「導出した二重降下のリスク曲線と、我々の理論に適合するアーキテクチャ(並列化NN)の画像です。 https://t.co/eEHD71ECgr」 / Twitter

モグラ叩き問題

須山敦志 Suyama AtsushiさんはTwitterを使っています 「「出てきた問題を一つ一つfixする」ってやっていくと気がつかないうちにどんどんオーバーフィットしていくこともML特有の難しさですね。」 / Twitter
Kazunori SatoさんはTwitterを使っています 「普通のIT開発では、人が書いたコードのリリース時に仕様通りのふるまいかを検証すればよい。一方MLシステムでは、かき集めた新データでMLモデルを再学習するたびにシステムのふるまいが変わるし検証も難しい。「誰もそれをテストしてないのである!」が起きるのがML Opsの怖さ。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これはモグラ叩き問題と呼んだ方が良いかもしれない。見つかった予測ミスを修正しようとしてモデルや前処理のどこかをいじると、他の場所で新しいほころびが出てきてしまう。この新しいほころびが手持ちのデータ外(=本番環境や未来)であると絶対に気が付かない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これを防ぐには、「その修正が合理的かどうか?」に関して熟考する必要があります。「なんかわからないけど特徴量XがY~Zの範囲の値を取ると予測値が暴れるみたいなのでここは処理を分けて予測精度を保ちます」みたいな変な修正をやっていると事態は悪化するだけです。」 / Twitter

説明

Seitaro ShinagawaさんはTwitterを使っています 「ニューラルネット界の怖い人に襲われないためのdeep learningの説明 「人の脳を模倣した」→×調子に乗り過ぎています。まず襲われます。 「人の脳の神経回路を模倣した」→×まだ調子に乗り過ぎています。人目が多いところでは襲われます。 「脳の神経回路の仕組みに学んだ」→〇無難な表現です。」 / Twitter
Seitaro ShinagawaさんはTwitterを使っています 「脳の神経細胞のモデルから直接インスパイアされたのかと言われると、最初はヤリイカの巨大軸索だしなあという気持ちがあるので、「神経細胞が行う情報伝達の仕組みに学んだ」とかにした方がより適切と思いますが、私は大人なので空気を読んで「脳」は残しました。空気を読んだんです襲わないでください」 / Twitter
Katsuhito Sudoh (ja)さんはTwitterを使っています 「@sei_shinagawa ただの関数近似の一種ですが何か?という説明をしてたりします」 / Twitter
Seitaro ShinagawaさんはTwitterを使っています 「@katsuhitosudoh deep learningの端的な説明は私もそうしていますね。敢えて「脳の~」とか「人の~」とかみたいな言い回しをしたいなら上記のようにするかなということです。まあ私個人としてはこういう言い回しは嫌いじゃないです」 / Twitter
FadisさんはTwitterを使っています 「最初にこれを考えたヤツはニューロンから着想を得たかもしれないが、学習できるようにネットワークの進行方向を定めた段階で既に模倣もへったくれも無い別モンなんだよな」 / Twitter
ジョニーさんはTwitterを使っています 「ディープラーニングはブラックボックスなので、不具合があってもなぜ判断を誤ったのか分からなくて嫌がられることがありました。どこかの化学メーカーでも精度は良いけど説明力がないので、ディープラーニングじゃなくて結局線形回帰使った話を聞きました。」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「データ解析の専門会社が日系製造業に深層学習ベースの異常検知システムを納入する際、いざ量産導入でテストとちょっと違う画像を投入しシステム破綻しクレーム、がしばしばあるそう。私は画像屋さんと工場両方の言い分がわかるつもりだが、そもそもDLって製造業に向いてない気が個人的にはしている。」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「工場では「当面この製品ずっと作りますよ」と言いつつ半年後に設計変更して画像の感じが大幅変化なんてザラ。"設備"は短くても5年償却、即ち5年は初期の性能を維持すること前提。そういう意味で「汎用性」に乏しくなりがちの深層学習ベースシステムは製造業の商習慣に会ってないと思っている。」 / Twitter
A_T_O_MさんはTwitterを使っています 「@dr_vegepamyu 再度学習させることは難しいんでしょうか?」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「@ATOM01074529 もちろん画像解析の正論としては「画像が変わったのなら新しく学習しなさい」です。ただ工場としては「寝ぼけたこと言ってんじゃねえぞ!不良画像集めるのどんだけ苦労したと思ってんだ?これから製造するモノの不良画像なんてあるわけねえだろ!過去の画像だけで何とかしろ金払ってんだぞ」です。」 / Twitter
A_T_O_MさんはTwitterを使っています 「@dr_vegepamyu あ。 そりゃ、不良品の画像はないですね。(恥ずかしい) 教師なし学習とか?(←機械学習何も知らない。) そもそも外観でわかる不良の割合って大したことない気もします。」 / Twitter
ドクター・べじぱみゅさんはTwitterを使っています 「@tako2539 工場はとくに、何か問題が起きたら即対策立案!放置はあり得ない、という文化ですので「ミス率0.1%だがミスの理由不明」よりも「ミス率5%だがミスの理由が明確」のほうが基本的に好まれますね。あとは「いざ困ったら自分達で微調整効く」も好まれます。」 / Twitter
ジョニーさんはTwitterを使っています 「@dr_vegepamyu 工場は問題起きたら再発防止策立案しますから、説明力があるモデルの方が好まれそうですよね。 私は一時期金融業界にいたんですが、金融でも問題があったら金融庁やお客さんに説明することが求められますし、説明力あるモデルが求められてました。DLも提案しましたが却下されましたね。」 / Twitter

histric-1

Fadisさんのツイート: "どうやらディープラーニング屋さんはネットワークを定義したDSLに沿って計算を行うフレームワークの実装はDSLのインタプリタの開発に他ならない事に気が付いてしまったらしく、ネットワーク定義を食べてLLVM IRを吐くコンパイラフロントエンドの開発が加熱しているらしい"
Fadisさんのツイート: "DLVM: LLVM IRに落とす事ができ、ニューラルネットワークに欲しい演算と型を備えたLLVM IRより高レベルの中間言語 https://t.co/WN9Ijyka92"
The DLVM Compiler Infrastructure for Deep Learning Systems
shunsuke_sasakiさんのツイート: "DLVMは作者がメンテナンスを止めちゃいました。”The authors of this project are no longer maintaining DLVM, but instead developing Swift for TensorFlow”… "
Fadisさんのツイート: "Glow: ネットワークのグラフを入力として、グラフの最適化を行なった物をLLVM IRに変換して、LLVMにターゲット固有のSIMD命令の利用や命令スケジューリングをさせる機械学習コンパイラ https://t.co/MoW4SWm9tB"
pytorch/glow: Compiler for Neural Network hardware accelerators
はじめてのにき(2018-11-11)
Aug. 2017
Intel® Nervana™ Graph: A Universal Tensor JIT Compiler
shinichiro hamajiさんのツイート: "Relayというか、グラフIRに対する関数型言語IRの優位性というのがさっぱりわからなくて、PythonベースのフロントエンドDSLで、ループを常に再帰で書いてあれば、unrollするか否かの選択を、デコレータへの引数などの方法で伝えられる、ということが思い当たった"
shinichiro hamajiさんのツイート: "ただ関数型スタイルでモデル書くのか……?という疑問と、別にRelayにそういうコードは無いというか普通にループしてるというか、 https://t.co/sMM9CKREcX にあるDSLすら実体ない気がするんだよなあ、ということで、よくわからん。このRelay PDFは論文というよりdesign docみたいなものな気がするし謎"
Relay: A New IR for Machine Learning Frameworks
TensorSpace.jsがニューラルネットワークの3D可視化フレームワークを提供
Fadisさんのツイート: "ニューラルネットワークの計算グラフを図にしたヤツ、「TensorBoardが生成するヤツ」よりもっと中立な規格ってあるんだろうか"
MLIR: A new intermediate representation and compiler framework
Mapping Spiking Neural Networks onto a Manycore Neuromorphic Architecture
takeoさんはTwitterを使っています: 「深層学習コンパイラやバックエンドの研究開発ツラすぎてこの分野の進化が止まりかねないという話 Machine Learning Systems are Stuck in a Rut https://t.co/arPRuTA1oV」 / Twitter
Machine Learning Systems are Stuck in a Rut
ソースコード解析職人さんはTwitterを使っています: 「@bonotake 昨日、読みました。 なかなか、得るものが多かったです。」 / Twitter
takeoさんはTwitterを使っています: 「@Vengineer この論文は割とネガティブな論調で書いてますが、でもコンパイラやってる人はみんなおんなじことを多少なりとも思ったことあるんじゃないかなぁって思います」 / Twitter
ソースコード解析職人さんはTwitterを使っています: 「@bonotake 画像処理を長年やっていたので、 データの並びはいつも気になるポイントでした。」 / Twitter
takeoさんはTwitterを使っています: 「@Vengineer 弊社でも割と議論の的になります」 / Twitter
FadisさんはTwitterを使っています: 「MLIRを吐くFortranフロントエンドFCのソースコードが公開された話。MLIRはTensorFlowが生み出したLLVM IRよりも高級な表現を維持する中間言語で、LLVM IR含むいくつかのターゲットに落とすことができる。LLVMには既にFortranフロントエンドf18があるが、それとは別 https://t.co/j2eTH7obI0」 / Twitter
The MLIR-Targeting "FC" LLVM Fortran Compiler Is Now Open-Source - Phoronix

histric-2

Daisuke OkanoharaさんはTwitterを使っています 「Enokiは複数プラットフォーム向け自動ベクトル化、微分化を備えたライブラリであり、define-by-runとコンパイル型の中間といえ、レンダリングのような数十万行程度の規模のコードを対象にできる。またテンソルだけでなくより複雑な入れ子データ構造も扱える https://t.co/yOqINrqovT」 / Twitter
FadisさんはTwitterを使っています 「これ、きちんと性能が出るように作ると大変面倒くさいし、性能気にせず素直に実装すれば一瞬で完成する。CNNってやってる計算自体は複雑じゃないんだよ」 / Twitter
がっちょ( ¨̮ )さんはTwitterを使っています 「畳み込みニューラルネットワーク(CNN)って0から自分で実装することって可能ですかね……? (実装期間は長くても4か月が目安) (むやみにやろうとするととても深い谷に落ちそうで怖い)」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「ディープラーニングは(規則はあるのだが)人間に理解できる低次元空間では中々規則が見えて来ないような問題で、かつ頑張って低次元への近似を行っても返って情報を損なうようなときに、よもや人間の理解がボトルネックなのだと認めて、データ突っ込んでアウトプットだけ見るのに適した方法。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「人間の脳を模擬してますとか、説明性を付与できます、とか半分デタラメだと思う。前者は、当初はそういう意図だったというのはあるかも。後者は、説明できるんだとしたら、それはニューラルネットワークの話ではなくて、そのデータがやっぱり低次元で十分だった、という話だと思われる。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「deep learningが長足の進歩を遂げてるとは言え、K値とかオバマの顔写真復元とかの騒ぎのようにモデルなき予測の危険性は明らかだし、機械学習を補助として使うことは増えても、プログラマの仕事は、すぐには、なくならないんだろうなーって思ってる」 / Twitter
Kazuho OkuさんはTwitterを使っています 「今から業界に入る人の引退までその状態が続くかわからんけど、いっそ、さっさとコンピュータになんでもまかせて、みんな遊んで(趣味に打ち込んで)過ごせる時代が来たらいいなと思う」 / Twitter
./note008.html
高卒工員プログラマーさんはTwitterを使っています 「困った時のニュートン法 まあ最小値付近の微分係数の扱いが微妙なんで 微分係数(の大きさ)がスレッショルドを切ったら微小変位法に切り替えるけどな」 / Twitter
FadisさんはTwitterを使っています 「ニューラルネットワークを使った機械学習というのは、どういう関係かもわからない関数をとりあえず何でも近似できるニューラルネットワークで置いて、最適化問題にして解いてしまえという物なので、効率の良い学習の為の工夫は多くの場合関数の形は分かっているが係数が不明な最適化問題に転用が効く」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には「ニューラルネットワークは人間の脳を模したもの」とか言っても何も問題はないですね。所詮モデルなんだしどう思おうが勝手です。むしろuniversal approximation theoremみたいな実用とは無縁な定理を持ち出してどんな予測にも使っちゃう傾向の方が問題です。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「同時に、「ニューラルネットは人間の脳を模しており、人間のように学習や予測ができる」みたいな言説が独り歩きして各地であることないこと語られてしまっている現状もあるので、専門家としてその点に釘を刺しておくのは重要です。いずれにしても「モデルはモデル」という割り切りが重要。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「↓現実の複雑なタスクに対して具体的な要求仕様を定義し、実現可能な技術に落とし込むというプロセスにおいて、ディープラーニングはまったく実用的ではありません。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「なので、煩雑な現実を避けて、それらしいサブタスクを設定してデモを魅せるというのが多くの企業がやっていることですが、残念ながら実応用へのボトルネックの解消には繋がっていないのが現状でしょう。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「4年前ですが、この区別は未だに浸透していない感があります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「人の知能を模倣するための科学と、より一般的な予測・判断の科学とは、目指す方向がそもそも違っていることを今一度強調しておきたいところです。自分は企業のエンジニアとして後者の発展をより望んでいます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「近い将来に人と同程度の人工知能が実現して、今の職業をそっくりそのまま置き換える」みたいなストーリーは起きません。」 / Twitter
'Yuki’ KamitaniさんはTwitterを使っています 「深層ニューラルネットワーク(DNN)とヒトの脳との階層的な類似性を測る指標を作ったら、最近の「高性能」DNNは、あまりヒトの脳に似ておらず、物体認識精度と脳との階層的類似度の間には負の相関があった、という話。AlexNetやVGGがめっちゃ強い https://t.co/qEbuYw0WAk」 / Twitter
Kazunori SatoさんはTwitterを使っています 「AIというより、「人の手に負えない膨大な条件の組み合わせからいい感じの答えをざっくり見つけるアルゴリズム」として見れば、MLって単純に強力すぎるツール。映画マトリックスのように、世の中の様々な課題が高次元空間内の微分可能な関数として見えれば、従来のITとは全然違うんだなと感じられる。」 / Twitter
Kazunori SatoさんはTwitterを使っています 「一般的なIT開発とは問題の解き方が全然違うから、何か異質なものとして「AI」って名前を付けて、想定用途を制限したり過剰に期待したり幻滅したりして納得したい人が多いのだろう。でも実態は計算パラダイムに過ぎず、使うCPUもソフトもごく普通。とても便利だけどクセのある新しいパラダイム。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「甘利先生の講演を聞いてる。 内容も研究スタンスも面白い。 そういえば機械学習の理論・数式を追うだけでなく、ピンと来ない時は、その意味するところを低次元に落とし込んで、実感的に捉えられるようにする工夫とか、甘利先生クラスでもこういう作業するのね、とか。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「自然言語文法は例外だらけなのに自然に感じるのは、法則に見えてホントは慣れで学習しているからで、慣れとはニューラルネットの重み付けそのものと。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「理系発見の多くも、先に結論を発見して、その後に論理性・無矛盾を完成させるパターン多い。 これも同様のニューラルネット構造が一因かな? (あと無意識が解を考え、意識が気づく構造も一因そうだが) 棋士も、先に良い手を思い付いてから、それが正しいかを確認する方向が多いという話も。」 / Twitter
1T0TさんはTwitterを使っています 「2功8罪 https://t.co/Nc2Fb2bruh」 / Twitter
1T0TさんはTwitterを使っています 「↑てっきり黒は全部罪かと思ったらそうとも言い切れないな」 / Twitter
UmeponさんはTwitterを使っています 「変数と同数のパラメータを用意すれば、パラメータを上手くチューニングすることでどんな問題も解けるようになるっ!」 / Twitter
UmeponさんはTwitterを使っています 「真面目な話、手動で弄る必要のあるパラメータが増え出したら「本質的な問題を棚上げにしてるんじゃないか?」という危機感を持ち遡ってアプローチから見直した方が良い。」 / Twitter

Kentaro FukuchiさんはTwitterを使っています 「ミュラー・リヤー錯視やポッゲンドルフ錯視が「ぼかし」によって説明できるかもしれないという杉原先生の説明は、畳み込み処理との関係を考えると非常に面白い。 https://t.co/h78r5prRFo https://t.co/NekyJgHBdm」 / Twitter
Kokichi Sugihara's Homepage (Japanese)
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的な感触としてディープラーニングは、一部の特定の応用領域を除き、ビジネス面では完全に終わっています。」 / Twitter
Yuta KashinoさんはTwitterを使っています 「(´-`).。oO( 誰も言わないのでつぶやいておきますが,DNN等のAIのビジネス適用,やはりブライアン・アーサーの言う基本技術のいくつかが未だ欠けていて,ほとんどの領域で人が期待する性能が全然達成できず,適用範囲があまりに狭すぎますよね….世の中も気づいてきたので,しばらくすると… )」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「とりあえず「大量にデータを食わせてハイパラチューニングすれば何とかなる」というパラダイムは応用領域では捨てた方が良さそう。その代わり、計算効率化やモデリングに関する知見などは、分解すれば良い部品はたくさんあります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「DNNを使って自動化したい」っていう話、一定のリテラシがある界隈では本当に聞かなくなった(かわりにAIが良く用語として使われてますが)。このあたりは研究よりビジネスの方が判断が冷たいというか飽きが早いというか。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「もちろん人手を介さず自動的に精度の高い予測ができる技術だとか、そういうものは未来永劫重要なテーマではありますが、現状でそれは到底実現されていないですしされる見込みもないので、この辺を売り文句にしてビジネス提案するのは虚構に近いです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「要は、issueとsolutionの対応付けが、研究とビジネスとでぐちゃぐちゃになってしまっている。研究領域のissueから生じたsolutionを、そのままビジネスのsolutionとして使ってはいけない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「曲線フィッティングな深層学習が活躍できそうな領域に関しては、Andrew Ng先生の短い説明がありますね。 &gt;If a typical person can do a mental task with less than one second of thought, we can probably automate it using AI either now or in the near future. https://t.co/25bng87NuU」 / Twitter
Andrew Ng: What AI Can and Can’t Do
Ken McAlinnさんはTwitterを使っています 「深層学習が廃れることはなく、どんどんなにが得手不得手なのかがわかっていくんだと思うんですよね。個人的には人間が得意なこと(画像認識、運転、言語)は得手で人間が不得意なこと(経済予測、ビジネス意思決定)が不得手っていう区別になんとなく納得しています。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データが豊富に存在するある特定の課題を、深層学習なり強化学習なり最適化なりベイズなりドメイン知識なりを徹底的に組み合わせて解きにいく、はまだまだありそう。逆に、汎用お手軽予測ツールとしての深層学習の使い道はなくなりました。」 / Twitter
Yusuke Hayashi(林祐輔)さんはTwitterを使っています 「「深層学習を使う必要がない」ツイートで例に挙げられていた2つの分布が重なる場合の識別問題. こちらの図表(b)ではカーネル法を使ってそんな問題でも解ける場合があることを紹介している. 深層学習はカーネル法では固定されているカーネル関数がデータに応じて適応的に変化するモデルの1つ. https://t.co/9vhN9F3bZ9」 / Twitter
akiraさんはTwitterを使っています 「https://t.co/BjliikbCYZ 深層学習を使って、物理学で人間が解釈可能な現象を発見させる研究。物理現象ではグリーン関数が頻出するが、未知の偏微分方程式に関連グリーン関数をモデルに学習させることで、より理論に即した物理的特性発見手法になっている https://t.co/c3tMBGixud」 / Twitter
[2105.00266] Data-driven discovery of physical laws with human-understandable deep learning

エキスパートシステム

エキスパートシステム - Wikipedia
人工知能「エキスパートシステム」とは?実用例で簡…|Udemy メディア
【図解】コレ1枚でわかる人工知能の3つのアプローチ:ITソリューション塾:オルタナティブ・ブログ
ディープラーニングと機械学習は何が違う?それぞれの特徴を解説|発注成功のための知識が身に付く【発注ラウンジ】
機械学習モジュール群を組み合わせて、最適なソリューションを提供するPKSHA Technology |AI/人工知能のビジネス活用発信メディア【NISSENデジタルハブ】
ディープラーニングとエキスパートシステム(ルールベースAI)の使い分け方 |AI/人工知能のビジネス活用発信メディア【NISSENデジタルハブ】
AIとシミュレーションを組み合わせ、データに乏しい状況でも意思決定を可能に
「<オージス総研をとりまく>人工知能技術の過去と現在(1)」 | 株式会社オージス総研
AIブームを支える「機械学習」~AIの現実的な始め方とは?~ | アシスト
n4200000.pdf
知識表現(ちしきひょうげん) - ITmedia エンタープライズ
知識表現

数値計算

その他

20200314
spitbol/spitbol: SPITBOL x64 provides raw power and speed for non-numeric computation on the x86_64 architecture
SoftFP Library
LibBF Library
ferreiradaselva/mathc: C math library for 2D and 3D programming
OSQP solver documentation — OSQP 0.2.1 documentation
oxfordcontrol/osqp: The Operator Splitting QP Solver
log_(0.99)(0.01 / x)をx=0から200でプロット - Wolfram|Alpha
Wolfram|Alpha 日本語版:計算知能
インテル MKL | 数値演算・統計関数ライブラリー | XLsoft Intel
Mathematics for programmers (early draft)
Google、社内で利用するプライバシーに配慮した統計ツールをオープンソースで公開 | OSDN Magazine
金融市場トレーダーの行動法則をボルツマン方程式で解明 | 東工大ニュース | 東京工業大学
状態空間モデルの推定方法の分類 | Logics of Blue
UTokyo OCWx
微分方程式と差分方程式(漸化式)
イジング模型の定義 - MathWills
Jones on modulus without division
入門テキスト「測度と積分」 - Mathpedia
Point Cloud Library | The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing.
Point Cloud Library (PCL)
bin coordinates - Google 検索
3-FPAI101-20160807-B504_15-20.pdf
Juliaで精度保証付き数値計算 | TakLAB日誌
天才数学者ラマヌジャンのように数式を予測して生み出してくれるAI「ラマヌジャン・マシン」が誕生 - GIGAZINE
移動平均とFIRフィルタ – GitHub 出張所 – プログラム関係のブログはここに

数理最適化

Fixstars Tech Blog /proc/cpuinfo

整数型 と Newton法 - Fixstars Tech Blog /proc/cpuinfo
収束加速法の紹介 - Fixstars Tech Blog /proc/cpuinfo
東芝シミュレーテッド分岐マシン (SBM) による最大カット問題のベンチマーク - Fixstars Tech Blog /proc/cpuinfo
「DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化」を発表してきました - Fixstars Tech Blog /proc/cpuinfo
「CuthillMckee法によるOpenFOAMのDIC前処理に関するスレッド並列化」を発表してきました - Fixstars Tech Blog /proc/cpuinfo
シミュレーテッド分岐マシン(SBM)で巡回セールスマン問題を解く - Fixstars Tech Blog /proc/cpuinfo

データをアクションにつなげる技術「数理最適化」とは? | DOORS
数理最適化による問題解決の実践的なアプローチ
【連載】ブレインパッドの数理最適化ブログ(目次) - Platinum Data Blog by BrainPad
第1回:最近学んだ数理最適化の定式化のチップスたち 【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第2回:ナップサック問題を色々な方法で解いてみた【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第3回:はじめての配送計画の列生成法【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第4回:在庫問題と配送問題をドッキング!大規模最適化時代で何が変わる!?【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
第5回:なぜデータサイエンティストが数理最適化を行うのか【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
井山梃子歴史館さんはTwitterを使っています 「「実社会におけるあらゆる問題は、守らなければならない制約条件のもとで、何らかの評価指標を最小化あるいは最大化する制約付き最適化問題として定式化することができます。」 すき」 / Twitter
井山梃子歴史館さんはTwitterを使っています 「https://t.co/v5L3opFuTw」 / Twitter
【プレスリリース】制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- | 日本の研究.com
ТагсановさんはTwitterを使っています 「異分野横断しててカッコいいなと思う一方で、論文ざっと読んでみるとグレブナー基底の計算が途中で必要みたいで、現実的な問題設定に対してどれだけまともに使えるのかは気になるところではある https://t.co/GmKGFMeEzB」 / Twitter
京都大学さんはTwitterを使っています 「制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- https://t.co/RH6Fb8BHRf」 / Twitter
制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- — 京都大学
Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「問題は,計算機を増やすことで高速化される効果は最善でも線形であるのに対し,組み合わせは指数関数で増えることですね。」 / Twitter
UmeponさんはTwitterを使っています 「バイバインを使えば、どんな組合せ最適化問題も線形時間で解ける計算機って作れるのかな?同じ物がコピーされるだけだから難しいか。」 / Twitter
Python言語による実務で使える100の最適化問題 | opt100

Eigen

Eigen
Eigen3 survey
C++行列計算ライブラリEigen入門 - Qiita
ベクトル/行列演算の定番ライブラリEigen - Qiita
C++の行列ライブラリ Eigenの紹介 | Preferred Networks Research & Development
C++線形代数ライブラリEigenの注意点 - Regen Techlog
pdf-eigennote.pdf
でらうま倶楽部 : Eigen - C++で使える線形代数ライブラリ
081791add.pdf
Code_Tips/Eigen.md at master · Shusei-E/Code_Tips

Karatsuba

κeenさんのツイート: "karatsuba、アルゴリズムオーダー的には速いけど実測はかなり桁数上がんないと意味ないみたいなこと聞いた"
Keiさんのツイート: "真面目にKaratsubaが筆算より速くなるビット数を探ってみたら、(32ビットで)1600より上、1800-1900以上で確実くらいだった。Wikipediaの320-640より大分上である。"
Masaki⊣Haraさんのツイート: "あまり把握してないけど、Karatsuba除算とかもあるらしいんだよな https://t.co/XKunRC5Yvw"
2 Karatsuba系列のアルゴリズム
κeenさんのツイート: "karatsubaのkaratsubaってなんなんですか?唐鍔?"
κeenさんのツイート: "人名なの…"
高梨陣平さんはTwitterを使っています: 「任意の桁数の数値の乗算を求める高速なアルゴリズム、Karatsuba Algorithm。最近、改善されたとか。HNで発見に至る歴史が紹介されている。またPythonのlong integerでも採用されている。 https://t.co/l8ApGtfj3j」 / Twitter
Hacker News 100さんはTwitterを使っています: 「Karatsuba Algorithm https://t.co/7V5hdwVZVv (https://t.co/6lwcKHQDzL)」 / Twitter
Karatsuba algorithm - Wikipedia
Karatsuba Algorithm | Hacker News

小清水さんとコンピューター数学

FMA (Fused Multiply-Add) について色んな観点でまとめてみた - 小清水さんとコンピューター数学
逆数の近似命令と精度補正について (その1) - 小清水さんとコンピューター数学
丸め誤差界の Hello World 的定理 -- Sterbenz の定理 - 小清水さんとコンピューター数学
計算環境の精度を当てる ― 解説編 ― - 小清水さんとコンピューター数学
計算環境の精度を当てる ― Intel CPU と Excel への応用 ― - 小清水さんとコンピューター数学
expm1 や pow などの 指数・対数函数 への考察 - 小清水さんとコンピューター数学
素数大富豪だけじゃなく HEX もやろう! ― 紹介編― - 小清水さんとコンピューター数学
Newton法でつながるコンピューターと数学の隙間 - 小清水さんとコンピューター数学
Excelでおかしな計算結果になった問題の正解値を求める - 小清水さんとコンピューター数学
コンピュータでおかしなことになる計算例 (3) ―たった1度の型変換― - 小清水さんとコンピューター数学
コンピュータでおかしなことになる計算例 (2) ― 三角函数を定義通りに ― - 小清水さんとコンピューター数学
コンピュータでおかしなことになる計算例 (1) - 小清水さんとコンピューター数学
浮動小数点の丸めの方向と性質 (1) - 小清水さんとコンピューター数学
下書き - 小清水さんとコンピューター数学

行列

linear2017.pdf

自動微分・微分可能プログラミング・逆問題

自動微分

Masahiro SakaiさんはTwitterを使っています 「以前に、KLEEがLLVM IRを記号実行するように、LLVM IRを自動微分できないかと考えたことがあったけど、NeurIPS 2020で発表されてた! Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients https://t.co/zjJKPuTdlF 実装: https://t.co/vajNgEfEzq」 / Twitter
Paper
Enzyme AD
Masahiro SakaiさんはTwitterを使っています 「新分野にMLを適用する際に、その分野の既存コードをMLフレームワークのDSLに書き直すなりしなくてはいけないのを何とかするという動機。 言語非依存の自動微分を実現し、また低水準言語を対象とした自動微分は非効率という常識を覆し、最適化後のIRを自動微分することでより高効率なコードを生成!」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「この手のことをやるのに型解析が必要なのは普通なんだけど、memcpyはforwardは型によらないけど、backwardは型によって処理を変える必要があるというのは、自分は気づいてなかったので面白かった。」 / Twitter

Julia

Shuhei KadowakiさんはTwitterを使っています 「ここ数日自動微分技術の基本的なアイディアについて勉強したので、メモも兼ねて自分の言葉でまとめてみます。基本的には、僕が勝手に尊敬しているMike J Innesさん(https://t.co/nrAKrct5I6)の"Differentiation for Hackers"(https://t.co/8RmsqDQfq6)と彼の論文(https://t.co/Pmkf5pCHKk)のまとめ 1/n」 / Twitter
MikeInnes (Mike J Innes)
MikeInnes/diff-zoo: Differentiation for Hackers
[1810.07951] Don't Unroll Adjoint: Differentiating SSA-Form Programs
Shuhei KadowakiさんはTwitterを使っています 「"Differentiation for Hackers"はシンボリックな表現に対する直感的な微分器の実装から始めて、色々な自動化の方向性を紹介するっていう内容。微分自体はチェインルールさえ理解すれば実装は難しくなく、ホスト言語の元プログラムからいかにして微分可能な表現を得るかという点が自動化の核となる 2/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「順方向に連鎖律を適用する場合、ホスト言語のプログラム実行の流れに沿って伝播できるので、operator overloadingさえ利用できれば実装が簡単で最適化もしやすい。一方で一入力に対してしか微分を伝播させられないため、MLなどの応用場面でよくある高次元入力に対しては効率が悪くなってしまう。 3/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「ただクロージャにキャプチャされた変数の扱いが面倒(多分ここでも伝播を繰り返す必要がある?)。よく出てくるデュアル数は一見ただの実装上のテクニックに見えるけど、微分の定義との関係性は深淵で面白い。 逆方向に伝播させる場合計算量が出力次元に対して比例するためMLなどではこちらが一般的 4/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「ただホスト言語のプログラム実行をそのまま使うことができないので、元プログラム中の計算を大幅に簡略化した表現を部分評価によって得てそれを微分するのが基本的な方針らしい。その表現は自動微分の文脈だと一般に"Wengert list"と呼ばれるが、ML界隈では"graph"と呼ぶらしい 5/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「部分評価の仕方によって、静的に計算グラフを得る("Static Declaration")と動的にWengert listを構築する("Eager Evaluation")という大きく2つのアプローチに分かれる。それぞれの代表例としては、TensorFlowは前者で、PyTorchとかChainerは後者に属する。 6/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「この2つの間のトレードオフは、効率的に動作させたい(static declaration) vs. 動的なcontrol flowなども含めてホスト言語の機能を自動で計算グラフに変換したい(eager evaluation)というもの。とはいえさっき挙げた代表的なライブラリだといずれもハイブリッドっぽくなっているらしく、 7/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「最近だとTFもeager evaluationをサポートしてるらしい(https://t.co/8BMv2Qqtzd)。 とはいえ、これらのアプローチはいずれにせよ独自の表現から逆伝播を行うため、既存のコンパイラ資産のスムースな利用とか、ホスト言語の意味論から得られる情報を用いた最適化とかがやりにくいっていう欠点がある 8/n」 / Twitter
PyTorch vs TensorFlow — spotting the difference | by Kirill Dubovikov | Towards Data Science
Shuhei KadowakiさんはTwitterを使っています 「であれば、元プログラムを簡略化した表現ではなく、元プログラムを*そのまま*変換した表現に対して微分すれば、それらの欠点が解決できるじゃん、っていうのが"Don't Unroll Adjoint: Differentiating SSA-Form Programs"のアイディア。つまりSSA表現に対して微分を行えれば、素直に最適化ができる 9/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「SSA表現を微分する上で考慮すべきものは、いかにしてcontrol flowを扱うか、autodiffの視点で言うといかにして複数回代入/参照される変数を扱うかという点。結論としては、スタックにiterationごとの変数の状態を記憶しておくという解決方法を提示している 10/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「あとはプリミティブな要素に対して言語それぞれの意味論に沿って微分を定義してあげるだけで実装できる... というアイディアの実装がhttps://t.co/tWLIy5rabYであり、Zygote.jlは理論的にはJuliaの最適化の恩恵をそのまま利用することができる! 11/n」 / Twitter
FluxML/Zygote.jl: Intimate Affection Auditor
Shuhei KadowakiさんはTwitterを使っています 「ちなみに、JuliaのSSAではなく、LLVMのSSAを微分したらLLVMを利用しているいろんな言語で自動微分できるし最適化もしやすいよ、っていうのが僕の上司のValentin氏が書かれたEnzyme(https://t.co/sJLfflH8kb)のアイディア(理解が正しければ) 12/n」 / Twitter
[2010.01709] Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients
Shuhei KadowakiさんはTwitterを使っています 「Zygoteの話に戻ると、Zygoteは既存のJuliaプログラムに対してそのまま微分することができ、実際に #Julia言語 のコミュニティで広く使われている一方で、Juliaコンパイラの技術的な問題点(at-generated関数)から、まだまだ理想的なcompile-time/runtimeのパフォーマンスを得ることができていない 13/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「Keno氏が今度のJuliaConで発表しようとしているDiffractorは、Juliaの型推論で得られる型情報をうまく利用しながら自動微分のコンストラクト(adjoint code)を作ることで、そうした問題を解決しようとしているもの(Zygote.jlが利用しているat-generated関数は型推論後の型情報を利用できない) 14/n」 / Twitter
Shuhei KadowakiさんはTwitterを使っています 「...で前置きが長くなりましたがなぜ自動微分をちょっと勉強したかの背景を説明しますと、僕が最近取り組んでいるJulia compiler-pluginプロジェクト(https://t.co/Kb2qNM5TMt)は、そうした型推論後のコードに対する変換をしやすくするためのコンパイラインフラの整備を目標としているためなのです 15/n」 / Twitter
Julia Compiler-Plugin Project - HackMD
Shuhei KadowakiさんはTwitterを使っています 「すでにDiffractorは動いてるので、今の状態でもKenoには十分使えるんだろうけど、まだみんなが簡単に使える状態ではないので、まずはあんまJuliaのコンパイルパイプラインのことをよくわかってない僕が勉強しながら簡単に使えるくらいの状態に整備しようとしています 16/n」 / Twitter

『微分可能プログラミング』はどこから来たのか - bonotakeの日記
自動微分 - Wikipedia
自動微分を実装して理解する(前編) - Qiita
ボトムアップ型自動微分の実験 - kivantium活動日記
FadisさんはTwitterを使っています: 「なんとなくだけど、この4年程で「とりあえずニューラルネットワークにぶち込んでみた」系論文が減って、入れ替わりで「微分可能にすればこの式だって出力から未知の入力がわかるよね」系論文が増えた。optimizerが使える対象は何もニューラルネットワークだけじゃないもんな」 / Twitter
FadisさんはTwitterを使っています: 「コンピュータグラフィックスのレンダリングの過程を全て微分可能にすると、出力から入力を求めるのは最適化問題になり、結果の画像からマテリアルやメッシュを推定できるようになる。つまりイメージからレンダリング素材が作れるようになるから、今既存のレンダリング手法の微分が試みられている」 / Twitter
FadisさんはTwitterを使っています: 「逆レンダリングによって描かれている物の形状を求めたい場合、メッシュでは事前にトポロジが分かっている必要があるためうまくいかない。そこでポイントクラウドをレンダリングした事にして、そのレンダリング過程を微分して逆レンダリングした、という論文 https://t.co/ePByceofWt」 / Twitter
igl | Interactive Geometry Lab | ETH Zurich | Differentiable Surface Splatting for Point-based Geometry Processing
FadisさんはTwitterを使っています: 「ポイントは、全てのレンダリング方向から見えない(多様体の内側にある)点はどれだけ反復しても最適化の対象にならないため、そのような点は最寄りの表面まで押し出す点と、点群が偏るのを防ぐために1サイクル毎にポイントクラウドの密度を平滑化する点」 / Twitter
FadisさんはTwitterを使っています 「@Linda_pp そいつの最高にクールな所は、自動微分でレンダリングを逆回し出来るところ(レンダリング結果に近くなる入力を探索できる)」 / Twitter
piqcyさんはTwitterを使っています 「ピクセル(RGB)レベルの密なMap構築を行うDense SLAMについて、SLAMの構築プロセスをすべて微分可能にし勾配法による最適化を可能にした研究。フレーム間のマッチング・Map推定・グローバル最適化をそれぞれ微分可能な計算に置き換えている。」 / Twitter
Krishna MurthyさんはTwitterを使っています 「Today we release gradslam - automagically differentiable SLAM. Run dense 3D reconstruction in @PyTorch! And, it's fully differentiable :) Co-led w/ @S_Saryazdi, ably supported by @mautkiungli @duckietown_coo Webage: https://t.co/vxVDedldRY Paper: https://t.co/cN3tjc9e11 https://t.co/oV5np9CCjm」 / Twitter
About | gradslam
[1910.10672] gradSLAM: Automagically differentiable SLAM
だめぽラボ@技術書典9さんはTwitterを使っています 「自動微分を組み込んだ言語を作りたいという気持ちはあるけど、自動微分みたいなメカニズムを直接言語に組み込むべきなのか、それとも自動微分を実装できる程度にメタプロなりその他強力な言語機能を備えた言語を作る方が筋が良いのかはよくわからない」 / Twitter

線形連立微分方程式の行列形の解法

Shinji KonoさんはTwitterを使っています 「極線の証明は二次の等式を微分するだけなので難しくない。接線なんだから微分するのは当然だし。直接計算するのもたいしたことはないが、知ってると楽。 https://t.co/6it6mrwqNM」 / Twitter
美しい図形の性質(極線、二次曲線) まさかそこを通るなんて・・・ | 東大に文理両方で合格した男が綴る、受験の戦略
Shinji KonoさんはTwitterを使っています 「この手の「わけもわからず微分」系は便利。偏微分とかラグランジュの未定係数法とか知らないのは残念だよな。それ抜きで物理を理解できるとかあり得ない。エネルギー抜きで物理を理解するようなものでしょ。高校生でそれをやらないなんて。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ファインマン先生も「微分方程式はexp xをかけて積分」すれば良いとか言ってたし。それがなんなのかがわかるのは、線形連立微分方程式の行列形の解法を見てからだな。 y = d/dt x + a y = exp a x のd/dt が行列になるだけ。行列乗とかが出てきてしまうが。」 / Twitter

超離散化

1216-23.pdf
�������������� (�������������) - B41_006.pdf
03-Surikagaku-478-35-preprint.pdf
sample.dvi - 57_1015.pdf
超離散化について - Qiita
144446913.pdf
Article_No_03.pdf
abst.dvi - 8-003.pdf

統計モデル

正規分布と冪分布 - 増井俊之
冪乗則 - Wikipedia
スティーヴンスのべき法則 - Wikipedia
確率分布 - Wikipedia
パレート分布 - Wikipedia
Zeta distribution - Wikipedia
ジップの法則 - Wikipedia
mr-csceさんはTwitterを使っています 「進化計算など評価関数を何回も呼ぶ必要がありその評価関数が重いとき,その評価関数をの出力を予測するモデルを作り,そのモデルの出力を評価として使用するようなのをsurrogate modelingというらしい.前に某氏が評価関数重いしモデル作ろうと言ったときはマ?と思ったが一般的なテクニックだったのか」 / Twitter

レヴィ–プロホロフ計量

Ryoma Sin'yaさんはTwitterを使っています 「Lévy–Prokhorov metric 知らんかった. https://t.co/OB9rnr1fx5」 / Twitter
Lévy–Prokhorov metric - Wikipedia
レヴィ–プロホロフ計量 - Wikipedia

KL 情報量

カルバック・ライブラー情報量 - Wikipedia
相互情報量 - Wikipedia
KL情報量を概念的に理解する - PlayGround
正規分布間のKLダイバージェンス - Qiita
生成モデルで語られる Kullback-Leibler を理解する - Qiita
Kullback-Leibler
Kullback-Leibler
自己情報量、エントロピー、KL情報量、交差エントロピーと尤度関数 - sambaiz-net
research_mle
41.pdf
エントロピーからKLダイバージェンスまでの話 - HELLO CYBERNETICS
7c_12.dvi
www.cfme.chiba-u.jp
KL情報量
カルバック・ライブラ擬距離
InfoTheory05_4.dvi
情報理論の基礎~情報量の定義から相対エントロピー、相互情報量まで~ | Logics of Blue
エントロピーからKLダイバージェンスを理解する | マサムネの部屋
黒木玄 Gen KurokiさんはTwitterを使っています 「#数楽 KL情報量で確率分布間の違いを測ることについて普通の理解の仕方が普及していない感じがする。Kullback-Leibler情報量を「距離」の概念で理解しようとするのは的を外している。 Sanovの定理より、KL情報量は確率分布pの独立試行で確率分布qをシミュレートしたときの予測誤差とみなせます。続く」 / Twitter
エントロピー、カルバック・ライブラー情報量、最尤推定法 - 初級Mathマニアの寝言

Scalable Probabilistic Approximation

20200222
New Algorithm Allows PCs to Challenge HPC in Weather Forecasting
Low-cost scalable discretization, prediction, and feature selection for complex systems | Science Advances

ディオファントス方程式

宇宙物理たんbot@VTuber活動1周年!!さんのツイート: "(「62円切手または82円切手を買え」という指示だとして、)62円切手整数枚と82円切手整数枚で1000円分の組み合わせを作れという問題はみんな大好きディオファントス方程式 62x + 82y = 1000 ですわ。この方程式はマイナスの枚数を認めない限り「解なし」ですのよ。 https://t.co/4ekzM3KGUm"
大木 一真|モジカクしごとさんのツイート: "(伝え方が完全に悪かったのだけど、)インターンの大学生に1,000円分の切手を買ってきてとお願いしたら、1,000円切手1枚を渡された……。 聞いたら、そもそも切手を買ったことなんて今までなかったそう。これが令和……。… "
Hideyuki Tanakaさんのツイート: "ディオファントス方程式ってよく知らなかったけど、拡張gcdのことだったのか(´・_・`)"
Hideyuki Tanakaさんのツイート: "ディオファントス方程式調べてみたけど、任意の整数係数の方程式を指すらしいからこの形の方程式をそういうのは一般的過ぎると思いました(小並感)"
Hideyuki Tanakaさんのツイート: ">2変数2次方程式a x2 + b y + c = 0 の整数解の存在判定問題はNP完全問題であることが証明されている。(→計算複雑性理論 はぇぇこの時点でそうなのか(´・_・`)"

計算量

PDF

ad09-01.pdf
ad11-02.pdf
2.ho
アルゴリズムと データ構造
Microsoft PowerPoint - alg1.ppt [互換モード]
Microsoft Word - keisankigairon.ch4a.110420.doc
第2回 アルゴリズムと計算量
最大充足化問題に対する近似アルゴリズム
uchanさんはTwitterを使っています 「P=NPという結論を導く証明が書いてあるらしいPDFをチラ見しただけで,僕はその内容を理解できる自信がないです。最大独立集合問題に詳しい人に判断をゆだねます… https://t.co/HHXz3Chx15」 / Twitter
(PDF) Extract maximum independent set using eigenvalue relation
SDB-ex1_sample.pdf

Qiita

[初心者向け] プログラムの計算量を求める方法 - Qiita
計算量オーダーについて - Qiita
計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜 - Qiita

Wikipedia

ランダウの記号 - Wikipedia
計算複雑性理論 - Wikipedia
組合せ最適化 - Wikipedia
近似アルゴリズム - Wikipedia
線型計画法 - Wikipedia
線型計画問題 - Wikipedia
整数計画問題 - Wikipedia
グレブナー基底 - Wikipedia
代数方程式 - Wikipedia

Twitter

malloc

Masaki HaraさんはTwitterを使っています 「↓std::vectorのpush_backの計算量です」 / Twitter
Masaki HaraさんはTwitterを使っています 「再アロケートとコピーのコストだけ解析すればよくて、再アロケート時の倍率をm&gt;1、長さをn, 容量をcとしたとき、max{(mn-c)/(m-1), 0}とすると、 ・通常のpushではm/(m-1)貯蓄 ・再アロケート時 (n = c) はn消費 で計算できる感じか」 / Twitter
Masaki HaraさんはTwitterを使っています 「growable array のポテンシャル解析ってどんな感じでやるんだっけ」 / Twitter
Masaki HaraさんはTwitterを使っています 「ちなみにmalloc/freeにかかる時間は O(size) とみなすのが一般的だと思うけど、メモリ使用量が増えたときの実際の効率低下はどれくらいの感じなんだろう」 / Twitter
KojimaさんはTwitterを使っています 「push_back と pop_back と shrink_to_fit をこの順でやるのを繰り返しても O(1) が保証されるかな」 / Twitter
Masaki HaraさんはTwitterを使っています 「shrink_to_fitがどうせ線形時間なので、上乗せでpotentialを貯金していると考えればいける」 / Twitter
Masaki HaraさんはTwitterを使っています 「Webアプリケーションプログラミングやってると漸近計算量改善の60%がインデックス張るで30%が配列をsetに事前変換するなので感覚が鈍る (数字は適当)」 / Twitter
hasimotoさんはTwitterを使っています 「@s_isshiki1969 あ、見ました。ありがとうございます。 K&amp;Rのmallocとかって malloc( 1024 )でも、リストどこまでたどるかはヒープ次第で 1024 がオーダー計算になってないから、あれっていう感じでした。」 / Twitter
monochromeさんはTwitterを使っています 「@k1ha410 そうですね。K&amp;Rも一般的にはO(1)という理解だと思いますが、でかい領域を取りに行くとfitする場所を探すのに時間がかかるという意味かと思いました。」 / Twitter
hasimotoさんはTwitterを使っています 「@s_isshiki1969 でかさ(絶対的指標じゃない)次第ですが最近のmallocは考えられてる感じしますよね。」 / Twitter
monochromeさんはTwitterを使っています 「@k1ha410 sizeにはほぼ影響を受けないはずですね。」 / Twitter

chokudai(高橋 直大)さんのツイート: "競技プログラミングの弱点は、「最悪計算量しか意識しない習慣がつく」ことで、これしかやってないのは割と危険。最悪計算量を意識するのは当然大切なんだけど、平均計算量、というか平均計算時間も結構大切。マラソンマッチ出るとむしろそっちを意識するのよね。"
chokudai(高橋 直大)さんのツイート: "ソートだったり二分探索だったりしてると「logなんて所詮定数倍みたいなもんだよねー!」って気分になるけど、平衡二分木とかだと「logはおもい・・・logはおもい・・・」って感じになる"
chokudai(高橋 直大)さんのツイート: "二分探索は中に処理そこそこ書くからlog感普通にある気がしてきた。"
Fadisさんのツイート: "計算量で有利なアルゴリズムを選択する時、そこには「データがキャッシュに乗り切らないくらい多い」という前提がある。数十、数百程度のデータを操作する場合「計算量を抑える為に複雑なデータ構造を採用する」より「線形時間を要するけどキャッシュに全部乗る」方法の方が速いという事がしばしばある"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最悪計算量と平均計算量をグラフにして、挟まれた部分を塗った時、最悪計算量が上界(=領域の上限)、平均計算量が下界、という言い方をするらしい。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "dict(hashmap)検索が O(n) になる確率、qsortが O(n^2) になる確率。 これらの確率は0と考えてプログラミングすることが多い。 事実上0と見做す確率の閾値はどのあたりだろう…ハードウェア由来の問題を起こす確率に比べて充分小さい、あたりは最低条件な気はする。"
John Carlos Baezさんのツイート: "WOW! A new paper claims to have found a more efficient algorithm for multiplying large numbers. It supposedly runs in O(n log n) time - this had never been achieved before. One catch: it only works on numbers with at least this many digits: (cont)… https://t.co/jknld8INnm"
7594591200220899443さんのツイート: "nlognの掛け算ついに発見されたのか"
7594591200220899443さんのツイート: "(但2^(2^4096))よりでかい必要があり)"
7594591200220899443さんのツイート: "計算量の議論をする時にインフォーマルには「nが小さい時のいくらかの例外を除いて」みたいな言い方をするわけだけど、そのnが既知宇宙の全原子数よりもでかいというのは「いくらかの例外」っていうニュアンスで語るのは結構すごい(厳密にやるときは極限をとるからまあ、あまり問題にならないが)"
著者近影さんはTwitterを使っています 「計算量とかを気にするのって、明らかにプロファイル取って遅いとわかる場合か、可読性を失わない範囲である程度素朴に読める形のときとかだけど、時々計算量が〜みたいな不適当に最適化したがる会社とか人見るたびに適当にみんな計算量って言いたいんだな…みたいな気持ちになる」 / Twitter
水無麻那さんはTwitterを使っています 「@moba1b 計算量で最適化するのは愚だが、プロファイルとって遅いときに計算量を気にするかは時と場合による(多くの場合原因は計算量ではなく、I/O かオーバーヘッドの場合が多いのが経験則で、計算量改善すると遅くなる場合が多い)」 / Twitter
水無麻那さんはTwitterを使っています 「@moba1b 計算量は日頃から気にした方がいいというのは正解だと思うが、計算量だけを気にするのは良くない(計算量は結構指標にならない)というのが個人的な意見」 / Twitter
著者近影さんはTwitterを使っています 「@Mizunashi_Mana まぁそうなんだよな 結局、見方が偏った人種がプログラム書いてる中にそこそこの割合、規模感でいるんだなぁとか色々見て考えてて」 / Twitter
水無麻那さんはTwitterを使っています 「@moba1b いや単にこれは経験の問題だと思ってる。普通大学では計算量という指標しか習わないし、カバレッジやプロファイルの取り方とか習わないので」 / Twitter
著者近影さんはTwitterを使っています 「@Mizunashi_Mana む、言われれば確かに」 / Twitter
κeenさんはTwitterを使っています 「NP完全な問題、今のところ計算量がO(2^n)な解法しかないから基本は避けるんだけど、それはそれとして計算量がO(2^n)なコード書いたことないから一回くらいは書いとかなきゃって思ってる」 / Twitter
™お嬢様さんはTwitterを使っています 「O notation, 個人的には "f(n) in O(n)" とか "O(n) \subset O(n^2)" とかにしたいんだけど,分野の慣習が "f(n) = O(n)" とか "O(n) = O(n^2)" なので,できるだけ数式にしない方向の "f(n) is O(n)" や "O(n) is O(n^2)" で回避しようとしてます…….」 / Twitter
画力・博士号さんはTwitterを使っています 「( f∈O(n ↦ n) あたりになってほしいなあという気持ちがある)」 / Twitter
Yasunori OhtoさんはTwitterを使っています 「P=NP論文の証明と擬似コードを改稿しました。日本語版です。読んでコメント頂ければ幸いです。 https://t.co/c09I6ayOYk」 / Twitter
(PDF) Polynomial-time Extraction of the Maximum Clique Using Eigenvalue Relation
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「計算量の講義資料で「オーダー計算には係数や定数は無視」と書きつつも、実開発だと(指数や多項式オーダー計算を避けるのは当然としても)「定数や係数」も結構大事なこと多いよね、とも思いつつ。」 / Twitter

空間計算量とは|領域計算量|space complexity : 意味/定義 - IT用語辞典
時間計算量とは|time complexity : 意味/定義 - IT用語辞典
一週間で身につくアルゴリズムとデータ構造|応用編第1日目:アルゴリズムと計算量
Programming Place Plus アルゴリズムとデータ構造編【導入】 第1章 計算量
計算量とBig-O記法 - 素人がプログラミングを勉強していたブログ
計算量のはなし - 赤い黒歴史を蓄積する
計算量
第74回 計算量の数学 計算量とは :はじめMath! Javaでコンピュータ数学|gihyo.jp … 技術評論社
オーダー記法の定義と大雑把な意味 | 高校数学の美しい物語
アルゴリズムで天地の差: 計算の手間
計算量 | Programming Place Plus アルゴリズムとデータ構造編【導入】 第1章
アルゴリズムを評価する計算量について - bambinya's blog
» 開発新卒に捧ぐ、基本のアルゴリズムと計算量 TECHSCORE BLOG
組合せ最適化入門:線形計画から整数計画まで
20190511
「量子理論の副産物に過ぎなかった」──東芝の「量子コンピュータより速いアルゴリズム」誕生秘話 (1/5) - ITmedia NEWS
「世界最速・最大規模」──東芝、量子コンピュータより高速に組み合わせ最適化問題を計算するアルゴリズムを開発 - ITmedia NEWS
東芝 研究開発センター:研究開発ライブラリ 世界最速・最大規模の組合せ最適化を可能にする画期的なアルゴリズムの開発について-物流・創薬など社会課題を短時間で解決するサービスプラットフォームの構築に向けて-
Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems | Science Advances
計算複雑性を勉強するときに参照する本のメモ - 誰にも見えないブログ
PとNPについて - Yabu.log
NP問題における決定問題とはなにか - Yabu.log
NPクラスのNondeterministic polynominal algorithmについて - Yabu.log
Microsoft PowerPoint - ComputationTheory2
How to tackle hard combinatorial optimization problems arising in real applications? - Speaker Deck
時間計算量 - Google 検索
空間計算量 - Google 検索
chokudai(高橋 直大)🍆さんはTwitterを使っています 「QiitaのPython計算量記事から引用だけど、この表はやっぱり頭に入ってて欲しいかなあ。どちらかというと「表を覚える」というよりは「こういう仕組みだからこれはこの計算量になりそう」って言うのが推測出来てほしい。 (推測値と外れた所だけ覚えれば表全体は覚えなくて良いかららくちん) https://t.co/NdSkZ0GQ2P」 / Twitter

固定小数点数

固定小数点数 - Wikipedia
Fixed-point arithmetic - Wikipedia
hdLab : 第10回「固定小数点の演算」(201302) ~ 21世紀のシステムLSI設計を支援する プロダクト&サービス
固定小数点演算について
固定小数
固定小数点とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
固定小数点型【変数の型】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
固定小数点数とは - IT用語辞典 Weblio辞書
固定小数点数
固定小数点と浮動小数点 - DSP入門(ディジタル信号処理入門)
固定小数点演算(こていしょうすうてんえんざん)とは - コトバンク
固定小数点数(コテイショウスウテンスウ)とは - コトバンク
固定小数点形式(こていしょうすうてんけいしき)とは - コトバンク

グレイコード

グレイコード - Wikipedia
Gray code - Wikipedia
グレイコードと実数
グレイコードを生成するだけの小話 - Qiita
グレイコードの特長は、何ですか? - 製品に関するFAQ | オムロン制御機器
グレイコード | ITと社会用語辞典 | IT用語辞典 | 日立ソリューションズ
グレイコード ‐ 通信用語の基礎知識
グレイコード バイナリ変換CGI
グレイコード
グレイコードとは (グレイコードとは) [単語記事] - ニコニコ大百科
グレイコードカウンタ

PC Watch

Windowsの標準電卓で4の平方根が2でなかった仕様がようやく修正 - PC Watch
NTTデータと広島大、組合せ最適化問題をGPUで高速解決する技術 ~GeForce RTX 2080 Ti×4で秒間1兆の探索が可能に - PC Watch

infoQ

AlphaFoldアルゴリズムがCOVID-19タンパク質構造を予測
確率論的データサイエンスモデルのテストから学んだこと
NumPy 1.20が実行時SIMDサポートと型アノテーションを加えリリースされた

POSTD

数値最適化のインタラクティブ・チュートリアル | プログラミング | POSTD
ハミング符号 : データの誤り検知/訂正をインタラクティブに学ぶ | コンピュータサイエンス | POSTD

スライド

NumPy闇入門
マルコフ連鎖モンテカルロ法入門-1
関数データ解析の概要とその方法

blog

二重振り子の精度保証付き数値計算 - kashiの日記
x + 0.25 - 0.25 = xが成り立たないxとは何か|Rui Ueyama|note
整数の平方根(切り捨て) | g200kg Music & Software
対数関数の超越性 - 記号の世界ゟ
解ける線形微分方程式の話 - 記号の世界ゟ
多元数について8枚のスライドでまとめてみたら | ポップラーン
確率分布をさわれるShinyアプリ「確率分布Viewer」に新機能を追加しました! - Dimension Planet Adventure 最終章 最終話『栄光なる未来』
整数の割り算を掛け算に変換 (3) - 七誌の開発日記
行列式という名前の由来ってどこからなのよ? - 備忘録
5次方程式の解の公式をガチで求めよう|きいねく|note
【TV出演】NHK(Eテレ)「テストの花道」~もどりま表の活用例他(数学って面白い!) - 永野裕之のBlog
「群」って何なの?「同一視」から始める群論 - アジマティクス
50年来の信号処理に関する謎が解かれる、逆高速フーリエ変換がついに一般化 | fabcross
なぜ相関係数rの範囲が-1≦r≦1か | おいしい数学
三角関数はなぜ重要か - 増井俊之
高速フーリエ変換の実装を難しそうかなと思っている方が、なんだ簡単じゃないですか!! となるための実装講座です - CADDi Tech Blog

GitHub

科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「すべてのハードウェア、型、行列構造への依存を吸収することを目的として開発された、数値計算ライブラリ"monolish"を公開しました。 https://t.co/g5ZLJGAlGy PythonやJuliaのような簡単なインタフェースで、MKL、 cuBLAS、cuSPARSE、cuSOLVER、BLAS、LAPACKのAPIを統一した関数が利用できます。」 / Twitter
ricosjp/monolish: monolish: MONOlithic Liner equation Solvers for Highly-parallel architecture
科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「debパッケージ、またはDocker環境での導入をサポートしています。 対応ライブラリ、データ型、行列フォーマット、ソルバは今後増やしていく予定です。 詳しくはドキュメントをご覧ください。 https://t.co/p5EYyHpbS8」 / Twitter
科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「debパッケージは以下の環境での動作をサポートしています。 ・Intel CPU ・AMD CPU ・NVIDIA GPU 付属のビルドスクリプトを用いれば以下の環境でも動作します。 ・IBM Power ・NEC SX-Aurora TSUBASA ・ARMv8 ・Fujitsu A64fx 今後、Intel Xe、AMD RADEONへの対応を行う予定です。」 / Twitter

Wikipedia

擬似逆行列 - Wikipedia
Moore–Penrose inverse - Wikipedia
Roger Penrose - Wikipedia
組合せ数学 - Wikipedia
二項係数 - Wikipedia
カハンの加算アルゴリズム - Wikipedia

Zenn

CGのための数学
JavaScriptの数値計算はどれくらい正確なのか
線形代数と確率過程の話
三角関数の話

Qiita

線形代数を学ぶ理由 - Qiita
モンテカルロ法における境界条件の扱いについて - Qiita
数値計算の研究をしている学生が&quot;数値計算に潜むとんでもないリスク&quot;について話してみる - Qiita
Potts模型のモンテカルロシミュレーションコード - Qiita
高速フーリエ変換の実装を難しそうかなと思っている方が、なんだ簡単じゃないですか!! となるための実装講座です - Qiita
離散フーリエ変換(DFT)の仕組みを完全に理解する - Qiita
numpy そっくりなヘッダオンリー C++ ライブラリ NumCpp - Qiita
ロボ太さんはTwitterを使っています 「見たら「ん?」となるエラーバーのグラフの話の記事を書きました。こんなグラフを見かけたら「ん?」と思いましょう。ちなみに振動を含む緩和過程でエラーバーを過剰推定するのは僕が実際に経験したことです。 https://t.co/xsqKusgERN https://t.co/oz7FAW0q62」 / Twitter
見たら「ん?」となるエラーバーのグラフ - Qiita
hrk先生さんはTwitterを使っています 「@kaityo256 @k_nitadori 悲しいことに、このようなグラフは論文査読や、査読を通ったはずの論文誌でも良く見かけます。さらには、エラーバーはSDと書いてあるのに上下非対称のものもあります。」 / Twitter
ロボ太さんはTwitterを使っています 「先のQiita記事、「指数関数に振動が乗っているとノイズと区別がつきにくい」というのがわかりにくかったみたいですね。このグラフ、Data Aが指数関数+正弦波で、Data Bが指数関数+ノイズです。観測間隔が周波数より長いと両者の区別がつきづらいのがわかります。 https://t.co/8WfkNuTacP」 / Twitter
ロボ太さんはTwitterを使っています 「これ、フーリエ変換すれば変なピークが立つので振動に気付くわけですが、そもそも「振動が乗っている」可能性に思い至らないとフーリエ変換しようとはしないでしょう。その場合でも、ちゃんとエラーバーをつければData Aではエラーバーが大きすぎるので「何かおかしい」と気づくことができるわけです。」 / Twitter
ロボ太さんはTwitterを使っています 「うーん、振動が乗ったデータのエラーバーの話、「データ間の相関」が本質で、「サンプリング周波数が大事だよね(標本化定理)」という話が本質ではないんですよ。例えばこの二つのデータ、片方はランダムで、片方はパイこね変換ですが、似たような感じに見えますよね(続く) https://t.co/7IxA2w9mNb」 / Twitter
ロボ太さんはTwitterを使っています 「で、それぞれ100個ずつ平均して分散もとめてエラーバーつけると、Data Aはまぁ普通かな、という感じだけど、Data Bは「ん?」と思うじゃないですか。実際、Data Aは100個中69個が平均にエラーバーがかかっててるのに対して、Data Bは48個で、「ん?」と思うわけです。 https://t.co/JtvCt6NCAb」 / Twitter
ロボ太さんはTwitterを使っています 「「見たら「ん?」となるエラーバーのグラフ」の記事に、パイこね変換の例を追加しました。この記事のテーマは「エラーバーからデータ間の相関に気づく」ことであり、「サンプリング周波数が大事だ(標本化定理)」ということではありません。 https://t.co/fd39kqmSv8」 / Twitter
超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita
目的関数、コスト関数、誤差関数、損失関数いろいろあるけど、なにが違うのかを検討 - Qiita
FDTDで電磁界解析 - Qiita

Twitter

連立一次方程式・誤差

電子計算機の沼さんはTwitterを使っています 「でもコンテナに行列ファイル突っ込むだけで連立一次方程式とか固有値が解けると答え合わせが楽になるんだ 自分でソルバを書いたときにコンテナに突っ込むだけでEigenなりLisなりが呼ばれて,簡単に答えを出してくれるとパッと比較しやすい」 / Twitter
ひもになりたいにゃんにゃんさんはTwitterを使っています 「@Hishinuma_t 連立一次方程式の答え合わせは元の方程式に代入して確かめるんじゃダメなんですか?」 / Twitter
kashiさんはTwitterを使っています 「@Oo_nyannyan_oO @Hishinuma_t 元の方程式に代入したらぴったり0になるけど、実はめっちゃ誤差が入ってる、なんてこともないわけではないです。 https://t.co/Viy4qApkoB」 / Twitter
電子計算機の沼さんはTwitterを使っています 「@mkashi @Oo_nyannyan_oO すごい例ですねw まぁそれにアルゴリズム間違っててうっかり収束してるけど他の問題では解けないとかもあるあるかなあと」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「@Hishinuma_t @mkashi @Oo_nyannyan_oO #Julia言語 なるほど A = [ 64919121 -159018721 41869520.5 -102558961 ] のとき inv(A) * A = [ 1.0 2.0 0.0 1.0 ] となって、第1列だけ偶然うまく行っているんですね。ちなみに A * inv(A) = [ 0.0 2.0 -1.0 2.0 ] こちらは全然ダメ。 https://t.co/dQnvwBmT82 https://t.co/hyqSuah3VQ」 / Twitter
kashiさんはTwitterを使っています 「@genkuroki @Hishinuma_t @Oo_nyannyan_oO この例題に関してはいろいろな見方があると思いますが、当然真の残差は0でなくて、残差の計算にも誤差が入って0になってしまうところが面白いです。あと、行列aの全成分を有理数にするにはRational.(a)と書けばいいんですね。勉強になります。」 / Twitter
Shinji KonoさんはTwitterを使っています 「ゲーデル数があるので前半は正しいけど、後半は帰着の方法を見つけることは決定不能なのでね。 QT必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」 / Twitter
成田 悠輔さんはTwitterを使っています 「線形代数はなぜ重要な基礎なのか?一つの答えは「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というもの。データと向き合う統計学や機械学習で線形代数が活躍する理由もデータが映し出す世界の解けなさ故だろう」 / Twitter
Shinji KonoさんはTwitterを使っています 「線形代数/連立方程式は確かに強力なのだが、それは定式化の一つで、数学に必要なlong shotに向いてるかというとそうでもない。ガロア理論もアルティンは線形代数使うのだが、五次対称群が可解群でないのを示すのには使ってない。線形代数でできるってのが主張なはずだが…」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「線形代数の重要性は否定しないけど、連立一次方程式に関係しない決定可能問題なんて幾らでもありそうで、「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というのは、過度の一般化と感じる。 https://t.co/zRwZHGK325」 / Twitter
GengaQ SurvivoR@11/16返却さんはTwitterを使っています 「行列に変数入れたら途端に難しくなるのはそう 対角化は本質的には非線形の問題なので」 / Twitter

ルベーグ積分

Shinji KonoさんはTwitterを使っています 「ルベーグ積分っていうけど、ある意味普通の面積の計算で、測度論が入るとわけわかに。そこでは集合論は必須。そこで一階述語論理を出したのは歴史的な悪手で、高階直観論理が正解だった。で、それは圏論と同じだから…」 / Twitter
Shinji KonoさんはTwitterを使っています 「岩波の現代数学概論は、それを中途半端にやった感じだな。」 / Twitter

対数の略記

ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「自然対数をlnに揃える、一方で常用対数もlcか何かに揃えるのが一番マシかもしれん 双方に配慮するってのは感情論だけど、表記の問題なんて所詮「慣れ」とか感情論なんだから」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「@syobon_hinata 常用対数には既に「lg」という略記がありますよ」 / Twitter
ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「@mod_poppo 知りませんでした……(lnに比べてどれだけ浸透してないのか……)」 / Twitter
さろげーとさんはTwitterを使っています 「@syobon_hinata @mod_poppo ISO 80000-2だとlgが常用対数なんですけど、計算機分野ではlgで二進対数を表すんですよね……(ISO 80000-2で二進対数はlb) やっぱり曖昧さ回避のためにはlcが一番いいかと」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「えぇ……」 / Twitter

histric

histric-1

FFFumihiro MMMatsuiさんのツイート: "三角関数の件、単純に角度を突っ込んだら円の上での縦or横を返す関数っていう、それだけで色々な場面で便利な事は伝わりそうな気がするけど、不要論が出まくるのは、なんか加法定理とか倍角公式とかあたりが「あの謎の呪文の空欄を埋める科目が三角関数ってジャンル」的なイメージが根付いちゃうのかな"
FFFumihiro MMMatsuiさんのツイート: "それはまあ原因は不要論自体よりも、三角関数のテストで高得点をとろうと思うと三角関数とは何かを掴むのに時間をかけるより「三角関数=加法定理や倍角公式のコンボ技の構成要素」として暗記する方が有利になってしまうっていう、なんかそういうレギュレーションの抜け穴みたいなのに起因する気がする"
FFFumihiro MMMatsuiさんのツイート: "それでまああのコンボは「三角関数とは何か」みたいな基礎とは関係なくて、教科書で基礎的な扱いで習うけど本来はたぶん結構応用的なものな気がするし、確かに進路によってはその後一生使わないだろうし、「三角関数ってなんかあの謎コンボ覚えさせられるけど一生使わないやつでしょ」ってなるのかもな"
FFFumihiro MMMatsuiさんのツイート: "高校課程までの数学はわりと全般的に暗記ゲーの方が強くなっちゃう面あるよなあ。かといってテストを全部証明問題にするわけにもいかないだろうし現実的には中々どうしようもないんだろうな"
FFFumihiro MMMatsuiさんのツイート: "僕は定期テストとか存在しなかったから実際の感覚はよく知らんけど(なので偉そうに思ってる事言うとちょっと後ろめたさある) それでも数学は結構暗記してた部分(実際に三角関数関連とか)あるし高校課程までの数学で暗記というチート技が割と効いてしまうのはまあ本来はあれなんだろうなって気する"
FFFumihiro MMMatsuiさんのツイート: "たぶん僕は平均よりは高校数学の範囲の内容を実際に使う場面が色々あって利益を享受したほうかなあと感じるけど、それでもなんか心の中で数学の一部に対して漠然と苦手意識みたいなのが残ってる箇所はちらほらあって、それはたぶん当時に暗記に頼って押し切った事がある箇所なのかなという感じはしてる"
FFFumihiro MMMatsuiさんのツイート: "一方で数学って好きな人はとことん好きだよね。初対面で「〇〇論はお好きですか?では〇〇論は?」みたいな質問から始まって数十分くらい〇〇論についてマシンガントークが始まる事とかたまにあって、たぶん数学が超好きな人達の間ではそれで会話が始まるパターンもそんな珍しくないのかなと思ってる。"
FFFumihiro MMMatsuiさんのツイート: "しかし今書いてて気づいたけど僕もなんか会話の切り出し方がそういう系って指摘された事が昔あったしぜんぜん他人の事言えないかもしれない。コミュ力ェ…だし"
FFFumihiro MMMatsuiさんのツイート: "もちろん〇〇論とかから切り出すって意味ではなくて"
Fadisさんのツイート: "三角関数の必要性云々は、悩んでいるなら「コンピュータグラフィクスでもやって3秒で燃え尽きてきてください」ってだけの話なんだけど、同時に非線形関数である三角関数をいかに計算から排除するかはコンピュータグラフィクス屋が全力で知恵を絞る部分でもある"
Sheileさんのツイート: "sin/cosが無いと円を描く弾が撃てないし、atanが無いと自機狙い弾が撃てない。それに対数ができないとスコアシステムに困るし、行列ができないと3Dゲーム作るのに困る。英語ができないと新しい技術の取り込みや、DirectXのエラーを調べるのに困る。ゲーム作りたい人は、数学と英語やっときましょう。"
島鉄雄さんのツイート: "三角関数どころかガンマ関数もゲームで間接的に使われてる。 クォータニオンの Slerp の実装には acos が必要だけど、これのテイラー展開をウルフラムさんに聞くと、ポッホハンマー記号なるものが出て来て、それの計算にガンマ関数が使われてた。 面白そうな関数だけど、これ以外の使い道を知らないw… https://t.co/k6HmmOWMQC"
mはげさんのツイート: "30年前の名著「数値計算の常識」を読んでたらBASICで0.01を10000回足したら100.003になるとか書いてあった。まあ昔のPCなんてそんなものかなと思いながら、Visual Studio 2017で試してみたら同じ結果だったw… https://t.co/f1ZQXlojRv"
渋川よしきさんのツイート: "昔のの数値計算と同じ浮動小数点数の計算をやって、同じように計算誤差が出るぞってやつ、ある意味コンピューターサイエンスの教育の敗北では・・・という気がしないでもない(そういえば、GoならわかるシステムプログラミングでIEEE754は扱おうか考えてやめたんだった)。"
c1815(内閣調査室 技官)さんはTwitterを使っています: 「工学的に虚数の存在意義はオイラーの公式により三角関数を指数関数で表記できる事で、電気工学で広く使われる有用な道具です。「虚数の実現が厳しい」とか訳がわかりません。貴方もその存在の恩恵を受けています。 https://t.co/4PKz0q2HEj」 / Twitter
部品(本田翼)さんはTwitterを使っています: 「1960年代に発表されたフーリエ変換アルゴリズムの一般化であるCZ変換に対して、逆フーリエ変換の一般化アルゴリズムは未解決だった。それが50年かけてついに発見された|・ω・`)フムフム https://t.co/QzDtngRKFh」 / Twitter
Engineers solve 50-year-old puzzle in signal processing
応用数学たん(旧ファイナンスたん)さんはTwitterを使っています: 「ブラックショールズ方程式は解析解が出ているので、超高次元の偏微分方程式を数値計算するアルゴリズムの実験にも使われているのです。 確率解析学、数理ファイナンス、機械学習、数値解析 ☆3」 / Twitter
三崎律日@「奇書の世界史」発売中さんはTwitterを使っています: 「「ループを使わずに1から100を順に出力するコードは書けますか」という質問に、凄腕たちがプログラム的な技巧を凝らした答えをする中、MSのデータサイエンティストが「1000/(999^2)を300桁まで計算すると答えが0.01002003…099100になるよ」とサラッと答えてて、どんな脳の使い方したら思い付くのそれ https://t.co/Ng3dv4ZS4K」 / Twitter
三崎律日@「奇書の世界史」発売中さんはTwitterを使っています: 「元スレッド https://t.co/donuG6acMg その他の回答も含めて和訳してくれてる人 https://t.co/s0cMrfhD0s どんな頭の使い方したか類推してる人 https://t.co/xaR4sXBe5L」 / Twitter
How to print 1 to 100 in C++ without a loop, goto or recursion - Quora
ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?に対するIchi Kanayaさんの回答 - Quora
「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察 - Qiita

histric-2

社会人でもOSを作りたいさんはTwitterを使っています: 「学生「マクローリン展開なんて,何の役に立つんですか?計算機で一瞬でsinを計算できるじゃないですか」 ???「sinの計算を実装できるようになる。計算速度と精度のバランスを自分で設計したりできるぞ」 (Newlibのsinの実装を読んだ感想)」 / Twitter
とみながたけひろさんはTwitterを使っています: 「@uchan_nos 近似計算するなら別に定義域全体で収束する必要ないから収束遅いマクローリン展開なんて役に立たないじゃないですかー(煽り返し」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「Newlibのsinの実装を読むと,sin(x)のxが非常に小さいときはsin(x)~xという近似を使って,それ以外はマクローリン展開で計算してるぽい。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「数学詳しい人に教えて欲しいのですが,Newlibに出てくるこの近似って妥当なんですか? sin(x+y) = sin(x) + sin'(x')*y ~ sin(x) + (1-x*x/2)*y sin(x+y) = sin(x) + sin'(x')*y までは分かる。(これも厳密には近似なんだけど,まあ納得) ~ sin(x) + (1-x*x/2)*yが分からない。」 / Twitter
ねっけつさんはTwitterを使っています: 「@uchan_nos こんにちは。TLで今見かけただけですが、sin'(x) = cos(x) のマクローリン展開を1次の項で打ち切ったものではないでしょうか。」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「@nekketsuuu なるほど。1/2がどこから来るかなと思ったんですが計算してみたら確かにそうなりました。yが十分小さければいい近似になりそうです。」 / Twitter
ねっけつさんはTwitterを使っています: 「@uchan_nos (すいません1次じゃなくて2次でした)」 / Twitter
Nakatani ShuyoさんはTwitterを使っています: 「@uchan_nos sin の微分 cos を同様に展開してます」 / Twitter
社会人でもOSを作りたいさんはTwitterを使っています: 「マクローリン展開じゃなくてテイラー展開だった」 / Twitter
kashiさんはTwitterを使っています: 「この本に、Newton法が解に収束せずに無限ループに陥る例を扱った章があって、「不安定周期解ではあるが丸め誤差のせいで安定的にその周期解に留まる」という事例が紹介されてた。 https://t.co/QlSD1JeVAd」 / Twitter
米津 アンさんはTwitterを使っています: 「矢崎成俊 著『実験数学読本』 色んな数学モデルを寄せ集めた本です。本書を読めば、わたしたちの身の回りからよりたくさんの数学を見出せるようになれるでしょう。扱っている数学は大学1年レベルですが、高校生が読んでも「数学の力ってすげー!」を堪能できる内容だと思います😆 #今日の一冊 https://t.co/huYujiZNNw」 / Twitter
kashiさんはTwitterを使っています: 「で、そもそもNewton法で解に収束せずに周期解に陥るとき、ほんとに不安定なのか、という興味を持ってあれこれいじってたら、こんな例を見つけた。方程式x^3-x+1.5=0に対するNewton法で初期値を1.5018719167693075...とすると、安定な3周期解になる模様。 https://t.co/bItfhPISsu」 / Twitter
kashiさんはTwitterを使っています: 「Newton法の反復が周期的になる例は教科書によく載っているけどたいてい不安定で、実際には解に収束するか無限に発散するかどちらかだ、みたいなのをどこかで見た気がしてて(妄想かも)、そうでもなくて周期解に陥ってしまう場合も普通にあるんだなあと思った、という話。」 / Twitter
kashiさんはTwitterを使っています: 「Newton法の反復の安定周期解って面白い発見じゃね?と思って調べてみたら先行研究があって、方程式が多項式で全ての解が実なら安定周期解は存在しない、複素解を持つ場合は普通に存在する、とのこと。 https://t.co/BaDetPVw2T」 / Twitter
S0002-9947-1986-0849472-6.pdf
FadisさんはTwitterを使っています: 「確かに微分可能な関数しか使っていない 確かに自動微分の結果で最急降下法にかけると解に収束する この微分を手で求めろという問題が試験に出たら単位を取れる自信がない みたいなのがゴリゴリまわってるのを眺めてる。計算機ばんざい」 / Twitter
だよもんフレンズは転職したいさんはTwitterを使っています: 「@math153arclight Python以前に、そもそもintel PCで計算してたら意味無い。カハン教授のparanoiaテストでバグるのがまだ直ってない、と言うか直す気無くてitanium使え、って言ってる。MIPSやSPARC, HP Precisionアーキを使おう!」 / Twitter
ロボ太さんはTwitterを使っています: 「数値計算をするときには、まず解析解がわかる系を計算して、答えが一致するか確認するといいですよ(数値解と解析解が微妙にずれてるグラフを見ながら)」 / Twitter
FadisさんはTwitterを使っています: 「第1種ベッセル関数を誤差逆伝播するのに何とかしてこれを微分できないかな、と思ったんだけど台形公式でバラして微分すると動くけど死ぬほど遅いヤツが出来て、テイラー展開で近似して微分すると次数上げても誤差が大きくて困ってた所に神のような論文を見つけてしまった https://t.co/dookUeJZp6」 / Twitter
The Faster Methods for Computing Bessel Functions of the First Kind of an Integer Order with Application to Graphic Processors | SpringerLink
FadisさんはTwitterを使っています: 「次数を上げて行くとx=0近傍の吹っ飛んでる部分がだんだん広がって行くんだけど、10次でもこれだけ食いついてくる https://t.co/5Z6xpSHAzj」 / Twitter
FadisさんはTwitterを使っています: 「というかベッセル関数ってn-2次とn-1次の計算済みの値を使ってn次の値を高速に計算できるんだな…。このため0次と1次の場合だけ気合いで近似すれば任意のnについてn次の場合の近似が出来たことになる」 / Twitter
いぐにすさんさんはTwitterを使っています: 「@fadis_ n-1とn+1とかもあったようなと思ってググった https://t.co/HRgJXUNipD」 / Twitter
ベッセル関数(円柱関数)の公式あれこれ - 倭算数理研究所
FadisさんはTwitterを使っています: 「@ignis_fatuus 微分公式あるやん… (圧倒的数学ちから不足)」 / Twitter
いぐにすさんさんはTwitterを使っています: 「@fadis_ まあこれ数学ちからというより知ってるかどうかだから..」 / Twitter
FadisさんはTwitterを使っています: 「お前解析的に微分求まるのかよぅ…。めっちゃ頑張ってまともな速度で数値微分する方法探してたのに https://t.co/KKL1Raw2TH」 / Twitter
s.komataさんはTwitterを使っています: 「ハレー法は、ニュートン法の精密化(の一つ)である。それにしても、ここにもひょっこり顔を出すシュヴァルツ微分 https://t.co/K4HufevbIi」 / Twitter
Halley's Method -- from Wolfram MathWorld

histric-3

FadisさんはTwitterを使っています 「物理ベースな3Dグラフィクスでは全てのマイクロファセットについての積分が式について来て、反射ならマイクロファセットは完全鏡面反射する事にして出来るディラックのデルタ関数をぶつけて積分を潰せるけど、拡散はこの手が使えないからリアルタイムレンダリングで使うにはうまい近似が必要になる」 / Twitter
ゆうなさんはTwitterを使っています 「今日ほど内積の偉大さを知った日はない。 内積は基底変換、内積はフーリエ展開、内積はカーネル、… #数学デーinN高」 / Twitter
てぴ✨数学が大好きさんはTwitterを使っています 「@kawauSOgood リーマン幾何学をやるといいかもです(*´∀`)」 / Twitter
FadisさんはTwitterを使っています 「幾何においては、内積が「cos求めたのと等価な計算を時間がかかる三角関数の計算を陽に行わずにできる」という性質があまりにも便利なのであった」 / Twitter
小清水さんさんのツイート: "いつか紹介しようと思っている、定数との掛け算方法についての論文。三角函数の周期性で x - n * pi/4 みたいな計算で誤差がたまらないようにするために、いろんなところで使われている手法: https://t.co/QSHxyXWpYB"
MultFmacArith.pdf
FadisさんはTwitterを使っています: 「解析的に解けない理由は思い当たらないけど解くのが辛そうな方程式をとりあえずMathematica Onlineに突っ込んで、ノートが沈黙するのを眺めて、やっぱり解くのはやめよう、となる作業」 / Twitter
Teppei KuritaさんはTwitterを使っています 「Mitsuba2の微分可能レンダリングの簡単な例。目的となるレンダリング画像への誤差を最小化するようにシーンパラメータ(反射率等)を勾配法(SGD)等で最適化できる。左の壁は赤色が真値なのだが、適当な値で反射率を初期化しても最終的に真値に収束する。PyTorchとの統合可能。 https://t.co/xRCyO7hawW https://t.co/rniWlyVuol」 / Twitter
Differentiable rendering — mitsuba2 0.1.dev0 documentation
Kazuho OkuさんはTwitterを使っています 「@shirouzu 指数関数なので、新規を積分した累積の低は同じになるので、それを片対数グラフにプロットすると、同じ傾きになるかと」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho 確かにその通りですね…指数は微分しても同じでした(笑) (ただこの調子だと、 (重症+死亡者) / 感染者、の比率は低下していくということで良いのですかね)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho いや1.1倍で同じなら、1.1^n day倍になるだけなので、比率は変わらないですね。」 / Twitter
Kazuho OkuさんはTwitterを使っています 「直接の知人を1ホップって言おうと主張するの、確立された技術用語に別の定義を持ち込もうとしているという点で、爆発的な指数関数的増加を「指数関数的増加」に言い換えるの同等に非科学的な主張じゃないのかな cf. https://t.co/vZqfEWqV89」 / Twitter
ホップ (ネットワーク) - Wikipedia
monochromeさんはTwitterを使っています 「@miura1729 @uint256_t modって被非除数と除数の符号によって4パターンぐらいあって、しかも言語によってバラバラですよね。RubyとRust (LLVM) も違っていてハマった覚えが」 / Twitter
Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 @uint256_t modも割り算もバラバラですよね。その点、Common Lispは全部用意する(3パターン)という男らしさ」 / Twitter
Shiro KawaiさんはTwitterを使っています 「@miura1729 @s_isshiki1969 @uint256_t Schemeは6パターン網羅 (やりすぎ?) https://t.co/Ai69oiwjR6」 / Twitter
SRFI 141: Integer division
Masaki HaraさんはTwitterを使っています 「・割って掛けたらきっかり元に戻ってほしい→有理数ライブラリでいけます ・ルートして2乗したらきっかり元に戻ってほしい→代数的数ライブラリでいけます ・logしてexpしたらきっかり元に戻ってほしい→ちゃんとやるのは無理です」 / Twitter
Miura HidekiさんはTwitterを使っています 「ReduceやMathmaticaみたいな処理にすれば多分できる」 / Twitter
FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 記号処理というか項書換え系というか... 近似値が欲しいと言われるまで数値にしない :)」 / Twitter
tkrさんはTwitterを使っています 「行列積、転置行列作ってメモリアクセス局所的にするだけで計算時間半分になった メモリキャッシュ意識したらそんな変わるんか…」 / Twitter
電子計算機の沼さんはTwitterを使っています 「numpyだのscipyだのJuliaだのMatlabだのにBLASのラッパーみたいなI/Fの微妙に違うものが量産されたのは完璧にHPCの敗北で,もっと下のレイヤでHPCが主体となって早くBLASを作り直せば多種多様な異母兄弟みたいなのが生まれずに済んだんじゃないかと最近強く思う」 / Twitter
電子計算機の沼さんはTwitterを使っています 「あんなFortranで書かれた型縛りが強すぎるものを2020年にもなって後生大事にいろんな言語で使うためにみんなでラッパー書いて使おうっていうのが間違っている」 / Twitter

histric-4

Shinji KonoさんはTwitterを使っています 「まあ、色々意見はあるが 微分方程式はexp xをかけて積分 だけで院試はだいぶ違う。未定係数の問題を出したところは知らん。畳み込み積はみた。あれは知らんと解けん。知らないのはダメだとは思うけど。」 / Twitter
FadisさんはTwitterを使っています 「積分を「解析的に解けるラッキーな関数の解析的な積分の方法を覚える」ところから学び始めるの自体が、あまり筋の良いシナリオではないんだよな」 / Twitter
horiemさんはTwitterを使っています 「格子法って有限要素法とかも含まれるのか (グリッドの差分法だけを指す言葉かと思ってた)」 / Twitter
てらモス♋️さんはTwitterを使っています 「差分法もデルタ関数でガラーキン近似してるだけなので実質スペクトル法(?)」 / Twitter
てらモス♋️さんはTwitterを使っています 「分野にも計算機にも寄らない共通の数値計算の基礎なんて微積と関数解析くらいしか無いよな(´・ω・`)」 / Twitter
ど ね ( 。 •̀ _ •́ 。 ) ( 群 )さんはTwitterを使っています 「これを利用して多項式の積をFFT使って高速に計算する方法があった気がしますね(畳み込みの Fourier 変換はそれぞれの Fourier 変換結果の積になるので)」 / Twitter
tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「そうか。多項式の積って畳込みそのものだったんですね。 https://t.co/Im0SY5RIFZ」 / Twitter
κeenさんはTwitterを使っています 「昨日rust-jpのslackで整数の平方根がとりたいけどメソッドがないって話題が上がってたので(非負)整数の開平計算実装してみた https://t.co/jsFSgjZLNg アルゴリズムはWikipediaでも参考にしてみて。 開平法 - Wikipedia https://t.co/L2mNx0H1re」 / Twitter
extract_sqrt.rs
開平法 - Wikipedia
Shinji KonoさんはTwitterを使っています 「学部の授業で連続だが至る所で微分不可能な関数で、三角波を細かくしていく、するとゼロになる。失敗。そこで諦めないで、それを全部足すとできるってなのが印象に残ってる。フラクタルみたいなので理解してたので解析的書けるんだ的な面白さがあった。」 / Twitter
Iwao ShumpeiさんはTwitterを使っています 「自称文系という中には、微分といわれると冷や汗をかき、積分なんていわれたら一日中ブルーみたいな人がいるけれど、「いま時速○○だから××時間後には△△あたりに着くな」などいうとき、普通に物体の位置を速度の積分で導出しているのだから、実はほとんどの人は日常生活で初歩的な積分は使えている。」 / Twitter
Iwao ShumpeiさんはTwitterを使っています 「物体の位置を微分したら速度、速度を微分したら加速度になる。当然ながら反対方向の加速度→速度→位置は積分。」 / Twitter
Shinji KonoさんはTwitterを使っています 「そういえばいたるところで微分できない連続関数のグラフってあったな。どんなに拡大してもカクカクしているという。」 / Twitter
Genki TakiuchiさんはTwitterを使っています 「@shinji_kono フラクタルな曲線全般的にそんな感じですけど、多分ワイエルシュトラス関数かな」 / Twitter
Shinji KonoさんはTwitterを使っています 「いたるところ不連続な関数を積分して発散しなければ、いたるところで微分不可能な関数ができるじゃん。」 / Twitter
Shinji KonoさんはTwitterを使っています 「関数解析は自分的に必要性がよくわからなくて… でも、機械学習系に入ってきてるのか。収束とか問題になるしな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「部分積分はけっこうパターンマッチ的にめんどくさい技術で、名前がついていて「ここで使うぞ」と身構える感じ。プログラミングだとメソッドを抜き出すrefactoringに近い。」 / Twitter
Yusuke Hayashi 林 祐輔さんはTwitterを使っています 「渡辺澄夫先生の講義ノートと講演スライド.「統計的推測の問題が物理学と似ている構造を持つのは,単なる偶然なのでしょうか.それとも, 観測から真の分布を推測する,ということは物理学の一部なのでしょうか.」 1. https://t.co/64whBKegAn 2. https://t.co/GIULKJlnp0 https://t.co/qiaf6Uj3kh」 / Twitter
KJ00007905533.pdf
Mathematical Foundation of Statistical Learning - statphys20180312.pdf
だめぽラボ@技術書典9さんはTwitterを使っています 「ベクトルの要素ごとの積といえばzipWith (*) v1 v2 ……え、長い?」 / Twitter
だめぽラボ@技術書典9さんはTwitterを使っています 「ベクトルの要素ごとの積が利用されるのって「愚直にループを回すと遅い」問題か「愚直にループを書くと字面的にうるさい」問題の結果だと思ってる」 / Twitter
yuyabu🎄🎁さんはTwitterを使っています 「実践コンピュータービジョン前書き &gt;主成分分析により次元を削減するという応用から入って、主要な固有値と基底ベクトルで近似するために行列を変換していくんだな、と理解してからは目の前が開けた経験があります この境地になりたい」 / Twitter
てらモス♋️さんはTwitterを使っています 「メモリからデータを取ってくるのがCPUから見てとても遅い現代において、読み込み→計算→書き込みを単位としてモジュール化するのは悪手で、eDSL作って計算部分だけまとめる機構に流れるのは自然で、そうなるとC++だとuBLASみたいな事になっちゃうんだよね(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「そもそもスペクトル法にしておけば、微分ってのはikかけるだけの操作なんですよ…(´・ω・`)」 / Twitter
てらモス♋️さんはTwitterを使っています 「スペクトル法使えるの、普通には長方形か円柱か球面しか無いんだよね」 / Twitter

ゆうだい.jlさんはTwitterを使っています 「なんかそういえば,「ベクトル演算の画期的な新記法が発明された!ファインマンダイアグラムに匹敵する新発明!」みたいな論文,あれ読んでないけどどうなったの?」 / Twitter
ゆうだい.jlさんはTwitterを使っています 「これだ. https://t.co/QLHuauuuZ7」 / Twitter
1911.00892.pdf
だめぽラボ@技術書典9さんはTwitterを使っています 「多項式、いっそ係数のリストとして表記したほうが関数との紛れがなくなる」 / Twitter
dif_engineさんはTwitterを使っています 「@mod_poppo 不定元も「形式和」も使わないと結局そう定義することになりますね.」 / Twitter
uint256_tさんはTwitterを使っています 「リザバーコンピューティング よくわからない」 / Twitter
てらモス♋️さんはTwitterを使っています 「リザバー、先に適当な非線形発展を行う物理系とその系への入力と計測を用意して、その性質を調べて可能な計算のクラスを見て、自分のやりたい計算をその上に翻訳する操作的な認識(´・ω・`)」 / Twitter
じ〜ま⊿🦀さんはTwitterを使っています 「微分方程式の理論に線形代数が出てくるとか初見殺しじゃね? 関数の集合をベクトル空間と見るっぽい雰囲気は感じとった」 / Twitter
Hideyuki TanakaさんはTwitterを使っています 「数学全然知らんけど、積分って解析的に解けない式が多すぎて、高校までは数少ない単純なルールで計算できるパターンを覚えてパターンマッチする問題しかなかった記憶だし、それ以降は情報に進んだから数値的にやりゃあええやろみたいになってもうたな。」 / Twitter
👻 道化師 🃏さんはTwitterを使っています 「ホント、やっぱり数学はプログラミングとセットでやってくれないと困るよなぁ。ある計算をするのに複数の求め方がある時に計算量的にはこっちの式がいいだとか、計算誤差を最小化する為にこっちの式が望ましいだとか、そういうところまでセットでやって欲しい。」 / Twitter

SVM

SVMの理論的な話 - genkami.github.io
機械学習アルゴリズムのしくみを解説 「サポートベクトルマシン」と「k-means法」とは:CodeZine(コードジン)

ビタビアルゴリズム

その他

ビタビアルゴリズム - Wikipedia
畳み込み符号 - Wikipedia
HMM viterbi
Forward filtering-Backward samplingによる単語分割でアンダーフローを防ぐ – ご注文は機械学習ですか?
マルコフ連鎖とビタビアルゴリズム(HMM)を F# で。 - Bug Catharsis
ビタビアルゴリズムをpythonで実装してみた - Screaming Loud
ビタビアルゴリズム
Viterbi アルゴリズム
無線通信における畳み込み符号化について
無線通信における畳み込み符号化について
ボクにもわかる地上デジタル - 地デジ方式編 - 符号化
畳み込み符号のプログラムについて(C言語) - 畳み込み符号とビタビ復号のプログ... - Yahoo!知恵袋
Viterbiアルゴリズムについて - プログラマ専用SNS ミクプラ
ビタビアルゴリズム【入門】具体例で分かりやすく解説!(Viterbi)
ページ 1
あやしいサイコロと『隠れマルコフモデル』 | 株式会社フォワードネットワーク
Viterbiアルゴリズム - 機械学習の「朱鷺の杜Wiki」

動的計画法

blog

動的計画法でフィボナッチ数列の計算を速くする。 - from scratch
Matrix-chain multiplication problem - Lilliput Steps
なぜdp「やるだけ」なのか ~動的計画法について考える その1~ - kuuso1のブログ
競技プログラミングにおける動的計画法更新最適化まとめ(CHT, MongeDP, AlianDP, インラインDP, きたまさ法) - はまやんはまやんはまやん
DPとは何か フィボナッチで - 簡潔なQ
連鎖行列積問題 : がぶ飲みミルク珈琲
Tech Tips: 連鎖行列積を動的計画法で解く
第13回 NVIDIAが提供する数学ライブラリ | G-DEP

PDF

PowerPoint Presentation
バイオインフォマティクスⅠ
shiryou-20160906-4.pdf
untitled

スライド

動的計画法を極める!
動的計画法
動的計画法 / Python 11 - Speaker Deck

GEMM

Nehalemアーキテクチャ向けDGEMMの高速化: 事例 | NEC
dgemm を使用した行列の乗算
dgemm によるスレッド化の効果の測定
インテル® MKL の BLAS と DGEMM ルーチンを使用したインテル® AVX の最適化 | iSUS
dgemm によるスレッド化の効果の測定
gemm-一般行列・行列積 VI - LabVIEW 2017ヘルプ - National Instruments
shinichiro hamajiさんのツイート: "すべてのアクセラレータ作るベンダーに一番自信ある設定でGEMMやった時の数字を公表する義務を課してほしい"

BLAS

Wikipedia

Basic Linear Algebra Subprograms - Wikipedia
OpenBLAS - Wikipedia
LAPACK - Wikipedia
LINPACK - Wikipedia

ロボ太さんのツイート: "「ソフトウェアテスト」というべきか微妙ですが、HPLがちゃんとできるということは、ハードウェアベンダーがちゃんとしたBLAS職人を抱えている証左になります。昔は知りませんが、現在の石で行列行列積を書くのは非自明な技術です。自分でDGEMMを書いてみれば、その性能の低さに驚くと思い… https://t.co/PQ4jZPQTWD"
ロボ太さんのツイート: "科学技術計算の多くはBLASに依存しており、その基本はDGEMMです。DGEMMはアーキやSIMD幅に応じて書き直す必要があります。HPLをちゃんとやるというのは「そのアーキでちゃんとしたBLASを用意します」という、ベンダーの意思表示になります(もちろんこちらはBLASはBLA… https://t.co/rYHdoO34wP"
Hideyuki Tanakaさんのツイート: "BLAS専用ハードとかないのは、BLASってめちゃくちゃ関数がおおいから専用ハードなんて作っても意味があんまないからじゃないのですかね…。DGEMM専用回路ですら汎用プロセッサと比べてたいしてメリットないんじゃないかと言われているのに。"
Hideyuki Tanakaさんのツイート: "すでに現在のアクセラレーターってDP演算回路が全体の数割を閉めているらしいから、全部埋め尽くしても数倍にしかならないし、そもそもそれらにきちんと途切れることなくデータを物故見続けるためにはそれなりの量のバスと、キャッシュがどうやっても必要になるから、DGEMM専用回路でも2倍も行… https://t.co/w2fBpD3je0"
Hideyuki Tanakaさんのツイート: "というのをDGEMM専用回路つくりゃいいじゃんという指摘を僕自身でしてみたときに思った。そんなこともないよっていうハード設計者の人がいらっしゃったらおしえてちょー(´・_・`)"
Hideyuki Tanakaさんのツイート: "あとBLASで負荷が高いのはLevel3だから、それ以外はソフトで書いたほうがいいでしょっていう。Level2はどう考えても帯域ネックになるしな。"
shinichiro hamajiさんのツイート: "PEZYのおかげでLINPACKというやつがDNNと違って単にGEMMやってるだけでなくてもうちょい大変なことをやってるという認識が持てたということがありました。以前はスパコンてGEMMお化けなんでしょくらいの認識だったというか、なんでスパコンで多体問題とか解けるのと今でもわかっ… https://t.co/KytNh0mxQb"
BLASの簡単な使い方
IBM Knowledge Center - BLAS 関数構文

Qiita

制御理論としての動的計画法 - Qiita
意外と解説がない!動的計画法で得た最適解を「復元」する一般的な方法 - Qiita

動的計画法(ナップサック問題) - アルゴリズム講習会
Spaghetti Source - 連鎖行列積
ダイナミックプログラミング
できる動的計画法:ロッド切り出し問題 | プログラミング | POSTD
chokudai(高橋 直大)さんのツイート: "多分DPを狭義に解釈してる人は「メモ化再帰はDPではない」みたいに言いそうだし、これは完全に競プロ方言だと思ってる。(メモ化再帰はDPです)"
chokudai(高橋 直大)🌸🍆🍡さんはTwitterを使っています 「全探索→貪欲→動的計画法の順序で書いたのは初めてだけど、これはこれで良いのよね。 全探索→動的計画法がアルゴリズム的には繋がりが良いのだけど、貪欲を挟む事で、「自明な改善が出来ないケースでDPが有効」ってストーリー性を持たせやすくなる。」 / Twitter
omuomuginさんはTwitterを使っています 「大学ではなぜか動的計画法で解きたい問題のダメな方法として紹介されたので、しばらく末尾再帰以外の再帰は悪手なんだと思ってた。」 / Twitter
Kota Mizushima (on a diet)さんはTwitterを使っています 「@omuomugin 動的計画法で解きたい場合は、それは確かにナイーヴな再帰関数だとあんまり良い手じゃない気がします(メモ化再帰は使い所ありますが)。」 / Twitter

PDF

coding_06.pdf
ohp12.dvi
nlp-programming-ja-04-ws.pdf
アラインメントはグラフで表現できる
<4D6963726F736F667420506F776572506F696E74202D2091E630338FCD8CEB82E892F990B395848D86979D985F2E70707478>

GitHub

Yuji-Kosugi/sysele
yk-tanigawa/201410HMM: HMM
ビタビ複号を行うプログラム

探索

その他

antirez/rax: A radix tree implementation in ANSI C
興味深いデータ構造:BK木 | プログラミング | POSTD
米Microsoft、最近傍探索ライブラリ「Space Partition Tree And Graph(SPTAG)」をオープンソースで公開 | OSDN Magazine
Sonic - 軽量でスキーマレスな検索システム
Googleが概念ベクトルを使用した画像検索を研究
最小二乗法 機械学習 - Google 検索
行列 微分 - Google 検索
ユークリッド距離 - Google 検索
κeenさんはTwitterを使っています 「赤黒木を定義するときに赤と黒の2値を表現するためにパディング含めて32bitを消費するの無駄だなーと思ってたけどRustならenumのdescriminant mergingがあるからメモリが無駄になる訳ではないな。C/C++でも手動で同様のことできるはず。 https://t.co/ki4f9iITtV」 / Twitter
Rust Playground
リバーシプログラムの作り方 サンプル
近似最近傍探索ライブラリFaissの4bit PQアルゴリズムについて、ARM CPU上での動作を60倍程度高速化しました - Fixstars Tech Blog /proc/cpuinfo

法則発見

1_270.pdf
機械学習 - Wikipedia
Microsoft Word - pantel_web_v2.docx - P2-30.pdf
058.pdf
15群(○○○)-8編 - S3gun_03hen_03.pdf
機械学習とは?教師あり・教師なし・ 強化学習・半教師あり学習のアプローチ法も説明 | データサイエンスコラム|アガルートアカデミー
機械学習に欠かせない、特徴量とその選択手法とは | AI専門ニュースメディア AINOW
Microsoft PowerPoint - 01Intro.ppt - 01Intro.pdf

文字列

python 文字列 flatten - Google 検索
v8 rope 文字列 - Google 検索
v8 rope 文字列 flatten - Google 検索
Kazuho Okuさんのツイート: "wwww これメンテし続けてる情熱がすごい! これでうまく行くのは、数値に変換する前にflattenしてるってことですかねぇ… "
Takuo Kihiraさんのツイート: "@kazuho さん、さっき @yosuke_furukawa さんに教えてもらったんですが、V8 で rope で切り貼りされた文字列を flatten するためにはこうすればいいらしいですよ! https://t.co/Nt1LGTRwt0"
flatstr/index.js at master · davidmarkclements/flatstr
Takuo Kihiraさんのツイート: "そうだと思います。最適化で殺されそうですが、今度 disasm のコード覗いてみて、Rope を flatten する処理にどんなのがあるのか見てみますw… "
お手軽に使える高速なSSE4.2専用文字検索ライブラリ - Cybozu Inside Out | サイボウズエンジニアのブログ
文字列アルゴリズムの学びかた - Hatena Developer Blog
qrintfの最適化 - RuJIT開発日記
h2o/qrintf: sprintf accelerator for GCC and Clang
最も割高なアンチパターン : 構造化されたデータを文字列関数で操作する「printfアンチパターン」について | プログラミング | POSTD
最近のruby-core (2016年7月) | Money Forward Engineers' Blog
どれだけ速く文字列からスペースを削除できるのか | プログラミング | POSTD
kmem_cacheさんはTwitterを使っています: "strncpy()・strlcpy()よりも使いやすくてセキュアなstrscpy()が追加されたと。 / “Linux 4.3-rc4 Kernel Released: Adds A New & Better String Cop…” http://t.co/ztQJvCSuRl"
Hirochika Asaiさんのツイート: "strtok()にobsoleted by strsep()って書いてあるけど、strtok()とstrsep()の挙動が違う。macOSのstrtok()は連続するセパレータは省略してstrsep()は空文字を返す。POSIX的にはどっちが正しいんだろう…?"
文字列アルゴリズム Advent Calendar 2016 - Qiita
文字列検索アルゴリズムいろいろ - Qiita
SymSpell対BK木:100倍速い文字列のあいまい検索とスペルチェック | プログラミング | POSTD
rapidstring: rapidstring
boyerjohn/rapidstring: Maybe the fastest string library ever.

ビットベクトル

Kozonoyuki's Blog: ビットベクトルによる集合
C言語 ビットベクトル 集合 要素数の調べ方について - ビットベクトルを用い、集... - Yahoo!知恵袋
学生ゼミ 10/25 - JP@IKN
4.2.pdf
汎用kumAGIさんのツイート: "簡潔ビットベクトル、高速なのはいいんだけど構築のコストが大きいので検索が支配的なコストの場合に使うしか無くてDWHとかIMEとか使いどころが難しいのでは…。"
「ビット演算・ビットベクトルとは」を理解する - Qiita
簡潔ビットベクトル(完備辞書) - Mister雑記
簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
完備辞書(簡潔ビットベクトル)の解説 - アスペ日記
簡潔データ構造 - Wikipedia
簡潔データ構造超入門 ~つくって学ぶ簡潔ビットベクトル~ - EchizenBlog-Zwei
簡潔データ構造超入門III ~簡潔ビットベクトルで転置インデックスを効率的に実装する~ - EchizenBlog-Zwei
整数ベクトルからビット ベクトルへのマップ - Simulink

intrusive container

侵襲・非侵襲

関数呼び出しのトレース - yohhoyの日記
python - How do I print functions as they are called - Stack Overflow
Shirouzu Hiroaki(白水啓章)さんのツイート: "C++は侵襲型のリストやマップなども用意して欲しいところ。 (できれば複数リスト対応できるもの) 非侵襲型=insertだけでアロケータ必須とか、要素内部を漁ってもイテレータが取れない、という制約になっている。"
SODA Noriyukiさんのツイート: "Boostにはあるし、言語標準の方でも議論はしてるっぽいですよね https://t.co/EtGBKKzf3o… "
Intrusive Containers

OSC2019東京・春出展さんのツイート: "Linuxカーネルのリンクリストは余計なアロケーションがなくて効率はいいんだけど、要素となるデータ構造と、それを入れるコンテナの種類が密に対応しちゃうのが気持ち悪い。"
SODA Noriyukiさんのツイート: "intrusive containerって奴ですね # これに対しSTLやglibみたいな奴は non-intrusive container Linuxに限らず他の OS でも似たような構造はあるし(*BSDだと <queue.h> や <tree.h> など)、ゲームとか組み込みの世界でもよく欲しくなるのでC++にも入れようって話が出てたり https://t.co/EtGBKKzf3o… https://t.co/EK4OaKn9jr"
SODA Noriyukiさんのツイート: "元となるデータ型を変更しないといけない(intrusive)という欠点は当然あるので、適材適所で使うものですが…… "
_さんのツイート: "Boost.Intrusive とかありましたね https://t.co/9dd13XN7Dx"
Chapter 19. Boost.Intrusive - 1.64.0
OSC2019東京・春出展さんのツイート: ""intrusive container"っていう呼び方は初めて知りました.ありがとうございます!とあるデータ構造を,ここではリンクリストで,こっちではarrayリストで,こっちではsetで,みたいにしたかったらintrusive containerは不向きですね.… https://t.co/QfDH6bELcN"
SODA Noriyukiさんのツイート: "arrayは無理なので向かないけど、(mapあたりで実装した)setとlistなら可能だし、わりとしょっちゅうやります。設計時にそのデータ型が属するcontainerの種類や数が不定だったりすると不可能ですが。… "
OSC2019東京・春出展さんのツイート: "ああ,そうか.ポインタで繋げるタイプのコンテナなら実現できそうですね.… "

疎行列

sparse

hsjoihsさんはTwitterを使っています 「https://t.co/oOfSt36h8R「未初期化のメモリなんてどうなっててもいいよね、如何なる演算をも許さなくてもいいように思える」 私「わかる」 人「なんと https://t.co/p93MaxwPau という天才的アルゴリズムが反例として存在します」 私「なるほど?」 私「なるほど~~」」 / Twitter
"What The Hardware Does" is not What Your Program Does: Uninitialized Memory
research!rsc: Using Uninitialized Memory for Fun and Profit

疎行列格納形式の話 - krustf の雑記
CRS形式 - JICFuS Wiki
疎行列のデータ構造入門再び - nursの日記
大規模疎行列のデータ構造とアルゴリズムその3 - nursの日記

ハッシュ

merkle DAG

ブロックチェーン処理に特化した中国製ファイルシステム「TCFS」 - PC Watch
IPFS入門 : 新たなP2Pハイパーメディア分散プロトコル | POSTD
トランザクションデータを要約する技術「マークルツリー」
[Japanese] Patricia Tree · ethereum/wiki Wiki
暗号学的ハッシュ関数 - Wikipedia
データのバージョン管理が可能な分散データベースNomsのイントロダクション - Qiita
ipfs.key
【次世代のインターネット】IPFS(Inter Planetary File System)で遊んでみた。 : 暗号通貨って何? es's website

マークル木

Go

Kentaro Haraさんのツイート: "なかなか表舞台の話題に出てこない技術に Trillian(https://t.co/E5vOG1cgwA)というのがあって、個人的にはブロックチェーンとほぼ同等のことができて、かつブロックチェーンよりよほど将来性がある技術だと思う。オープンソースになってて、SSL認証などですでに実用化されている。"
google/trillian: Trillian implements a Merkle tree whose contents are served from a data storage layer, to allow scalability to extremely large trees.

Kazuho Okuさんのツイート: "公文書の記録にgitとかブロックチェインとかみたいな話を目にするけど、普通はMerkle Hash Treeを使って部分検証を可能にするんじゃないの?"
Kazuho Okuさんのツイート: "ええ。Certificate Transparencyみたいなお金にならないものでさえmerkle treeで実現できてるわけで、公文書ならハッシュチェインで良いと僕も思います… "
ハッシュ木 - Wikipedia
Merkle tree - Wikipedia
データ検証などで利用するMerkle Treeのメモ | Siguniang's Blog
トランザクションデータを要約する技術「マークルツリー」
ビットコインの技術 Merkle tree(Hash tree) プログラミングJava
ビットコインとマークルツリーとマークルパスと - とってもやさしいビットコイン
【連載】暗号通貨ってなんだろう?⑦「第五部『その他』」 – びりあるの研究ノート
ビットコインとは何か? 第2回:ビットコインの仕組み(ブロックチェーンの構造) - ビットコインの解説 | Bitcoin日本語情報サイト
Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイル破壊検出用の並列ハッシュ値計算を考える。 ファイルデータを例えば256KBブロックで分割し、インターリーブ的にn本のストリームに見立てる。 ストリーム毎にハッシュ値を取り、最後にハッシュ値*nを並べてハッシュ値を取った場合、上記目的用としての品質はどの程度担保されるかな…?"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ただ、md5やsha1記録用としては使えないので、イマイチではある。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "良く似たものに、merkle-treeがあり、70年代の終わりからすでに分散ハッシュ計算方法として、実績がある様子。 https://t.co/B1IiFBGWAI"
Dan Kogaiさんのツイート: "ZFSはすでにブロック破壊検出と可能ならば修復も標準でやってくれるのだけどそれとは違う?… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "ZFSやbtrfsでは、こちらに書いたmerkle-treeが使われているみたいですね。 https://t.co/10YzrZNOlD 元々の動機はこちらに。 https://t.co/OWW9VhcYYT… "
鯉江さんのツイート: "AES-NIつかってGCMでチェックするのが早いと言ってる人がいたのを思い出しました。 https://t.co/XC2UX2GCzW https://t.co/MdzlQ0pMOb… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、いいですね。… "
IPFSについて勉強した - mizchi's blog

khash

libgit2の内部データ構造: strmap - Qiita
attractivechaos.awardspace.com
SW-1202-2282-2063さんのツイート: "@yukihiro_matz @mirichi 参考にされたオリジナルのkhashはこれですかね? https://t.co/4X9lsJlD0c"
mrubyでkhashの使い方がまずいせいで起きる現象(putするまえにgetしてない)
klib/khash.h at master · attractivechaos/klib
Klib — a generic library in C
attractivechaos/klib: A standalone and lightweight C library

SipHash

SipHashについてのメモ - Qiita
SipHash - Wikipedia
SipHash: a fast short-input PRF
siphash.pdf
jedisct1/siphash-js: A Javascript implementation of SipHash-2-4
veorq/SipHash: High-speed pseudorandom function (reference code)
Change Siphash to use one of the faster variants of the algorithm (Siphash13, Highwayhash) · Issue #29754 · rust-lang/rust
SipHashとAdvanced Hash Flooding - 不意になにかを残すブログ
SipHash — Idea of the day
siphash 0.0.1 : Python Package Index
Yusuke Endohさんのツイート: "rust が案外速いと知って、じゃあなんでこのコードは遅いんだろうと今更 perf report 見てみたらハッシュ関数が半分以上占めていた。siphash は遅いんだなあしみじみ"
DSAS開発者の部屋:最近の Python-dev (2017-02)

MurmurHash3

MurmurHash3 · aappleby/smhasher Wiki

xxHash

xxhashの紹介 - KengoSawa2の技術的ななにか
Cyan4973/xxHash: Extremely fast non-cryptographic hash algorithm
xxHash - Extremely fast non-cryptographic hash algorithm
Synergy KK - 02-08Silverstack - オフロードとバックアップ -xxHash、MD5 / SHA-1チェックサム方式とMHL
使った node.js ライブラリ – xxhashjs / xxhash « Ooharabucyou
xxHash - a hash algorithm as fast as memcpy
xxhash 1.0.1 : Python Package Index
XxHash - Wikipedia
xxhash
ハッシュ関数 xxHash の入力を32bitに限定した場合に重複した値が出ないことを確認したい - Qiita
Shirouzu Hiroaki(白水啓章)さんのツイート: "ベリファイ用ハッシュ計算のデフォルトは、xxHashにしようかな…"
Kengo Sawatsuさんのツイート: "server2012<-80gbps->server2012 で、検証してみたところ ベリファイなし:3000MB/Sec(たぶんハード上限) xxhash:1500MB/Sec MD5:300MB/Sec SHA1:340MB/Sec ハッシュ計算がネックになっているので、記録用には使えないが壊れてないことは保証されるハッシュがあってもいいのかもしれませんね。(有料?)… https://t.co/ACQZ2QpC36"
Shirouzu Hiroaki(白水啓章)さんのツイート: "並列版xxhashを考えてみます(笑) 何並列に分割するか、考えてどころですが。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "xxHashをストライピング的に並列処理した場合の速度実験。 (i5-8600K(6コア)、チャンクサイズ16KB、ストライプ数16) ワーカースレッド数(6)で 15.2GB/s、(4)で 12.5GB/s、(2)で 6.8GB/s、(1)で 3.5GB/s に。 待ち合わせオーバーヘッドはあるものの、使う価値はありそうだな。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "上記実験では、1MB毎に待ち合わせした場合の値。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "xxHash64 の速度の件、ビルドオプションを /Ob1 → /Ob2 (inline指定のinline化 → 可能な全てのinline化)で、3.7GB/s → 13.3GB/s に向上、100Gb環境でもマルチスレッド版必要なさそう。 (逆に利用側での #define XXH_INLINE_ALL は効果なし)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、v3.52をリリースするかな、xxHashデフォルトに変更して。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "付記。ビルドオプションは xxHashライブラリのビルドオプションのみ変更。"
Shirouzu Hiroaki(白水啓章)さんのツイート: "MT化xxHash / オリジナルxxHashで比較実験。(i5-8600K) ハッシュ対象が6MBの場合、60GB/s / 14.3GB/s となり、1GBの場合、27GB/s / 13.4GB/s となった。 そしてMT化版は 3スレッド指定で性能上限に達する。 だいたい理由は判るが面白い。… https://t.co/9FtZC0lvuz"
xxHashメモ(VC++用Tips、MT実験)
SHIROUZU Personal Log(2018-07-08)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「知らないうちに xxHash で 128bit が定義されていたようだ。 https://t.co/NowpG61eeH ちなみに xxhashの作者はハッシュ品質テストにSMHasherを使っている様子…これが業界的にはデファクトなのかしらん? https://t.co/n6GXjFkMVK」 / Twitter
xxHash/xxh3.h at dev · Cyan4973/xxHash
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SMHasherは「ハッシュテストの DieHarder を目指している」とのこと。 https://t.co/0nOsBumaP3」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash3(128bit)は、従来版より性能が高いらしいが、まだ実験版。 (10月の最新リリースでハッシュ値が変更されたが今後もありえる) https://t.co/9TkMrdl8iR」 / Twitter
Releases · Cyan4973/xxHash
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「従来の xxHash(64bit) に比べて、xxHash3 はSSE/AVX利用で性能向上が著しい(2-3倍)。 正式リリース(v0.8)になり次第、こちらをFastCopyのデフォルトにするかな。 (今もさらなる性能向上のPRが取り込まれている最中っぽい) https://t.co/n6GXjFkMVK https://t.co/DBC6a6Lx5x」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash(64bit)の並列化実験(=通常版と値が変わる)で 13GB → 60GB/sまで改善した時のメモ。(2年前) https://t.co/SCuw1ulL8S」 / Twitter
xxHashメモ(VC++用Tips、MT実験)
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ようやくxxHash3 v0.80 リリースと。 (このリリース以降、128bit xxHash 値が将来リリースでも維持が保証される) https://t.co/sWDmn0hsnh」 / Twitter
Release xxHash v0.8.0 - Stable XXH3 · Cyan4973/xxHash
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash3を含む、xxHash v0.80 がリリースされた、の方が正確だった。 xxHash3 は 128bit が使えるのに加えて、従来のxxHashに比べて処理性能も約1.5倍に向上。 https://t.co/K3DWI1qRVp」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、xxHashのYann Colletさんは zstd や lz4 の作者でもある。」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHashは x86系だけで 通常 / SSE2 / AVX2 / AVX512版 と4実装が含まれているのだが、CPU毎の最適実装への動的な切替は VC++ ではビルドできない。 (ので、自動切替を自前で用意したり) https://t.co/XBfW3qcKvj」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「i5-8600K で 1MB * 60000 = 60GB分の xxh3(128bit) を計算するとこんな結果に。 通常: 6.0s SSE2: 3.1s AVX2: 2.4s (なお、もっと上位CPUでないとAVX512は使えないが、世評を見る限り、大して性能向上しないのではとも)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても xxh3、CoffeeLake i5 で 25GB/s 出るのは大したもの。 参考までにxxHash時代の記録。 https://t.co/SCuw1ulL8S」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近は SSD RAID などで、I/O が高速化しているので、ハッシュ値計算がボトルネックになることがあるため、高速ハッシュ計算はとても大事。 (md5だと専用スレッドで計算しても間に合わない) https://t.co/A9kiB1nHKc」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu コピー時の同一性検証ならGCMみたいなMAC使った方が速かったりしません?」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho xxh3は非暗号学的ハッシュなので非常に軽く、手元のi5-8600Kで25GB/s、公式サイトだと 30GB/s くらい出ているのですが、GCMでもこのくらい行くのでしたっけ…? https://t.co/GaHddSLjZL」 / Twitter
Kazuho OkuさんはTwitterを使っています 「@shirouzu あーすみませんmd5しか見てませんでした。gcmだとその条件で6GB/s程度は出ると思いますが10GB/sは行かないと思います」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash作者のYann Colletさんに確認したところ、VC++では SSE2/AVX2/AVX512の動的切り替えは、下記のようなソース分割コードしか実現不可能という結論に。 https://t.co/qr9RCzQ5B7」 / Twitter
shirouzu/xxh3_sw

hash

kbcl0_0004 - essen-wiki
ドッグさんのツイート: "Facebook が開発した高速でメモリ効率の良いハッシュテーブル実装 F14 が Folly C++ ライブラリの一部として公開したのか.記事内では具体的な最適化の内容について解説されてる | 'Open-sourcing F14 for memory-efficient hash tables - Facebook Code' https://t.co/smzRYWwWks"
Open-sourcing F14 for memory-efficient hash tables - Facebook Code
ドッグさんのツイート: "ただし std::unordered_map とかが提供している reference stability は F14 では保証されないのか"
ドッグさんのツイート: "ハッシュ値が衝突すると衝突の解決のために普段とは違うパスを通らないといけないから CPU が分岐予測を外す → 衝突を減らすのが大事.とはいえナイーブにテーブルの初期サイズをデカくすると当然メモリ効率が悪くなる"
ドッグさんのツイート: "そこでスロットごとではなくチャンク (複数のスロットの塊) ごとにハッシュ管理して,検索時はそれぞれのチャンクをベクタ命令で並列に検索.二段構えになる分普通のハッシュテーブルより処理は多くなるけど,トータルとしては速くなる"
ドッグさんのツイート: "要素をポインタで間接的に持つ F14Node,要素を直接値で持つ F14Value,要素を配列に置いて配列で持つ F14Vector の複数のメモリレイアウトを検討して F14Value と F14Vecror のハイブリッドにしたらしい (F14Fast)"
ドッグさんのツイート: "C++ 的に頑張った点として, std::string をキーに持つテーブルは std::string_view で no copy に検索できるようになってる ,noexcept でムーブ出来ない型の要素を入れた時は [[deprecated]] で警告を出しまくる (ウケる) これは経験的に大抵 noexcept 付け忘れてるケースがほとんどのため"
汎用kumAGIさんのツイート: "大昔に作ったスライド、「あなたの知らないハッシュテーブルの世界」これslideboomってサービスに上げてたけどサービス終了したしアニメーションが入ってるせいかslideshareに上がらなかったのでとりあえずdropboxに置いて欲しい人に届くように公開。内容は古いです。 https://t.co/I1pxAshYt0"
あなたの知らないハッシュテーブルの世界.pptx
Shirouzu Hiroaki(白水啓章)さんのツイート: "完璧なハッシュ関数だと、fa fb の衝突はそれ以上改善できなさそう。 ただ、fa fb に加えて、ダミー文字列mを付与して、f(a+m) f(b+m) も行って、fa+f(a+m) と fb+f(b+m) で512bit比較が許容されるなら衝突改善できそう。… https://t.co/tD9Q5F6geC"
とつげき東北⛅さんのツイート: "問題: 1/(2^256)の確率で衝突してしまう暗号学的ハッシュ関数fがある。入力に対する出力は256bitで、衝突以外は「安全」だとする。 原文としてaとbがあるとする。xをハッシュにかけたハッシュ値をfxのように書く。 f以外のハッシュ関数がない場合に、faとfbの衝突を少しでも回避する方法を考察せよ。"
とつげき東北⛅さんのツイート: "そういう意図でした。 文字列を連結した場合……と書くとヒントになりすぎるし、240文字で制限あるしで困りました。 ちなみに「完全な」ではない場合の定義も曖昧で、aと何かを連結したものと、bと同じ何かを連結したものもまた衝突するなら、解なしぽいですね。 ご回答ありがとうございます!… https://t.co/HyQpVZWfdC"

QHash

島鉄雄さんはTwitterを使っています 「古い記事だけど辞書のベンチマーク比較サイトがあった。 これ見るとQHashがやたら速いし省メモリ。 早速ソースコード見てみたら、struct Span と言うデータ構造が肝のようだ。 要するに仮想記憶の様に所々しかメモリが確保されてない巨大配列を作ってるようだ。 これは良い。 https://t.co/RM9rjQZQje」 / Twitter
Benchmark of Dictionary Structures
島鉄雄さんはTwitterを使っています 「Boost のハッシュ(unordered_map)も十分速いし省メモリだから、今は std::unordered_map を使っておけば間違いないのかもしれないけど、ソースコードを見ても何やってるか全然分からん… その点 QHash はかなり読み易い。」 / Twitter

Go

意図的にプログラムの動きをランダムにしてバグを早期発見するテクニックについて|Rui Ueyama|note
Kazuho Okuさんのツイート: "@rui314 ネットワーク界隈だとossificationを防ぐためのgreasingという言い方をするので、そういう単語を紹介してもいいのかなと思いました cf. https://t.co/ZNyY1AadfS"
Rui Ueyamaさんのツイート: "@kazuho そう、TCPとかだとossificationがひどいので新しいプロトコルではなるべくgreasingするようにしていて、みたいなこと書いたんですが短くするために削除してしまいました。"
Kazuho Okuさんのツイート: "@rui314 なるほどです。「グリス(を塗る)」と言ったほうがランダム化よりも良いかと思ったのですが、意図的に落とされたんですね"
Rui Ueyamaさんのツイート: "@kazuho Goのマップとかだとgreasingっていう言い方を聞いたことがないんですよねぇ。そっちから書き始めたので話の流れ的にまあこれでいっか、と。"

POSTD

私が書いた最速のハッシュテーブル – PART 1 | プログラミング | POSTD
私が書いた最速のハッシュテーブル – PART 2 | プログラミング | POSTD
私が書いた最速のハッシュテーブル – PART 3 | コンピュータサイエンス | POSTD
私が書いた最速のハッシュテーブル – PART 4 | コンピュータサイエンス | POSTD

最近のruby-core

最近のruby-core (2016年3月) | Money Forward Engineers' Blog
最近のruby-core (2016年11月) | Money Forward Engineers' Blog
最近のruby-core (2017年1月) | Money Forward Engineers' Blog

局所性鋭敏型ハッシュ

Miura HidekiさんはTwitterを使っています 「https://t.co/sHNKVNTbdU 面白いのだがよくわからない。隠れ層の重みを1bitとか2bitにしてハッシュテーブルで検索するって話なのかなー?」 / Twitter
ライス大学研究チーム、GPUを使わずにディープラーニングを高速化するアルゴリズムを開発:行列の乗算ではなく、ハッシュテーブルで解決可能な探索問題に - @IT
zakkiさんはTwitterを使っています 「@miura1729 理解しきれてませんが、重みの精度落とすんじゃなくて、局所性鋭敏型ハッシュでのハッシュテーブルで最近傍近似するとかなんとか https://t.co/TYiZIirw1E」 / Twitter
keroro824/HashingDeepLearning: Codebase for "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems"
miyoxさんはTwitterを使っています 「行列計算じゃなくてハッシュテーブルを使う? https://t.co/ta2Ak7J33V 論文はこれかな https://t.co/aRlUj0b1U7」 / Twitter
ライス大学研究チーム、GPUを使わずにディープラーニングを高速化するアルゴリズムを開発:行列の乗算ではなく、ハッシュテーブルで解決可能な探索問題に - @IT
[1903.03129] SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems
OGAWA, TadashiさんはTwitterを使っています 「.@miyox MLSys 2020でのペーパーとスライドです "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems", Rice &amp; Intel https://t.co/hoaRaKHv3Z Anshumali Shrivastava https://t.co/3sRRl219kU」 / Twitter
OGAWA, TadashiさんはTwitterを使っています 「=&gt; "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems", Rice &amp; Intel, MLSys 2020 https://t.co/25sEoYoKb1 https://t.co/u2OPpgLzPY Amazon-670K 2x (22 core Xeon E5-2699A v4, 2.4 GHz): 1 H TF on V100: 3.5 H https://t.co/b7f4Rnapj2 https://t.co/1kYVn7PfWz」 / Twitter
Anshumali Shrivastava

Twitter

chokudai(高橋 直大)さんのツイート: "(x,y)を((long)x<<32)+yでエンコードするとハッシュ衝突して死ぬ、普通に知らなかった。(C#のDictionaryの内部実装の問題っぽい)"
Kazuho Okuさんのツイート: "rubyのハッシュテーブルって何か昭和な実装使ってたと思うんだけどkhashとかにしないのかな #RubyKaigi"
Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyベリファイでは、I/O中にハッシュを並列計算することで、ハッシュ計算をI/O時間に隠蔽していた。 だが、速度向上につれて1GB/sを越えてくると、ハッシュ計算時間がI/O時間を上回るようになり、ハッシュ時間が律速要素になって来たのは、とても面白い。… https://t.co/UfkmUTUyYm"
Shirouzu Hiroaki(白水啓章)さんのツイート: "最近のPythonのhash()は、起動毎に異なる値を返すらしい。 (hash値が予測可能だと、dictでDOS攻撃が可能なため) https://t.co/CSmQXCYs7B… "
security - hash function in Python 3.3 returns different results between sessions - Stack Overflow
Taku KudoさんはTwitterを使っています: 「unordered系のcontainerの実装を変えると、違う結果をはきだした。hash関数が変わると再現性がなくなるというのは本来あってはならないことだよな.. 速度的に強い制約ないのであれば、ordered なコンテナを使うほうが無難。」 / Twitter
SmoothieMap 2: the lowest memory hash table - Roman Leventov - Medium
KOMIYA AtsushiさんはTwitterを使っています: 「メモリフットプリントが小さく(1エントリあたりのヒープ使用量が小さく)て、rehash によるレイテンシの劣化がない java.util. Map の実装らしい。 “SmoothieMap 2: the lowest memory hash table ever” by Roman Leventov https://t.co/W6NJWQmVsH」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「AIの偉い人から「LSH(Locality-sensitive Hashing)」という単語を聞いて調べ中。 (そもそも多次元=球面集中も知らなかった) ---- 「(昔は近似検索にはハッシュは使えなかったが)Locality-sensitive Hashingという類似検索向けのハッシュ法を開発して状況は一変し…」 https://t.co/RNXGZZf6BL」 / Twitter
7_256.pdf

HKDF, HMACなどのハッシュ関数を使う場合に知っておくべきFS/PFS – yohgaki's blog
A Hash Function for Hash Table Lookup
高速ハッシュアルゴリズム | YOSBITS
八角研究所 : RHG 片手に Ruby 1.9 を読む集い(The RHG Strikes Back)に参加した(1) - 第2回 RHG の逆襲
あなたの知らないハッシュテーブルの世界
テンプレート: Hopscotch Hashingとその他
aappleby/smhasher: Automatically exported from code.google.com/p/smhasher
luispedro/diskhash: Diskbased (persistent) hashtable
Positive Technologies - vulnerability assessment, compliance management and threat analysis solutions
leo-yuriev/t1ha: Fast Positive Hash, aka "Позитивный Хэш" - just the fastest portable hash function.
HashDoS脆弱性との戦い! Rubyコミッター・卜部昌平が明かすプログラム堅牢化のノウハウ - エンジニアHub|若手Webエンジニアのキャリアを考える!
Re-implementation of Lock Free Cuckoo Hashing – ScienceOpen

二分探索

DSWアルゴリズム - Wikipedia
Day–Stout–Warren algorithm - Wikipedia
高速な圧縮辞書ライブラリXcdatをリリースしました - Kampersanda's Blog
KampersandaさんはTwitterを使っています 「Lemire氏のブログを眺めてて面白かった記事。複数の二分探索を実行するとき、各ステップをインターリーブして実行すると、どうせ外れる二分探索の分岐予測よりも効率的に命令が使えて定数倍高速化するというもの。 https://t.co/H4mqcr7NOC」 / Twitter
Speeding up independent binary searches by interleaving them – Daniel Lemire's blog
Binary search with modern processors - Speaker Deck

グラフ

NyaRuRuが地球にいたころ

graph (1) - NyaRuRuが地球にいたころ
graph (2) - NyaRuRuが地球にいたころ
graph (3) - NyaRuRuが地球にいたころ
graph (4) : 身近な例 - NyaRuRuが地球にいたころ
graph (5) : クエリ式 - NyaRuRuが地球にいたころ
graph (6) : 再帰クエリ - NyaRuRuが地球にいたころ

大規模グラフアルゴリズムの最先端
ページランクのアルゴリズムをC++で試してみる (1/3):CodeZine(コードジン)
BDDとZDDを下から読んで再帰アルゴリズムを作る - Qiita
01-BFSのちょっと丁寧な解説 - ARMERIA
ワーシャル–フロイド法 - Wikipedia
疎行列の計算を実装してグラフ理論をかじってみる (1/3):CodeZine(コードジン)
江崎貴裕@数理モデル本発売中!さんはTwitterを使っています 「巡回セールスマン問題の最短経路長は、もしノードの位置が一様ランダムに決まると仮定すると、その領域の面積とノード数の平方根に比例する式で近似できるということが知られているらしいのだが、試しに計算してみたら思ったよりいい近似で驚いた。 https://t.co/fWc7VrJhmw」 / Twitter
数学の難問「巡回セールスマン問題」の近似解を求める最良のアルゴリズムが数十年ぶりに更新される - GIGAZINE
Shinji KonoさんはTwitterを使っています 「この種のアルゴリズムの計算量や解の質の問題は極めて難しくて手法そのものが良くわかってない。アルゴリズム自体よりも、そっちだな。 https://t.co/J2MSPl1pDE」 / Twitter
Shinji KonoさんはTwitterを使っています 「巡回セールスマンはNPハードだがNP完全ではないけど、NPの理解に計算幾何学が使えるなら面白い。きっとやっている人たくさんいるんだろうな。」 / Twitter
Shinji KonoさんはTwitterを使っています 「確かに、可能な計算全てに計量を入れるような話だし」 / Twitter
閉半環を使ってグラフ上の最短距離を計算する!
κeenさんはTwitterを使っています 「Idrisだと(依存型のついた)Matrixあるし簡単じゃんと思ったらSemiRingじゃなくてRingが要求されていた…」 / Twitter
グラフからコミュニティ構造を抽出する 〜リッチフローによるグラフの時間発展〜
kinabaさんはTwitterを使っています 「全ノードが次数k以上な最大部分グラフを探すアルゴリズム https://t.co/Dqf8bj2ImP (次数k未満のノードをまず捨てると、残ったノードの次数が減るので繰り返すと捨てられる物が増える)を思い出したけど、実際近い理屈かもしれないな。残す候補の物の集合からある程度のリンクがないと捨てられやすい」 / Twitter
Find k-cores of an undirected graph - GeeksforGeeks
Masaki HaraさんはTwitterを使っています 「整理整頓の仕方。「これは要らないな」と思ったものを捨てるとものが半分以下になるので、これをn回繰り返すと最初の(1/2)^nになる。というのは嘘にしても、何回か繰り返すとなぜか捨てられるものが増える。」 / Twitter
バネ埋め込み法を使って隣接行列からグラフを描画する
Navigable Small Worldによる近似最近傍探索 - suzuzusu日記

隣接行列

有向グラフ 隣接行列 圧縮 - Google 検索
有向グラフ 隣接行列 圧縮 意味ネットワーク - Google 検索
有向グラフ 隣接行列 意味ネットワーク - Google 検索
隣接行列 意味ネットワーク - Google 検索

map

各種マップ実装の性能比較 - mixi engineer blog
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Pythonは、逆に3.7(実装では3.6)から挿入順でのイテレーションが保証されるように。 ただしハッシュ値は起動毎にランダム(コリジョン対策)」 / Twitter
mattnさんはTwitterを使っています 「そうするとユーザがそれに依存したコードを書いてしまい以降アルゴリズムを変更できなくなります。そこで Go では意図的にイテレーションの順をランダムにするようになっています。」 / Twitter

Elias-Fano encoding

Taku KudoさんはTwitterを使っています 「ソートされた整数列(転置インデックスのポジションリストとか)の圧縮に elias-fano-encoding という手法があることを知った。Quasi-succinct で、試したところ、ありがちな手製圧縮をはるかに凌駕する。 https://t.co/f32s48zQHn」 / Twitter
Sorted integers compression with Elias-Fano encoding | Antonio Mallia
Taku KudoさんはTwitterを使っています 「sentencepieceを本来の意味でのデータ圧縮につかってみた。当たり前だがうまくいく。」 / Twitter

トライ

404 Blog Not Found:Algorithm - 連想配列の実装としてのハッシュはオワコン?
Gauche:Trie
Parallel Collections - 並行トライ - Scala Documentation
Groonga - grn_dat - 参照ロックフリーなダブル配列
ダブル配列の豆知識
ダブル配列の実装方法
人生で何度目かのダブル配列TRIEを書いた - Qiita
すごいTrie - Qiita
Rui UeyamaさんはTwitterを使っています 「TrieというとGoの標準ライブラリのここらへんでTrieを使っているけど、実はこれかなり非効率的で、DFAを使って入力に対してリニアにしか時間がかからないようにしたほうがいいはず。パッチ書くの面倒だけど。 https://t.co/kBoyU1sKyj」 / Twitter
src/strings/replace.go - The Go Programming Language

Splay木

かつっぱ@競プロYouTuberさんはTwitterを使っています 「Splay木って最近示されたDynamicOptimalityの下界を達成していたっけ(ギリしていなかったような)」 / Twitter
かつっぱ@競プロYouTuberさんはTwitterを使っています 「根拠のない直感なんだけど、クエリ列のエントロピーの大小とOptimalDynamicBinarySearchTreeの計算量の大小も連動するイメージがあって それとSplayTreeのおそらくほぼOptimalなところを見ると、「Splay木は偏ったケースだと早い」がなんとなくそうかもしれんなという気になる」 / Twitter
Masaki HaraさんはTwitterを使っています 「へー動的最適性って示されたんだ (名前しか知らない)」 / Twitter
かつっぱ@競プロYouTuberさんはTwitterを使っています 「まどろっこしい話をしたのでスーパー火消しタイム - Tarjanの動的最適性の予想はまだ示されていないはず - 最近Wilberの下界が最適っぽいかもしれない予想にProgressがあった(https://t.co/9mPFBQBoVZ) だけなのでSplay木が全然下界じゃな可能性は残っています 最近の私のツイートはイメージです」 / Twitter
Settling the relationship between Wilber's bounds for dynamic optimality

Crit-Bit Tree

404 Blog Not Found:algorithm - PATRICIA に一番似合う姓は Crit-Bit かも
高速な文字列検索 Crit-Bit Tree コンテナ(C++) - Qiita
prog_0003 - kiwi-log
Crit-bit trees
crit-bit 木 (その3) - Tociyuki::Diary

機械学習インデックス

Kazunori Satoさんのツイート: "Jeff Dean他、Learned Index Structureを発表。B-Tree比で70%の性能向上と桁違いの省メモリを実現。GPU/TPUにも載りそう。 https://t.co/Bs2WmD2io9 https://t.co/eQGGRuAB2D"
Fadisさんのツイート: "「B-Treeのインデックスは機械学習で言う回帰木であり、この部分をディープラーニングを含む他の機械学習の手法で置き換える事ができる」 その発想はなかった"
Kazuho Okuさんのツイート: "多次元への拡張やばいな。任意のクエリに対応したインデックスを自動生成できれば、もうセカンダリインデックスどうしようとか考える必要なくなる / “The Case for Learned Index Structures – Ar…” https://t.co/y2PJqeq11F"
The Case for Learned Index Structures – Arxiv Vanity
Kazuho Okuさんのツイート: "機械学習インデックスのやつ、一次元なら古典的な方法でもできそう(例えばJPEGのように頻度を階層的にDCT)な気がするけど、どうなんだろうなー"
Kazuho Okuさんのツイート: "なんというか、次元低いなら機械学習いらない気がするんだよね。あるいは、次元が低くても機械学習に優位性があるなら、同じ手法を使うことで画像の圧縮率を大幅に上げることが可能だってことになるよね"
Kazuho Okuさんのツイート: "あーインデックスだと参照速度重要だからDCTよりもNNになるのかな"
Daisuke Okanoharaさんのツイート: "@kazuho 画像の圧縮にNNを使う研究はいくつか出ててすでにJPEG は超えてて特に低レートだとかなり勝ってます。スタートアップもでてきてます。ただ、NNによる圧縮の本命は容量も大きく圧縮がすごく効くであろう動画だと思います。 https://t.co/HwddgBaZcU"
IR Reading 2019秋 論文紹介 / IR Reading 2019Fall - Speaker Deck

進化的アルゴリズム

進化的アルゴリズム - Wikipedia
進化戦略 - Wikipedia
CMA-ES - Wikipedia
乱択アルゴリズム - Wikipedia
分散共分散行列 - Wikipedia

オートマトン

Ichiro HasuoさんはTwitterを使っています 「これ,実はオートマトン理論の成果です.「Bellman operator を使うと確率的オートマトンの解析が局所的にできるよ!(動的計画法)」という基本の話に,あえて大域的な解析を上手に組み合わせることで,解析が爆速になりました.[Phalakarn・滝坂・Haas・蓮尾 CAV'20]」 / Twitter
国立情報学研究所(NII)さんはTwitterを使っています 「[ニュースリリース] 意思決定支援システムが示す選択肢の正しさと計算スピードを両立する手法を開発 ~工業製品の品質確認、自動運転、マーケット投資などの戦略の高速計算への道を拓く~ https://t.co/XIfTJW9bR6」 / Twitter
意思決定支援システムが示す選択肢の正しさと計算スピードを両立する手法を開発~工業製品の品質確認、自動運転、マーケット投資などの戦略の高速計算への道を拓く~ - 国立情報学研究所 / National Institute of Informatics
国立情報学研究所(NII)さんはTwitterを使っています 「本研究ではゴールの達成確率を最大化する戦略を精度保証しながら高速に計算する手法を開発しました。工業製品の品質確認や自動運転の制御、マーケット投資戦略の策定等、幅広い分野の意思決定を支援するシステムに応用可能で、システムが示す選択肢の正しさを保証しつつ高速に計算結果を提示できます。 https://t.co/4AZ9QHLXfB」 / Twitter

blog

Segment Tree を少し速くする - Fixstars Tech Blog /proc/cpuinfo
Segment tree - Wikipedia
DSAS開発者の部屋:最近のPython-dev(2017-09)
はてなブックマークWeb版のエントリー検索のアルゴリズムを改善しました - はてなブックマーク開発ブログ
論文メモ: Accelerated Query Processing Via Similarity Score Prediction (SIGIR 2019) - stop-the-world
論文メモ: Fast Approximate Filtering of Search Results Sorted by Attribute (SIGIR 2019) - stop-the-world
Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog
文字列アルゴリズムの学びかた - Hatena Developer Blog
赤黒木による順序付き集合 - Tociyuki::Diary
赤黒木同士の非破壊 JOIN 関数 - Tociyuki::Diary
お勉強メモ:混合ベルヌーイ分布とEMアルゴリズム - Kampersanda's Blog

スライド

実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第三回講義資料(ワークスアプリケーションズ & AtCoder)
The first step self made full text search - Speaker Deck
Mercari Item Search: Behind The Scenes (20min) - Speaker Deck

Qiita

TDS: Transposition Table-driven Work Scheduling - Qiita
HDA*: Hash Distributed A* - Qiita
bit全探索について簡単にまとめる - Qiita

Twitter

島鉄雄さんのツイート: "プログラミング言語には split や split-if 等豊富に用意されているけど、split の対としての slice が無いものが多い気がする。(elisp とか…) slice は使用頻度が低いかもしれないけど、無いと一から作らないといけないから、用意しておいてほしいもんだ。… https://t.co/tBJ7fp4rSK"
takuya-aさんはTwitterを使っています: 「パフォーマンスのためにmutableなデータ構造を書く(一度確保した配列などのオブジェクトを何度も使い回して速度とメモリを稼ぐ)必要がたまにあり、そういうときは事前条件と事後条件のアサーションを思いつく限り書く。コードは冗長になるけど、逆に不変条件が明確になるのでわかりやすくなると思う」 / Twitter
kgotoさんはTwitterを使っています: 「素晴らしい。 ちなみに3進数だけでなく、任意のk進数配列を最適な領域で保存するデータ構造[Dodis+, STOC 2010]というのもあります(実装はたぶんまだない)。 https://t.co/ujr4BuSi0d」 / Twitter
かんぱさんださんはTwitterを使っています: 「{0,1,2}上の値から成る配列(Trit Array)に対する簡潔データ構造の実装を公開しました。 https://t.co/lhTsgATSH9」 / Twitter
kampersanda/succinctrits: Succinct Rank/Select Data Structures on Trits
takuya-aさんはTwitterを使っています: 「データ構造の本のなかで突然EM algorithmって出てきて???ってなったけど、データがメインメモリに載らない前提でディスクとかを使って計算するアルゴリズムはExternal memory algorithmっていうらしい。計算モデルもちゃんと定義されてる https://t.co/Ibs0p5GUkv」 / Twitter
External memory algorithm - Wikipedia
(            ​‌‍‎‏ null)さんのツイート: "Mapなどの連想配列の挿入順が保持されない、というのは昔は常識だったが、最近は多くの言語・処理系で保持されるようになってきており、逆に保持される方が常識であるように変化しつつあるのは面白い"
おーいわくんさんはTwitterを使っています: 「BERTを使って検索をより良くする話です | Understanding searches better than ever before https://t.co/P7QkslUvD9」 / Twitter
Understanding searches better than ever before
マスタケさんはTwitterを使っています: 「近傍探索の問題、実サービスで出会う問題は大抵部分集合内(,例えば同一タグで絞るとか日付で絞るとか)の近傍探索の問題に落とせるずで,実際そのほうが圧倒的に計算量が落とせるのに, 今までそういう提案はなかったという意味でこの論文は本当に好き https://t.co/y5fFf6Z3IS」 / Twitter
[1808.03969] Reconfigurable Inverted Index
takuya-aさんはTwitterを使っています: 「新着順や価格順などの属性によるソート順を維持しながらDCGなどの指標を最大化するランキングを近似誤差・時間計算量の理論保証つきで計算するアルゴリズムの論文です(オタク特有の早口)」 / Twitter
relevanceの意味・使い方・読み方 | Weblio英和辞書
takuya-aさんはTwitterを使っています: 「そもそも検索の精度というか、relevanceに対して真剣に向き合ってるサービス・会社が日本にほとんどないという」 / Twitter
takuya-aさんはTwitterを使っています: 「もちろんrelevanceだけを見ればいいわけではなく、レイテンシとかUIとかの全ての要素を含めたUXが大事なんだけど、そもそもrelevanceの問題にちゃんと取り組める、取り組んだ経験のある人が少ない」 / Twitter
takuya-aさんはTwitterを使っています: 「メモリに載らない(データの大部分はディスクにある)前提だとBkd-TreeとPH-Treeどっちが速いんだろう」 / Twitter
takuya-aさんはTwitterを使っています: 「PH-TreeはB+Treeのうえにデータを載せる実装があるので比較はできるはず https://t.co/7fgPeAKASx」 / Twitter
tzaeschke/phtree: PH-Tree
Tomoko UchidaさんはTwitterを使っています: 「2, 3 週間睡眠を削った結果,近似最近傍探索 (HNSW) のパッチができつつあります https://t.co/hRjZicENcG が,インデクシングはやっぱり遅いのと,大改造がすぎるので入るのかどうか。。。」 / Twitter
Add HNSW graph builder · mocobeta/lucene-solr-mirror@5fb9328
スマートコンさんはTwitterを使っています 「別に難しいことを知ってる必要はなく、「log n は n に比べて余程小さい」「幾つかに分割してたら log n っぽくなる」「n log n という表記があったらだいたいよさそう」「n^2 はでかい」くらいの肌感覚で良い」 / Twitter
KampersandaさんはTwitterを使っています 「弊圧縮ダブル配列辞書ライブラリxcdatを再実装して整備しました。改めて実験するとそこそこ良い性能でしたのでよければお使いください(結果の詳細はREADMEにあります) https://t.co/Tobkj5RSku https://t.co/Tu5xWcoFdx」 / Twitter
kampersanda/xcdat: Fast compressed trie dictionary library

blog

その他

測度論 / ルベーグ積分 - 星の本棚
覚えるために学べ。GANを用いて過去に覚えたことを忘れないようにするクラス分類器 | AI-SCHOLAR
Permutation Importanceを使ってモデルがどの特徴量から学習したかを定量化する
DeepなFactorization Machinesの最新動向 (2018) - Gunosyデータ分析ブログ
20191109
距離学習(Metric Learning)入門から実践まで|はやぶさの技術ノート
人間が深層学習のAIを理解できないのには、理由がある:朝日新聞GLOBE+
なぜ「事実」と「意見」を区別して話せない人がいるのか。 | Books&Apps
東大情報学環大澤昇平氏の差別発言について - researchmap
JR西日本「ベンダーの提案すら理解できない素人だった」新幹線の“着雪量予測”データサイエンスコンペ開催までの「奮闘」
<8D758DC081698250816A2E626F6F6B>
motomura.dvi
Kazunori SatoさんはTwitterを使っています: 「TJOさんのすばらしい説明可能性まとめ。 "ヒトが理解できるのはいわゆる「弾力性」とか「ルールベース」が関の山であり、これを機械学習モデルに置き換えると所詮は(一般化)線形モデルもしくは決定木(回帰木)止まりになる" https://t.co/ffC8SrfKf2」 / Twitter
機械学習の説明可能性(解釈性)という迷宮 - 渋谷駅前で働くデータサイエンティストのブログ
SentencePieceについて書いてみる。 - どん底から這い上がるまでの記録
物理法則を”発見”できる機械学習モデルAI Feynman - akira - Medium
ベイズ統計・ベイズ機械学習を始めよう | AIdrops
【第一回】ねこでも分かる!いかさまグラフにはもうダマされない!! - ed-ict|授業でもっとICT活用
ポケモンを題材に因果推論を実践してみる - tepppeiのブログ
20200505
AIっていったい誰なのよ | RAD-IT21
VAEに基づくグラフの表現学習 - Sansan Builders Box
銀行での不正検知の精度向上へ 暗号のままデータ連携・機械学習ができるわけ | DG Lab Haus
2020年総まとめ  興味深い論文/記事85選|akiraTOSEI|note
2021年05月時点で自分が実践しているMLOpsの情報収集方法 | Shunya Ueta
「量子」と組合せ最適化に関する怪しい言説 ―とある研究者の小言― - むしゃくしゃしてやった,今は反省している日記
だらだらとKotlinで色々データサイエンスの業務をやって思ったこと | by nardtree | Medium

はてなブログ

JavaScript エンジニア向け: 知識ゼロから tensorflow.js で機械学習入門 - mizchi's blog
WebサービスのA/Bテストや機械学習でよく使う「確率分布」18種を解説 - paiza開発日誌
Factorization Machinesを今更読みました - EchizenBlog-Drei
識別/生成モデルの観点から見たRubin/Pearlの統計的因果推論(*既に一定の予備知識のある方向け) - Take a Risk:林岳彦の研究メモ
ワードエンベディングベクトルを使った検索アプリを作った話 - 科学と非科学の迷宮
層の定義 - tsujimotterのノートブック
確率モデリングのための確率分布の式変形基本【ベイズの定理/グラフィカルモデル】 - HELLO CYBERNETICS
確率を解釈する - hidekatsu-izuno 日々の記録
検定や信頼区間の前提が満たされない状況に対して,テキストはどう助言してきたか? - Tarotanのブログ

データ

生データ使い放題?! 「日本は機械学習パラダイス」になった ― DEEP LEARNING LAB 勉強会 - Deep Insider
効率的な教師データ作成(アノテーション)のための研究サーベイ - ABEJA Arts Blog
(翻訳) データエンジニアリングの未来 - satoshihirose
実践!固有表現認識 ~Flairを使って最先端の固有表現認識を体験しよう~ - Ahogrammer
AIデータ活用コンソーシアム設立 | yasuokaの日記 | スラド

ガウス過程

ガウス過程の補助変数法をJuliaで実装、回帰結果を比較 • matsueushi
ガウス過程の補助変数法 (Inducing variable method) を理解する • matsueushi

マルコフ

マルコフ連鎖キーボード – 入力結果でキー配列が動的に変わる | 秋元@サイボウズラボ・プログラマー・ブログ
強化学習の基本:マルコフ決定過程ってなんぞ? - HELLO CYBERNETICS

モデリング

ブラックホール撮影にも使える「スパースモデリング」とは?【機械学習】 - zalgo3の逆張りブログ

推論・推定

Pythonとカーネル密度推定(KDE)について調べたまとめ - Stimulator
なぜCatboostの推論は速いの? - 簡単なレポート
ベイズ統計学に関する議論を整理する - hidekatsu-izuno 日々の記録
なぜ統計学には主義が必要なのか - hidekatsu-izuno 日々の記録
「数理科学を使えば統計の”主義”を争う必要ない」という主張について検討する | 人はやがて死ぬ
それはベイズ統計学ではなくて、言わば情報量基準主義ですよ
統計学に主義はあってもいいけど,人を説得するときに使うものじゃないという気がする - チラシの裏の落書き日記
特異学習理論 - Google 検索
情報量基準 - Google 検索
事後分布 - Google 検索
統計的仮説検定 - Google 検索
信頼区間 - Google 検索

補足

Ken McAlinnさんはTwitterを使っています 「うっすらと感じてた誤解が言語化されてたのでちょっと補足。まぁ誤解は自分の言葉足らずが原因ということで。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「1. 一番勘違いされてる点であると思うけど、だれも特異学習理論を批判していない(というか情報量基準を広中の定理で拡張してるので批判する意味がない)。批判は「情報量基準によって様々な主義の統計学が統一されはじめて学問になった」という主張である。別にこう主張するのは構わないのだが」 / Twitter
Ken McAlinnさんはTwitterを使っています 「これはメジャーな意見ではないのと同時に情報量基準が適応できない分野(時系列、因果推論、確定的データ)はいくらでもあるので「統一」と言われると困る。「はじめて学問になった」という主張も根拠がわからない(ベイズもSavageの公理系によって学問になったと主張できるし)。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「肝心なのは「情報量基準ベースに統計学を一貫して見る」というのが(定義より)主義であるという点である。これを便宜的にWベイズと呼んでいたが情報量基準主義のほうが的確に思える。 2. 何度も書いてるがデータが真の分布からiidに発生されている、というのはかなり強い仮定である。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「完璧な実験ができるなら話は別だが、ほとんどの場合この仮定は満たされていない(というか確認できない)ので「理論の保証」はあくまで利用者がどこまでリスクを許容するかの話になる。データがiidだと思うのなら理論的に保証されてるし、iidでないなら(eg時系列)保証されないので良くないモデルを選ぶ」 / Twitter
Ken McAlinnさんはTwitterを使っています 「可能性が増え、利用者としてはリスクとなる。ほとんどの場合はこれが度合いの問題なので利用者としてはリスク・リターンを考えながら評価基準を複合的に考えないといけない。ちなみに特異学習理論によって拡張されたのは扱えるモデルであってデータの種類ではないが、今後その方向に拡張できればいいと」 / Twitter
Ken McAlinnさんはTwitterを使っています 「思う(情報量基準ではないけど時系列でのモデル評価の理論は自分も書いてる)。ただ「安心して使える」ものではない。 3. 自分は予測主義なのだが、予測の良さ≠因果性なので科学とは良い予測をすることなのか因果関係をみつけることなのかはまだ議論があるので一意に「科学とはこれだ」とは言えない。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「4. ベイズの論理構成の最小限は意思決定である(というのが主観ベイズの立場)。そこから事前分布がでてきてベイズの定理がでてくるという話なのでモデル/データがなくてもベイズはできる。 5. その後のベイズ/頻度の部分は指摘すると長くなるのでパス。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「最後に言うとだれも主義を強要してない。(みんな「見方」をもってるんだから)主義を考えるとこういう解釈ができたりこういう研究ができるよって話なのであって、自分が正しいともみんな同じ意見になれとも思ってない。」 / Twitter

複素 数太郎さんはTwitterを使っています 「データはデータであって確率変数とも定数とも一切関係ないのだから「確率変数/定数を扱うこれこれの理論の計算結果がこうだから現在の設定におけるデータをここに当てはめると所望の結果と考えられるものが出る」と言えばいいのに、なぜか「データは確率変数」というIQ3みたいな言い方で表現される」 / Twitter
統計学の「主義」批判に渡辺ベイズは一切必要なく、そこには一般的な記号操作におけるリテラシーの問題しかないのではないか|複素 数太郎|note

アンチウィルス

機械学習を使っているアンチウイルスを機械学習を使ってバイパスする「gym-malware」の紹介 - 脱力系日記

言語処理

チュートリアル「Janome ではじめるテキストマイニング」を GitHub & Google Colab で公開しました
文章埋め込みを用いた教師なしキーフレーズ抽出EmbedRankの実装とその評価 - Sansan Builders Box
言語処理学会の論文がぜんぶ公開されたからみんなで見ようぜ!! - 5日と20日は歌詞と遊ぼう。
言語処理学会第25回年次大会(NLP2019) 発表論文集
やぐさんのツイート: "Blog書きました。fasttextが公式で言語判定のモデルを配布しているので、それを使ってみたという話。サブワード単語埋め込みを使っていながらもモデルサイズが小さいところに、fasttextの気合いを感じます。 / fasttextを用いた言語判定 - Out-of-the-box https://t.co/p1PXd2jUIn"
fasttextを用いた言語判定 - Out-of-the-box
Elastic Common Schemaについて | Elastic
横断検索で社内情報共有を加速させる - Hatena Developer Blog
Googleの自然言語処理モデル「BERT」はインターネット上から偏見を吸収してしまうという指摘 - GIGAZINE

R の prop.test

R-Source
データ解析・マイニングとR言語
2変量の関連(2) - R on Windows
統計的分析手法あれこれ(2群間の比の差の検定)
割合の差の検定のサンプルサイズ計算 - 統計ER
カイ二乗検定と等比率検定の関係は何ですか?
[R]{stats} prop.test() : 比率の差の検定を行う関数 | Dr.Clover's Computer Clinic
比率の信頼区間
標本サイズの決め方
python - PythonRのprop.testと同様の比例検定
R の prop.test() からの信頼区間は、手の計算と SAS の結果とは異なります。

スライド

slideshare

機械学習モデルの判断根拠の説明
機械学習で泣かないためのコード設計
プログラミング言語として考えたTensor flow
Control as Inference (強化学習とベイズ統計)
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
[DL輪読会]Pay Attention to MLPs (gMLP)
深層学習による非滑らかな関数の推定
文章を読み、理解する機能の獲得に向けて-Machine Comprehensionの研究動向-
数式を綺麗にプログラミングするコツ #spro2013
EMアルゴリズム
坂本寛さんのツイート: "この教科書はわかりずらいところがあることが世に知られているので、教科書をより分かり易く理解するための工夫があり資料としてもすぐれている。発表ももちろん上手なので聴けなかった人は残念ですね。 #nlpaperchallenge… "
ᴉɥsᴉuɐʞɐu oɹɐʇuǝʞさんのツイート: "NLP の方の最初の発表資料公開しました。 https://t.co/lOkagdoSGf あとで修正するかもしれません〜 #nlpaperchallenge"
Deep nlp 4.2-4.3_0309
takuya-aさんのツイート: "昨日のMLM KANSAIの @nyanp さんの資料が公開されたぞ!特徴量の作り方めちゃめちゃ参考になるのでぜひ / 1件のコメント https://t.co/vRvm1AWXlx “最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング” https://t.co/AUtVR9gtaY"
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
「安心な移動」のためのPOI検索
cvpaper.challengeさんはTwitterを使っています 「「Vision and Language」のメタサーベイ資料を公開しました!画像と言語の融合問題について、タスク別のサーベイ(EQA, Navigation, Retrieval, Pre-trained Model)や最新動向について説明しています。 https://t.co/ADTLX9j693」 / Twitter
Vision and Language(メタサーベイ )
cvpaper.challengeさんはTwitterを使っています 「「自己教師学習(Self-Supervised Learning)」のメタサーベイ資料を公開しました!教師がないデータに対して自ら教師を作成し学習する枠組みで、教師あり学習の代替を担うかもしれないとして最近注目を集めている技術です。トレンド、注目研究者/研究機関も含めています。 https://t.co/wgvVakgydA」 / Twitter
自己教師学習(Self-Supervised Learning)

Argo Workflow によるMLジョブ管理 - Speaker Deck
What’s new in Elastic Stack 7.1?
検索結果の品質向上 Elasticsearch入門 - Speaker Deck
chikoskiさんのツイート: "「経済学のための実践的データ分析 9.1 Linked Open Data や RESAS や RISIS を使ってみよう」 https://t.co/GRxqVoJP8P 最近、オリジナルとは違う形でSemantic Webが実現されつつあるのではないか、という気持ちになっている。"
#経済学のための実践的データ分析 9.1 Linked Open Data や RESAS や RISIS を使ってみよう - Speaker Deck
Cloud Composer & Dataflow によるバッチETLの再構築 #data_ml_engineering / 20190719 - Speaker Deck
近似最近傍探索の最前線 - Speaker Deck
Fast Succinct Trie - Speaker Deck
takuya-aさんはTwitterを使っています: 「FSTのDAGの構築は一度Javaで書いたことあるので理解してるつもりだけど、シリアライズまわりはいいアイデアあったら盗みたい https://t.co/GDIybhEtuP」 / Twitter
takuya-aさんはTwitterを使っています: 「FSTについてはこちらもどうぞ #Kuromoji https://t.co/6xdEyBNIZt」 / Twitter
犬でもわかる Minimal Acyclic Subsequential Transducer / Introduction to Minimal Acyclic Subsequential Transducer - Speaker Deck
takuya-aさんはTwitterを使っています: 「Lucene FSTのシリアライズのやりかた、 @moco_beta さんのおかげで完全に理解できたし、自分で作ってるFSTのライブラリで同じ方式のシリアライズを実装してみようかな」 / Twitter
#JJUG Java における乱数生成器とのつき合い方 - Speaker Deck
sigam23sp01.pdf
Target Encoding はなぜ有効なのか - Speaker Deck
ヤフーにおける機械学習検索ランキングの取り組み - Speaker Deck
niconicoの検索システム(2019年版) - Speaker Deck
hiroshiさんはTwitterを使っています: 「機械学習で用いるデータセットや学習済みモデルの著作権についてまとめられたIBIS2019での講演資料が公開されています。 STORIA法律事務所 柿沼太一 氏 「機械学習と知財・契約」 https://t.co/knum7n5yMY https://t.co/3A6nn2QQ1m」 / Twitter
機械学習と知財・契約
逆FM音源 - Speaker Deck
TFHEのための多項式乗算入門 - Speaker Deck
The Web Conference 2020 Report -多目的最適化における確率的ラベル集約- - Speaker Deck
Mathematical Optimization in 60 minutes - Speaker Deck
Trends in Deep Generative model and Self-supervised Learning at NeurIPS2019 - Speaker Deck
Trends in Deep Learning Theory at NeurIPS 2019 - Speaker Deck
Trends in Natural Language Processing at NeurIPS 2019. - Speaker Deck
CyberAgent AI Labを支えるCloud実験環境 - Speaker Deck
Hydra, MLflow, Optunaの組み合わせで手軽に始めるハイパーパラメータ管理 - Speaker Deck

Qiita

最適化アルゴリズムを評価するベンチマーク関数まとめ - Qiita
EMアルゴリズム徹底解説 - Qiita
自然言語処理における、Attentionの耐えられない短さ - Qiita
seq2seqで利用可能な日本語対話データセットをダウンロードするツール - Qiita
【機械学習】Google翻訳(みたいなもの)を自作してみた。 - Qiita
不均衡データを損失関数で攻略してみる - Qiita
パワポエンジニアの憂鬱を軽減する誤字/表記揺れ検出ツールを作った物語 - Qiita
Shiro Kawaiさんのツイート: "「AIは意味を理解しない」ことのすごくわかりやすい例だ https://t.co/y8OVswgGcN より正確に言うなら、「AIは与えられたデータの範囲内で通用する『意味』を見つけ出すが、その『意味』が人間の常識と一致する保証は何もない」かな。"
AIのバイアスのほんとうの問題は人間が気づかないバイアスだ - Qiita
AngluinのL*アルゴリズムと機械学習(特にRNN)への応用 - Qiita
【2020決定版】スーパーわかりやすい最適化アルゴリズム -損失関数からAdamとニュートン法- - Qiita
__init__.py を省略してはいけない - Qiita
クックパッドを支える検索技術 「鰹」と検索して「鰹節」を表示されないようにする工夫 - ログミーTech
Taku KudoさんはTwitterを使っています 「公開ありがとうございます。1. なぜNFKDなんでしょう。2. neologd のバージョンがあったほうが再現させやすい。3.「語彙のカバー範囲」の意図が不明ですが、長いトークンが欲しいのであれば形態素解析しないほうがよい。 https://t.co/CZcuXcmRgn」 / Twitter
有馬幸介/StockmarkさんはTwitterを使っています 「BERTの軽量版とも言えるAIモデルであるALBERTについて日本語モデルを弊社エンジニアが公開しました!精度をほぼ落とさずモデルサイズが1/10ぐらいになっているので、やはり実務上は本当に使いやすい。 https://t.co/2sQ6LZ9uGu」 / Twitter
大規模日本語ビジネスニュースコーパスを学習したALBERT(MeCab+Sentencepiece利用)モデルの紹介 - Qiita
半順序でソートするためのアルゴリズムとは? - Qiita
ざっくり理解する分散表現, Attention, Self Attention, Transformer - Qiita
初 LAPACK!で DGELS (QR 分解もしくは LQ 分解)による最小二乗法を実装してみた - Qiita
Linuxのかな漢字変換の興亡 - Qiita
線分の交差判定と交点特定 - Qiita
pandasで1000万件のデータの前処理を高速にするTips集 - Qiita
深層学習のセキュリティ課題と論文まとめ - Qiita
AIと公平性(入門編) - Qiita
Taku KudoさんはTwitterを使っています 「マジレスすると v0.1.94 から manylinux2014 になっていて、pip &gt;= 19.3 が必須です。pipが古いとソースパッケージにフォールバックされローカルでビルドされます。 https://t.co/wgPoBTRvPC」 / Twitter
ubuntu にsentencepiece をインストールするときつまづいた - Qiita
FDTDで電磁界解析 - Qiita

Twitter

その他

哲学的思慮

Ken McAlinnさんはTwitterを使っています 「特に昨今の再現性問題などを考えるにそういう哲学的思慮は大事だと思いますよ。つい最近もこういうディベートがありましたし、それを「宗教戦争」だって矮小化すると本質を捉えられずインパクト0の研究をすることになるのでは。いやもうそうだけど。 https://t.co/sD9fnKmF74」 / Twitter
Statisticians Debate Issues Central to Inference and Estimation | National Institute of Statistical Sciences
Ken McAlinnさんはTwitterを使っています 「インパクト0はクロムウェルの法に反してましたね。エプシロンに訂正します。」 / Twitter

DAG

Ken McAlinnさんはTwitterを使っています 「正直DAGが次のp値になりそうな感じがして危ういかなって思った。」 / Twitter
oosugi naoyaさんはTwitterを使っています 「今起きている革命、「因果革命」とは [statistics] on #Qiita https://t.co/erwQLLyA9t」 / Twitter
今起きている革命、「因果革命」とは - Qiita
Ken McAlinnさんはTwitterを使っています 「ざっと読んだ感じ「ベイジアンネットワークや統計的因果推論の考案者であるJudea Pearl」は事実誤認だし、「因果ダイアグラムと名付けた有向非循環グラフを導入することで調整すべきか否かを決定できるわかりやすい方法を提案しました」も結構ニュアンス違う。あとDAGで観測データと意思決定は無理。」 / Twitter
oosugi naoyaさんはTwitterを使っています 「@kenmcalinn ご指摘ありがとうございます!事実誤認とニュアンス違いの件は自分の方で再度勉強・調査できるので行いますが、「DAGで観測データと意思決定は無理」の意味を捉えきれなかったのでお手数ですが補足・解説いただけると助かります」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya DAGがうまくいくのはシステムが完全に特定できてる状況なんですが、一般的な観測データ、意思決定の場面ではできないですよね(もちろんどのくらいクローズドな状況かつ操作できるかにもよるんですが)。DAGは「便利な机上の空論」だと思ってるんですが、これは「仮定の可視化」に対して有用であっても」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya ごちゃごちゃした現実上の観測データとかビジネスにおける意思決定には向いてないです。簡単な例だとxyzと変数がある状況でDAGを指定しても現実ではabcと無限に変数があるしその指定したDAGが正しいとは限らないのでうまくいかない可能性があります。特に経済データだとそうですね。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya これとか参考になるかもしれません:https://t.co/YEwOuNYc5P」 / Twitter
1907.07271.pdf
arXiv abstractさんはTwitterを使っています 「@kenmcalinn @oosugi_naoya Check out the abstract! https://t.co/1PgWiToUKQ」 / Twitter
[1907.07271] Potential Outcome and Directed Acyclic Graph Approaches to Causality: Relevance for Empirical Practice in Economics
oosugi naoyaさんはTwitterを使っています 「@kenmcalinn なるほど!ギャップの正体がわかった気がします。私が暗黙的に自社のWebサービスの分析(自分の実務)にかなり引っ張られ、まさに「クローズドで操作しやすい状況」に認識が引きずられていました。共有された文献は目を通しきれていませんが(4章あたりですよね?)確かに経済データでは難しそう」 / Twitter
Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya ちなみにA/Bテストでも実は対象にネットワーク構造があるとうまくいかない時があって、同僚が研究してます(https://t.co/YCByyOgq3v)。もちろんこれもネットワーク構造がわかる強い仮定があるのですが笑。」 / Twitter
1705.05752.pdf
arXiv abstractさんはTwitterを使っています 「@kenmcalinn @oosugi_naoya Check out the abstract! https://t.co/v1JegxcxGu」 / Twitter
[1705.05752] Limitations of design-based causal inference and A/B testing under arbitrary and network interference
Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya DAGがうまくいくのはシステムが完全に特定できてる状況なんですが、一般的な観測データ、意思決定の場面ではできないですよね(もちろんどのくらいクローズドな状況かつ操作できるかにもよるんですが)。DAGは「便利な机上の空論」だと思ってるんですが、これは「仮定の可視化」に対して有用であっても」 / Twitter
Ken McAlinnさんはTwitterを使っています 「Pearlの書いたことの受け売りだと思うんだけど、統計/経済だとRubin流が主流で、それなのはやっぱりそれなりの理由があるんですよ。」 / Twitter
Ken McAlinnさんはTwitterを使っています 「前もやりとりあったけど、DAGをあくまで「仮定の可視化」と捉えるべきところを「因果関係が分かる方法」まで解釈すると今後DAGを指定さえすれば因果関係がわかるのでこれが因果ですっていう人が大量にでてきてものすごくめんどいことになりそう。」 / Twitter

因果関係

くまだ総研(久萬田巌)さんはTwitterを使っています 「因果推論の話が話題ですが、個人的には語感の問題か因果推論=統計的因果推論みたいな使われかたをちょくちょくしているのがあまりよろしくない気がしますね(日本語だけ?)例えばDAGなどで定義されてる因果関係は、日常的な用法や科学哲学で議論される因果関係よりかなり狭い定義という理解なので。」 / Twitter
くまだ総研(久萬田巌)さんはTwitterを使っています 「この辺りの因果概念に関しては松王先生の「科学哲学からのメッセージ」が非常に詳しいです」 / Twitter
くまだ総研(久萬田巌)さんはTwitterを使っています 「あとはいつものことながら、因果関係なるものにおいても、発見の文脈と正当化の文脈は違いますよ、ということかなと思います。」 / Twitter
くまだ総研(久萬田巌)さんはTwitterを使っています 「そもそもわれわれ人間は因果関係なるもののこれや!という明確かつ包括的な定義をまだ持っていないという点は知っておいて損はない気がします。」 / Twitter
くまだ総研(久萬田巌)さんはTwitterを使っています 「(メチャ良い本なので売れてほしい) 科学哲学からのメッセージ:因果・実在・価値をめぐる科学との接点 https://t.co/VPtjqMch3Z」 / Twitter
科学哲学からのメッセージ:因果・実在・価値をめぐる科学との接点 | 政浩, 松王 |本 | 通販 | Amazon
くまだ総研(久萬田巌)さんはTwitterを使っています 「あ、こちら誤解を招きかねない表現になってしまっていますが、恐らく話題の出所と思われるoosugiさんが書かれている元記事がそうという話ではなく、あくまで界隈での一般的な用法の話です。(記事の内容は知らないことばかりなので、大変ありがたいです。しっかり読んで勉強したいです)」 / Twitter
くまだ総研(久萬田巌)さんはTwitterを使っています 「(誤)ちょくちょくしているのが (正)ちょくちょく(界隈で)されているのが」 / Twitter
伊津野 英克さんはTwitterを使っています 「ランダムに生成した系列がたまたま因果関係があるように見えてしまうことが否定できない以上、プロセスを無視して機械的手続きだけで因果関係を確定することが無理なのは自明な気が。」 / Twitter

統計的因果推論

須山敦志 Suyama AtsushiさんはTwitterを使っています 「非常に参考になります。因果推論も仮定の明確化が超重要ですね。 https://t.co/nBwE2etUvL https://t.co/71buObKlVM」 / Twitter
統計的因果推論入門の講義資料を公開しました - Unboundedly
統計学における因果推論(ルービンの因果モデル) – 医療政策学×医療経済学
心理学における因果推論(キャンベル) – 医療政策学×医療経済学
伊津野 英克さんはTwitterを使っています 「結局、因果推論って、よくわかんないや。「重回帰分析で因果関係がわかる」と「ベイズ推定 or ベイズネットで因果関係がわかる」と「統計的因果推論で因果関係がわかる」の違いが何なのかよくわからん。グレンジャー因果が因果のサブセットしか扱っていないのはわかるけど。」 / Twitter
uncorrelatedさんはTwitterを使っています 「重回帰分析で因果効果が測定できる条件を考えて、統計的因果推論をその条件を満たした推定だと整理するとよいと思います。大久保 (2019)「因果推論の道具箱」が分かりやすかったです:https://t.co/cJkljIfa6E 矢印の向きを考える因果探索は、追いかけていないので分かりません('-' )\(--;)BAKI」 / Twitter
因果推論の道具箱
伊津野 英克さんはTwitterを使っています 「@uncorrelated まさにその資料を読みながらわからんなぁ、と思ってたのでw 因果推論が因果のサブセットを扱ってるとして、じゃあ従来の手法は何を扱ってるのかな、と。時間的前後関係が足りない?」 / Twitter
uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno 因果の向きをどれぐらい客観的(≒他人に説得的)に仮定できるかでしょう。RCTや自然実験だとx→yの因果は明確に仮定できますよね。PSMなどマッチングだと、マッチングによってy→xへの因果が無くなっていると考える事ができるので、x→yの因果しかないと仮定できます。TSL/IVであれば、」 / Twitter
uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno y→zにならないzを探すことで、y→xに邪魔されないように、z→x'→yと因果の向きを揃えます。他にもありますが、まぁ、それぞれ仮定があるので、説得できるかはケースバイケースですが、因果の向きを定めて考えて問題の無い推定モデルぐらいに捉えてよいと思います。」 / Twitter
伊津野 英克さんはTwitterを使っています 「@uncorrelated 因果関係の三原則というものがあるそうです。これが科哲的にどこまで正しいものかはわからないですが、2の共変性はどの方法も考慮してそうです。3の交絡と1の時間的前後関係をどう担保するかという違いなのかもですね。 https://t.co/gL4NHCjHeN」 / Twitter
因果関係を支える三つの基本的原則 - アイデアの散策
uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno xₜ₋₁→yₜの仮定を、予測を考える経済学だと許してもらえないときがありますが、それはさておき、重回帰分析一般だとy→xがあると数理的に推定量がおかしくなりますし、z→x; z→yでzが観測できない場合は単なる相関と言う事になります。」 / Twitter
uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno 因果の向きx→yを仮定できないときに、何とかx→yを仮定する方法/y→xの影響を制御する方法(e.g. SCM, DID)と言った方が良いかもです。」 / Twitter
伊津野 英克さんはTwitterを使っています 「因果推論、ようは今まで記述でしか表現できなかった因果性に関する仮定をシステマティックに表現し検証できるようにするするためのフレームワーク郡って感じ?」 / Twitter
伊津野 英克さんはTwitterを使っています 「どちらかと言うと実験計画のための手法なのかなぁ、と。」 / Twitter
伊津野 英克さんはTwitterを使っています 「現代哲学のキーポイント 因果性などを読んだ結論としては、科哲として因果性が何か結論は出ていないが因果推論は因果性のサブセットを扱っているから、その範囲では大丈夫、ということのように感じる。」 / Twitter
伊津野 英克さんはTwitterを使っています 「Pearl 流、Rubin 流因果推論のベースとなる介入主義は因果性とは何かという科哲的な興味の解明には全く役に立たないが、実用上問題のないレベルで因果性を表現できるようなので安心して利用できる。」 / Twitter
伊津野 英克さんはTwitterを使っています 「Pearl 流因果推論(DAG)が一番包括的だが、原因が出揃ろう必要がある。Rubin 流因果推論は適用できるパターンが限られるものの、これで因果性があることがわかれば、因果性があるとみなして良いようだ。」 / Twitter
伊津野 英克さんはTwitterを使っています 「ベイジアンネットワークは、Pearl流、Rubin流とは異なる確率上昇説に基づく理論だが、必ずしも因果関係を明らかにできず疑似相関の問題を解決できていないようだ。DAGと組み合わせて使うのがよさそうではある。」 / Twitter
伊津野 英克さんはTwitterを使っています 「DAG と書くと誤解を招くか。バックドア基準と書く方がよさそう。」 / Twitter
伊津野 英克さんはTwitterを使っています 「もしかして、ベイジアンネットワークと Pearl 流因果推論って同じものを指してる?」 / Twitter
伊津野 英克さんはTwitterを使っています 「科学哲学と統計学で概念が入れ子になってるからややこしい。」 / Twitter
伊津野 英克さんはTwitterを使っています 「結局、因果性を保証しているのはベイジアンネットワークじゃなくてバックドア基準なんだな。」 / Twitter
ミルの3条件(因果関係の存在を主張する根拠) | Dr.Clover’s Computer Clinic
因果推論とは何なのか - hidekatsu-izuno 日々の記録
グラフィカルモデルに基づく因果探索手法の調査 - Fire Engine
機械学習モデルの局所的な解釈に着目したシステムにおける異常の原因診断手法の構想 - Fire Engine
協力ゲーム理論のシャープレイ値に基づき機械学習モデルの予測を解釈するKernel SHAPの理論と実装のまとめ - Fire Engine
機械学習の予測を解釈するKernel SHAPの高速性と拡張性の向上を目指したライブラリを開発した - Fire Engine
時系列性を考慮した因果探索手法VAR-LiNGAMの紹介|Dentsu Digital Tech Blog|note
伊津野 英克さんはTwitterを使っています 「因果探索手法で経済モデルが出来上がると思いはもちろんしないんだけど、理論モデルと現実のデータから作られたモデルでどこが同じでどこが違うのかは見てみたい。」 / Twitter
伊津野 英克さんはTwitterを使っています 「説明、予測、因果効果、という区分けはよくわからないなぁ。説明と因果効果は目的は同じで適用できる範囲の差しかないように思える。記述に至ってはさっぱりわからん。」 / Twitter
伊津野 英克さんはTwitterを使っています 「これ読む限り、対比するような話じゃなく見えるけどなぁ。 https://t.co/lWzvbrmdOw」 / Twitter
「記述」と「説明」との差 : 最前線に立ち続ける覚悟はあるか

茂木 健一郎

Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「たしかにダメダメな印象(笑) ニューラルネット基礎の「逆誤差伝播」の回路すら脳に見つからない状態だったはず。 (また最強の碁や将棋は、棋士の棋譜を使わず、自己対戦のみで最強に) https://t.co/jNzNTwRNAl」 / Twitter
タクラミックスさんはTwitterを使っています: 「茂木健一郎氏が人工知能や深層学習を十分に理解しているとは疑わしい記事。確かにある程度まで人工知能による英語翻訳は飛躍的に進んだが、それでも明らかに人間未満だ。決定的に欠けている部分を軽視して英語学習に安易に応用するのは疑問> 人工知能から学ぶ「英語学習法」https://t.co/EXvv2b6NqW」 / Twitter
人工知能から学ぶ「英語学習法」 | PRESIDENT Online(プレジデントオンライン)
タクラミックスさんはTwitterを使っています: 「…最も重大な疑問点はこの部分。 「人工知能が実行している学習法は、すべて、人間の脳がやっていることである。」 と茂木氏は断じているが、私が知る限り、人工知能は人間の脳がやっているであろうことを真似てはいるが、脳の仕組みを確実に解明した上での事ではない状態だった筈。私の認識不足か?」 / Twitter
タクラミックスさんはTwitterを使っています: 「…私の懸念は、深層学習が機械翻訳の精度を向上させたと言っても、必要な学習量や学習に必要な演算量は人間の能力を超える膨大なもので、同じ事を人間に適用するのは無理があるという事。人間にとって効率の良い学習法をこそ採用すべきなのに人工知能ブームに乗って世間を惑わせるだけにならないか?」 / Twitter
タクラミックスさんはTwitterを使っています: 「…「人工知能は人間の脳では出来ない事をやっている」というのが私の認識だ。人間の脳がやっている通りの事をしなくても、結果は出せるというのが、今流行っている人工知能界隈のやっている事だと理解している。よって、人間が学習する際に、深層学習と同じ手法を用いるのは無理があると私は思う。」 / Twitter
タクラミックスさんはTwitterを使っています: 「…反復学習の効果については人工知能以前から人間の学習成果として確認されている。茂木氏が人工知能分野の深層学習に中途半端に言及した上で 「人間が人工知能に学ぶ日が来るとは思わなかったが、時代は変わった。」 とお書きになるというのは、脳科学分野の著名人の一人として、いかがなものかと思う」 / Twitter

histric-1

Kazuho OkuさんはTwitterを使っています 「コロナ関係の計算してて思うのは、統計使ったソフトウェアのチューニングはPDCAサイクルをさくさく回せるので、統計の扱い方の訓練に向いてるんじゃないかなぁってこと。感染症の予測と対策とか練習も失敗もできないし」 / Twitter
ゆきさんはTwitterを使っています: 「Network-Based Website Fingerprinting https://t.co/r1vAw2seKs 機械学習を用いて、暗号化されたトラフィックから閲覧ページを推測する系の話し流行ってるよね。(あまり論文は読まないが、draftになると読む系男子orz) #yuki_id」 / Twitter
draft-wood-pearg-website-fingerprinting-00 - Network-Based Website Fingerprinting
Daisuke OkanoharaさんはTwitterを使っています: 「NNは斉次函数(ReLUを使った時など)であり指数損失(クロスエントロピー損失など)を使って学習する場合、勾配降下法による学習は正規化マージン最大化に対応し、その収束レートも示せる。はじめて現実的な条件で非線形多層NNで最大マージン化がされていることが証明された https://t.co/GDSd1fc3uW」 / Twitter
Gradient Descent Maximizes the Margin of Homogeneous Neural Networks | OpenReview
FadisさんはTwitterを使っています: 「ニューラルネットワークの誤差逆伝播で重みに対して上がってくる勾配が小さいと半精度浮動小数で計算した時に勾配が消える問題に対して、誤差をn倍して逆伝播して、重みを修正する前に1/nすれば良い(ReLUとか使ってるとこれでいけてしまう)とかやりだすNVIDIAさんあたまいい」 / Twitter
FadisさんはTwitterを使っています: 「半精度だとTensorCoreで爆速で計算できるからNVIDIAはディープラーニングに半精度を使って欲しいけど、ユーザは溢れを恐れて半精度に慎重になるから、スケールすれば半精度でも大丈夫そうな所を自動で見つけて半精度に置き換え、スケールを動的に求めながら学習するような最適化 AMP が作られたらしい」 / Twitter
Mitsuo Yoshida; AI botさんはTwitterを使っています: 「深層学習を使った推薦手法が増えてきてるけど、ちゃんと比較すると古典的な手法に負けてるという話。再現性の問題や不適切な比較実験が多いことを指摘。 / Recsys 2019 ベストペーパーを読んだメモ https://t.co/B5e8FgENof #Qiita」 / Twitter
RecSys 2019 ベストペーパーを読んだメモ - Qiita
Agata NaomichiさんはTwitterを使っています: 「text-to-text transfer transformer めっちゃ良い。夢が広がるしアイディアも広がる。BART も似たような話だけど T5 は論文自体がめちゃくちゃ長い分、比較とか考察に富んでてかなり読み応えある。 https://t.co/9qCkluBHyG」 / Twitter
[1910.10683] Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
みぽさんはTwitterを使っています 「中央値と平均値の説明、「村にビルゲイツが引っ越してきたときの、その村の世帯年収の中央値と平均値」という感じの説明が好き」 / Twitter
Miura HidekiさんはTwitterを使っています 「イメージしやすい」 / Twitter
FadisさんはTwitterを使っています: 「ニューラルネットワークの学習は「なんでも関数」と「非線形最適化」の組み合わせなわけで、ニューラルネットワークの学習を効率よく行う工夫の何割かは非線形最適化問題を効率よく解く手法と見做す事ができて、今ニューラルネットワークと関係ない所で「AdaBoundすげぇ!」ってなってる」 / Twitter
AdaBound - Google 検索
えるエルさんはTwitterを使っています 「お馴染みパターン認識と機械学習(PRML)のアルゴリズムをPythonで実装したリポジトリ 作者は日本の方だと思われ,実装も結構前からあったようですが,今になって海外の研究者に発見されて絶賛されている模様 実際かなりキレイな実装で,PRMLを読むときはかなり参考になりそう https://t.co/Ul9QklyYKk」 / Twitter
ctgk/PRML: PRML algorithms implemented in Python
Yasunori OhtoさんはTwitterを使っています 「証明に穴があったので、全面リライトしました。広く拡散、読んで頂けると嬉しいです。 https://t.co/wMxkMZQoJv」 / Twitter
(PDF) Extract maximum clique using eigenvalue relation
piqcyさんはTwitterを使っています 「研究発表された検索アルゴリズムを実際使える&amp;検証できるようにするプロジェクト。Luceneで実装されている。検証のため様々なデータセットによるテストができるようになっており、新型コロナ関係論文もサポートされている。 https://t.co/jIgeRioC6o」 / Twitter
castorini/anserini: A Lucene toolkit for replicable information retrieval research
Kazuho OkuさんはTwitterを使っています 「3/23のデータ入れた。(7日移動平均を使っていることもあり)大きな変化は見えない。 東京は、なんらかの対策強化が近いうちにあると思う(参考 https://t.co/YF1BCrHRw4) https://t.co/T2tT3sSSRV」 / Twitter
Kazuho OkuさんはTwitterを使っています 「そういえば株価チャートの移動平均、25日や75日の理論的根拠はなんなんだろう。件のグラフで7日移動平均使ってるのは、累計の対数グラフよりも感度が良く、かつ、平日休日の差に起因するもの含めノイズを消せるからなんだけど」 / Twitter
Kazuho OkuさんはTwitterを使っています 「移動平均とかを使うアルゴリズムの標準化をみていると、指標の理論的根拠にうるさくなってしまう問題」 / Twitter

histric-2

山本 和英(自然言語処理)さんはTwitterを使っています 「「自然言語が本来持ち合わせる量子的特性を利用して、文法例文を量子回路に変換しました。その上で得られたプログラムを量子コンピュータに実装し、質問応答をさせることに成功しました」「長年の夢であった「意味を理解」し「文法に基づいた」自然言語処理が実現しました」 https://t.co/kmeyXg1ILi」 / Twitter
英国ケンブリッジ・クオンタム・コンピューティング、世界で初めて量子自然言語処理における実証実験を実施 - CNET Japan
Quantum Natural Language Processing - Cambridge Quantum Computing - Medium
An introduction to t|ket> - YouTube
ミライ小町【公式】さんはTwitterを使っています 「本日バンダイナムコ研究所が公開したDistilBERTの日本語事前学習モデルは、、、 BERTモデルと比べてサイズが約40%小さいし! 推論が約50%も速くって! 精度は分類タスクで約90%なんですよ! すごーい!✨ https://t.co/hsa6Z16CFI」 / Twitter
BandaiNamcoResearchInc/DistilBERT-base-jp
Yuta.HさんはTwitterを使っています 「BigQuery MLで作成したモデルのTensorflow Saved Model 形式での取り出しが可能になりました!これによりBigQuery MLでPredictさせる機械学習モデルの生成だけではなくBigQuery ML自体がかんたんなモデルのフルマネージド分散学習環境として使えるようになりました。 https://t.co/zAnPTaumK0 #gcpja」 / Twitter
Exporting models  |  BigQuery ML  |  Google Cloud
Tomoyuki MorimaeさんはTwitterを使っています 「量子計算理論:オンライン教材 自宅学習をしている学生の方用に作ってみました。今後付け足していく予定です。 https://t.co/mrYXcvlTyc」 / Twitter
lectures.pdf
HELLO CYBERNETICSさんはTwitterを使っています 「統計的だが規則的な振る舞いがあるから学習できるのであって、本当にランダムなノイズを帳消しにできるわけではないのだが……。バラつきを機械学習で何とかしたい、みたいなの根本的におかしい。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「もちろん、(例えば囲碁など)素人目にはランダムに見えているものが、実際には何らかの規則に基づいているはずだ!しかし、それを解き明かすのは困難だ。という話は全然OK。 ここで言っているのはS/N比が極端に悪いものを機械学習に突っ込んでも何も生まれませんということ。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「データ収集におけるS/N比を良くする、特徴量を掴む、ということをしてみると、そこには意外とシンプルな規則があり、線形モデルないしルールベースでうまく行くということがあったりする。 予測できればOKはそうなんだけど、そういう土俵になってるかを調べるのはとても大切。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「囲碁でいうと、石の色を間違えてましたとか、石の置かれてる場所が違いましたとか、石を間違えて違うところに置いちゃます とかいうのが不規則に生ずる環境で、強化学習して絶対に見間違いせず、打ち手を誤らないようにします。 なんて無茶なんです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「そもそもベイズの「信用区間」なるものを全く使わないのでよく知らなかったのですが、下記を見る限りでは明らかに信頼区間の考え方に寄せられてわけわかんない説明になっちゃってますね。 信頼区間(confidence interval)と信用区間(credible interval)の違い https://t.co/C0KTtsPhmR」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「まともに勉強していないので理解が怪しいですが、統計はもともとデータをある仮定の元で要約することによって人間が判断を行いやすくするというのが1つの目的だと思います。AIの時代では、計算機が高次元のデータを整然と処理し判断を行うので、要約をする必要がないケースが出てくる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「件のベイズの「信用区間」が最たる例で、確かに人間にとっては区間を表示するのが直感的に解釈しやすいかもしれない。機械だと話は違う。むしろ、奇妙に要約された「区間」ではなく、大量のMCMCのサンプルなどを使った期待値計算やそれによる行動選択において人間を凌駕できる可能性の広がりがある。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「まとめると次のように予想します。 ・モデリング→しばらくは人がやるし、やりやすくなるようにツールも進化する ・推論計算→MCMC以外でも数理的に特性の良いアルゴリズムが今後も登場する(はず) ・事後分布の活用→人間だけではなく計算機が利用するケースが増える」 / Twitter
Kazunori SatoさんはTwitterを使っています 「やっぱpredictionって言い方が期待値上げすぎと思う。inferenceくらいでいい。既知の事象からわかる範囲のことしか出てこない。汎化って、未来を予測できる性能ではなくて、既知の事象からいかに本質的なパターンを抽出できるか、という性能に過ぎない(本質ってなんじゃいって話になるけど)」 / Twitter
Kazunori SatoさんはTwitterを使っています 「MLは高次元から低次元のパターン(多様体?)を抽出するのは得意だけど、ドメイン知識や常識はない。人間はその逆。この両者をいかに合成するかがカギ。CNN(2D畳み込み)の成功やベイズ等の統計の強みも人の知恵の外挿と思うし、DNNのデータ拡張は非効率な外挿。どれも未来予測ではなくITの開発手法。」 / Twitter
ともい(Tomoi,S.)さんはTwitterを使っています 「今の時代であれば、文章を構成する言葉を数語入れればドロップダウンできる文章候補ができてて、ショートカットキーで選択すれば終わりとか、エージェントの域に来ててもいい気がしますが、作文ソフトを除き、そういう指向性のものってIMには全く降りてきてないような…。 (あればそれを扱ってみたい)」 / Twitter
ともい(Tomoi,S.)さんはTwitterを使っています 「特に、入力した情報より多いものを返す系が発達していないなと、自分の見た限りでは感じています。 タイプの正確性以前に、個人的にはキータイプの速度を超えることがブレイクスルーの一歩ではないかと感じてまして…。」 / Twitter
Isao TakaesuさんはTwitterを使っています 「NISTが策定中の「機械学習セキュリティ」に関するベストプラクティスのドラフト版。攻撃手法・防御手法の分類や用語を整理している段階。現バージョンの全文はPDFで確認することができる。 #aisec #jpsecai https://t.co/OXyKyin81x」 / Twitter
Artificial Intelligence: Adversarial Machine Learning | NCCoE
Agata NaomichiさんはTwitterを使っています 「強化学習やってると、gradient必要な計算とそうでない計算が混ざってよくわからなくなってくるんだけど、spinningup の実装読むと gradient いらない時はそもそも nd.array を返すような interface 設計になっていてとてもわかりやすい」 / Twitter
清 史弘さんはTwitterを使っています 「【清史弘からの提案 7 の説明案】  私が用意しておいたものをここにおきます。これを参考に(100%使ってもよいです)、この置換にたどり着くための話の動画を教育系のYouTuber のどなたかが作ってくれると嬉しいです。2枚になります。 #清史弘からの提案 https://t.co/VzILwv12gG」 / Twitter

Shinji KonoさんはTwitterを使っています 「統計に必要な数学はいろいろあるが、可視化できないなら、その結果に意味はない」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「多田明功さん「実務における数理最適化技術と実践」。2019年度後半より数理システム主催のワークショップと同タイトル。実行不可能な場合にも何かしらの答えを返して欲しいが、単純に緩和問題の解を返すだけではどこに違反が出るか分からず対処しにくいので、後調整しやすい特定の制約に違反をしわ寄せ」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「小熊祐司さん「工場ピーク電力抑制を目的とした生産設備運転計画最適化 ―最大値最小化とメタヒューリスティクス」。ピーク電力に応じて基本料金が決まるのでピーク電力最小化。最大値最小化の形で目的関数値に寄与しない箇所の自由度から同じ目的関数値をとる多数の解が存在し分枝限定法には不向き。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「一方で実行解は多数存在するのでメタヒューリスティクス向き。近傍定義および目的関数設計を工夫。ピーク電力をそのまま目的関数とすると、ピーク発生時間帯のジョブの移動のみが目的関数への感度を持ち、全体的にジョブを調整して平準化するという自然な改善がされづらいので、平準化の誘導項を追加。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「奥田裕之さん「自動運転における実時間最適化とモデル予測制御」。衝突回避制約は非凸になるのか(確かに言われてみれば)。相手の”迷い”を低減する合流制御の話、モード切替を伴う予測モデルを用いるMPCの話、制約充足型自動運転の話など面白かった。」 / Twitter
さっじーさんはTwitterを使っています 「富士通研究所のAI応用例だけど、災害避難経路最適化とか待機児童最適割当とか色々あって面白いなー ビックデータで学習させてブラックボックス化するんじゃなくて、数理モデルを基盤とした学習をすることで、なんでこの答えを出したのかを説明ができるAIができたりするってのはすごい」 / Twitter
全卓樹さんはTwitterを使っています 「物理学者から見た、ひとつの「世界の4分表」をどうぞ。ストロガッツ大先生のnonlinear dynamics and chaos 2014から。 通常は物理っていうと左上だけ、せいぜい右上まで含んだものをイメージするじゃないですか。でも実際はずっと広がってるし、最前線は他分野に浸食してるよって。 https://t.co/JdAeXiljS7」 / Twitter
UmeponさんはTwitterを使っています 「もう少し手が空いたら,capacitated vehicle routing problem(CVRP)や,vehicle routing problem with time-window(VRPTW)などの典型的な配送計画問題が整数計画ソルバーでどれぐらい解けるかを色々と試したい.」 / Twitter
Shinji KonoさんはTwitterを使っています 「統計って、少し勉強したけど散布図以上のことがわかる数学マジックは存在しないってのが自分の理解。因子分析は面白いが話題には登らないね。」 / Twitter
Shinji KonoさんはTwitterを使っています 「統計の勉強であれだったのは分母のnとn+1の差が重要とか言われたこと。いや、それ統計の分母だろ? もちろん、理論の整合性に必要なのはわかるけどさ。」 / Twitter
Masataka EguchiさんはTwitterを使っています 「PRMLの序論をよく見たら、頻度主義とベイズ主義は確率解釈が異なり、ベイズの確率解釈は信念と密接な関わりがあり、さらに意思決定理論と組み合わせることで、パターン認識で直面する不確実性を伴う状況下での最適な意思決定を可能にするといったことが書いてありますね。」 / Twitter
田中統🇬🇧公認データサイエンティストさんはTwitterを使っています 「推定値の大切な性質 1) 一致性: データが増えた時、推定値は真の値に近くか 2) 不偏性: 推定値の期待値は真の値と同じか 3) 頑健性: ぶれにくい推定値か • 一致性は出来れば満たして欲しい性質です。 • 例えば、「平均値」は外れ値に弱いため「中央値」と比べて頑健性が低い指標です。」 / Twitter
田中統🇬🇧公認データサイエンティストさんはTwitterを使っています 「機械学習の Bias - Variance トレードオフは、不偏性と頑健性の天秤です。 例えばRidge回帰は、チューニングパラメータλが高くなるほど不偏性が下がり、代わりに 頑健性 が上がります。頑健性が低いモデルは訓練データに左右されやすく、つまり過学習しやすいのです。」 / Twitter
Tsumoto🦧さんはTwitterを使っています 「今年読んだ論文の中で最も衝撃だったのが 「皮膚のニューロンが信号伝達だけでなく大脳皮質同様の計算処理を行っている」 というこの論文 https://t.co/XNnzihVQY0 信号伝達しかしないと思われていた指先の末梢ニューロンが, 実は接触したものの幾何学的情報を処理していたことが明らかになったらしい https://t.co/s72SgODTrM」 / Twitter
Edge-orientation processing in first-order tactile neurons | Nature Neuroscience
ノーン@レポ7さんはTwitterを使っています 「群の定義、これを数式として覚えようとすると頭のメモリを超えてしまうので、「結合的な二項演算で単位元と逆元」とコンパクトに覚えたら忘れなくなった。」 / Twitter
Kohta IshikawaさんはTwitterを使っています 「特異学習理論が統計力学そのものかどうか判断できるほどに統計力学の方を知らないんだけど、統計力学の方で確率密度関数としての特異性が効いてくるケースってどんなのなんだろう。自発的対称性の破れとか?」 / Twitter
片桐 孝洋さんはTwitterを使っています 「で何度も書いていますが、個人的な見解は、今回の人工知能ブームも数年で終了する、です。 その後は、情報学基礎(ハードウェア、プログラミング)、数学(線形代数、統計・確率など)の能力がある人材に人気が集中するのでは、というのが個人的見解です。」 / Twitter
片桐 孝洋さんはTwitterを使っています 「機械学習ツール使えても、使っているアルゴリズムの収束性とか、パラメタ寄与率解析とか、できないと、製品の品質保証ができないので、製品が作れない。ということが、今までも繰り返してきている歴史です。」 / Twitter
TarotanさんはTwitterを使っています 「(再告知) 信頼区間に対するFisher-Neymanの議論で,信頼係数を「係数」と呼ぶか「確率」と呼ぶかという議論もありましたが,以前の私の呟きでは誤読かつ見落としていました. 以下のブログでその呟きを訂正し,Neyman(1934)の該当部分を抜き出しました. https://t.co/lBDYbB60dG」 / Twitter
TwitterでのNeyman(1934)に対する事実誤認の訂正 - Tarotanのブログ

users

@sammy_suyama

2020

2020-11-24

須山敦志 Suyama AtsushiさんはTwitterを使っています 「ほぼすべてのMLソリューションにおいて、限定された実験環境・データセット・テストベッドにおけるごまかしの「成果」から、いかに実運用に持っていけるかが最大の壁となる場合が多いので、このあたりの問題意識はしっかりとシェアしていきたい。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「このような限定的な成果を元の目標のサブゴールであると誤認してしまっているケースが多い。これはサブゴールではなく、単にオーバーフィット。MLに関わる人の多くが交差検証を理解しているにも関わらず、より広いマイルストンでのオーバーフィットに無頓着になってしまいがちなのが驚くべきところ。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「その実証実験で得られたやり方・モデルは、コスト面で横展開可能か?」 その質問にちょっと真摯に向き合うだけでこの問題はかなり回避される。(と同時に、無計画なPoCで短期に稼ぐだけのビジネスモデルは駆逐される)」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「たいてい言い訳として登場しがちなのが「もっとデータが集まれば将来的には解決する」と言って逃げるパターン。これは99%嘘なので注意です。本運用時のデータ収集に実証実験時と同じくらいコストがかかるようでは全くお話になりません。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「以前TFUGで「MLのモデリングは自動化できるか?」という話をしたのを思い出した。結論としては「自動化できるくらい予測の目標が明確であり、妥当な評価を行うためのデータ量が豊富であること」でした。正しいと思いますが、この前提条件、正直モデリング作業自体よりもはるかに満たすのが難しいです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ブラックボックスな手法は使うのは容易ですが、それだけでは実用に耐える評価を下すまでの道のりが果てしなく遠くなる場合が多い気がします。」 / Twitter

2020-12-02

須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習が予測する理屈は人間が理解できなくてもOK」っていうのは分からんでもない気がしますが、「理解」という事柄についてもう少し掘り下げる必要があると思います。続く」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「例えばAlpha Goの提案する手は一見人間には理解不能かもしれませんが、読み筋を示して行けば(途方もない苦労を要するものの)一応理解はできるはず。要は、要素を分解すれば最終的に人間が納得できる可能性があるのであれば、それは「理解できる」に入るんじゃないかと思います。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「人間が処理できないほど、1.考慮すべき項目が多数、2.探索すべき組み合わせが多数、といった場合には機械学習(というか」計算機)のアドバンテージが出るというだけの話です。これだけのことで、単なる技術をわざわざ「超人間的な知性の神秘」みたいな議論には進めない方が良いですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「深層学習はパラメータ数が多く暗記できるキャパが大きいので、「深層学習が一番うまくいった」という実験結果は、まず課題設定の失敗(leakageなど)を疑った方が良いです(経験上、9割以上はこれ)。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「統計的予測に素養のない方達が、すぐに深層学習なり機械学習に飛びついてしまう昨今ですので、この辺りは十分にケアすべきです。解決は簡単です。あなたの作った手法が、本運用と同じようにデータが入ってくる状況で要求性能を発揮しますか?という問いに答えられるような実験設定をすることです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「面倒臭がっているケースが多いと思われます。元データの散布図を見れば済む話を、わざわざ「機械学習の解釈性」なる技術でモデルの入出力の挙動を確認するなどは典型例ですね。」 / Twitter
Masa YamamotoさんはTwitterを使っています 「本当のところで、どうしてこうなるのかわからない、と言うケースは少ない気がしますね。 検証が面倒だからやらないのか、そもそも適当に問題を扱っているか。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には「人工知能が人間の能力を越えた」みたいな文言は、くだらない週刊紙の表紙レベルに留めておくべきと思います。データが大量に保存でき、人間より早く計算できると言う時点で、計算機は人間を十分に上回っているし、現代の人工知能もその延長線上に過ぎません。」 / Twitter

2020-12-10

須山敦志 Suyama AtsushiさんはTwitterを使っています 「ですね。マルチタスクや深層学習に限らず、複雑なlossの設計は人間には無理です。」 / Twitter
Yuki Arase (荒瀬 由紀)さんはTwitterを使っています 「深層学習にマルチタスクさせると的確にタスクやロス関数設計の穴をついてくる(簡単なタスクのロスを下げ続けるマシーンと化す)のを見ると、「常識に囚われるな!問題は単純なのさ!」とか言って迷路の外側通ってゴールする方法をドヤってくる人みたいで味わい深い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「僕もさんざん(深層学習に限らず)lossの設計によって課題を解こうと四苦八苦した経験が過去にありますが、結論としては、やろうとしていることがちょっとでも複雑になってくると簡単に限界を迎えて黒魔術の世界に入ります。 確率モデルの設計の方がずーっと楽。」 / Twitter

2020-12-24

須山敦志 Suyama AtsushiさんはTwitterを使っています 「確かにLASSO(L1正則化)は使いにくいですね。データ表現としてのスパース性と、どの次元が説明しやすいか?という推定は分けて考えるべきなんじゃないかと思いますね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計だと、うまくモデルを設計すれば「データを表現するために少数の次元を使用すること」と「どの次元がよく説明できるか」というのを両立できます。言ってみれば前者はsparseで後者はdense。複数の次元間で表現力に変わり映えがないのであれば、説明のしやすさも同じくらいに推定されます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「LASSOは結果の見た目もスッキリしていて、特に予測精度だけ気になっている場合は検討候補に入れても良いんですけど、もう1歩踏み込んで結果を説明したり手法を改善したりしたいときに「あれれ」となってしまいますね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ですね、説明には絶対使っちゃダメです。昨日と言ってることが違うじゃねーか、ってブチ切れられます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズモデリングは、モデル設計の柔軟性や少量データ・低品質データの対処に強い分、技術的課題点をすべて計算量の課題にしわ寄せさせる傾向があります(はるか昔からそう)。逆に言えば、ハードや計算アルゴリズムの進化が、そのままベイズの応用領域の拡大に直結するという見通しが立てられます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「MCMCの登場によって取り扱えるモデルの幅がどかっと増えた。最近は並列計算によってまたちょこっと増えた。量子コンピュータが活用できることになったら次はえらいことになりそう。」 / Twitter

2020-12-28

須山敦志 Suyama AtsushiさんはTwitterを使っています 「コインやサイコロの例から確率の概念を学ぼうとすると、「コインは1/2!」「サイコロは1/6!」のように“絶対的に正しい”確率が存在するかのように錯覚するんですよね。すべては数理的に簡略化するための仮定でしかないのに。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「こういう仮定を置くときは、もっと申し訳なさそうに述べるべきですね。「本当は物理シミュレーションとかいろんな人類の叡智を駆使すれば、もっと正確にコインの出目を予測できる可能性もあるのですが、そこまでの知識・技術を持ち合わせていないので、ここは仮に1/2とし話を進めさせていただきます」」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「前にも言いましたけど、こういう「サボり」を入れても「とりあえず議論を前に進められる」点が確率の良いところ。ほかに複雑な要因が絡む統計解析をするときは、コインの出目1つにとらわれ過ぎない柔軟さが大事な場合もあります。1/2なのか49/100なのかは重要でない場合が多い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習の解釈性に関して、僕個人としてはかなりネガティブな意見を持っています。「この手法を被せれば結果が解釈できるようになります」みたいなブラックボックス&お墨付き系の手法は、簡単で広まりやすい上に誤解ばかり招くので、新たなcrisisを起こす可能性が高い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「振り返ると、僕の「目的さえ達成すればどんな方法を使ってもOK」という今までのスタンスもちょっと反省しなきゃいけない気がしています。なぜなら、多くの人は自身の目的すら正しく認識していないから。「目的を達成するためのrequirementをしっかり整理せよ、手法はなんでも良い」の方が近い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「もちろん機械学習の解釈性が低いというのは、(これ自体非常に曖昧ではあるものの)課題意識としては正しいと思う。しかし、それを解決するためのアプローチや結果として起こりうる社会へのoutcomeに関しても気を配るべきなのでは。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データサイエンスの仕事を続けていくのはそんなに複雑な話じゃなくて、①自らの解析スタイルに疑いを持ち常に崩していくこと、②自らの仕事の自動化を検討すること、の2点を頭に入れていれば大丈夫だと思います。難しくない、とは言っていません。」 / Twitter

2020-12-29

須山敦志 Suyama AtsushiさんはTwitterを使っています 「自分の「ベイズ深層学習」ですが、別に深層学習をベイズモデルとして構築し直してパワーアップうぇーいする話じゃなくて、深層学習の経験的にうまくいってるとされている謎テクニックを条件付き確率の考え方でスッキリ整理するよ、の方が近いです。 https://t.co/eReM4hHMJZ」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ただ、これで深層学習の応用上&研究上の諸々の問題が解決するわけでもないです。まあ、新しく登場する色んなテクニックに惑わされたりする機会は減るだろうし、既存手法を合理的にカスタマイズするヒントとかは得られるかもしれない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「問題設定が誤っているためドツボにハマるという話、AI界隈本当に多い。 心を知るための人工知能: 認知科学としての記号創発ロボティクス https://t.co/k2qwwpcklq https://t.co/wSMglertwr」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「生成モデルあるいは潜在変数モデルに慣れ親しんでいる人にとっては自然な考え方だし、現にそういった創発現象が意図して起こせることも、それを使って工学的な問題解決ができることも良く知っている。ただ、人間と同じ挙動を再現するモデル設計は極端に難しい。」 / Twitter

histric-1

須山敦志 Suyama AtsushiさんはTwitterを使っています 「カグルなどもほとんどは教師ありを使うような課題だと思うのですが、要となる前処理・特徴量抽出はほとんどが教師なし。利用頻度は教師あり/なしで8対2くらいかもしれないですが、重要度はそのまま逆転しますね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「教師なしモデルを使いこなすor設計できる人が機械学習を制する。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「もう1歩進むと、 実践的な統計モデリングに限定して言えば、教師なし/教師ありといった区別はしない方が応用の幅が広いことは自著でも簡単に説明しています。 https://t.co/5W7PVnk9qU」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「うーむ、なぜでしょう。「xとyのペアを与えれば機械が勝手に学習して予測できるようになる」という噂が流布されているからでしょうか?」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習は教師ありと教師なしに分類される」という入門書籍の定番の1行目の文句を信じ切って進んでしまうと、多くの人が機械学習の膨大な応用範囲と一貫した手法の理解を見過ごしてしまうことになる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「Juliaを使うとガウス過程回帰が実質10行程度で実験できる。 https://t.co/wXVwwL9KwB」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ハイパーパラメータを調整したければForwardDiff.jlなどを使えば追加数行でできると思います。 https://t.co/68N1y40M1g」 / Twitter
JuliaDiff/ForwardDiff.jl: Forward Mode Automatic Differentiation for Julia
須山敦志 Suyama AtsushiさんはTwitterを使っています 「結果の可視化以外では特別なライブラリは一切使用していません。基本的に線形代数の計算式を並べるだけで実装できる。ブロードキャストをうまく使うことがポイントですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「実装したい人へのオススメは、適当に「Gaussian process kernel」とでも検索して、9行目・10行目を別のカーネルに置き換えて試してみることです。予測結果が色々変わります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「高度な統計解析をするためには確率モデルによってデータシミュレータを作る必要があります。ただしシミュレータはたいてい複雑なので事後分布を計算するのが困難。さらに事後分布を近似するヒントとなる尤度関数(モデルの一部)も計算できないケースもあります。一方で、」 / Twitter
Daisuke OkanoharaさんはTwitterを使っています 「多くの科学領域でシミュレーションが作られてきたが、尤度が計算できず、観測からの推論が困難で非効率なABCしか使えなかった。近年のML/DLの発展で高次元でも尤度や事後確率分布の代理関数を推定でき、微分可能なシミュレータを使って高度な推論ができるようになったhttps://t.co/BGvvBV7rjE」 / Twitter
The frontier of simulation-based inference | PNAS
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ABC(近似ベイズ計算)と呼ばれる技術も古くからあり、尤度が全く計算できないような場合でも(モデルが比較的小さければ)事後分布が推定できます。ただし高次元のディープなモデルなどには適用が難しい。もう少し近年では、」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ディープなモデル含む複雑なシミュレータに関しても密度比推定を利用することによって尤度計算ができなくても計算を進めるやり方があります。ほぼ同様のアイデアはみんな大好きGANにも使われています。変分推論法との関係性などはlikelihood-free VIとして整理されています。 https://t.co/Gq52TxqrHf」 / Twitter
[1702.08896] Hierarchical Implicit Models and Likelihood-Free Variational Inference
Daisuke OkanoharaさんはTwitterを使っています 「問題を解くために使ってはいけない別の情報を使って”ずる”をするショートカット学習は動物でもみられ、現在のML/DLでも広くみられる。これによりMLは違う方向に汎化し、学習分布外(o.o.d)に外挿できない。実験結果の詳細な分析、o.o.d汎化のテスト実験が必要である。https://t.co/OIKtfOY61G」 / Twitter
[2004.07780] Shortcut Learning in Deep Neural Networks
須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習や深層学習が「ズル」して学習データセットで良い成績を出すという話は結構根深いです。例えば画像中の猫・犬を分類するタスクで、DNNで誤って犬と判定された猫は芝生の上にいたり。学習データ中では屋外の芝生にいるのは犬の方が圧倒的に多かったということなんでしょう。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「同じことは実は人間でも起こっています。人種差別なんかがそう。対象となる人自体の本質を見ずに、表面的な特性だけで判断をする。こうすることによって人類は予測の「省力化」を行っています。表面的な相関や過去の事例だけで物事を判断すると未来(=学習に使っていないデータ)で大間違いを起こす。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「面接などで候補者の技術力を知りたければXGBoostの使い方などどーーーでもいい話はせずに,教師なしの手法についてどれだけ語れるかにフォーカスするとよいです.」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データを格子状に並べた瞬間に「画像だッ!」ってなるのはいかがなものか」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「取るべき解析プロセスは、見かけ上のデータフォーマットや計測手段(センサー種類とか)などではほぼ決まりません。対象データの背後にある構造やデータ量、解析目的に応じて決まります。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には 実問題 = 現状と理想にギャップがあり頑張っているんだけどどうにもならなくマジで困っている人たちがいる問題」 / Twitter

histric-2

須山敦志 Suyama AtsushiさんはTwitterを使っています 「ガチで機械学習の研究をやっている人であれば、多重共線性みたいな概念にいちいち名前がついていることに驚くのではないかと思いますね。」 / Twitter
干物男!かとう茶んさんはTwitterを使っています 「ML系だとOLS(最小二乗法にパラメータ識別の仮定が入っているやつ)をちゃんと習わずに来る人が大量にいて(というかほとんど),そういう人たちは最初からカーネル入れて正則化かけてたりするので,やや理論っぽいことをやろうとしている人でも多重共線性とか知らずに生きてたりします.」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「あー、確かにこれはありますね。計算アルゴリズムが幾何的な情報をうまく扱えていない。」 / Twitter
📊🛠📝 (𝚖𝚊𝚕𝚕𝚊𝚛ĝ𝚎 𝚊𝚙𝚕𝚒𝚔𝚎𝚋𝚕𝚊)さんはTwitterを使っています 「回帰なんかをStanで実際に推定しようとすると、分散揃える謎処理した方がかなり速くなるんですよね。 NUTSのパラメータ調整が入るので、スケールが違いすぎると限られたwarmup期間では上手くいかない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データ間で数値のスケールが著しく異なるのが原因で計算上変な挙動が起きる場合、単純にデータの表現方法を変えれば解釈性を保ちつつ改善できる可能性がありますね。ミリメートルをメートルに直して、それにモデルの事前分布も合わせるとか。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これはかなりあるあるで、多くの教師ありのシチュエーションだと前処理(スケーリングとか)とk近傍法で他の手法と大差ない。どころか説明しやすい。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これで問題が解決できればそれでOKですが、もう少し追求していくと「近いとは何か?」という設計上の問いが出てきます。ここで出てくるのがカーネル法やガウス過程などのデータ間の類似度を設計することによって回帰モデルを設計するやり方です。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ガウス過程などのカーネル(共分散関数)を設計するアプローチは非常に直感的で強力なのに、実際はRBFカーネル(デフォルトではこれが多い)を使った「なめらかノンパラ曲線フィッティング」くらいしか利用されていないのが惜しいところ。これだと動作的にはほぼk近傍法に近い。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ということで、カーネル関数の機能を直感的に理解したい場合は下記のサイトの下の方にあるデモをぽちぽちしてみるのをお勧めしています。(あと、よく聞かれますが、多次元入力版の拡張ももちろん簡単にできます。) https://t.co/87goFc6gGC」 / Twitter
A Visual Exploration of Gaussian Processes
高梨陣平さんはTwitterを使っています 「GoogleのAIが集中砲火を受けている。具体的な証拠無しには有効性の検討はできない。」 / Twitter
The RegisterさんはTwitterを使っています 「ICYMI: Google is under-fire for bragging about making a super-human cancer detection AI – and then not supporting those claims with tangible evidence "Without the computer code and fitted model, it will be very difficult to build on their work..." https://t.co/8aUiQo0Cbo」 / Twitter
Top doctors slam Google for not backing up incredible claims of super-human cancer-spotting AI • The Register
須山敦志 Suyama AtsushiさんはTwitterを使っています 「↓収集した実験用データに対してはうまい具合に良い予測精度が出せて、多様な個別環境に適応できるようなモデル&学習のやり方はまったく考慮されていない。ML失敗のあるあるですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これの解決のために転移学習や能動学習がカギになるという人もいますし、あるいは差異の要因がある程度仮定できるなら階層ベイズで解決するのが手っ取り早いでしょう。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「例えば10の病院からそれぞれ1万枚の画像データを集めたとしたら、データ量は10万ではなく、10です。この辺の見かけの数値にとらわれない課題難易度の認識が大事。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「ビッグデータ」や「大量データで学習」などの流行文句がありつつも、少量データに対する効率的な学習が超大事なのはこういった理由があるためです。この辺りは下記の杉山先生の研究課題を見るとよいです。 https://t.co/JHUfekL0tS」 / Twitter
理研AIP-NEC連携センター | 革新知能統合研究センター
須山敦志 Suyama AtsushiさんはTwitterを使っています 「現実問題を直接数理最適化問題としてデザインすることも重要ですが、個人的には機械学習と組み合わせる際にも有用だと思います。僕も以前、構築した機械学習アルゴリズムの部分問題を解くためにQP Solverなどを併用したことがある。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「自分もまだまだ知識が足りていないですが、例えばベイズ統計の近似手法を改善するためには数理最適化の考え方を深く理解する必要がある。例えば隠れマルコフモデルなどを効率よく推論計算するためには動的計画法が定番。モデルの構造に合わせて適切な手法選択するためにはこの辺りの知識は必須ですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「最適化問題のオーバーフィットの話にも関連しますが、現実的にはアルゴリズムで計算された出力結果が実際にビジネスオペレーションに落とし込めるかが重要になってきます。簡単にいうと、出口論が大事。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「架空の話ですが、自動販売機1台1台の精緻な売上予測が出来たとしましょう。最適化アルゴリズムによって提案された在庫管理のスケジューリングが、現実のオペレーションではあまりにもダイナミックすぎて管理しにくくなる可能性がある。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「数字の上では高いROIが期待できても、現実のオペレーションに対するフィージビリティが保てないケースは非常に多い。この辺りは現実課題を数理的な問題に落とし込むとかそういう以前の段階で事前に業務を深く理解したメンバーと議論する必要がある。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「これは制御の問題にも通じます。あるカメラの予測を通じて物体を追いかけるような制御をしたいとして、その予測に従って追いかける動作を現実的な制御入力で達成できないことがあります。 すると何をいつまでに予測できなければ制御が間に合わないのか、逆算する必要があるわけです。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「予測はしばしば、次のアクションのための情報として扱われますが、本当にアクションに繋がるのか、あるいはアクションに繋がるような情報とは何なのかを常に考えて予測問題を作らねばならないわけです。」 / Twitter
広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「これめちゃくちゃ重要だよなー。 特に経営者からやってくるテーマそのままだと出口が作れないケースが結構ある。本当にやりたいことをより広いスコープで捉えて「単純な方法でも成果がでそう」なテーマに変えて提案して「あとから精度上げに行く」くらいの気持ちでやるのがいいと思う。」 / Twitter
広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「たとえば、在庫予測したい!とか30回くらい聞いたけど、庫内滞留のリスク最小化したいとかは聞いたことないもん。なぜなら、ロジとマーケの組織が縦割りになってるから。」 / Twitter
広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「そもそものKPI分割が問題を局所化している可能性を考えないといけない。」 / Twitter

micchanさんはTwitterを使っています 「このスレッド全部に頷きすぎて頭くらくら。前に某大手食品メーカーの熟成予測をやった際、エンジンの成果は出せたけど、サイクルが現場にフィットせず仕入れのSCM側の改革も必要だったり、かなり広範囲で見ないと結局インパクトが出せない問題を思い出しました。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「根本には、サプライチェーン全体から見たボトルネックを認識せずに、部分問題を過度に最適化することに問題があります。特にロジスティクスでの物理的制約や顧客の認知限界などは多くの場合無視できない。過度な部分最適化は全体としての柔軟性を欠く。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「正解ラベルがないとまったく何も進みません」という案件は、たいてい正解ラベルが集まった後でもまったくうまくいかない」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「この認識が間違いであることは実務者全員が認識した方がよいですね。 &gt;入力と出力の関係性が未知でもデータがあれば予測モデルを立てられる」 / Twitter
MassSさんはTwitterを使っています 「入力と出力の関係性が未知でもデータがあれば予測モデルを立てられるというメリットがあったはずが、実用では結局対象の理解がある程度欲しいとなると、、ジレンマ」 / Twitter
MassSさんはTwitterを使っています 「結局実務では対象の現象を仮説立てて挙動をモデルに入れ込んで作り込んでいくことが多くて、あり得る現実的な入力全てに対して万能に返してくれるものはないとなると、、個別問題になりやすく、、悩ましい」 / Twitter
MassSさんはTwitterを使っています 「ただし、ディープラーニング含め何ちゃら学習器を使って(過学習をしている状態を除いては)なんらか入力に対して予測可否がなんとなく分かるというベンチマーク的な使い方はありだと思っていて、対象の理解はそこから逆算してすることもある」 / Twitter
MassSさんはTwitterを使っています 「結局機械学習は愚直に覚えるアルゴリズムなだけなので、現象が分かっているものに強いて使う必要はないのだけども、現象をアルゴリズムに入れ込める人間はそう多くはないので、愚直でもいいから効用のある課題に取り組むってのも忘れてはいけないと思う。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「Turing.jlで欠損値付きデータに対して線形回帰を行う - my blog https://t.co/ppwO7tTzBD」 / Twitter
Turing.jlで欠損値付きデータに対して線形回帰を行う - my blog
須山敦志 Suyama AtsushiさんはTwitterを使っています 「lightGBなんちゃらが欠損値を扱えるとかわりとどうでもいい話をよく聞きますが、基本的にあらゆる回帰モデルは容易に欠損値補間ができるように拡張できます。もちろん、欠損の捉え方により無数にバリエーションはありますが。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ここ数年の機械学習の産業応用のドライバーは、機械学習の技術自体ではなくgit cloneな気がする」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習周りの考え方そのものは20~30年そんなに変わっていません。ただ、圧倒的に外部からのアクセシビリティが良くなった。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計はtraditionalではなくfundamental。データ解析や機械学習をツールの集合体であると捉えていると、このあたりの本質は理解できないですね。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「特に「予測精度が上がりました」で突然説明が終わっているのはダメな典型。「予測精度が上がりました」はそれ自体では何か問題を解いたことにならない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ある分野で統計や機械学習を適用する際は、成果報告としてちゃんとその分野での言葉&amp;貢献で説明できないといけないですね。機械学習の世界に課題を投げたまま戻ってこないケースが多いように感じます。」 / Twitter

@hidekatsu_izuno

伊津野 英克さんはTwitterを使っています 「数学の枠内だけでどうやって「正しい」とか「因果関係」とか「未知の推定」とか「意思決定」を扱うつもりなんだろ。物理現象があっての物理学であるのと同様、各種概念があっての統計学なのに、各種概念を無視して何が言えると思ってるんだろ、というのが個人的な見解。」 / Twitter
伊津野 英克さんはTwitterを使っています 「「有意である」とは何かという概念があって、その実装として p 値があるわけで、概念がなければ p 値なんてただの数値に過ぎないわけでしょ。」 / Twitter
伊津野 英克さんはTwitterを使っています 「皆「僕は主義なんていらない」ってところから話が始まるからわけのわからないことになっているんじゃないかなぁ。「主義はあるけど、意識する必要はあまりない」と考えを変えるだけの話なのに。」 / Twitter
伊津野 英克さんはTwitterを使っています 「統計学が物理学と違うのは、扱っている対象が物理学に比べて一段メタな分、哲学側に近いところにあるからではないかと思ってる。因果なんてまさにそうだけど統計の各種概念は哲学が扱ってきた領域だしね。」 / Twitter
伊津野 英克さんはTwitterを使っています 「という話をブログに書くつもりなんだけど、本当は本職の科学哲学の人に書いてほしいんだよなぁ。」 / Twitter
伊津野 英克さんはTwitterを使っています 「DAGだと同時決定するような因果関係扱えないということのようなので、たしかにそれはイマイチかも。双方向の因果関係の定常状態はわりと一般的に思えるし。」 / Twitter

@masahiro_sakai

2020-10-31

Masahiro SakaiさんはTwitterを使っています 「SAT-Based Encodings for Optimal Decision Trees with Explicit Paths https://t.co/Yuw61N4WCP SATソルバを使って最適な決定木を求める話。具体的には、二値分類で特徴量も2値のケースで、完全な分類を行う決定木のなかで、深さやノード数が特定の数の木をSATで求めるのを小さい方から繰り返す。」 / Twitter
SAT-Based Encodings for Optimal Decision Trees with Explicit Paths | SpringerLink
Masahiro SakaiさんはTwitterを使っています 「木を扱おうと思うとノードとエッジに基づいた符号化が思いつくけど、提案手法はパスに基づいた符号化で面白く、また自然に symmetry breaking 出来ていて良い。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「多値分類や特徴量が多値の場合への一般化は簡単だけど、特徴量が連続値の場合と誤分類を許す場合の扱いが自明でないので、手法は技術的に面白いものの、現状では実用するのは難しそう?」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「先日Optimal Trees の話 https://t.co/GRoUwV3uju を聞いて、そういえばSAT 2020でそんなタイトルの論文があったなぁ、と思って読んでみたのだった。」 / Twitter
Masahiro SakaiさんはTwitterを使っています 「一つめは、決定木学習のCARTは局所的に最適なブランチを繰り返すことで決定木を構築するが、それに対して(木の深さの制約のもと)大域最適な解を求める Optimal Trees という手法で、100万サンプル1万特徴量とかまでスケールし、 CART や XGBoost よりも高い汎化性能。」 / Twitter

@shirouzu

Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深いテーマが多い。 ---- 「βアミロイド・ワクチン法」(βアミロイド投与で抗体生成) 「脳の消費エネルギーは 20W」 「ヒルの逃走法選択(≒自由意志)は膜電位の揺らぎ」(これは知っていた) https://t.co/3unQrNDbRq"
進化しすぎた脳 | PHILOSOPHY OF SCIENCE
Shirouzu Hiroaki(白水啓章)さんのツイート: "人間の「自由意志」も、根本はヒルの膜電位と大差ない原理(ランダム性)だろうなぁ。 (そして「飽きる」という現象と同じく、選択の固定化を避けて生存確率を高めてきたと)"
Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、意識を「量子揺らぎ」に求める著名科学者も居た気がするが、例えばMRIでスピンの向きを揃えても意識を失わないし、PETにも耐えるし、もっと巨視的な話ではという気も。… "
Shirouzu Hiroaki(白水啓章)さんのツイート: "私も昔から「関数次第で何とでもなるよね」という違和感があったなぁ。 (フーリエ級数で解く人とかもいるのだろうか?) ちなみに現実的には「最もエントロピーの低い関数に基づく解のみを正解とする」的な補足があればよいのかな?… "
西内啓 Hiromu Nishiuchiさんのツイート: "IQテストとかでいくつか数字並べて次の数字何でしょうみたいな問題、やろうと思えば変な式でもフィッティング出来るはずで、結局のところ何が「正解」かってただの納得感の問題である。むしろ今の世の中に必要なのは1,2,3,x…という並びを見て4以外の斬新な答えとその理由を思いつける人間なのかも。"
西内啓 Hiromu Nishiuchiさんのツイート: "なお、全く数学的な意味はないんですけど、8,13,22,24,25,32,33,○,42,44,52という数の並びを見て○に入る数字即答できる人がいたらめっちゃ友達になりたい。今だと「この並びにいずれは0,3,6,23のどれかが入るんですかね!」みたいな話で盛り上がりたい。"
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ふーむ。 サンプルを使って法則発見より、全パターン網羅辞書を作れば法則化自体が不要、みたいなノリに見える(笑) https://t.co/bnceFj08Jl」 / Twitter
Hiroo YamagataさんはTwitterを使っています: 「いまやっている訳書で、自然言語解析で百万語くらいで学習させるとアルゴリズムにより成果に大きな差が出るが、一億語学習させると、もうアルゴリズムの差なんかどうでもよくなるそうな! だから、革新的アルゴリズムをひっさげた新たなグーグルによる下剋上なんてのは、もうあり得ないとのこと。」 / Twitter

@sinya8282

Ryoma Sin'yaさんはTwitterを使っています 「今日はデータサイエンスの講義を見学させてもらったんだけど、lasso の意味というかスパース感がめっちゃわかりやすくて腑に落ちた(普通に勉強になった).」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「チコノフの正則化とかリッジ回帰とか調整項の意味とか事前情報の正当化とか、この辺の話は数学者と工学者でだいぶ伝え方が変わるのかな、とか思ったり(見学した講義は数学者の方が話していた)。」 / Twitter
Ryoma Sin'yaさんはTwitterを使っています 「「確率論の大家にフェラーという人がいる」 と講師の方が言った直後ニヤニヤしてる学生さんが何人かいたことは先生黙っておきます.」 / Twitter

@fffumihiro

くいなちゃんさんのツイート: "「数式」が苦手なプログラマさんの気持ちは分かります。 数式がプログラムだとすると、変数名や関数名が大抵1文字で、定義に "コメント" がほとんどなく、その定義こそが仕様書で、ステップ実行もデバッガもないとは、プログラマさんにとって 保守不可能と判断されると思われます。"
FFFumihiro MMMatsuiさんのツイート: "確かに言われてみれば、数式たくさん使って説明するあれこれにソフトウェア工学のあれこれを取り入れたら伝わりやすくなる可能性ある気がする。似たような式変形を何度もやる内に慣れてくのは、コメントが無いコードに対して、似たようなコードを書いた事あるからすぐ読めるって感覚に割と近い気がする"
FFFumihiro MMMatsuiさんのツイート: "なので、そういう式変形を扱った事がなくてもちゃんと分かりやすく伝えるっていう方向で良くできる余地はありそう。現状だとなんか、分かるまで読む側が鍛えろ的な感じで、あまりそういうの追求されてない気がするし"
FFFumihiro MMMatsuiさんのツイート: "素直に扱うと手に負えないくらい複雑になってしまうものを、なんとか万人にとって扱いやすくしたいという点では、ソフトウェア工学ってずっとそういうの研究してるわけだし、もっと他の分野に応用されてもよさそうだな"
きいねくさんのツイート: "確率問題は極端に考えると直感的にわかりやすくなる傾向があると思う. ■モンティホール→ドアの数が1億2個で1億個開ける(確率上昇が直感的にわかる) ■感染確率→感染確率 0 %の病気で,90%正しい検査キットで陽性だったときの本当に感染している確率(90%じゃないことが直感的にわかる)"
FFFumihiro MMMatsuiさんのツイート: "モンティホール問題は最初知ったとき不思議で不思議で、結局やっぱりこういう極端な場合を考えてやっとなるほどってなった"
FFFumihiro MMMatsuiさんのツイート: "確かに確率と直感のすり合わせって、モデルそのものは数個くらいの少ない N でイメージした方がわかりやすい気がするけど、直感的にあれ?ってなる挙動が隠れてたりとかは、一応 N を相当大きくした場合もイメージしてみないとなかなか気づけなそうな感じあるなあ"

答えを知っている人は滅多にいない

伊津野 英克さんはTwitterを使っています 「古市さんが「GoTo批判にはエビデンスがない」と批判してたけど、ベイズ会計のエントリ書いてて気づいたのは、十分なデータがないなら、より妥当な事前分布が置かれてるかが重要ということ。エビデンス無くても西浦さんの見解を支持するのが科学的な態度だよ。」 / Twitter
伊津野 英克さんはTwitterを使っています 「統計はマウント取る人はいっぱいいるが、答えを知ってる人は滅多にいないので、生半可な知識でもいいので公開してフィードバックを得たほうがいいと思う。」 / Twitter
伊津野 英克さんはTwitterを使っています 「結局、プロジェクト管理手法も統計も銀の弾丸はないので、用法用量に従って正しく使う必要があるのだが、支持者は得てして万能薬のように語るので間違いが起こる、とw」 / Twitter
伊津野 英克さんはTwitterを使っています 「データがあるときにどんな順番で手法を適用すればいいのかというフローチャートがほしい。」 / Twitter

文法

kinabaさんはTwitterを使っています 「そもそも完全なる門外漢的アレですが個人的に自然言語が文脈自由以上とは思えない(正規言語のstate complexityの差として複雑さを捉えた方がいいと思う)派なのでlinearizationされた形で扱うのとても自然に思える」 / Twitter
kinabaさんはTwitterを使っています 「これについて考えていることをdumpしておくと、自然言語を文法で表すとして、どう表現すると(1)人間にわかりやすいか(2)様々な機械的処理が実装しやすいか(3)人体による実装を巧く説明しているか、等々色々な見方があって多角的に見るべきもので一つの正解があるものではないと思う」 / Twitter
kinabaさんはTwitterを使っています 「とした上で、Joshiの弱文脈依存文法 https://t.co/mddnuZIwZH 的な話にめっちゃ違和感があって、まったく自分の身体的な直感としてでしかないが、人体は線形オーダを超える構文解析はしてないので、どうせ近似的にしか実装されていない強い文法機能を考える際に多項式時間という制約に意味あるのかとか」 / Twitter
Mildly context-sensitive grammar formalism - Wikipedia
kinabaさんはTwitterを使っています 「一方それでは任意深さのネストは非文だから正規言語と主張するなら、任意に長い文もないから全て有限言語って話になる、という反論については、やはりこちらも人体そうなっていない気がする(巨大な有限集合を全部記憶するのでなく小数のルールを回している気がするしI'm(very)*happyとか相当に文だろ」 / Twitter
kinabaさんはTwitterを使っています 「それで自分に違和感がない範囲としての正規言語なんですが、あんまり無茶苦茶な文法構造が無いというのは、オートマトンの状態数が増えすぎない構造が自然に現れやすいという話に言い換えられないかというのが元の発言で、https://t.co/a42nzprvl5 とか、あー状態数減るなーみたいな。」 / Twitter
Adjectives: order - English Grammar Today - Cambridge Dictionary
kinabaさんはTwitterを使っています 「ただstate complexityを持ち出したのはそれくらいしか正規言語内の階層構造思いつかなかったからで、現象のあまり良い定式化ではない気もする。文脈自由文法+α で表すというのは人類が"文法構造"を"理解"しようとするにはあまりに妥当な道具立てなので、理論的支柱はそうあるべきだとも思う。」 / Twitter
kinabaさんはTwitterを使っています 「というわけで、文脈自由文法+αの文法達をその間の階層構造を保ったまま正規言語の中に埋め込むような操作を考えて、上位の文法で成り立つ現象を正規言語の内部階層へとtransferできるような埋め込みとかで説明できたりしないものかなあみたいなことを考えていた。」 / Twitter

cognicull.com

kakiraちゃんさんはTwitterを使っています 「え すごい数学解説サイト見つけてしまった。 数学の勉強時によく起こる下の現象をなんとかすることができてしまいそう https://t.co/jlpxmG018F https://t.co/NrVhkAdboI」 / Twitter
コグニカル
kakiraちゃんさんはTwitterを使っています 「数学、原理的には、わからない概念の定義元を見る、その定義にわからない概念があればその定義元を見る、って感じに再帰的に探索していけばいつか分かる、というのは分かるんだけど、人なので探索木の深さが3以上になると途端にしんどくなって理解を諦めてしまう」 / Twitter
kakiraちゃんさんはTwitterを使っています 「1記事には1つのキーワードについて解説されていて、そのキーワードを説明するのに必要なキーワードを子とするような「木」がビジュアライズされて表示されている。 すべての記事について、依存関係が明示されているから、分からなかったらその元をたどれば良い。 https://t.co/TOeamMq1u9」 / Twitter
kakiraちゃんさんはTwitterを使っています 「子ノードをクリックすることで、別の記事に飛ぶことができるが、最初にアクセスした親ノードはそのままで、子のノードだけが展開されて、ページの内容だけすり替わるようになっている。「深く掘って調べてきたのは良いけど、どこまで調べたんだっけ・・・???」という現象を起こりにくくできる。 https://t.co/G8xHAN4UqV」 / Twitter
kakiraちゃんさんはTwitterを使っています 「分かっているノードは画面左上ハサミで切り取ることができて、木の表示をシンプルにすることができる。単純に見やすくなるし、基本的に木が複雑になると理解を諦めてしまいがちなので、モチベ向上に繋がりそう。 https://t.co/s2dz4HcIkf」 / Twitter
kakiraちゃんさんはTwitterを使っています 「この木を逆に見ると、ある概念が支えている概念が分かるから、「これ何の役に立つの???」という問いかけへの解にもなってるのか。。。強すぎる。。。」 / Twitter

物理と機械学習の相性

ogiwaraさんはTwitterを使っています 「ところでF=maが成り立つ、って証明はどこにもないよね」 / Twitter
ogiwaraさんはTwitterを使っています 「やっぱ物理における実験と定式化のプロセス学んでから、機械学習の研究した方がいいんじゃないの?という気がしてならない」 / Twitter
ゆうだい.jlさんはTwitterを使っています 「@designpatterngf 多くの自然現象がニュートンの運動の三法則で説明できることが立派な証明と思います(が、演繹的な証明はないよね、という意図ですよね?) なんか、そーゆの、物理と機械学習の相性はとても良いと思うんです。」 / Twitter

数理最適化

UmeponさんはTwitterを使っています 「先日の白金鉱業.FMで「数理最適化では機械学習のような過学習のような問題はないんですか?」と質問されて、今まで強く意識していなかったなあと気付かされました。」 / Twitter
UmeponさんはTwitterを使っています 「もともと数理最適化では、任意の入力データに対して解の最適性と最悪計算時間を理論的に保証するようにアルゴリズムを設計・開発するので、そういう問題を議論する文化がなかったんだろうなあと。」 / Twitter
UmeponさんはTwitterを使っています 「ところが、現実問題の多くがNP困難な組合せ最適化問題で、アルゴリズムの出力する解の最適性や最悪計算時間が理論的に保証できなくなり、そういうことと向き合う必要が生じてる。」 / Twitter
UmeponさんはTwitterを使っています 「代表的な組合せ最適化問題では、ベンチマーク問題集というべきデータセットが公開されて、それらの問題例に対するパフォーマンスで開発したアルゴリズムが評価されてるけど、それって機械学習における過学習と同じ問題が生じてるのは本当にそう。」 / Twitter
UmeponさんはTwitterを使っています 「最近の組合せ最適化のコンペティションでは、出題時に配布するデータと評価時に使うデータを分けて、後者をシークレットにしてるし、数理最適化の論文に数値実験の結果を掲載する際にも、そういう手続きは必要かなと思う。」 / Twitter
UmeponさんはTwitterを使っています 「トークでは、入力データの不確実性という観点からロバスト最適化の話題に触れましたが、こういう観点もあったなあと思い出した次第です。」 / Twitter

組合せ最適化

がぶさんはTwitterを使っています 「社内で話題 https://t.co/iOowCTeeQk 組み合わせ最適化→組合せ最適化がいいよって話 https://t.co/tAVUBTy7g6」 / Twitter
電通、エー・スター・クォンタムと業務提携 - ニュースリリース一覧 - ニュース - 電通
「組合せ最適化」と「組み合わせ最適化」のどちらが正しい? - Togetter
がぶさんはTwitterを使っています 「「組み合わせ最適化」って検索するとことごとく「組合せ最適化」ってでるの面白い https://t.co/564fD161lQ」 / Twitter
組み合わせ最適化 - Google 検索

関数解析的資料

逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「まだ出版会社とか決まってませんがgithubあたりで順次公開したら見に来てくれる人よかったらふぁぼください ふぁぼ多ければ公開します」 / Twitter
逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「私が機械学習の入門書出せたら 初手でヒルベルト空間を仮説空間として導入して、汎関数で損失関数を定義し、フレシェ微分で勾配法を定義する。 実アルゴリズムはこれの特別な場合です。 数学科学部レベルの解析学を履修した人にはさいっこうにわかりやすい機械学習の入門資料」 / Twitter
逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「ニューラルネットもSVMもResNetも、ぜーーんぶ積分表現理論とかの無限次元の連続理論を先に持ってきて、実際のアルゴリズムはすべてその離散化として定義する」 / Twitter
逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「機械学習始めた頃、多くの書籍の数学的な雑さに戦いた。 今はもちろんだいぶ機械学習のことがわかってるから、雑な資料でも忖度して読めるけど、今後機械学習始める数学徒があんな無駄な努力する必要はないです。 初手から関数解析的な資料でやった方がいいに決まってる」 / Twitter
逢空れい@ちょっと研究の時間確保できてきたさんはTwitterを使っています 「「一般的な機械学習入門書」はこのレポジトリで公開となります。今(2020/10/11現在)は序文しか書いてませんが、これを更新する形でどんどん作り上げていく所存。 https://t.co/yNkutk6PwL リンクミスったので再掲」 / Twitter
Runnrairu/Machine-Learning-text: 一般的な機械学習入門
takuya kuboさんはTwitterを使っています 「@ranoiaru 解析学の方なのですね。情報幾何は(本当はちょっと違うけど)統計モデル上の微分幾何で、双対アファイン接続(接続のなかで計量によって結ばれる対のアファイン接続)がわかってしまえば、かなり素直な話だと思います。 輸送解析も楽しみです。頑張ってください。」 / Twitter
逢空れい@ちょっと研究の時間確保できてきたさんはTwitterを使っています 「@bocchi_talks 専門はSDEです」 / Twitter

次元

七誌さんはTwitterを使っています 「高次元では3次元のような回転軸の概念は使えないので、どうしようか考えていた。 擬ベクトルとして表された部分空間を取り出せば次元を1つ落とせるので、n次元は入れ子になったn-2本の擬ベクトルが回転軸になるような気がする。(マトリョーシカというか、ジンバルのようなイメージ)」 / Twitter
七誌さんはTwitterを使っています 「イメージを式で表すことを試みる。 n次元の擬ベクトルはn-1本のベクトルの外積で構成される。 例えば5次元では v₁∧v₂∧v₃∧v₄=⋆v₅ となり、左辺が張る部分空間に次元を落とすことを繰り返して、2次元まで落とす。 v₁∧v₂∧v₃=⋆v₄ v₁∧v₂=⋆v₃ そもそもv₁∧v₂だけで表せるけど…」 / Twitter

テンソル

Shinji KonoさんはTwitterを使っています 「ベクトルとテンソルの「変換」は、実態は一つ。変換されてるのは座標系に対する表現。それが理解できれば変換は自然に見えてくるのだが…」 / Twitter
Shinji KonoさんはTwitterを使っています 「では実態は何かというと位置と線形変換。なので、座標変換自体もテンソルなので、なれないと混乱する。計量テンソル。」 / Twitter
Shinji KonoさんはTwitterを使っています 「行列とテンソルの違いは、行列は表現のことだが、テンソルは線形変換という意味を持ってるってこと。テンソルの行列表現とかそんな感じ。」 / Twitter

機械可読自然言語

ロボ太さんはTwitterを使っています 「日本語みたいな自然言語を、プログラミング言語と同じレベルで機械可読になるように言語仕様を定めることができたらうれしいかなぁ。日本語っぽいプログラミング言語ではなく、プログラミング言語っぽい日本語って意味で。例えば複数の意味に取れる文章は文法エラーになる、みたいな。」 / Twitter
ロボ太さんはTwitterを使っています 「昔、AIに協力しながら何かをさせるタスクを与え、自由に通信させてたら、そのうち「共通言語」を作り出していった、みたいな研究みた気がするけど、そうしてできた「人工自然言語」は、機械可読性が良くなるのかなぁ。それとも曖昧性が残るのかしら。」 / Twitter
uint256_tさんはTwitterを使っています 「@kaityo256 https://t.co/CIMggdv9oD これでしょうか」 / Twitter
1706.05125.pdf
ロボ太さんはTwitterを使っています 「@uint256_t 僕が見たのは10年以上前、教師なし学習で人工言語を作る試みだった気がします。でもこの論文も面白そうですね。」 / Twitter

テスト

Shuhei FujiwaraさんはTwitterを使っています: 「機械学習、「大量にテストケースを用意すると、それなりにそのテストを通過する関数を自動生成できるやつ」で大体のエンジニアに伝わると思うんだけどどうなんだろ」 / Twitter
そすうぽよさんはTwitterを使っています: 「@shuhei_fujiwara 未知の入力に対してもそれっぽい答えを返す(返してほしい)という性質も重要だと思います」 / Twitter
Shuhei FujiwaraさんはTwitterを使っています: 「@_primenumber もちろん大事は大事なんですが、そのあたりは大雑把な仕組みがわかった後に伝える方が楽かなという気持ちです」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 関数って言葉は正確でない気がします。本当に関数を生成できたら、すごい技術ですが。多分究極のAIですね。」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 多分優秀なエンジニアほど、言葉の正確性に対するこだわりは強いので、「それができたらプログラマも機械学習に駆逐されるじゃん!と感じてしまうと思います。生き残るのは… 多分テストケース職人??(か、仕様書書きエンジニアのみ)」 / Twitter
Shuhei FujiwaraさんはTwitterを使っています: 「@hiroki39ikuta 関数の形に強い制約があるとか省略している部分はあるけど、一応一部の教師あり学習に対しては嘘ではないと言って良い程度の説明かなあと思っています。 相手が本当に厳密な説明を求める場合はみっちり数時間付き合ってもらうしかないですね(実際に本気で興味を持ってくれたらする気はあります)。」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 関数ではなく、ロジックという言葉を使うのはどうでしょうか?ロジックのほうが、意味合いが広いので、関数より良い気がします。関数というと、プログラミング言語で言うところの関数を連想するので、誤解を与えるかと。」 / Twitter
Shuhei FujiwaraさんはTwitterを使っています: 「@hiroki39ikuta 普段はもうちょっと慎重に言葉を選ぶので、僕も実際にロジックという言葉を使っていますね。 「データから欲しい入出力のロジックを逆算で生成するのが目標」という説明をすることが多いです。」 / Twitter
生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara あと、これも優秀なエンジニアならではですが、テストケースが通ればいいだけだったら、もろ過学習しまくってしまえばいいんでない?AIってそんなもんなの?なんて誤解もあるかもですね。学習データにない入力にもそれなりな出力を返せるようにできることも捕捉が必要だと。」 / Twitter

無限小での線形代数

ふみさんはTwitterを使っています 「大学入ってすぐの微積の授業で教授が「微積は無限小で線形代数をする分野」って言ってて、そのとき微積と線形代数が全く別物だと思ってた私は意味わからなかったけど、今はめっちゃわかるし的確に言い表した言葉だったんだなって感動している」 / Twitter
無限小と微分 | 関数の微分 | 微積分 | 数学 | ワイズ
授業実践記録
無限小 - Wikipedia
小話Vol.3:関数の「無限小バトル」と「微分可能性」 - 新米数学博士の数学談話室
Lecture9.pdf
第1章 微積分入門
TRonso33_Ikeda.pdf

確率分布

@7shi

七誌さんはTwitterを使っています 「二項分布→ポアソン分布→指数分布→ガンマ分布 の流れを勉強した。導出まで追っていないけど、それはまた別の機会に。ポアソン分布は素朴な算数で出せそうな気がしたけど、ネイピア数が出て来る時点で素朴な算数ではない・・・ #bayes_hmc」 / Twitter
七誌さんはTwitterを使っています 「@gm3d2 Wikipediaを見て気付きましたが、半減期もポアソン分布なんですね。」 / Twitter
gm3dさんはTwitterを使っています 「@7shi 量子力学でそのうちある状態から別の状態への「単位時間あたりの遷移確率」を計算すると思うので、そうすると系が始状態のままでいる時間(=寿命)はポアソン分布になります。」 / Twitter
七誌さんはTwitterを使っています 「@gm3d2 ポアソン分布は単純な仮定から導かれるので、適用範囲が広いのですね。」 / Twitter
七誌さんはTwitterを使っています 「ポアソン分布と指数分布を知っている現象に適用するなら原子核の半減期かなと思うけど、分布の理解が曖昧で自力では適用できなかった。 「一つ一つの崩壊する時間間隔の確率は指数分布に従い、単位時間あたりの崩壊はポアソン分布になる。」 https://t.co/nx9Krkvpas」 / Twitter
半減期 - Wikipedia
七誌さんはTwitterを使っています 「ずっとシュレーディンガー方程式は何を扱っているのかちんぷんかんぷんだったけど(計算すると確率分布が得られることしか分からない)、量子力学の難解さと関係なく、単に周辺知識(ハミルトンヤコビ、微分方程式、波動、フーリエ、連続の式、拡散など)が不足していた面が大きかったと感じている。」 / Twitter
七誌さんはTwitterを使っています 「確率分布の時間発展をアニメーション化するとうねうねしているのはピンと来なかったけど、正規化されていれば面積が保存される(常に1)ので、非圧縮性の流体みたいな感じがして来た。そういう手がかりもなく漫然と見ていても、何もイメージが湧かない…」 / Twitter
七誌さんはTwitterを使っています 「一周回って、改めてリウヴィルの定理を眺めていた。深い・・・ 「確率分布がどのように時間発展するかを予言する定理」 「時間発展に対して相空間中の体積が保存」 「運動は非圧縮性流体中の浮かぶ微小な粒子の運動に類似」 https://t.co/rjeopv34Yj」 / Twitter
リウヴィルの定理 (物理学) - Wikipedia
七誌さんはTwitterを使っています 「ざっくりした書き方に好感を持った。 「情報幾何学に現れる空間はコンパクトではない(略)。なので、安心して積分を行えない可能性がある。それを安易に回避するには積分値が有限となるものを積分すれば良い。」 シンプレクティック・ベクトル空間上の確率分布の発展について https://t.co/rp4ydtZKfR」 / Twitter
Kyoto University Research Information Repository: シンプレクティック・ベクトル空間上の確率分布の発展について : ラクダを飼ってみませんか? (統計多様体の幾何学の新展開)
七誌さんはTwitterを使っています 「言い回しが面白い。 「シンプレクティック幾何学とは、非退化で可積分な構造(微分2形式)を備えた多様体の幾何学であり、古典力学を無駄と思える程に抽象化した解析力学を更に抽象化したものである。」」 / Twitter
七誌さんはTwitterを使っています 「話題に出ている島谷先生の『ポアソン分布・ポアソン回帰・ポアソン過程』は面白そうだったので入手していたけど、いつものように積んでいたので少し読んでみた。 確かに、パソコンを使って乱数でシミュレーションをして納得感を得ることが強調されている。私が先日書いた非局所性の記事と同じ方針だ!」 / Twitter

τ-σさんはTwitterを使っています 「与えられた確率 分布がどの程度にべき分布に近いのかということを定量化し,妥当な閾値によって判別 できる方法が,Clauset らによって最近開発された https://t.co/2gshuffR5p」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 似てるな〜と思ってちょっと考えたのですが、wavenetの正解データはone-hot vectorなのに対して、生成データは確率分布なので、GANの判別器が判別しやすすぎて上手く学習されない気がします。正解データの方も確率分布にするいい方法があれば、かなり上手くいきそうに思えます!」 / Twitter
dhgrsさんはTwitterを使っています 「@hiho_karuta parallel WaveNetの場合、連続な確率分布が出力です。しかも平均値が分かります。その平均値をgeneratorの出力としてGANに取り入れられそうだなと思っています。元論文でもparallel WaveNetの出力をSTFTして誤差に用いているのは、同じ仕組みだと思っています。」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 平均値を判別器に入力するの、とてもいいと思います!! その場合、wavenetが出力する確率分布の山が1つであることが前提になりそうですが、実際山は1つなんでしょうか??(wavenetやったことなくて知らなくて・・・画像の方のPixelRNNの方は、論文で多峰になることを報告していました!)」 / Twitter
dhgrsさんはTwitterを使っています 「@hiho_karuta 私もWaveNetの出力を観察したことはないので分かりませんが、多峰になることは多い気がします。VAEのようなトリックを使って、微分可能なサンプリングをすればいいのかも?(parallel WaveNetもlossの計算で何かしら工夫をしているはずです)」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 確かに! 正規分布の混合みたいな多峰の確率分布であることを仮定して、VAEを使ってサンプリングすればできるかも・・・うーん、なるほどです。parallel WaveNet、もうちょっと深く読まねば。良い議論でした!ありがとうございます!!」 / Twitter
dhgrsさんはTwitterを使っています 「@hiho_karuta こちらこそありがとうございます。蛇足ですが、parallel WaveNetでは256クラス分類ではなく、波形の各サンプルがロジスティクス分布の混合から生成されると仮定して、その分布の母数をネットワークの出力としています。parallel WaveNetというか、PixelCNN++で提唱されたテクニックですが。」 / Twitter
ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ そうなんですね!! parallel WaveNetは難しそうで・・・ それを踏まえて詳細に読んでみたいと思います!!ありがとうございます!!」 / Twitter
出国失敗さんはTwitterを使っています 「@kazuokiriyama_ 確率分布も有名なものは知っているといいかもしれないです。 例えば、判別分析で、与えられたラベル付きデータをグループごとに分ける直線を引くのは、各グループのデータが、分散が同じ正規分布から生成されたと仮定して、確率が最も大きいグループから生成されたと推定することに対応しています。」 / Twitter
いんぐらむさんはTwitterを使っています 「@brenazmsc その辺はPRMLの2章で泣きながらやってるので大丈夫かと……」 / Twitter
出国失敗さんはTwitterを使っています 「@kazuokiriyama_ それなら大丈夫そうですね。等分散の仮定を外すと判別関数が2次式になるのも面白いです。 パッケージを使っているだけで何をやっているか知らない状態だと、不適切な手法で分析を行ってしまうことがあるので、理論を学ぶのも必要と感じています。」 / Twitter
s.t. 超兄貴ではないさんはTwitterを使っています 「最尤法による判別分析 メリットはサンプル数が多ければ、確率的に判別できる デメリットはデータの分布が既知である必要があることと、サンプル数が必要であること #kantomath #kantomath1」 / Twitter
俺人〜Oregin〜さんはTwitterを使っています 「#JDLA #G検定 復習のつぶやき。 生成モデルの復習 訓練データの特徴を学習し、類似したデータを生成するモデル。例として、自己符号化器の潜在変数に確率分布を導入したVAEや、訓練データと生成器が生成したデータを識別器で判別させることによって学習を進めるGANなどがある。」 / Twitter
みっちゃん|研究者✖️ブロガー|毎日一歩ずつ成長中🥚→🐣さんはTwitterを使っています 「今日は、ベイズの定理を用いたデータ判別を紹介しました。 https://t.co/LWsVtKkPxk – ベイズの定理を用いて、学生さんを配属するクラスを判別する – ベイズ判別=確率分布を考慮したベイズの定理 #ブログ #ブログ初心者 #ブログ更新しました #17日目 #ベイズ判別 #データを判別する方法はいろいろ」 / Twitter
ベイズの定理を用いたデータ判別【ベイズ判別法】 | mi-chan-nel | みっちゃんねる
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には、正規分布仮定が論外なのはマンデルブロ「禁断の市場」で知った。 (ノア効果やヨセフ効果という用語もこれで知った…後者はランダムな独立過程でなくて大変動が長期影響する話)」 / Twitter
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ただマンデルブロの本にしても「グラフの相似形から世界にべき乗則多い」と気づいてマルチフラクタルやノア効果等その性質を深める研究をしたものの、その根源(なぜべき乗則が現れるか)については説明が無い気が…「だって潜水艦ノイズから綿花価格までべき乗則に溢れてるから」的な。」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#統計 #数楽 正規分布に関連している確率分布達について勉強すると、結果的にガンマ函数とベータ函数について学ぶことになるのですが、そのとき、ベータ函数の4種の表示を心に留めておくと計算の見通しが良くなる場合があります。そのとき②を忘れずに!詳しくは添付画像を参照。 https://t.co/g1gvMwHcvF」 / Twitter
黒木玄 Gen KurokiさんはTwitterを使っています 「#数楽 ガンマ函数とベータ函数で済ませることができない場合には超幾何函数達まで一般化する必要が生じる。一般化する前にガンマとベータの扱いに慣れておくことは損にならない。」 / Twitter
Shinji KonoさんはTwitterを使っています 「楕円な分布に線を引いて、どれが近似とか議論してる統計は嫌い。楕円は楕円だろ。」 / Twitter

確率・統計・意味

純セメスさんのツイート: "児童虐待死事件に心理学者の先輩は「円環的因果律って知ってます?物事の要因は1つだけでなく沢山あって、中には無限ループになってるものもあるんです。それなのに知りもしない外野の人間が結果論で1つの原因を見つけて袋叩きにしている。そんな奴がいる限り虐待問題は解決しません」なるほどである… https://t.co/rVLbsQbjnc"
Yusuke Odaさんのツイート: "NMTがポジネガ間違えるのは極めて典型的なエラーで,誰が翻訳モデル作っても発生しうる問題なんですが,世間的にはやっぱり今でもパターンマッチで翻訳しているものと思われているらしく,特定のリクエストから学習したんだろうという言説が飛んでいる."
Yusuke Odaさんのツイート: "ポジネガの間違いは人間が見れば致命的だが,ニューラル翻訳モデルからしてみればたった1単語の差異でしかないので,人間が思っている以上に矯正は難しい(恐らく世界中の機械翻訳研究者が頭を抱えている)"
Shiro Kawaiさんのツイート: "「意味が逆になる」ことの重大性への重み付けは、対訳だけを学習データとする限りは得られないって感じなのかな。その範囲では些細な違いだし >RT"
須山敦志 Suyama Atsushiさんのツイート: "ガウス過程のインタラクティブなデモ。 特に最後にあるカーネル関数の組み合わせ方と得られる予測分布の関係性はとてもわかりやすい。 https://t.co/87goFc6gGC"
A Visual Exploration of Gaussian Processes
Kohei Ichikawaさんのツイート: "非線形システムにおいて系全体の状態を決定する(observabilityを実現する)ために必要になる最小の直接観測すべきノードをグラフの静的な情報から調べる手法を提案。 双対する概念である可制御性は非線形だとお手上げだったのに可観測性は上手くいくのがとても面白いです。 https://t.co/7XHvwFuXdR… https://t.co/FQuvUnE24m"
Observability of complex systems | PNAS
Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔から、研究で「信頼性区間95%」が多くて、「どこから出た基準なのだろう?」という疑問があったが、今月の日経サイエンスで氷解。 統計学を作ったフィッシャーさん「とりあえずp=0.05くらいが妥当?」と書いただけだったという話。さらに後年、0.05を挙げた点を後悔していたとか(笑)」 / Twitter
三鷹ういさんはTwitterを使っています: 「@shirouzu @NikkeiScience フィッシャーさんが、農学者であった点は注目ですね。 農業なら、20年に1回は異常気象です。」 / Twitter
dif_engineさんはTwitterを使っています 「測度論的確率論のすごさってのは,(考えても仕方ない)「なぜある試行でそれが選ばれたか」を全く問題にすることなく確率的な現象を記述してることなんだけど,平岡&堀『プログラミングのための確率統計』以外でそういうことを強調して書いたものを見たことがない気がする.」 / Twitter
dif_engineさんはTwitterを使っています 「すごさの一つ,ですね.主語がでかすぎた.」 / Twitter
dif_engineさんはTwitterを使っています 「自分は確率論の講義受けるまえにルベーグ積分のあらすじは理解していたので,確率空間の公理が難しいとは思わなかったけど具体的な現象との結びつきかたの理解にはその後長い時間がかかった.」 / Twitter
dif_engineさんはTwitterを使っています 「コルモゴロフの『確率論の基礎概念』は,そのちょっと前のフレシェの仕事にヒントを得てラプラスやガウスあたりまでの話を整理したみたいなことなんじゃないかと思ってる(けどよくわからない).」 / Twitter
dif_engineさんはTwitterを使っています 「『確率論の基礎概念』はこの分野が測度論で塗りつぶされるきっかけをつくった本だから「ランダムネスそのものを正面から取り扱わないよ宣言」ぐらいありそうだと思うかもしれないけどそういうことは書いてくれてない.」 / Twitter
dif_engineさんはTwitterを使っています 「若干繰り返し気味になるが,フレシェの仕事に刺激されてラプラス,ガウスあたりの仕事を「現代風に」しようとしたという意味なら結局問題は「期待値の評価」であってランダムネスそのものは興味の関心からズレていくよね.」 / Twitter
統計たんさんはTwitterを使っています 「統計学を理解するには,データから推論をしているから客観的な推論になっている,というナイーブな価値観を投げ捨てることがまず必要だと思います。」 / Twitter
てらモス♋️さんはTwitterを使っています 「確率測度の空間に有限個のパラメータ張って多様体として見なすけど、そもそも無限次元のまま多様体として扱えれば便利なのにな的な(´・ω・`)」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@yyii81076568 @M123Takahashi @MilkyResMys 1÷(場合の数)=確率 という式が成り立つのは、「数え上げたそれぞれの場合すべてが等しい確率で発生する場合のみ」という条件がついています。現実世界の事象でこの条件が成り立つのはかなり限られていて、先生は、そのことをはっきり教えないといけないんですが…」 / Twitter
SODA NoriyukiさんはTwitterを使っています 「@yyii81076568 @M123Takahashi @MilkyResMys 話題になっている新型コロナウイルス対策のワクチンの場合、治験の段階で数万人に接種して、ワクチンが原因で死亡した人数はゼロでした。したがって接種した場合に死ぬ確率は大きめに見積もっても「1/数万」よりも小さいわけです。「1/2」ではありません。」 / Twitter

ベイズ

ベイズの事前分布

須山敦志 Suyama AtsushiさんはTwitterを使っています 「基本的に超パラメータというものはデータのなんとなくの「スケール観」を示しているものです。超パラメータの最適化というのはそのスケール観をデータから自動調整することを意味します。モデル選択の1つと考えるべきですが、やりすぎると当然過学習してしまいます。僕は最適化はしません。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「よくデータを正規化(平均ゼロ、分散1にそろえる)みたいな謎の前処理を見ることがあるのですが、ある意味ベイズ統計の事前分布のパラメータ(超パラメータ)はこのようなデータのスケール設定を妥当性・解釈性を持って実施するものだと見ることができます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「「XXXを最大化/最小化する」みたいな設計方針の統計手法は、このようなデータのスケール観や考慮するノイズ量の情報がわかりにくくなってしまっている場合が多い。だからスケーリングなどの前処理に闇雲な試行錯誤を要する。確率モデルで手法を解釈するとこの辺の仮定がわかりやすくなる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これ、古いツイートでしたが、「超パラメータ」はベイズの事前分布のパラメータを指していることに注意です。最適化アルゴリズムの設定パラメータなどは指していません。」 / Twitter

ベイズ統計の回帰モデル

須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計の回帰モデルの解説で「パラメータの事後分布p(θ|y)を求めてから予測分布p(y*|y)を求める」と書かれていることが多いが、この手順は必須ではないので本質的ではないと思う。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「現に、モデルとデータから予測分布を出すにはパラメータをまるまる周辺化して消してしまってもよい。その意味で、予測を行うためにはパラメータの存在自体とか「学習」といった考え方はそもそもなくてもOK」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「事後分布→予測分布の計算手順は典型的だし、直観的にもわかりやすいので支持されているのだと思うが、この手順が当たり前だと思い込んでしまうと潜在変数モデル、時系列モデル、ノンパラモデル、教師あり/教師なし/半教師ありといった手法を統一的に理解できなくなる。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「複数の手法やモデルを統一的な観点で理解しておくと、いろんなアイデアの間を自由に行き来して適宜活用できるのでとても便利だし、何よりストレスが少ない。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「とは言え、何でもかんでもひとつの枠組みに丸め込んでしまうと思考停止になることもあり得るので、「事後分布→予測分布」のような特定の典型例にあえてフォーカスして性質を調べたり計算を効率化したりするのは工学的な観点で重要」 / Twitter

TensorFlow User Group ベイズ分科会の資料 PPLについて - HELLO CYBERNETICS
バッチベイズ最適化を使ってロボットに完璧なオムレツの調理方法を学ばせる
江口允崇さんはTwitterを使っています 「ランカスターのベイジアン計量経済学のテキストにも頻度主義とベイジアンの違いについての補論があるのだけど、情報量基準がどうこうは一切書かれてないので、例のスライドの内容はあくまで一部の人の解釈の仕方ってことなのですねやっぱり。 https://t.co/32pu0QJKzw」 / Twitter
レオ爺さんはTwitterを使っています 「ベイズって結局のところ事前確率に根拠がなかったり、 尤度の設定がヒトによってちがってたりするから、 科学では使いにくいんだ。 そこらへんを適当に変えちゃえばどんな結論でも導けるから。 じっさい、ベイズ使うひとの結論って、その人の数だけあるともいわれる。客観性が期待できない。」 / Twitter

特許

Hacker Newsさんのツイート: "Google's PageRank patent has expired https://t.co/qozXMIut9A"
US6285999B1 - Method for node ranking in a linked database - Google Patents

ツール・ライブラリ

piqcyさんのツイート: "Microsoftが、高速なTokenizerをリリース。その速度は、なんとspaCyの10倍にのぼる。現在はアジア圏の言語がサポートされていないが、今後に期待。 https://t.co/VrbxrGOmUy"
Microsoft/BlingFire: A lightning fast Finite State machine and REgular expression manipulation library.
Wolfram Japanさんのツイート: "ソフトウェア開発者のためのWolfram Engineが無料で公開されました。どんなシステムにも配備でき、プログラム、言語、Webサーバから呼び出せるWolfram言語エンジンです。ご興味のある方はStephen Wolframのブログページからダウンロードしてお試しください。 https://t.co/1QKMY23eQq… https://t.co/suPRPmDUGY"
Launching Today: Free Wolfram Engine for Developers—Stephen Wolfram Blog
ikawahaさんのツイート: "かわいそうな形態素解析ライブラリとしておなじみの kagome が docker デビューしたよ 🎉 KEINOS さんありがとう! #デモサーバがすぐ立てられるのでラティス見たりするの楽になるかもね https://t.co/YMl9D5TBo0"
ikawaha/kagome - Docker Hub
kentoさんはTwitterを使っています: 「@sanjutsu_yu そんな感じを考えてます! 日本語を論理式に変換して、さらに文間の含意関係の判定を行うソフトウェア(https://t.co/ps4yK3nrgu)がもうあるので、今は簡単な対話型インターフェースと定理のデータベースを追加して、自分で使ってみようとしてます。 含意関係認識はCoqのtacticでやってるみたいです」 / Twitter
mynlp/ccg2lambda: Provide Semantic Parsing solutions and Natural Language Inferences for multiple languages following the idea of the syntax-semantics interface.
kentoさんはTwitterを使っています: 「@sanjutsu_yu もちろん変換は完全ではないので使ってみて問題があるかとは思いますが... 組合せ範疇文法という文法に基づいて日本語を論理式に変換するんですが、日本語で最初に定義されたのが2010年、このソフトウェアの論文が出たのが2016年なので現代に生まれてよかったです。」 / Twitter
Shion HondaさんはTwitterを使っています 「Colab ProとGoogle Driveで安く快適なKaggle向け計算環境を作る方法について書きました。 気になるのはデータのダウンロード方法ですが、Google Driveに保存しておいたzipファイルをcontent以下に展開するのが速いケースが多い気がしています(インスタンスのリージョンなどに依存していそうです)。」 / Twitter
Shion HondaさんはTwitterを使っています 「Google Driveに課金したので、Googleフォトの有料化問題も同時に解決。」 / Twitter
Shion HondaさんはTwitterを使っています 「This post shows you how to set up a *cheap* and *comfortable* computing environment for Kaggle using Colab Pro and Google Drive. Happy Kaggling! Happy Kaggling on Colab Pro &amp; Google Drive | Hippocampus's Garden https://t.co/8wMwbYRgk2」 / Twitter
Happy Kaggling on Colab Pro & Google Drive | Hippocampus's Garden

異常検知

Yasuhisa Yoshidaさんのツイート: "最近仕事で取り組んでいた異常検知の機能、やっと出せました。ロール内で普段と異なる動きをしているホストを教師なし機械学習で検知します。検知だけではなく、このメトリックの動きが変っぽいよというところも提示するのもポイントです(解釈可能な機械学習ってやつ)。 https://t.co/HW5t5sy5IA"
新機能・ロール内異常検知の使いかた - Mackerel ブログ #mackerelio
Mamoru KomachiさんはTwitterを使っています: 「今日は吉田さん (@syou6162) に大学院の集中授業で異常検知を題材に演習をお願いしています。講義資料は以下だそうです〜 https://t.co/Mcv0tPZXFg」 / Twitter
syou6162/tmu_cs2

手法の区別

HELLO CYBERNETICSさんはTwitterを使っています 「モデルと推論or最適化手法、そしてアルゴリズム(具体的な実行手順)は明確に区別した方がいいです。おそらく、そこらへんがごちゃごちゃになるから膨大な種類の機械学習手法がバラバラにあるように見えるのだと思います。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「NNはモデルで勾配法は最適化手法で、後方自動微分が勾配を求める具体的なアルゴリズムです。 単層パーセプトロンに勾配法を利用する場合は上記と同じですが、勾配法ではなく凖ニュートン法を用いることもでき、ロジスティック回帰はそのケースが多い。 呼び名が変わるが変わってるのは最適化手法。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「別に勾配法を利用していてもロジスティック回帰と呼べて、なぜならこの呼び名がモデルに対してつけられているから。シグモイド関数が出力層に来てる単層パーセプトロンとロジスティック回帰はモデルとして同じ。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「あと状態空間モデルは無論モデルで、その中の隠れマルコフモデルや動的線形ガウスモデルがある。 これに対して、ベイズフィルタの一種であるカルマンフィルタやパーティクルフィルタは潜在変数の推論方法。HMMの潜在変数推論として動的計画法の一種のビタビアルゴリズムがあるようなもの。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「線形ガウスモデルやHMMに対してEMアルゴリズムを利用すると潜在変数に加えて状態空間空間モデルのパラメータを推定するということができる(EMアルゴリズムがパラメータと潜在変数を逐次最適化するアルゴリズムという考え方)。」 / Twitter

モデル

データ丸暗記

須山敦志 Suyama AtsushiさんはTwitterを使っています 「「A Iはデータが正しくないと動かない」は間違い。より正確には「モデルで想定されていないデータが入力されると正しく動作しない」です。なぜ前者のような間違いが起こるかというと、現状応用されているほとんどの機械学習や深層学習のモデルがデータ丸暗記なやり方に依存しているからです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「データの汚さや不正確さを理由にして実用への失敗の理由にする考え方はよろしくない。丁寧な実験計画でも組まない限り、世の中に出回っているリアルデータは全て「汚い」と考えた方が良いし、それへの対処がまさにエンジニアリングで求められているものです。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「あるAIベンチャーの人がまさにこのような発言をしていたわけですが、これは「私はリアルなデータを扱ったことがありません」という白状に近い。この辺りも、A Iに関する企業や取り組みが実応用に根ざしたものかどうか判断するのに役に立ちます。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「ウェブデータで学習されたAIが差別的な発言をしてしまう件に関して、「AIは素直に学んだだけ、悪いのはデータ」みたいな妙な結論を出すのは良くある話。いや、AIが悪い。人が設計している以上、AIを何か別の知的主体かのように捉えて責任逃れするのは間違っている。」 / Twitter
須山敦志 Suyama AtsushiさんはTwitterを使っています 「これに限って言うと、AIはウェブデータから頻度に基づく類推を行っただけです(前述の通り、丸暗記するだけなので)。世の中どれくらい差別や偏見に満ちた発言が多いのか、という集計くらいにはなったかも。」 / Twitter

piqcyさんのツイート: "文表現を得るためのUniversal Sentence Encoderの多言語版モデルが公開。学習に使っている言語には、日本語も含まれている。単語分割はSentencePieceベースのよう。… "
takuya-aさんのツイート: "LightGBM のモデルのデバッグのために SHAP 使ってみたけど、簡単に始められてよかった。Jupyter の中から普通に可視化できる。 https://t.co/Vf2VGmnkEC"
slundberg/shap: A unified approach to explain the output of any machine learning model.
Daisuke OkanoharaさんはTwitterを使っています: 「微分、積分、微分方程式などのシンボリックな数学方程式はNNで驚くほどの精度で解ける。方程式を木表現経由のポーランド記法で表し、Transformerを使ったseq2seqで教師あり学習する。MathematicaやMatlabを超える求解率を達成できる他、有効な解を一つだけでなく多く列挙できるhttps://t.co/dQco5uihuE」 / Twitter
Deep Learning For Symbolic Mathematics | OpenReview
nikqさんはTwitterを使っています: 「https://t.co/LAGdNiwKVu うへーすごい、Network architecture searchの結果、まじでただランダムにつないだNNがResNet-50相当を達成…」 / Twitter
Randomly Wired Neural Networks - Towards Data Science
HELLO CYBERNETICSさんはTwitterを使っています 「ベイズモデリングは、予測にとにかく効きそうな中間表現(潜在変数)をモデルに持たせつつ、統計のことよくわからん人にも、なんだか納得してもらえるような事後分布や予測分布などのバラつき表現も兼ね備えており、 ツールとして予測重視の機械学習と説明重視の統計のいいとこ取りが形式的にできる。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「実際のところ潜在変数に実体としての対応物が無かったとしても、グラフィカルモデル見せながら、なんとなくの納得感が得られるのは、人間側のバグ的な要素も大きいのだが、事をすすめる上では重要だったり…」 / Twitter
Kazunori SatoさんはTwitterを使っています 「出自不明・説明不能な謎MLモデルを乱造しないように、Googleが提唱するMLモデルのマニフェスト作法「Model Card」を作る方法を解説。この例ではscikit-learnとAI Platformを利用。 #gcpja」 / Twitter
Google Cloud JapanさんはTwitterを使っています 「人気の高い scikit-learn フレームワークを使用して、独自のモデルカードを簡単に作成する方法をご紹介。あらゆる機械学習フレームワークに応用できます。https://t.co/nCaHsbZg3z #gcpja」 / Twitter
Scikit-Learn でモデルカードを作成してクラウドにデプロイする方法 | Google Cloud Blog

単語ベクトル・単語選択・距離

やぐさんのツイート: "指定した語彙だけに限定することで単語ベクトルのモデルサイズを小さくする変換コードを書きました。読み込み時間短くしたりdockerに載せたりするときに便利かもです。 https://t.co/3ZJwBx8VyB"
Out-of-the-box - 語彙を限定して単語ベクトルのモデルサイズを小さくするminify_w2v
やぐさんのツイート: "単語埋め込みのout-of-vocabularyのベクトルの初期化を自分でも実装して試してみました。Kaggleのコンペでは如何にOOVを無くすかが重要だったみたいですが、実タスクだとどうなんでしょう Out-of-the-box - 単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化 https://t.co/54O9zJMwR5"
Out-of-the-box - 単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化
piqcyさんのツイート: "単語分散表現において、Euclid距離で意味の近さ、加減算で意味の差し引きができる理由について調べた研究。共起シフトPMI(csPMI=PMI(x,y) + log p(x,y))という値が単語ペア間(王様/男性, 女王/女性)でそれぞれ等しければ、それらはベクトル空間上で同一平面に存在することを証明している。… https://t.co/6wFGeSvp67"
ketsumedo_yarouさんのツイート: "faissがついに1T=10^12本のベクトルに対する探索の話を始めたので、いよいよ大学レベルで個人で何か出来る時代の終わりが近付いてきている(これまでこの界隈は1B=10^9本の話だった) https://t.co/6UoR0tx5vu"
Indexing 1T vectors · facebookresearch/faiss Wiki
しゅんけーさんのツイート: "精度を保ったまま最小限の語彙を選択する variational vocabulary dropout (VDD) を提案。多くのNLPタスクで用いる語彙数は昨今非常に大規模となるが、限られた計算リソース下での実行することは難しい。 そこでdropoutベースで精度低下に寄与しない単語を学習する枠組みを導入している。… https://t.co/qYAAV6k4Tw"
しゅんけーさんのツイート: "How Large Vocabulary Does Text Classification Need? A Variational Approach to Vocabulary Selection - Paper Survey https://t.co/bKLMnUV1Z6 @shunk031さんから… https://t.co/281qr1I4w6"
How Large Vocabulary Does Text Classification Need? A Variational Approach to Vocabulary Selection - Paper Survey

データ

TJOさんのツイート: "機械学習を用いた自然科学研究の多くに既に「再現性の危機」や「データセットの選別による恣意的な知見」という問題が出ているらしく、かつて心理学や認知神経科学が踏んだ轍を高速かつ全力で後から踏みに行っているということで険しい顔をしてゐる https://t.co/y3A7KboQOD"
AAAS: Machine learning 'causing science crisis' - BBC News
elasticJPさんのツイート: "#Elasticsearch において、言語アナライザーが文章を単語に正しく分割するためには辞書の存在が重要です。最近良く聞かれる「辞書を更新する際の挙動」についてブログを書きました。是非お読みください。https://t.co/MpsrnNivqN"
CJK アナライザーの辞書更新時の挙動について | Elastic Blog
Taku Kudoさんのツイート: "最近この手の「機械学習に使えるxxx」という記事を散見するが、手段と目的が入れ替わってておっさんには理解しがたい。 https://t.co/IONds3Tdyq"
【20個掲載】機械学習に使えるスポーツ関連のデータセット | Gengo AI
Shun Aoki🇺🇸青木俊介👑さんはTwitterを使っています: 「GitHubにあるオープンデータのまとめ。機械学習用の有名どころから交通系・社会科学・気象系などなど網羅されているので領域のオープンデータを俯瞰で見るにはとても良さそう。5年ほど運用されているっぽい。 https://t.co/75YxqhMNBh https://t.co/xfks0V6dPM」 / Twitter
awesomedata/awesome-public-datasets: A topic-centric list of HQ open datasets. PR ☛☛☛
Susumu YamazakiさんはTwitterを使っています: 「統計や機械学習において,諸事情で集められないデータをどのように扱うか,という議論は,とても大事だと思います。 というのは,例えば AI とヘイトが強く結びついてしまう事例が散見されますが,本質的な理由の1つは,人種や民族にわたってデータを集める条件が揃っておらず,公平でないからです。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「この問題については「MBA が会社を滅ぼす」という書籍でも論じられています。データ駆動による経営では,測られないデータによって,大きく誤差を生じてしまう,というストーリーです。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「さて,行動経済学における「ナッジ」という考え方は,人間の本能的な思考様式によって,認知が歪められてしまい,合理的に判断することができなくなるということに着眼しています。」 / Twitter
Susumu YamazakiさんはTwitterを使っています: 「ナッジと同じ議論が,機械学習や統計学など,データ駆動の考え方についても言えるのかもしれません。すなわち,補正が必要です。」 / Twitter
ゆうだいさんはTwitterを使っています 「機械学習のためのデータセットが大量に公開されている神サイト. https://t.co/U3rpWNCiOx」 / Twitter
UCI Machine Learning Repository
HELLO CYBERNETICSさんはTwitterを使っています 「データないけどオンライン強化学習で何とかしたい みたいなのカジュアルに言うのは構わんが、CartPoleを適当な手法で良いから一回動かしてみてほしい。このレベルのタスクですらエピソードは数百必要なわけですが、本当に覚悟あるのだろうか。」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「統計のプロを謳う人がこれを言っていて、私が "サンプルサイズが大きすぎるのは良くない"というのは、実験とデータ収集にはコストが掛かるのだから"意思決定に必要なサンプルサイズを見積もりましょう"という意味ですよね と確認したら、検定に応じて最適なサイズがあるのだと言われたので、黙った。」 / Twitter
nekoumeiさんはTwitterを使っています 「ずっと気になってたので調べました 「サンプルサイズが大きすぎると良くない」ってどういうこと?|nekoumei #note https://t.co/KQQ7cRAojW」 / Twitter
HELLO CYBERNETICSさんはTwitterを使っています 「それ以前に、サンプルサイズと標本数を混同していたり、統計計算では不偏分散を用いるものだと言っていたり、よく分からん変換をカマしてとりあえず単回帰していたり、正規分布してなかったり直線に乗らないデータは異常だと言ってたり、社会はそういうものかと現実に戻された感があってよかった。」 / Twitter

データ構造

takuya-aさんのツイート: "ANNのインデックスの構築戦略おもしろい。1時間・1日・1ヶ月ごとに差分に対してインデックス構築してデプロイ、APIサーバからそれらを自動で組み合わせて返している。 / “メルカリの写真検索を支えるバックエンド - Mercari Engineering Blog” https://t.co/zqati0ay3W"
メルカリの写真検索を支えるバックエンド - Mercari Engineering Blog
takuya-aさんのツイート: "ダブル配列の構築時の空き領域の検索、簡潔ビットベクトル使ったらけっこう高速化できんじゃね?って思って調べてたら、すでにdarts-cloneに実装されてたときの顔してる"
かんぱさんださんのツイート: "Goでダブル配列書きました。あまり最小接頭辞トライを採用してる実装がないように感じたので、最小接頭辞トライを採用してます。普通のトライと比べて、多くのケースでメモリ効率とキャッシュ効率が良くなるはずです。 https://t.co/NS5kN9J6oz"
kampersanda/doublearray-go: Go implementation of double-array minimal-prefix trie
かんぱさんださんのツイート: "簡単に実装するために、BASE/CHECKは単純なint配列です。"

ソート

κeenさんはTwitterを使っています 「バイトニックソート、ネットワークソートの一種というのを知っていれば瞬殺できる」 / Twitter
画力・博士号・油田さんはTwitterを使っています 「ところで結構基本的なことがしばらく考えても解らず詰まっておる,具体的には “バイトニックソートがなぜソートになっているのかの正当性” が解らない(計算量を度外視した実装を見ても直観が湧かないどころか各補助函数の事前条件と事後条件が把握できない)」 / Twitter

経済や統計では重視される「識別」

成田 悠輔さんはTwitterを使っています 「機械学習モデルが実応用でうまく動いてくれないことが多いのは、評価データで同じ性能を達成する解が複数あることが原因だという主張。実はこれ、経済や統計では重視される「識別」が機械学習では無視されてることと同根なのはあまり知られていない https://t.co/mhOsLnwesQ」 / Twitter
[2011.03395] Underspecification Presents Challenges for Credibility in Modern Machine Learning

シャープレー値

成田 悠輔さんはTwitterを使っています 「1950年代にゲーム理論や経済学で誕生、その後絶滅したと思われてた概念(シャープレー値)が、5年ほど前からAIや機械学習でルネッサンスしてる。いったい何が起きているのか、これを読むとわかる https://t.co/TS28m9oWTj」 / Twitter
5.9 Shapley Values | Interpretable Machine Learning

Advent Calendar

自然言語処理 Advent Calendar 2016 - Qiita
自然言語処理 Advent Calendar 2017 - Qiita
漢直 Advent Calendar : ATND
漢直 advent calendar 2013 - connpass
漢直 Advent Calendar 2015 - Adventar
Androidでも漢直がしたかった話 - にせねこメモ
TUT-Code打鍵動画 - にせねこメモ
情報検索・検索エンジン Advent Calendar 2019 - Qiita
自然言語処理 Advent Calendar 2019 - Qiita
数理最適化 Advent Calendar 2020 - Qiita